Detektor jazyka vždy dá odpoveď, aj na kašeľ. Detekciu nechajte zapnutú pri čistom alebo zmiešanom zvuku a jazyk určte, keď sa jedným jazykom hovorí cez hluk alebo s výrazným prízvukom.
Každý prepis začína otázkou, ktorú čitateľ nikdy nevidí: akým jazykom sa hovorí? Ak sa pomýlite, zvyšok spracovania sa veľmi snaží vytvoriť plynulý nezmysel. Tento článok vysvetľuje, čo detektor jazyka počúva, ako sa detekcia správa pri živom zvuku a pri súboroch a kedy je lepšie jazyk určiť ručne.
Detektor jazyka nerozumie tomu, čo sa hovorí. Pozerá sa na samotný zvuk: na inventár spoluhlások a samohlások, na to, ako sú slabiky prízvučné, na rytmus fráz a na krátke, časté slová, na ktoré sa každý jazyk opiera. Španielčina má vlastnú sústavu samohlások a rytmus; holandčina a nemčina sú si podobné, no na niekoľkých hláskach sa rozchádzajú. Na rozlíšenie zvyčajne stačí niekoľko sekúnd zreteľnej reči.
Mnohé rozpoznávače to robia ako vedľajší produkt rozpoznávania slov. Jazyk určujú podľa začiatku zvuku ako pravdepodobnosť pre každý jazyk, ktorý poznajú. Z tohto návrhu vyplývajú dve veci. Pravdepodobnosti vždy dávajú dokopy jedna, takže neexistuje odpoveď „žiadny jazyk“: ticho, kašeľ alebo hudobný znak dostane tiež jazyk, často s presvedčivo vysokým skóre. A rozhodnutie sa robí podľa začiatku, čo je tá najhoršia vzorka, akú si možno vybrať. Mnohé nahrávky začínajú pozdravmi, menami a názvami miest, ktoré nesú veľmi málo jazykovej informácie: „Good morning, Maria, welcome to Berlin“ je takmer rovnako nemecky ako anglicky. Iné začínajú ticho alebo kašľom a detektor, ktorý má rozhodnúť na takomto úseku, rozhodne aj tak, sebavedome a bez akéhokoľvek podkladu. Reálny zvuk sa správa rovnako: rumunské kázanie, ktoré sa začína šumom miestnosti a slovami „Bună dimineața“, môže byť so stopercentnou istotou vypočuté ako talianske „Buona domenica“.
Cena zlej odpovede je horšia, než sa zdá. Rozpoznávač, ktorý dekóduje v nesprávnom jazyku, nepreklepe; prepíše. Veta „For God so loved the world“, dekódovaná ako rumunčina, vyšla ako „Forgot to love the world“. Rumunské „mândria slujește“, dekódované ako angličtina, vyšlo ako „Pride serves“, čo je presný preklad vety, ktorú nikto nechcel prekladať. Slová znejú plynulo a prepis nijako neupozorní, že niečo nie je v poriadku, a práve preto je táto chyba drahá.
Päť vecí detektory najčastejšie zmätie:
Ktorý z nich vás zasiahne, závisí od toho, či zvuk prichádza živo, alebo už leží v súbore.
Pri živom prepise nie je k dispozícii celá nahrávka, na ktorú by sa dalo pozrieť. Zvuk prichádza tak, ako sa hovorí, a prepis musí prísť spolu s ním. Jazyk sa preto deteguje počas rozprávania a sleduje sa, ak rečník prepne. Toto znamená poznámka pod prepínačom Spoken language, ktorú vidíte pri spustení živého prepisu v nástenke: jazyk rečníka sa deteguje automaticky a rečník môže kedykoľvek prepnúť.
Prepnutie sa potvrdí, skôr než sa uplatní, takže jeden hlučný úsek nestiahne prepis do iného jazyka. Slabé miesto je začiatok: ak sú prvé slová hlučný pozdrav, prvý riadok môže vyjsť v zlom jazyku. Ak jazyk určíte, tomu sa vyhnete.
Súbory fungujú inak, pretože celá nahrávka je už k dispozícii.
Súbor je lepší problém: nie je treba dôverovať prvým sekundám. Pri súbore sa jazyk určí z nahrávky ako celku, takže hlučný pozdrav na začiatku ho nemôže rozhodnúť.
Jazyk súboru je stále pracovný predpoklad, nie konečný verdikt. Nahrávka, ktorá sa naozaj v polovici zmení na iný jazyk, napríklad rozhovor, ktorý v druhej polovici prejde z angličtiny do rumunčiny, sa sleduje a nevtláča do jedného jazyka. Rovnako sa spracuje nahrávka, ktorá sa počas celej dĺžky striedavo prepína medzi jazykmi.
Detektor, ktorý rozhodne raz a už sa k tomu nevráti, je sebaistý na nesprávnom mieste.
Pri celkovo hlučnej nahrávke detektor veľmi nepomôže. Detekcia je predvolená, pretože je správna väčšinu času a nič nestojí. Pri niektorých nahrávkach však jazyk určiť treba, a nástenka hovorí, ktoré to sú: určenie hovoreného jazyka zlepšuje presnosť pri hlučných nahrávkach a pri silnom prízvuku.
Práve v týchto prípadoch má detektor najmenej čo spracovať. Hluk odstraňuje signály, na ktorých detektor stojí; silný prízvuk ich posúva k inému jazyku; blízko príbuzný pár ponúka od začiatku málo signálov. Rečník po anglicky so silným portugalským prízvukom v dozvučnej hale sa len zo zvuku ťažko zaradí, a ak ho detektor zaradí zle, prepis bude anglickú reč meniť na portugalský text, kým omyl trvá. Určenie jazyka odstráni otázku, takže všetka námaha ide do slov.
Krátky kontrolný zoznam:
Určenie jazyka je nastavenie prepisu, nie nastavenie účtu, takže sa môžete rozhodnúť pre každú nahrávku zvlášť. Všetko uvedené sa redukuje na jednu voľbu API.
spokenLanguage znamená detekciu, session.update počas streamuV API je spokenLanguage kód jazyka, napríklad en; ak ho vynecháte, jazyk sa zistí detekciou. Objavuje sa v settings prepisu súboru alebo odkazu a v možnostiach relácie v reálnom čase. Detekcia a určenie pokrývajú rovnakých 100 jazykov. Preklad do až 10 z nich je samostatná voľba a nezávisí od toho, aký jazyk bol zistený alebo určený. Tomu, ako preklad drží krok s rečou, sa venuje článok Oneskorenie živého prekladu, vysvetlené.
{ "name": "Board meeting", "settings": { "spokenLanguage": "en", "speakerLabels": "auto" } }
Relácia v reálnom čase berie rovnakú voľbu pri svojom vytvorení a môžete ju zmeniť, kým tečie zvuk. Textový rámec session.update s novou hodnotou spokenLanguage sa uplatní na reč od tohto okamihu; ak nastavíte "" alebo "auto", relácia sa vráti k detekcii, a nepodporovaný kód sa ignoruje. Zobrazenie titulkov s tlačidlom jazyka môže operátorovi umožniť určiť jazyk hneď, ako uvidí nesprávny prvý riadok, bez opätovného pripojenia.
{ "type": "session.update", "spokenLanguage": "ro" }
Zoznam kódov s ich názvami je na GET /v1/languages, ktorý nevyžaduje kľúč. Úplný tok v reálnom čase, od vytvorenia relácie na vašom serveri až po čítanie priebežných (draft) a potvrdených (commit) výsledkov, je v článku Prepis v reálnom čase cez WebSocket, interaktívna referencia je na {{api}}/docs. V nástenke je tá istá voľba prepínač Spoken language, keď spustíte nový prepis, a kľúče pre API nájdete v sekcii Developers.