Automatická detekce se pořád plete: připněte si jazyk

Diktování vám pořád přistává ve špatném jazyce? Automatická detekce u dvojjazyčné řeči ujíždí už z principu. Připněte si jazyk jednou a zůstane připnutý.

Teodor Deleanu10. července 20267 min čtení

Pokud diktujete ve víc než jednom jazyce, tohle selhání znáte. Řeknete větu rumunsky a přepis se vrátí jako foneticky zkomolená angličtina — skutečná slova, žádné z nich vaše. Nebo se to překlopí uprostřed věty: první půlka ve správném jazyce, druhá půlka v něčem, na co jste podle modelu přepnuli. Nebo, můj osobní favorit, polévka ze smíchaných abeced — latinské znaky s pár azbukovými nasypanými mezi ně, jako by model sázel na obě strany písmeno po písmenu.

Tohle není stížnost na jeden produkt. Je to předvídatelný způsob selhání automatické detekce jazyka, včetně výchozího, na angličtinu laděného enginu v Keebye. Trefuje mluvčí s přízvukem v angličtině i každého, kdo během dne přepíná mezi jazyky. Dvojjazyčný vývojář, který má Slack v polštině a commit messages v angličtině, dává automatické detekci přesně ty smíšené signály, které zvládá nejhůř.

Druhá půlka téhle stížnosti je tišší, ale stejně reálná: když nastavení jazyka existuje, bývá zahrabané. Tři nabídky hluboko, za výběrem enginu, kus za přepínačem, jehož název jazyk vůbec nezmiňuje. Pokud přepínáte jazyky dvacetkrát denně, je zahrabané nastavení funkčně žádné nastavení.

Chci vysvětlit, proč to ujíždění nastává — na válečné historce vlastního produktu, protože Keebye tenhle problém měl dřív, než měl nápravu — a pak ukázat, jak vypadá skutečné řešení.

Proč automatická detekce ujíždí (a proč to není tak úplně chyba)

Tady je upřímná mechanika. Moderní řečové modely identifikují jazyk potichu, jako součást dekódování. Model poslouchá, vytvoří si vnitřní odhad, jaký jazyk slyší, a dekóduje podle toho odhadu. Když je zvuk čistý, bez přízvuku a jednojazyčný, funguje to tak dobře, že o tom nikdy nepřemýšlíte.

Teď mu nakrmte skutečnou řeč. Přízvuk posune samohlásky směrem k fonémům jiného jazyka. Ve větě jsou tři anglické přejímky — v každé technické konverzaci jsou. Na pozadí je dítě, nebo mluvíte do mikrofonu v notebooku. Každá z těch věcí snižuje jistotu vnitřního odhadu jazyka a odhad s nízkou jistotou se může mezi jednotlivými snímky překlápět. Když se překlopí, překlopí se s ním dekódování a vy dostanete přepis, který uprostřed myšlenky mění jazyk.

To zásadní: ve většině nástrojů ten odhad nic nekotví. Model rozhoduje potichu, promluvu po promluvě, a vy nemáte možnost ho přebít. Tohle není chyba v jedné konkrétní aplikaci — tohle tichá automatická detekce prostě je. Model dělá úsudek, který nemůžete opravit.

Znám to důvěrně, protože výchozí engine v Keebye má přesně tuhle vlastnost. Parakeet, náš výchozí model laděný na angličtinu, ve vrstvě dekódování ignoruje jakoukoli nápovědu o jazyce — nemůžete mu říct, co se chystáte říct. Na čisté angličtině je výborný, proto je výchozí. Na nejasném zvuku umí ujíždět mezi jazyky jako všechno ostatní v téhle kategorii. Říkám vám tohle nejdřív o vlastním produktu, protože náprava dává smysl, teprve když přijmete, že problém žije v architektuře, ne v něčí konkurenční nedbalosti.

Co připnutí jazyka doopravdy dělá?

Nápravou je přestat po modelu chtít, aby hádal. Keebye má druhý engine běžící přímo na zařízení — NVIDIA Canary 1B v2, kvantizovaný do int8 — který pokrývá přesně 25 jazyků: bulharština, chorvatština, čeština, dánština, nizozemština, angličtina, estonština, finština, francouzština, němčina, řečtina, maďarština, italština, lotyština, litevština, maltština, polština, portugalština, rumunština, slovenština, slovinština, španělština, švédština, ruština a ukrajinština. Na rozdíl od výchozího enginu Canary přijme instrukci o jazyce a ctí ji.

Keebye to zpřístupňuje jako připnutí: výslovné nastavení jazyka, které se pro každou promluvu předá enginu Canary. Připněte rumunštinu a dekodér použije rumunštinu místo automatické volby jazyka. Rozpoznávání může být pořád špatně, hlavně kolem přejímek a u hlučného zvuku, ale volba jazyka už není nekontrolovaný odhad.

Nastavení se čte živě, pro každé diktování. Změňte ho a další podržení klávesy použije nový jazyk, bez restartu aplikace. To znamená víc, než jak to zní: ovládání jazyka je mnohem užitečnější, když jeho přepnutí nepřeruší práci.

A protože Canary běží přímo na zařízení jako všechno ostatní v Keebye, nestojí vás připnutí příběh o soukromí. Model má asi 1,3 GB a stáhne se jednou; potom vaše rumunština, vaše polština, vaše ukrajinština stroj nikdy neopustí. (Proč si vůbec myslíme, že na lokálním vícejazyčném diktování záleží, je vlastní článek — Proč by diktování pro vývojáře nemělo být jen anglicky. Tenhle je jeho praktickým pokračováním: tamten se přimlouvá za ty jazyky, tenhle je o tom, jak je udělat opravdu použitelnými.)

Dvě kliknutí, ne tři nabídky hluboko

Připnutí, na které nedosáhnete, je připnutí, které nepoužijete, takže přepínač bydlí v liště. Ikona Keebye v menu baru má nabídku „Dictation Language“ s kurátorovaným užším seznamem 11 jazyků — angličtina, rumunština, francouzština, němčina, španělština, italština, portugalština, nizozemština, polština, ruština, ukrajinština. Dvě kliknutí z jakékoli aplikace: klik na lištu, klik na jazyk. Neotvíráte Nastavení, neopouštíte okno, ve kterém jste pracovali.

Plný seznam 25 jazyků bydlí v Nastavení pro jazyky mimo užší výběr. Ale ten užší seznam pokrývá každodenní realitu většiny dvojjazyčné práce: píšete svému týmu v jednom jazyce a klientovi nebo AI agentovi v druhém a potřebujete, aby vás to přepnutí nestálo nic.

Stojí za to vědět ještě o jedné možnosti, protože některým lidem mění celý způsob, jak připnutí používají: přepínač překladu do angličtiny. Mluvíte svým jazykem, u kurzoru přistane angličtina — stejný engine, stejné provádění přímo na zařízení. Pokud vám vnitřní monolog běží v rumunštině, ale výstup musí být anglicky (commit messages, prompty pro agenta na psaní kódu, odpovědi mezinárodnímu týmu), tohle sesune krok překladu, který jste dělali v hlavě. Používám to víc, než jsem čekal.

Co vás připnutí stojí

25 jazyků je 25 jazyků. Cloudové diktovací nástroje jich uvádějí mnohem víc, protože posílat zvuk velkému modelu na straně serveru je levný způsob, jak jazyky přidávat. To je skutečný kompromis běhu na zařízení: model, který se vejde na váš Mac, pokrývá menší kus světa než model, který zaplní datové centrum. Pokud váš jazyk mezi těmi 25 není, vícejazyčný engine Keebye vás dnes nepokrývá, a to radši řeknu, než abych to zaokrouhloval nahoru.

Připnutí znamená připnutí. Tohle je odvrácená strana determinismu a chci to říct na rovinu: pokud připnete rumunštinu a pak mluvíte anglicky, Keebye vaši angličtinu věrně chybně dekóduje jako rumunštinu, dokud nepřepnete. Engine dělá přesně to, co jste mu řekli. Celé kouzlo automatické detekce bylo v tom, že jste o tomhle nikdy nemuseli přemýšlet — připnutí mění tuhle pohodlnost za předvídatelnost. Podle mé zkušenosti se ta výměna vyplatí, protože špatný odhad, který nemůžete ovlivnit, je horší než špatné nastavení, které opravíte dvěma kliknutími. Ale je to výměna, ne oběd zdarma.

Užší seznam v liště má 11 jazyků, ne 25. Pokud do vaší denní dvojice patří třeba finština nebo řečtina, jdete kvůli jedné straně přes Nastavení. Kurátorství znamená, že se něčí jazyk do rychlé nabídky nedostal.

Kde to tu stížnost nechává

Stížnost na úrovni kategorie — „moje diktování pořád vychází ve špatném jazyce“ — je ve skutečnosti stížností na tichá rozhodnutí. Model hádal, hádal špatně a nebylo jak mu říct něco jiného. Každá náprava, která hádání zachovává (lepší detekce, delší zvuková okna, prahy jistoty), jen dělá to selhání vzácnějším a podivnějším. Náprava, která tu stížnost opravdu ukončí, je vrátit rozhodnutí uživateli.

Pokud tohle zrovna žijete s jiným nástrojem, naše srovnávací stránky jsou upřímné v tom, komu který nástroj sedne — Keebye vs Superwhisper i Keebye vs Wispr Flow mimo jiné pokrývají i otázku jazyka. Abyste připnutí vyzkoušeli, spusťte níže bezplatnou zkušební verzi, zopakujte rumunskou nebo polskou větu ze začátku tohoto článku a podívejte se, kolik toho ujíždění pocházelo z nekontrolovaného odhadu, a ne z vašeho přízvuku.

Připněte si jazyk, který opravdu používáte

Spusťte bezplatnou zkušební verzi a zopakujte jednu odpověď ve svém rodném jazyce, kterou vám automatická detekce předtím zkomolila.

Start free trial

Early 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