A nyelvfelismerő mindig ad választ, még egy köhögésre is. Tiszta vagy vegyes nyelvű felvételnél hagyd bekapcsolva a felismerést, zajos vagy erős akcentusú felvételnél pedig nevezd meg a nyelvet.
Minden átírás egy kérdéssel kezdődik, amelyet az olvasó sosem lát: milyen nyelven beszélnek? Ha ezt rosszul válaszoljuk meg, a folyamat többi része hiába dolgozik, mert folyékonyan hangzó nonszensz lesz a vége. Ez a cikk bemutatja, mire figyel a nyelvfelismerő, hogyan viselkedik élő hangnál és fájlok esetén, és mikor jobb, ha magad nevezed meg a nyelvet.
A nyelvfelismerő nem érti, mit mondanak. A hangot vizsgálja: a mássalhangzók és magánhangzók készletét, a szótagok hangsúlyát, a mondatok ritmusát, valamint azokat a rövid, gyakori szavakat, amelyekre minden nyelv támaszkodik. A spanyolnak saját magánhangzó-készlete és ritmusa van; a holland és a német sokban osztozik, de néhány hangban eltér. Néhány másodpercnyi tiszta beszéd általában elég ahhoz, hogy megkülönböztesse őket.
Sok felismerő ezt a szavak felismerésének mellékterméseként végzi. A nyelvet a hangfelvétel elejéből dönti el, minden általa ismert nyelvhez valószínűséget rendelve. Ebből a tervezésből két dolog következik. A valószínűségek összege mindig egy, így nincs olyan válasz, hogy „nincs nyelv”: a csend, a köhögés vagy egy zenei felvezetés is kap egy nyelvet, gyakran magabiztos pontszámmal együtt. A döntés pedig az elejéből születik, ami a legrosszabb minta, amit választhatnánk. Sok felvétel üdvözléssel, nevekkel és helynevekkel kezdődik, amelyek nagyon kevés nyelvi információt hordoznak: a „Good morning, Maria, welcome to Berlin” majdnem annyira német, mint angol. Mások csenddel vagy köhögéssel indulnak, és a detektor, ha erre kell döntenie, magabiztosan dönt, teljesen üres alapon. A valós hangfelvételeknél is előfordul ez: egy román prédikáció, amely szobazajjal és a „Bună dimineața” szavakkal indul, könnyen hallatszhat olasznak, „Buona domenica” formában, teljes bizonyossággal.
A rossz válasz ára is rosszabb, mint ahogy hangzik. A rosszul dekódoló felismerő nem elírja a szöveget, hanem átírja. A „For God so loved the world” románként dekódolva ez lett: „Forgot to love the world”. A román „mândria slujește” angolként dekódolva ez lett: „Pride serves”, ami pontos fordítása egy mondatnak, amelyet senki sem kért lefordítani. A szöveg folyékony, az átirat pedig semmi jelét nem adja annak, hogy baj van, és éppen ez teszi drágává a hibát.
Öt dolog téveszti meg leggyakrabban a detektorokat:
Hogy ezek közül melyik bánt leginkább, az attól függ, hogy a hang élőben érkezik-e, vagy már fájlban van.
Egy élő átírásnál nincs egész felvétel, amelyet át lehetne nézni. A hang úgy érkezik, ahogy elhangzik, és az átiratnak vele együtt kell megérkeznie. Ezért a nyelvet a beszéd közben ismeri fel a rendszer, és követi, ha a beszélő vált. Ez azt jelenti, amit a Spoken language kapcsoló melletti megjegyzés mond, amikor a Dashboardon élő átírást indítasz: a beszélő nyelvét a rendszer automatikusan felismeri, és a beszélő bármikor válthat.
A váltást megerősítés után alkalmazzák, így egyetlen zajos szakasz nem viszi át az átiratot egy másik nyelvbe. A gyenge pont az elején van: ha az első szavak zajos üdvözlés, az első sor rossz nyelven jelenhet meg. A nyelv megnevezése ezt elkerüli.
Fájlok másként működnek, mert a teljes felvétel már ott van.
A fájl könnyebb feladat: nem kell az első másodpercekben megbíznunk. Fájlnál a nyelv a felvétel egészéből dől el, így az elején lévő zajos üdvözlés nem dönthet helyette.
A fájl nyelve akkor is munkafeltevés, nem ítélet. Az a felvétel, amely útközben valóban megváltozik nyelvet, például egy interjú, amely a második félidőre angolról románra vált, követve van, nem erőltetve. Az is kezelhető, amely végig váltogatja a nyelveket.
Az a detektor, amely egyszer dönt, és sosem néz vissza, rossz helyen magabiztos.
Egy teljesen zajos felvételnél egyik detektor sem segít sokat. A felismerés az alapértelmezés, mert a legtöbbször helyes, és nem kerül semmibe. Néhány felvételnél viszont meg kell nevezni a nyelvet, és a Dashboard megmondja, melyeknél: a beszélt nyelv megnevezése javítja a pontosságot zajos felvételeknél és erős akcentusnál.
Ezek azok az esetek, amikor a felismerőnek a legkevesebb támpontja van. A zaj eltünteti azokat a jegyeket, amelyekre a detektor támaszkodik; az erős akcentus más nyelv felé tolja őket; egy közeli nyelvpárnak eleve kevés jegye van. Egy erős portugál akcentusú angol beszélőt egy visszhangos teremben a hangból nehéz beazonosítani, és ha a detektor rosszul helyezi el, az átirat a hiba ideje alatt portugálra fordítja az angol beszédet. A nyelv megnevezése megszünteti a kérdést, így minden erőfeszítés a szavakra megy.
Röviden, egy ellenőrzőlista:
A nyelv megnevezése az átírás beállítása, nem a fiókodé, így felvételenként dönthetsz. A fentiek mind egyetlen API-opcióra vezethetők vissza.
spokenLanguage hiánya felismerést jelent; session.update folyamatban lévő streamnélAz API-ban a spokenLanguage egy nyelvkód, például en; ha kihagyod, a nyelvet a rendszer felismeri. Megjelenik egy fájl- vagy linkátírás settings részében, illetve egy valós idejű munkamenet opciói között. A felismerés és a megnevezés ugyanazt a 100 nyelvet fedi le. A fordítás legfeljebb 10 nyelvre lehetséges, és ez külön választás: nem függ attól, hogy melyik nyelvet ismerte fel vagy neveztük meg. Hogy a fordítás hogyan tart lépést a beszéddel, azt a Élő fordítás késleltetése, magyarázattal cikk tárgyalja.
{ "name": "Board meeting", "settings": { "spokenLanguage": "en", "speakerLabels": "auto" } }
Valós idejű munkamenet létrehozásakor ugyanez az opció megadható, és a hang folyamán bármikor megváltoztatható. Egy új spokenLanguage értékkel rendelkező session.update szöveges keret a következő beszédre érvényes; ha ""-re vagy "auto"-ra állítod, a munkamenet visszatér a felismeréshez, a nem támogatott kódot pedig a rendszer figyelmen kívül hagyja. Egy nyelvgombbal ellátott felirat-nézet lehetővé teheti, hogy a kezelő megnevezze a nyelvet abban a pillanatban, amikor észreveszi a rossz első sort, újracsatlakozás nélkül.
{ "type": "session.update", "spokenLanguage": "ro" }
A nyelvkódok listája a nevükkel együtt a GET /v1/languages címen érhető el, kulcs nélkül. A valós idejű folyamat teljes leírása, a munkamenet létrehozásától a vázlatok és a véglegesített sorok olvasásáig, a Valós idejű átírás WebSocketen keresztül cikkben található, az interaktív referencia pedig a {{api}}/docs címen. A Dashboardon ugyanez a választás a Spoken language kapcsoló, amikor új átírást indítasz, az API-kulcsok pedig a Fejlesztők alatt érhetők el.