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.
Devadesát sekund přesně-jak-jsem-to-myslel — celý popis PR, pečlivá odpověď klientovi — a pak se ve chvíli vložení pokazí něco malého. Cílové okno nemělo fokus. Vložení neprošlo. Aplikace škytla. A text je prostě pryč. Nikam neuložený. Neležící v žádném bufferu. Pryč. Tenhle způsob selhání má každá diktovací pipeline, která bere vložení jako jedinou kopii přepisu.
Následuje specifický, nepřiměřený druh vzteku, a myslím, že oprávněný. Nejde o ztracené sekundy. Jde o to, že jste tu práci odvedli — složili jste myšlenku, řekli jste ji dobře, stroj ji dokonce správně přepsal — a nástroj výsledek zničil kvůli problému s doručením. Druhý pokus nikdy není tak dobrý jako první. Kdo někdy znovu diktoval odstavec z paměti, ví, že ho nezreprodukujete; vyprodukujete jeho plošší příbuzný.
Sám jsem takhle o diktování přišel, v jiných nástrojích, ještě než Keebye existoval. Je to jedna z malých nouzových situací, kolem kterých se aplikace stavěla.
Proč nadiktovaný text prostě zmizí?
Tohle není chyba jednoho výrobce. Je to rozhodnutí v návrhu na úrovni celé kategorie a stojí za to pochopit, proč se pro něj kategorie rozhodla.
Diktovací aplikace je roura, ne editor. Na jednom konci dovnitř řeč, na druhém ven text, do cizího okna — do terminálu, do políčka na Slacku, do Google Docs. Nemá vlastní dokument, a přesně proto jsou tyhle nástroje neviditelné a rychlé. Znamená to ale, že přepis často existuje přesně jednu chvíli: to vložení. A vložení je nejkřehčí krok v celé pipeline. Závisí na tom, které okno má v milisekundě doručení fokus, na tom, že se schránka nepere s jinou aplikací, na tom, jestli má oprávnění ke Zpřístupnění zrovna náladu, na tom, jestli cílová aplikace vůbec přijímá syntetický vstup. Když cokoli z toho selže, čistá roura za sebou nemá nic. Voda je na podlaze.
Existuje i zásadový důvod, proč jsou nástroje ostýchavé, pokud jde o uchovávání kopií: záznam všeho, co jste kdy nadiktovali, je citlivý. Vaše diktování jsou vaše zprávy, vaše prompty, vaše napůl zformovaná rozhodnutí. Výrobce, který je ukládá — zvlášť kdekoli poblíž cloudu — si vytvořil odpovědnost, a snadná cesta, jak se jí vyhnout, je neuchovávat nic. Uživatelé tuhle opatrnost dědí jako pomíjivost: nejbezpečnější diktování z pohledu výrobce je to, které nikdy neexistovalo.
Té logice rozumím. Jen si myslím, že optimalizuje pro špatnou stranu. Způsob selhání u lokální historie je soubor na vašem vlastním disku. Způsob selhání, když se neuchovává nic, je vypaření vaší práce, protože okno ztratilo fokus.
Co si Keebye uchovává a kde
Keebye si tedy vede historii, ve výchozím nastavení zapnutou, a tady je přesně to, co to znamená — nic víc, nic míň.
Se zapnutou historií se každé dokončené diktování zapíše do lokální databáze SQLite na vašem Macu (rusqlite, režim WAL, pro ty, koho zajímá instalatérství). Soubor bydlí v adresáři app-support — com.keebye.app/keebye.db — a nikdy neopustí stroj. Není tu žádná synchronizace, žádné nahrávání, žádný účet, ke kterému by byl připojený. Je to soubor na vašem disku, který vlastníte vy.
Obnova je navržená kolem dvou způsobů, jak o text doopravdy přicházíte. Běžný případ — vložení právě selhalo, před sekundou — má nejrychlejší cestu: nabídka v liště obsahuje položku Copy Last Dictation. Kliknete na ni, vaše nejnovější diktování je ve schránce, vložíte ho tam, kam mělo jít, jdete dál. Vzácnější případ — „něco jsem diktoval v úterý a potřebuju to zpátky“ — jde přes Dictation History…, okno s celým seznamem: prohledávatelné, s mazáním po jednotlivých položkách a s vymazáním všeho, když chcete čistý stůl.
Doba uchování je 30 dní a vynucuje se automaticky. Prořezávání běží při otevření databáze a znovu po každém vložení, takže je to okno opravdu 30 dní, a ne „30 dní, přibližně, až se k tomu dostaneme“. A pokud chcete staré pomíjivé chování — někteří lidé by měli a hned se dostanu ke komu — je historie nastavení (history_enabled) a její vypnutí znamená, že se nezapíše vůbec nic.
Pouze text. Nikdy zvuk.
Nejvíc mi záleží na tom, co ta historie není. Je pouze textová. Schéma historie v Keebye nemá sloupec pro zvuk — ne nastavení uchovávání zvuku ve výchozím stavu vypnuté, žádný sloupec. Samotné nahrávky se nikdy neukládají. To je strukturální, záměrně: přepis „napiš Andreiovi, že se migrace posouvá o týden“ je citlivý dost; zvuk vašeho hlasu, který to říká, s časovým razítkem, je artefakt jiného řádu a nechtěl jsem, aby ho aplikace vůbec byla schopná hromadit.
Ještě jeden detail, na kterém záleží víc, než kolik zabírá slov: pokud diktujete do zabezpečeného pole — do vstupu typu heslo — historie to nezaznamená. Jediné místo, kde je špatně i textová stopa, je jediné místo, kde si žádnou nevedeme.
Je to stejný postoj jako ve zbytku aplikace — převod řeči na text běží přímo na zařízení, o čemž jsme psali v kontextu diktování ve vlastním jazyce — ale historie je místo, kde se ten postoj testuje, protože historie je jediné místo, kde Keebye vaše slova vůbec uchovává. Lokální, pouze textová, sama se mazající — to mi přišlo jako tvar, který si zaslouží být ve výchozím stavu zapnutý.
Upřímné limity
Sekce upřímnosti, jako vždycky.
Nemůžete si to poslechnout znovu. Pouze text řeže na obě strany. Pokud byl přepis špatně — model špatně slyšel jméno, zkomolil číslo — historie věrně uchová ten špatný text a zvuk, který by spor rozsoudil, je záměrně pryč. U většiny případů obnovy to nevadí; selhalo vložení, ne přepis. Ale pokud jste historii diktování chtěli jako archiv hlasových poznámek, tohle to záměrně není.
Třicet dní je třicet dní. Historie je záchranná síť, ne archiv. Pokud na diktování záleží déle než měsíc, je jeho domovem dokument, do kterého jste ho nadiktovali, ne databáze aplikace. Prořezávání se neptá.
Pouze lokální znamená pouze lokální. Vaše historie s vámi neputuje mezi stroji. Diktování, které jste udělali na stolním počítači, se z notebooku obnovit nedá. Předkládám to jako funkci pro soukromí, a taky jí je — nic se nesynchronizuje, protože se nic nepřenáší — ale nebudu předstírat, že to zároveň není omezení. Je obojí. Než se na to spolehnete, měli byste vědět, které z toho je to pro vás.
A hraniční případ: pokud jste ten, jehož model hrozeb říká žádná stopa, historii vypněte. Je to jedno nastavení a aplikace ho plně respektuje. Zapnuto ve výchozím stavu je správná volba pro většinu uživatelů, kteří by radši dostali zpátky odstavec z minulého úterý; nemělo by to být pastí pro ostatní.
Práce by neměla mít jediný bod selhání
Hlubší důvod, proč tahle funkce existuje: den si vedu jako paralelní dráhy — v některých oknech staví agenti, v jiných čekají lidé — a hlas je kanál, který krmí všechny. Ten postup je celou premisou článku Řízení Claude Code hlasem. Kanál, který občas zničí vlastní zásilku, není kanál, na kterém se dá stavět pracovní den. Vývojáři čekají cesty k obnově — undo, logy, reflogy, koš — a přitom spousta diktovacích postupů nenabízí při selhání vložení žádný ekvivalent.
Pokud v téhle kategorii vážíte nástroje, naše srovnání jsou upřímná i o tom, kde ostatní září: Keebye vs Superwhisper a Keebye vs Wispr Flow. A mizející text má sourozeneckou stížnost — první slovo diktování, které se sní dřív, než se mikrofon probudí — a sepsali jsme ji v článku Proč diktovací aplikace sežerou vaše první slovo.
Keebye je v předběžném přístupu pro macOS. Bezplatnou zkušební verzi spustíte níže, nadiktujte odstavec, cílové okno záměrně miněte a pak text obnovte pomocí Copy Last Dictation. Špatný fokus vás pořád stojí jeden krok obnovy; už vás ale nemusí stát tu myšlenku.
Udělejte další dlouhé diktování obnovitelným
Spusťte bezplatnou zkušební verzi a vyzkoušejte Copy Last Dictation dřív, než hlasu svěříte dlouhý popis PR.
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
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.
Diktování promptů paralelním agentům, dráhu po dráze
Když běží dva tři agenti naráz, úzkým hrdlem se stane promptování. Hlasový postup, jak krmit paralelní dráhy, aniž byste opustili tu, ve které jste.
Řízení Claude Code hlasem: stavění v paralelních dráhách
Agenti na psaní kódu s AI udělali z psaní úzké hrdlo. Praktický postup, jak na macOS diktovat prompty, review a přesměrování napříč paralelními dráhami agentů.