Kalbos detektorius visada pateikia atsakymą, net ir į kosulį. Palikite nustatymą įjungtą švariam ar kelių kalbų garsui, o kai kalba viena, bet ją užgožia triukšmas ar stiprus akcentas, kalbą nurodykite.
Kiekvienas transkribavimas prasideda klausimu, kurio skaitytojas nemato: kokia čia kalba? Jei atsakymas neteisingas, visa kita apdorojimo grandinė sąžiningai stengiasi sukurti sklandžiai skambantį nesąmonės tekstą. Šiame straipsnyje paaiškinama, ką kalbos detektorius „girdi“, kaip nustatymas veikia tiesioginiam garsui ir failams ir kada geriau kalbą nurodyti patiems.
Kalbos detektorius nesupranta, kas sakoma. Jis analizuoja pats garsą: priebalsių ir balsių sudėtį, kirčiavimą, frazių ritmą ir trumpus, dažnai kartojamus žodžius, kuriais remiasi kiekviena kalba. Ispanų kalba turi savo balsių rinkinį ir ritmą; olandų ir vokiečių kalbos daug kuo panašios, bet skiriasi keliais garsais. Kelių sekundžių aiškios kalbos paprastai pakanka, kad jas atskirtų.
Daugelis atpažinimo sistemų tai daro kaip žodžių atpažinimo šalutinį produktą. Jos nustato kalbą pagal įrašo pradžią – kaip tikimybę kiekvienai žinomai kalbai. Iš tokios konstrukcijos seka du dalykai. Tikimybės visada sudaro vienetą, todėl atsakymo „jokia kalba“ nėra: tyla, kosulys ar muzikinis signalas gauna kalbą, dažnai su patikimai atrodančiu įvertinimu. Be to, sprendimas priimamas pagal pradžią, o tai yra blogiausias galimas pavyzdys. Daugelis įrašų prasideda sveikinimais, vardais ir vietovardžiais, o jie teikia labai mažai kalbos požymių: „Good morning, Maria, welcome to Berlin“ beveik tiek pat vokiška, kiek angliška. Kiti įrašai prasideda tyla ar kosuliu, ir detektorius, paprašytas nuspręsti, vis tiek nusprendžia – patikimai, nors remiasi niekuo. Tai nutinka ir su tikru garsu: rumunų kalbos pamokslas, prasidedantis patalpos triukšmu ir žodžiais „Bună dimineața“, gali būti užfiksuotas kaip itališkas „Buona domenica“, ir tai bus pateikiama visiškai įsitikinus.
Klaidos kaina taip pat didesnė, nei atrodo. Atpažintuvas, dekoduojantis netinkama kalba, neklysta rašyboje – jis perrašo. „For God so loved the world“, dekoduota kaip rumunų kalba, virto „Forgot to love the world“. Rumunų „mândria slujește“, dekoduota kaip anglų, tapo „Pride serves“ – tiksliu vertimu sakinio, kurio niekas neprašė versti. Žodžiai skamba sklandžiai, o nuorašas nieko neįspėja, todėl klaida ir brangi.
Dažniausiai detektorių suklaidina penki dalykai:
Tai, kuris iš šių dalykų jus paveiks, priklauso nuo to, ar garsas ateina tiesiogiai, ar jau yra faile.
Tiesioginiam transkribavimui nėra viso įrašo, kurį būtų galima peržiūrėti. Garsas ateina tuo metu, kai kalbama, ir nuorašas turi ateiti kartu. Todėl kalba nustatoma kalbėtojui kalbant ir, jei jis persijungia, yra sekama. Tai reiškia ir pastaba prie Spoken language jungiklio, kai pradedate tiesioginį transkribavimą valdymo skydelyje: kalbėtojo kalba nustatoma automatiškai, o jis gali bet kada persijungti.
Perjungimas patvirtinamas prieš jį pritaikant, todėl vienas triukšmingas fragmentas neįtraukia transkripcijos į kitą kalbą. Silpniausia vieta – pradžia: jei pirmieji žodžiai yra triukšmingas sveikinimas, pirmoji eilutė gali pasirodyti netinkama kalba. Kalbos nurodymas tai išvengia.
Failai veikia kitaip, nes visas įrašas jau yra prieinamas.
Failas – lengvesnis uždavinys: nereikia pasitikėti pirmosiomis sekundėmis. Failo kalba nustatoma pagal visą įrašą, todėl triukšmingas sveikinimas pradžioje negali jos nulemti.
Failo kalba vis dar yra darbinė prielaida, o ne galutinis nuosprendis. Įrašas, kuris tikrai keičia kalbą viduryje – pavyzdžiui, interviu, kuris antroje dalyje pereina iš anglų į rumunų kalbą – yra sekamas, o ne priverstinai suvedamas į vieną kalbą. Įrašas, kuris visą laiką kaitaliojasi tarp kalbų, taip pat apdorojamas.
Detektorius, kuris sprendžia kartą ir daugiau nebežiūri atgal, pasitiki savimi būtent ten, kur klysta.
Jei visas įrašas triukšmingas, joks detektorius daug nepadeda. Nustatymas yra numatytasis, nes dažniausiai jis teisingas ir nieko nekainuoja. Tačiau kai kuriems įrašams kalbą verta nurodyti – o valdymo skydelis parodo, kuriems: kalbos nurodymas pagerina tikslumą triukšminguose įrašuose ir esant stipriam akcentui.
Tai atvejai, kai detektoriui yra mažiausiai ką panaudoti. Triukšmas pašalina požymius, kuriais remiasi detektorius; stiprus akcentas juos pastumia link kitos kalbos; giminingai porai iš pat pradžių mažai požymių. Anglakalbis su stipriu portugalų akcentu didelėje aidinčioje salėje iš garso sunkiai atpažįstamas, ir jei detektorius jį priskiria neteisingai, nuorašas, kol klaida tęsiasi, anglišką kalbą pavers portugališka. Nurodžius kalbą klausimas išnyksta, todėl visos pastangos skiriamos žodžiams.
Trumpas kontrolinis sąrašas:
Kalbos nurodymas yra transkribavimo nustatymas, o ne jūsų paskyros nustatymas, todėl galite spręsti kiekvienam įrašui atskirai. Visa tai priklauso nuo vienos API parinkties.
spokenLanguage, kalba nustatoma; session.update srauto metuAPI spokenLanguage yra kalbos kodas, pavyzdžiui en; jei jo nepateikiate, kalba nustatoma automatiškai. Jis atsiranda failo ar nuorodos transkribavimo settings dalyje ir realiojo laiko sesijos parinktyse. Nustatymas ir kalbos nurodymas apima tuos pačius 100 kalbų. Vertimas į iki 10 iš jų yra atskiras pasirinkimas ir nepriklauso nuo to, kokia kalba buvo nustatyta ar nurodyta. Kaip vertimas seka kalbą, aprašoma straipsnyje Live translation latency, explained.
{ "name": "Board meeting", "settings": { "spokenLanguage": "en", "speakerLabels": "auto" } }
Realiojo laiko sesija šią parinktį priima sukuriant sesiją, o ją galima pakeisti, kol garsas jau teka. Tekstinis session.update pranešimas su nauju spokenLanguage taikomas kalbai nuo tos akimirkos; jei nustatoma "" arba "auto", sesija grįžta prie automatinio nustatymo, o nepalaikomas kodas ignoruojamas. Subtitrų peržiūra su kalbos mygtuku gali leisti operatoriui nurodyti kalbą iš karto, kai jis pamato neteisingą pirmąją eilutę, nesijungiant iš naujo.
{ "type": "session.update", "spokenLanguage": "ro" }
Kalbų kodų sąrašas su pavadinimais pateikiamas adresu GET /v1/languages, kuriam raktas nereikalingas. Visas realiojo laiko srautas – nuo sesijos sukūrimo serveryje iki juodraščių ir patvirtintų eilučių skaitymo – aprašytas straipsnyje Transkribavimas realiuoju laiku per WebSocket, o interaktyvi nuoroda pasiekiama adresu {{api}}/docs. Valdymo skydelyje tas pats pasirinkimas yra Spoken language jungiklis, kai pradedate naują transkribavimą, o API raktai yra skiltyje Developers.