Proč diktovací aplikace sežerou vaše první slovo
Stisknete zkratku, začnete mluvit a první slovo je useknuté. Proč se ořezává při studeném startu a jak pomáhá zahřátý mikrofon a 500ms pre-roll.
Zmáčkněte klávesovou zkratku. Začněte mluvit. Sledujte, jak přepis začíná až u druhého slova — někdy u třetího. Z „refaktoruj logiku opakování“ vyleze „logiku opakování“. Z „ještě to nemerguj“ vyleze „to nemerguj“, což je opravdu nebezpečná věta, kterou nechat napsat svým jménem. Tohle selhání jde snadno zopakovat napříč mikrofonovými pipelines se studeným startem, od vestavěných funkcí systému po specializované diktovací nástroje.
Lidé to popisují různě — „usekává to začátek“, „musím si před mluvením dát pauzu“, „první slovo vždycky chybí“ — ale je to jeden jev, a jakmile se jednou spálíte, vypěstujete si obcházení, které si vypěstuje každý: zmáčknout klávesu, chvilku počkat, pak mluvit. Což znamená, že teď mnohokrát denně provádíte drobný pověrčivý rituál, abyste kompenzovali svůj nástroj, a nástroj vycvičil vás místo naopak.
Ten rituál jsem měsíce dělal v jiných nástrojích. Při stavbě Keebye bylo jeho zabití jednou z prvních věcí na seznamu, protože náprava si nakonec vyžádala nepohodlný kompromis, do kterého většina aplikací nepůjde — a chci o tom kompromisu mluvit stejně na rovinu jako o nápravě.
Proč se první slovo usekne?
Tohle je problém na úrovni celé kategorie, ne něčí nedbalost, a jeho fyzika je jednoduchá: mikrofony nejsou okamžité.
Když diktovací aplikace spouští nahrávání naivním způsobem — zmáčkni klávesovou zkratku, pak otevři mikrofon — musí proběhnout celý řetěz, než se zachytí první vzorek vaší řeči. Musí se inicializovat zvuková session operačního systému. Musí se probudit vstupní zařízení, což u některého hardwaru znamená doslova čas na zahřátí. Vyjedná se formát streamu, alokují se buffery a první buffery, které dorazí, bývají odpad, který se zahodí. Podle stroje a zařízení zabere ten řetěz někde mezi „okamžikem“ a pár sekundami.
Mezitím vy — lidská bytost s už zformovanou myšlenkou — začnete mluvit ve chvíli, kdy váš prst dopadne na klávesu. Vlastně obvykle o vlásek dřív: úmysl zmáčknout a úmysl promluvit opouštějí váš mozek společně a nástup řeči rutinně předhoní připravenost aplikace. Všechno, co jste řekli, než stream naskočil, z pohledu aplikace nikdy neexistovalo. Model nemůže přepsat zvuk, který nikdy nebyl zachycen. Odtud „logiku opakování“.
Proč aplikace mikrofon spouštějí na vyžádání, místo aby ho držely připravený? Většinou z ohleduplnosti. Držet mikrofon otevřený stojí trochu energie a — mnohem důležitěji — rozsvítí to systémový indikátor mikrofonu, který uživatelé pochopitelně čtou jako „tahle aplikace mě poslouchá“. Otevírání mikrofonu jen na vyžádání drží indikátor poctivý a aplikaci ve slušném světle. Cenou je riziko studeného startu na začátku nahrávání.
Náprava: mikrofon, který už poslouchá, když klávesu zmáčknete
Keebye na to útočí z obou stran a ty dva mechanismy stojí za oddělení, protože řeší dvě různé půlky problému.
Zahřátý mikrofon. Po vašem prvním nahrávání v dané session drží Keebye vstupní zvukový stream otevřený. To znamená, že řetěz studeného startu — inicializace session, probuzení zařízení, vyjednání streamu — proběhl už před pozdějším diktováním, dokud ten stream zůstává zdravý. Stream je živý dřív, než se váš prst pohne.
Pre-roll. Zahřátý stream napraví opoždění aplikace, ale ne to vaše — pamatujte, že nástup vaší řeči může předhonit stisk klávesy. Keebye si proto drží rolující 500milisekundový buffer nejnovějšího zvuku (8 000 vzorků při 16 kHz, v kruhu). Když zmáčknete klávesovou zkratku, tahle půlsekunda zvuku těsně předtím se vylije na začátek promluvy. Zvuk, který začal uvnitř toho bufferu, je pro přepisovač dostupný, místo aby se před stiskem klávesy zahodil.
Kombinovaný výsledek: u opakovaných diktování pokryje zahřátý stream a 500ms pre-roll běžný případ, kdy řeč začíná těsně před stiskem klávesy nebo současně s ním. Rituální pauza se uvnitř téhle hranice stává zbytečnou. Nedokáže obnovit slovo vyslovené víc než půl sekundy před začátkem nahrávání a první diktování v session pořád platí běžnou latenci spuštění streamu.
Kompromis, řečeno na rovinu
Tady je část, kterou odmítám zahrabat, protože je to poctivá cena návrhu: protože zvukový stream zůstává mezi diktováními otevřený, macOS ukazuje mikrofon jako aktivní, i když nediktujete. Oranžová tečka svítí. Když se podíváte do Ovládacího centra, Keebye je uvedený jako aplikace, která právě teď používá mikrofon, zatímco vy neděláte nic.
Co se v té době doopravdy děje: zvuk teče do 500ms kruhového bufferu a průběžně se zahazuje. Nic se nepřepisuje. Nic se neukládá. Nic buffer neopustí, dokud nezmáčknete klávesu — a všechno starší než půl sekundy je navždy pryč, přepsané kruhem. Ale nebudu předstírat, že indikátor lže, protože nelže: stream je otevřený a „schopné neustále poslouchat“ je férový popis té architektury, i když nic v žádném smysluplném významu neposlouchá, dokud si o to neřeknete.
Tenhle kompromis jsem udělal záměrně a s otevřenýma očima a tady je ta úvaha. Otevírání mikrofonu na vyžádání zavádí pokaždé riziko studeného startu: useknutá slova, špatné věty, vycvičená pauza. Návrh se zahřátým streamem má cenu, která dopadá na vaše pohodlí s oranžovou tečkou, podepřenou architekturou, kterou si můžete promyslet: lokální historie pouze v textové podobě (sepsali jsme ji v článku Vaše diktování by nemělo jen tak zmizet), přepis přímo na zařízení, žádný ukládaný zvuk, půl sekundy kruhové paměti. Tu tečku beru. Pokud vy ne — to je legitimní postoj a může to opravdu znamenat, že je pro vás správný jiný nástroj; naše stránky Keebye vs Superwhisper a Keebye vs Wispr Flow jsou psané přesně proto, aby s takovým rozhodnutím pomohly.
Dvě hranice, aby nikdo nebyl překvapený
Úplně první diktování v session má pořád běžnou latenci spuštění streamu. Zahřátý mikrofon je zahřátý, protože nějaké nahrávání už proběhlo; to první za nastavení pořád platí. Pozdější diktování z toho těží, dokud stream zůstává otevřený.
Pre-roll je 500 milisekund a 500 milisekund je okamžik, ne věta. Buffer pokrývá přirozený případ — slovo začaté kousek před stiskem klávesy. Pokud pronesete celou větu a pak si vzpomenete zmáčknout klávesu, jsou dřívější slova pryč, záměrně: kruh vždycky drží jen půl sekundy, právě proto, aby si aplikace v nečinnosti neuchovávala smysluplný zvuk. Delší pre-roll by zachytil víc vašich roztržitých začátků a držel v paměti víc okolního zvuku. Půl sekundy je místo, kde jsem tu čáru vedl.
Proč na půl sekundě záleží víc, než jak to zní
Useknuté první slovo vypadá jako malá chyba. V postupu s paralelními dráhami, pro který byl Keebye postavený — hlas jako řídicí kanál pro několik AI agentů a několik lidských konverzací najednou, pracovní den popsaný v článku Dvě děti, tři startupy, jeden hlas — se diktuje mnohokrát denně, v dávkách, uprostřed přepínání kontextu. Nástroj, který si žádá rituální pauzu, daní každou dávku a, což je horší, občas převrátí váš význam a odešle ho. „To nemerguj“ bylo vtipné přesně jednou.
Spolehlivost v téhle kategorii není jedna velká funkce. Je to nahromadění menších pojistek: pre-roll pro úvodní zvuk, historie za přepisem a obnovitelná cesta vkládání. Tenhle článek je o té první; článek o historii pokrývá tu druhou.
Keebye je v předběžném přístupu pro macOS. Bezplatnou zkušební verzi spustíte níže, řekněte při opakovaném diktování „Ještě to nemerguj“ a zkontrolujte, jestli první slovo přežilo. To je celý ten test.
Začněte mluvit bez rituální pauzy
Spusťte bezplatnou zkušební verzi a otestujte opakované diktování, které začíná slovem, jež si nemůžete dovolit ztratit.
Start free trialEarly access: we'll email you the moment the macOS build is ready — your 14 days start when you first sign in from the app.
Čtěte dál
Vaše diktování by nemělo jen tak zmizet
Nadiktujete dlouhou myšlenku, vložení selže a text je pryč. Proč diktovací aplikace ztrácejí vaše slova a jakou místní textovou historii vede Keebye.
Diktovací aplikace, která funguje, i když nefunguje internet
Cloudové diktování umírá se sítí. Keebye převádí řeč na text přímo na zařízení — bez internetu, zvuku mimo váš Mac a hrozby síťového výpadku.
Diktujte code review ve svém vlastním jazyce
Kód je anglicky. Vaše poznámky v review být nemusí. Jak diktovat zpětnou vazbu v jednom z 25 jazyků přímo na zařízení a proč se vyplatí jazyk připnout.