Kielentunnistin antaa aina vastauksen, vaikka se olisi vastaus yskään. Pidä tunnistus päällä puhtaalle tai useita kieliä sisältävälle äänelle, ja nimeä kieli, kun yhtä kieltä puhutaan kohinan tai vahvan aksentin läpi.
Jokainen litterointi alkaa kysymyksellä, jonka lukija ei koskaan näe: mikä kieli tämä on? Jos vastaus on väärä, muu putki tekee kovasti töitä tuottaakseen sujuvaa hölynpölyä. Tämä artikkeli kertoo, mitä kielentunnistin kuuntelee, miten tunnistus toimii suorassa äänessä ja tiedostoissa ja milloin kannattaa nimetä kieli itse.
Kielentunnistin ei ymmärrä, mitä sanotaan. Se katsoo itse ääntä: konsonantti- ja vokaalivarastoa, tavujen painotusta, lauseiden rytmiä sekä lyhyitä, usein toistuvia sanoja, joihin jokainen kieli nojaa. Espanjalla on oma vokaalijärjestelmänsä ja rytminsä. Hollanti ja saksa jakavat paljon, mutta eroavat muutamissa äänteissä. Muutama sekunti selkeää puhetta riittää yleensä erottamaan ne toisistaan.
Monet tunnistimet tekevät tämän sanojen tunnistamisen sivutuotteena. Ne päättävät kielen äänitteen alusta todennäköisyytenä jokaiselle tuntemalleen kielelle. Tästä suunnittelusta seuraa kaksi asiaa. Todennäköisyydet ovat aina yhteensä yksi, joten ”ei kieltä” -vastausta ei ole: hiljaisuus, yskä tai musiikkisävel saa myös kielen, usein varmuuspisteen kera. Lisäksi päätös tehdään alusta, joka on huonoin mahdollinen näyte. Monet nauhoitteet alkavat tervehdyksillä, nimillä ja paikannimillä, jotka kantavat hyvin vähän kielellistä tietoa: ”Good morning, Maria, welcome to Berlin” on lähes yhtä saksaa kuin englantia. Toiset alkavat hiljaisuudella tai yskällä, ja kun tunnistinta pyydetään päättämään niistä, se päättää silti, varmasti, vaikka perusteita ei ole lainkaan. Näin käy myös oikealle puheelle: romanialainen saarna, joka alkaa huoneen kohinalla ja sanoilla ”Bună dimineața”, voidaan kuulla täysin varmasti italiaksi: ”Buona domenica”.
Virheellisen vastauksen hinta on myös pahempi kuin miltä kuulostaa. Tunnistin, joka dekoodaa väärällä kielellä, ei kirjoita sanoja väärin vaan kirjoittaa ne uudelleen. ”For God so loved the world”, dekoodattuna romaniaksi, tuli ulos muodossa ”Forgot to love the world”. Romanian ”mândria slujește”, dekoodattuna englanniksi, tuli ulos muodossa ”Pride serves”, joka on tarkka käännös lauseesta, jota kukaan ei pyytänyt kääntämään. Sanat ovat sujuvia, eikä litteraatti anna mitään merkkiä siitä, että jokin on pielessä, ja juuri siksi virhe on kallis.
Viisi asiaa pettää tunnistimia useimmin:
Se, minkä näistä kohtaa, riippuu siitä, saapuuko ääni suorana vai onko se jo tiedostossa.
Suorassa litteroinnissa koko nauhoitetta ei ole katsottavana. Ääni saapuu puhuttaessa, ja litteraatin on saavuttava sen mukana. Siksi kieli tunnistetaan puhujan puhuessa, ja sitä seurataan, jos hän vaihtaa kieltä. Tämä tarkoittaa Spoken language -kytkimen alla olevaa ohjetta, kun aloitat suoran litteroinnin hallintapaneelissa: puhujan kieli tunnistetaan automaattisesti, ja hän voi vaihtaa kieltä milloin tahansa.
Kielenvaihto vahvistetaan ennen kuin se otetaan käyttöön, joten yksi kohinainen kohta ei vedä litteraattia toiselle kielelle. Heikko kohta on alku: jos ensimmäiset sanat ovat kohinainen tervehdys, ensimmäinen rivi voi tulla väärällä kielellä. Kielen nimeäminen välttää tämän.
Tiedostot toimivat eri tavalla, koska koko nauhoite on jo olemassa.
Tiedosto on helpompi ongelma: ensimmäisiin sekunteihin ei tarvitse luottaa. Tiedostossa kieli päätetään koko nauhoitteesta, joten kohinainen tervehdys alussa ei voi ratkaista kieltä.
Tiedoston kieli on silti työolettama, ei lopullinen tuomio. Nauhoite, joka oikeasti vaihtaa kieltä kesken, kuten haastattelu, joka siirtyy englannista romaniaksi toiselle puoliskolleen, seurataan eikä pakoteta yhteen kieleen. Nauhoite, joka vuorottelee kielten välillä läpi koko nauhoitteen, käsitellään myös.
Tunnistin, joka päättää kerran eikä koskaan palaa asiaan, on varma väärästä paikasta.
Kielentunnistin ei auta paljon, kun koko nauhoite on kohinainen. Tunnistus on oletus, koska se on useimmiten oikein eikä maksa mitään. Joillekin nauhoitteille kieli kannattaa kuitenkin nimetä, ja hallintapaneeli kertoo, mille. Puhutun kielen nimeäminen parantaa tarkkuutta kohinaisilla nauhoitteilla ja vahvoilla aksenteilla.
Nämä ovat tapauksia, joissa tunnistimella on vähiten aineistoa. Kohina poistaa vihjeet, joihin tunnistin nojaa; vahva aksentti siirtää ne toiseen kieleen; läheisellä kieliparilla on alun perinkin vähän vihjeitä. Englanninkielinen puhuja vahvalla portugalilaisella aksentilla kaikuisessa salissa on vaikea sijoittaa pelkän äänen perusteella, ja jos tunnistin sijoittaa hänet väärin, litteraatti muuttaa englanninkielisen puheen portugaliksi niin kauan kuin virhe kestää. Kielen nimeäminen poistaa kysymyksen, joten kaikki vaiva menee sanoihin.
Lyhyt tarkistuslista:
Kielen nimeäminen on litteroinnin asetus, ei tilisi asetus, joten voit päättää sen nauhoitekohtaisesti. Kaikki yllä oleva tiivistyy yhteen API-vaihtoehtoon.
spokenLanguage puuttuessa kieli tunnistetaan; session.update kesken virranAPI:ssa spokenLanguage on kielikoodi, kuten en. Jos se jätetään pois, kieli tunnistetaan. Se esiintyy tiedoston tai linkin litteroinnin settings-kohdassa ja reaaliaikaisen istunnon vaihtoehdoissa. Tunnistus ja nimeäminen kattavat saman 100 kielen. Käännös enintään 10 kielelle on erillinen valinta, eikä se riipu siitä, mikä kieli tunnistettiin tai nimettiin. Siitä, miten käännös pysyy puheen tahdissa, kerrotaan artikkelissa Suoran käännöksen viive selitettynä.
{ "name": "Board meeting", "settings": { "spokenLanguage": "en", "speakerLabels": "auto" } }
Reaaliaikainen istunto ottaa saman vaihtoehdon luodessa, ja sitä voi muuttaa, kun ääni virtaa. session.update-tekstikehys uudella spokenLanguage-arvolla koskee puhetta siitä eteenpäin. Arvon asettaminen arvoon "" tai "auto" palauttaa istunnon tunnistukseen, ja tukematon koodi jätetään huomiotta. Tekstitysnäkymä, jossa on kielipainike, voi antaa operaattorille mahdollisuuden nimetä kieli heti, kun hän näkee väärän ensimmäisen rivin, ilman uudelleenyhdistämistä.
{ "type": "session.update", "spokenLanguage": "ro" }
Kielikoodien luettelo nimineen on osoitteessa GET /v1/languages, joka ei vaadi avainta. Reaaliaikaisen istunnon koko kulku palvelimellasi istunnon luomisesta draftien ja commitien lukemiseen on artikkelissa Reaaliaikainen litterointi WebSocketin kautta, ja interaktiivinen viite on osoitteessa {{api}}/docs. Hallintapaneelissa sama valinta on Spoken language -kytkin, kun aloitat uuden litteroinnin, ja API-avaimet löytyvät kohdasta Developers.