Automatické rozpoznávanie stále háda zle: pripnite si jazyk
Diktovanie je stále v zlom jazyku? Automatické rozpoznávanie pri dvojjazyčnej reči kolíše už z princípu. Pripnite si jazyk raz a ostane pripnutý.
Ak diktujete vo viac než jednom jazyku, toto zlyhanie poznáte. Poviete vetu po rumunsky a prepis sa vráti ako foneticky zmrzačená angličtina — skutočné slová, ale ani jedno vaše. Alebo sa preklopí uprostred vety: prvá polovica v správnom jazyku, druhá v niečom, na čo si model myslel, že ste prepli. Alebo, môj osobný favorit, polievka z pomiešaných abecied — latinské znaky s pár azbukovými posypanými navrch, akoby si model istil stávku písmeno po písmene.
Toto nie je sťažnosť na jeden produkt. Je to predvídateľný spôsob zlyhania automatického rozpoznávania jazyka vrátane predvoleného enginu Keebye ladeného pre angličtinu. Trafí ľudí, ktorí hovoria po anglicky s prízvukom, aj každého, kto počas dňa prepína medzi jazykmi. Dvojjazyčný vývojár, ktorého Slack beží po poľsky a commit správy po anglicky, dáva automatickému rozpoznávaniu presne tie zmiešané signály, ktoré zvláda najhoršie.
Druhá polovica tej sťažnosti je tichšia, ale rovnako skutočná: keď nastavenie jazyka existuje, býva zakopané. Tri menu hlboko, za výberom enginu, za prepínačom, ktorého názov jazyk vôbec nespomína. Ak prepínate jazyky dvadsaťkrát denne, zakopané nastavenie funkčne nie je žiadnym nastavením.
Chcem vysvetliť, prečo k tomu zmietaniu dochádza — na vojnovej historke vlastného produktu, lebo Keebye tento problém malo skôr, než malo riešenie —, a potom ukázať, ako skutočné riešenie vyzerá.
Prečo sa automatické rozpoznávanie zmieta (a prečo to nie je celkom chyba)
Tu je úprimná mechanika. Moderné rečové modely robia identifikáciu jazyka potichu, ako súčasť dekódovania. Model počúva, vytvorí si vnútorný odhad toho, aký jazyk počuje, a dekóduje podľa tohto odhadu. Keď je zvuk čistý, bez prízvuku a jednojazyčný, funguje to tak dobre, že nad tým nikdy nepremýšľate.
Teraz mu dajte skutočnú reč. Prízvuk posunie samohlásky smerom k fonémam iného jazyka. Veta obsahuje tri anglické prevzaté slová — každý technický rozhovor ich má. V pozadí je dieťa alebo hovoríte do mikrofónu notebooku. Každá z týchto vecí zníži istotu vnútorného odhadu jazyka a odhad s nízkou istotou sa môže preklápať medzi rámcami. Keď sa preklopí, preklopí sa s ním aj dekódovanie a dostanete prepis, ktorý uprostred myšlienky mení jazyk.
Kľúčové je toto: vo väčšine nástrojov ten odhad nič nekotví. Model sa rozhodne potichu, pri každej výpovedi, a vy nemáte možnosť ho prebiť. To nie je chyba jednej aplikácie — to je tiché automatické rozpoznávanie. Model robí rozhodnutie, ktoré nemôžete opraviť.
Poznám to dôverne, lebo predvolený engine Keebye má presne túto vlastnosť. Parakeet, náš predvolený engine ladený pre angličtinu, ignoruje akúkoľvek nápovedu o jazyku na úrovni dekódovania — nemôžete mu povedať, čo sa chystáte vysloviť. Na zrozumiteľnej angličtine je vynikajúci, preto je predvolený. Pri nejasnom zvuku sa vie zmietať medzi jazykmi ako všetko ostatné v tejto kategórii. Hovorím vám to najprv o vlastnom produkte, lebo riešenie dáva zmysel až vtedy, keď prijmete, že problém sídli v architektúre, a nie v niečej konkurenčnej nedbalosti.
Čo pripnutie jazyka vlastne robí?
Riešením je prestať žiadať model, aby hádal. Keebye prináša druhý engine bežiaci priamo na zariadení — Canary 1B v2 od NVIDIA, kvantizovaný na int8 —, ktorý pokrýva presne 25 jazykov: bulharčinu, chorvátčinu, češtinu, dánčinu, holandčinu, angličtinu, estónčinu, fínčinu, francúzštinu, nemčinu, gréčtinu, maďarčinu, taliančinu, lotyštinu, litovčinu, maltčinu, poľštinu, portugalčinu, rumunčinu, slovenčinu, slovinčinu, španielčinu, švédčinu, ruštinu a ukrajinčinu. Na rozdiel od predvoleného enginu Canary prijme inštrukciu o jazyku a rešpektuje ju.
Keebye to sprístupňuje ako pripnutie: explicitné nastavenie jazyka, ktoré sa pri každej výpovedi odovzdá enginu Canary. Pripnite rumunčinu a dekodér použije rumunčinu namiesto toho, aby jazyk volil automaticky. Rozpoznávanie sa stále môže mýliť, najmä pri prevzatých slovách a hlučnom zvuku, ale voľba jazyka už nie je nekontrolovaným odhadom.
Nastavenie sa načítava naživo, pri každom diktovaní. Zmeňte ho a ďalšie podržanie klávesu použije nový jazyk bez reštartu aplikácie. Znamená to viac, než to znie: ovládanie jazyka je oveľa užitočnejšie, keď jeho prepnutie neprerušuje prácu.
A pretože Canary beží priamo na zariadení ako všetko ostatné v Keebye, pripnutie vás nestojí príbeh o súkromí. Model má približne 1,3 GB a sťahuje sa raz; potom vaša rumunčina, vaša poľština, vaša ukrajinčina nikdy neopustia počítač. (Prečo si vôbec myslíme, že lokálne viacjazyčné diktovanie je dôležité, je samostatný text — diktovanie pre vývojárov nemá byť len po anglicky. Tento je jeho praktickým pokračovaním: tamten argumentuje za tie jazyky, tento je o tom, ako ich urobiť naozaj použiteľnými.)
Dve kliknutia, nie tri menu hlboko
Pripnutie, na ktoré nedosiahnete, je pripnutie, ktoré nepoužijete, takže prepínač žije v lište. Ikona Keebye v menu bare má menu „Dictation Language“ s kurátorovaným užším zoznamom 11 jazykov — angličtina, rumunčina, francúzština, nemčina, španielčina, taliančina, portugalčina, holandčina, poľština, ruština, ukrajinčina. Dve kliknutia z ktorejkoľvek aplikácie: kliknite na lištu, kliknite na jazyk. Neotvárate Nastavenia, neopúšťate okno, v ktorom ste pracovali.
Celý zoznam 25 jazykov žije v Nastaveniach pre jazyky mimo užšieho zoznamu. Ten užší zoznam však pokrýva každodennú realitu väčšiny dvojjazyčnej práce: píšete svojmu tímu v jednom jazyku a klientovi alebo AI agentovi v druhom a potrebujete, aby vás to prepnutie nestálo nič.
Stojí za to vedieť ešte o jednej možnosti, lebo niektorým ľuďom úplne mení spôsob, akým pripnutie používajú: prepínač prekladu do angličtiny. Hovoríte svojím jazykom, pri kurzore pristane angličtina — ten istý engine, to isté spracovanie priamo na zariadení. Ak váš vnútorný monológ beží po rumunsky, ale výstup potrebujete v angličtine (commit správy, prompty pre kódovacieho agenta, odpovede medzinárodnému tímu), zrazí sa tým prekladový krok, ktorý ste dovtedy robili v hlave. Používam to viac, než som čakal.
Čo vás pripnutie stojí
25 jazykov je 25 jazykov. Cloudové nástroje na diktovanie ich uvádzajú oveľa viac, lebo posielanie zvuku veľkému modelu na strane servera je lacný spôsob, ako jazyky pridať. To je skutočný kompromis spracovania priamo na zariadení: model, ktorý sa zmestí na váš Mac, pokrýva menšiu časť sveta než model, ktorý zaplní dátové centrum. Ak váš jazyk nie je na zozname 25, viacjazyčný engine Keebye vás dnes nepokryje, a radšej to poviem, než by som to zaokrúhľoval nahor.
Pripnutie znamená pripnutie. Toto je odvrátená strana determinizmu a chcem to povedať na rovinu: ak pripnete rumunčinu a potom hovoríte po anglicky, Keebye bude vašu angličtinu verne zle dekódovať ako rumunčinu, kým to neprepnete. Engine robí presne to, čo ste mu povedali. Celé čaro automatického rozpoznávania bolo v tom, že nad týmto nikdy nemusíte premýšľať — pripnutie vymieňa toto pohodlie za predvídateľnosť. Podľa mojej skúsenosti sa tá výmena oplatí, lebo zlý odhad, ktorý nemôžete ovládať, je horší než zlé nastavenie, ktoré viete opraviť dvomi kliknutiami. Je to však výmena, nie obed zadarmo.
Užší zoznam v lište má 11 jazykov, nie 25. Ak vaša každodenná dvojica zahŕňa povedzme fínčinu alebo gréčtinu, pre jednu jej stranu pôjdete cez Nastavenia. Kurátorstvo znamená, že niečí jazyk sa do rýchleho menu nedostal.
Kam to necháva pôvodnú sťažnosť
Sťažnosť na úrovni celej kategórie — „moje diktovanie mi stále vychádza v nesprávnom jazyku“ — je v skutočnosti sťažnosťou na tiché rozhodnutia. Model hádal, odhad bol zlý a nedalo sa mu povedať inak. Každé riešenie, ktoré hádanie zachováva (lepšie rozpoznávanie, dlhšie zvukové okná, prahy istoty), robí zlyhanie iba zriedkavejším a zvláštnejším. Riešením, ktoré tú sťažnosť naozaj ukončí, je vrátiť rozhodnutie používateľovi.
Ak toto práve žijete s iným nástrojom, naše porovnávacie stránky sú úprimné v tom, komu ktorý nástroj sadne — Keebye vs Superwhisper aj Keebye vs Wispr Flow pokrývajú okrem iného aj otázku jazyka. Ak chcete vyskúšať samotné pripnutie, spustite bezplatnú skúšobnú verziu nižšie, zopakujte rumunskú alebo poľskú vetu zo začiatku tohto článku a pozrite sa, koľko z toho zmietania pochádzalo z nekontrolovaného odhadu, a nie z vášho prízvuku.
Pripnite si jazyk, ktorý naozaj používate
Spustite bezplatnú skúšobnú verziu a zopakujte si jednu odpoveď v rodnom jazyku, ktorú vám automatické rozpoznávanie predtým zmrzačilo.
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.
Čítať ďalej
Diktujte revízie kódu vo vlastnom jazyku
Kód je po anglicky. Vaše komentáre k revízii nemusia. Ako diktovať spätnú väzbu v jednom z 25 jazykov na zariadení a prečo záleží na pripnutí jazyka.
Diktovanie promptov paralelným agentom, dráha po dráhe
Keď bežia dvaja či traja kódovací agenti naraz, úzkym hrdlom sa stáva promptovanie. Hlasový postup, ako kŕmiť paralelné dráhy bez opustenia tej svojej.
Riadenie Claude Code hlasom: stavanie v paralelných dráhach
AI agenti spravili z písania úzke hrdlo. Praktický postup na diktovanie promptov, revízií a korekcií v paralelných agentných dráhach na macOS.