Mluvím rychleji, než píšu. To má většina lidí. Takže roky byla nasnadě jasná volba: vzít některou z cloudových diktovacích služeb. Otevřeš appku, namluvíš to, dostaneš zpátky čistý text. Kvalita přepisu se mezitím dostala fakt vysoko. A pokaždé, když jsem to použil, mi v hlavě naskočila ta samá otázka: kdo to teď ještě slyšel?
Protože tohle je smlouva, kterou podepisuješ, aniž bys ji četl. Mluvíš do svého počítače, zvuk se pošle na cizí server, model, do kterého nevidíš, z toho udělá text, a ty věříš, že nahrávka tvého hlasu, tvých rozmyšlených i nedomyšlených nápadů a jména klienta, které jsi nahlas vyslovil, prostě zmizí. Možná zmizí. Možná z toho natrénují příští model. To se nikdy nedozvíš.
Hostuju si v podstatě všechno, co jde, takže mě tohle žralo asi víc než normálního člověka. Tak jsem si přestal stěžovat a napsal si nástroj, který jsem doopravdy chtěl. Jmenuje se Dictate, je open source a najdeš ho na github.com/0x0ndra/dictate.
Co dělá, v jedné větě
Podržíš hotkey, mluvíš, pustíš. To, co jsi řekl, se rovnou napíše do appky, ve které zrovna jsi: do editoru, do chatu, do adresního řádku, do commit message, je to jedno. Žádné vyskakovací okno, žádné tancování s kopírováním, žádné „nejdřív si otevři diktovací appku". Není to ani tak nástroj jako spíš klávesa, která náhodou rozumí mluvenému slovu.
Pod kapotou běží Whisper lokálně. Zvuk nikdy neopustí tvůj Mac. Žádný cloud, žádný API klíč, žádný účet, žádná telemetrie. Nahrávka se drží v paměti přesně tak dlouho, aby se stihla přepsat, a pak je pryč. A přesně o tohle jde: nejbezpečnější data jsou ta, která vteřinu po použití už neexistují.
Proč lokálně, a ne „ta soukromější cloudová varianta"
Každá cloudová služba má dneska stránku o soukromí. Všechny slibují. A většina to nejspíš myslí vážně. Jenže „věřte nám" není bezpečnostní model, je to marketing. Jediné soukromí, kterému doopravdy věřím, je to, kde data fyzicky nemají kam odejít, protože tu prostě není žádné síťové volání, které by je odeslalo.
To je rozdíl mezi politikou a architekturou. Politika se může změnit s příštím kolem investic. Architektura, kde se zvuk nikdy nedotkne socketu, tě potichu nezradí, protože tam není co zradit. Když nadiktuju zprávu o klientském systému nebo nahlas přemýšlím nad něčím nehotovým, chci, aby ta záruka plynula z kódu, ne z odstavce, který sepsali právníci.
A je tu druhý důvod, čistě sobecký: funguje to ve vlaku, v letadle, na chatě bez signálu, v serverovně ve sklepě s nulou čárek. Lokální řešení není jen soukromější, je i spolehlivější. Žádný výpadek, žádný rate limit, žádné „služba je dočasně nedostupná" zrovna to ráno, kdy potřebuješ rychle odpálit deset mailů.
Jaké to vlastně je psát malý nativní nástroj pro macOS
Napsal jsem to ve Swiftu jako menubar appku. Žádná ikona v docku, žádné okno, které zabírá místo, jen malá ikonka nahoře, která tam sedí, dokud si ji nezavoláš. Mám tuhle kategorii softwaru rád: ten druh, co dělá jednu věc, neplete se pod nohy a ty zapomeneš, že vůbec běží. To je cíl. Nejlepší utilita je ta, které si přestaneš všímat.
Příjemné překvapení je, kolik toho macOS dá zadarmo, když to napíšeš nativně. Globální hotkey, který funguje bez ohledu na to, která appka je zrovna v popředí. Přístup k mikrofonu řeší systémový dialog. Vložení textu do appky v popředí jako skutečný stisk klávesy. Nic z toho není efektní, ale právě tyhle věci dělají z nástroje něco, co na ten počítač patří, místo aby s ním bojovalo.
Míň zábavná a poctivá část je to lepidlo mezi tím:
- Časování stiskni a drž. Kde nahrávání začíná a kde končí? Drž a mluv je správný pocit, ale musíš být velkorysý k okrajům: ke krátkému ťuknutí, k dlouhé pauze uprostřed věty, k puštění o chlup dřív. To je práce na pocitu, a práce na pocitu znamená používat to týden a opravovat, co tě štve.
- Načtení modelu bez zaseknutí appky. Lokální Whisper model není malý. Chceš, aby první přepis byl rychlý a aby UI nezamrzlo, zatímco se to rozjíždí. Dostat tohle do stavu, kdy to působí okamžitě, dalo víc práce než samotná logika nahrávání.
- Oprávnění, ten macOS rituál dospělosti. Mikrofon, accessibility kvůli vkládání textu, celý ten tanec systémových dialogů. Nativní znamená, že žiješ uvnitř pravidel Applu, a to je výhoda, ne otrava: uživatel přesně vidí, na co všechno appka smí sáhnout.
Nic z toho není těžká informatika. Všechno z toho dotáhneš jen tím, že jsi první naštvaný uživatel. Psal jsem to pro sebe, takže laťka byla jednoduchá: nechal bych si to nainstalované? Prošlo to, protože dneska po tom sahám úplně automaticky.
Co ti o lokálních modelech v roce 2026 nikdo neřekne
Před pár lety bylo „rozjeď dobrý řečový model na notebooku, offline, tak rychle, že to působí okamžitě" výzkumné demo, ne úterní rutina. Dneska je to obyčejná závislost. Model je dost dobrý, hardware dost rychlý a nástroje kolem se v tom nejlepším smyslu staly nudnými. Tenhle posun je vlastně to hlavní téma. Důvod, proč jsem si tohle mohl napsat ve volném čase, je ten, že lokální AI přešla z dojmu „působivé" do stavu použitelné, a většina lidí si na to ještě nepřenastavila návyky.
Jsme vycvičení předpokládat, že cokoli chytrého musí bydlet v cloudu. U spousty úloh je ten předpoklad dneska prostě špatně. Přepis řeči je ukázkový případ: je to přesně ten typ malé, dobře ohraničené a často opakované práce, která nemá co opouštět tvoje zařízení. Posílat svůj hlas do datacentra, aby ti vrátili kus textu, je jako poslat dopis na poštu přes ulici, aby ti ho podali zpátky.
Proč si myslím, že na tom záleží i mimo jednu menubar appku
Dictate je malý. Nikomu nezmění život. Ale je to konkrétní odpověď na otázku, kterou by si podle mě mělo klást víc lidí, co něco staví: potřebuje tohle vážně cloud, nebo jsem k němu jen automaticky sklouzl? Většinou je poctivá odpověď ta, že jsme sáhli po cizím serveru ze zvyku, ne z nutnosti.
Lokální přístup není nostalgie ani paranoia. Je to jen převzetí toho samozřejmého postoje, že tvůj hlas, tvůj text a tvoje nedomyšlené nápady jsou tvoje, a že důkazní břemeno má nést každý, kdo si je chce zkopírovat někam, kam nevidíš. Postav si tu malou soukromou věc. Nech si data na svém počítači. Nástroje jsou připravené už teď a chybí jediné: rozhodnutí přestat sám sebe posílat na server, který neovládáš.
Kód je otevřený. Přečti si ho, spusť ho, forkni, rozeber na součástky: github.com/0x0ndra/dictate. Ta otevřenost je taky pointa. Nemusíš věřit ani mně. Můžeš si to ověřit.