Peatükk 15 Automaatsel kõnetuvastusel põhinevad tööriistad
Automaatne kõnetuvastus (ingl Automatic Speech Recognition, ASR) on kõnetehnoloogia suund, mis tegeleb helisignaalist suulise kõne automaatselt kirjalikuks tekstiks teisendamisega. Automaatset kõnetuvastust kasutatakse näiteks nutiseadmetes, virtuaalagentides (Siri, Alexa jms), automaatsete subtiitrite loomiseks (YouTube) jne. Eesti keele kõnetuvastust kasutatakse näiteks Riigikogu istungite stenografeerimiseks ja ERRi saadetele automaatsete subtiitrite kuvamiseks. On ka mõned dialoogsüsteemid, nt mõnede ettevõtete klienditoe telefon.
Tänapäeval töötab kõnetuvastus põhiliselt tehisnärvivõrkudel põhineval masinõppel. See tähendab, et kõnetuvastussüsteemi treenitakse suurte kõnekorpustega, mis sisaldavad väga erinevat keelelist materjali ja mis on transkribeeritud. Tuvastussüsteem analüüsib kõnesalvestusi ja salvestustele vastavat teksti ning leiab sealt mustrid, mille põhjal teeb uue heli puhul oletusi, mis tekst seal võiks olla.
15.1 Eesti keele kõnetuvastus
Kõnetuvastus on keelespetsiifiline, mis tähendab, et iga keele jaoks peab tuvastussüsteemi treenima vastava keele kõnekorpuse peal. Eesti keele kõnetuvastust on alates 2000. aastatest arendatud Tallinna Tehnikaülikooli keeletehnoloogia laboris ja nende olulisemad rakendused on koondatud siia lehele: https://bark.cs.taltech.ee. 2020. aastatel on hakanud eesti keele kõnetuvastust arendama ka Google ning mõned kohalikud IT-ettevõtted.
Kõige universaalsem neist rakendustest, mida keeleteadlasel võiks vaja minna, olekski veebipõhine kõnetuvastus,61 mis töötab nii, et laed üles helifaili ja mõnigase töötlemise järel saad e-mailile teksti vastu. Tekst on mitmes versioonis, on lihtsalt tekstifail, aga on mitu erinevate ajakoodidega faili, nt subtiitriformaadis fail (mille saad nt YouTube’i üles laadida), kus tekst on jagatud ajakoodiga fraasideks, ja sõnade kaupa ajakoodiga fail.
Kõnetuvastuse puhul peab arvestama mitmete asjadega, mis seavad selle kasutusele mõningaid piiranguid. Esiteks see on automaatne süsteem, mis teeb vigu. Masin ei analüüsi konteksti, mille põhjal inimene oskab näiteks sarnaste sõnade hulgast õige valida. Teiseks (mõnes mõttes nagu inimenegi) oskab masin seda, mida talle on õpetatud. Suurem osa tuvastussüsteemi treeningkorpusest on raadiouudised, enamasti on kõik standardkeeles, mistõttu näiteks murdekeele või lastekeelega teeb ta oluliselt rohkem vigu. Kolmandaks on tuvastus salvestuse kvaliteedi osas tundlik, halva kvaliteediga salvestusega teeb ta palju vigu. Üldjuhul on kõnetuvastuse väljundiks mingi tekst, see lihtsalt võib olla vigane.
15.2 Autosegmenteerijad
Kitsamalt keeleteadlastele kasulik rakendus on autosegmenteerija (forced alligner). Autosegmenteerija viib kohakuti kõnesignaali ja sellele vastava teksti ning annab vastuseks aegjoondatud tekstifaili, kus on märgitud sõnad ja häälikud nende algus- ja lõpuaegadega kõnesignaalis. Kuna kõige sagedasem autosegmenteerija rakendusvaldkond on kõne foneetiline analüüs, siis enamik autosegmenteerijaid annab väljundi Praati TextGrid-faili kujul.
Autosegmenteerijat saab kasutada siis, kui on salvestatud loetud kõnet ja loetu on kirjaliku tekstina olemas. Muidugi saab seda kasutada ka spontaanse kõne segmenteerimiseks siis, kui on olemas kõne transkriptsioon, kuid siin peab arvestama, et esiteks transkriptsioon peaks olema väga täpne ning teiseks kõne peaks olema selgelt artikuleeritud ja mitte väga redutseeritud.
Nagu rakenduse ingliskeelne nimetus osutab, paneb see rakendus jõuga kokku teksti ja helisignaali, mis tähendab, et kui tekst ja heli tegelikult täielikult kokku ei lange, siis on tulemus vigane.
Autosegmenteerijad on üldiselt keelespetsiifilised, sest sisendiks olev kirjalik tekst on tavaortograafias ning selle vastavus fonoloogilisele süsteemile on keeleti väga erinev.
Eesti keele jaoks on olemas vähemalt kaks autosegmenteerijat, juba mainitud TalTechi Autosegmenteerija 262 ning Münchenis LMU-s arendatav WebMAUS.63 Mõlemad töötavad nii, et heli ja tekstifail tuleb laadida veebirakenduse kaudu teenusepakkuja serverisse ja vastuseks saab alla laadida TextGrid-faili.
Mõlemad autosegmenteerijad töötavad aga mingi täpsusastmega ja teevad mingit tüüpi vigu, mis tähendab, et üldiselt kui tahad täpset segmentatsiooni, siis tuleb tulemus käsitsi üle käia, korrigeerida ja täpsustada. Esiteks vähemalt TalTechi segmenteerija tuvastustäpsus on (praeguse versiooni puhul) 30 millisekundit, mis aga foneetilise analüüsi seisukohalt on päris oluline erinevus. Teiseks ei erista autosegmenteerija hääldusnüansse, mida ortograafia ei märgi, st eesti keele puhul palatalisatsiooni ning teist ja kolmandat väldet.
15.3 Autosegmenteerija Praatis
Aastal 2023 lisati Praatile autosegmenteerija ja selle valikus on saadaval ka eesti keel.
- Autosegmenteerija kasutamiseks ava mõni helifail (
Open>Read from file), tee sellele juurde TextGrid (Annotate>To TextGrid) ja ava mõlemad koos TextGridEditoris (vali mõlemad objektid jaView & Edit). - Vaata üle seaded:
Interval>Alignment settings. Vali keel ning see, et eraldi kihile märgitakse sõnad sõnapiiridega ja/või häälikud häälikupiiridega. - Sisesta tekst TextGrid’i esimesele kihile ühte intervalli ja seejärel vali menüüst
Interval>Align interval.
15.4 Autosegmenteerijaga märgendatud häälikutasandi kontrollimine
Autosegmenteerija on automaatsel kõnetuvastusel põhinev tööriist, mis viib kokku kirjaliku teksti ja sellele vastava heli. See erineb automaatsest kõnetuvastusest selle poolest, et kui kõnetuvastusele antakse ainult helisalvestis ja ta teeb oletusi selle kohta, mis sõnad kõnes esinevad, siis autosegmeteerijale anname transkribeeritud teksti ja ta teeb oletusi selle kohta, kus vastavad sõnad ja sõnas olevad häälikud helifailis paiknevad.
Juhul, kui tekst ja heli tegelikult päris täpselt kokku ei lähe, üritab autosegmenteerija ikkagi transkriptsioonis olevaid sõnu ja häälikuid leida (n-ö jõuga teksti ja heli kokku viia). Nii tekivad segmentatsiooni vead kohtades, kus lugeja on takerdunud, mõnda sõna või fraasi kordab või mõne sõna vahele jätab. Samuti tekivad vead sellest, kui salvestuses on transkribeerimata kõnet (nt katseisiku lugemisele eelneb katse läbiviija antav instruktsioon) või mingisugust taustamüra. TalTechi Autosegmenteerija tuleb üksikute puuduvate või liigsete sõnadega paremini toime, WebMAUS-i segmentatsioon läheb esimese mittevastavuse järel kuni helifaili lõpuni paigast ära.
Kui kontrollid üle autosegmenteerijaga märgendatud häälikutasandit, siis on mõned asjad, mida peaksid tähele panema:
- häälikute piirid: TalTechi autosegmenteerija täpsus on 30 ms, see tähendab et sageli lähevad nad pisut õigest kohast mööda;
- välted: autosegmenteerija lähtub ortograafiast, aga kirjas teist ja kolmandat väldet ei eristata. Seetõttu pööra tähelepanu kolmandale vältele ja lisa pikendusmärk, kuhu vaja. Samuti märgib autosegmenteerija pikad konsonandid igal pool üheks segmendiks, mis on tähistatud topeltmärgiga. Juhul kui järgid peatükis 14 kirjeldatud märgendamispõhimõtteid, peaks need topeltmärgiga konsonandi segmendid kas poolitama, kui need on vokaalide vahel, või asendama ühe märgi pikendusmärgiga, kui on konsonantühendis või sõna lõpus;
- palatalisatsioon: kuna palatalisatsiooni ortograafias ei märgita, siis autosegmeteerija seda ka ei märgi, nii et see tuleks ise lisada;
- reduktsioon: autosegmenteerija üritab leida helisignaalist kõiki häälikuid, mis kirjapildi järgi seal olema peaks, aga kui hääldus on tugevasti redutseerunud ja erineb oluliselt sellest, mida ortograafia põhjal võiks eeldada, siis võib olla märgendatud segmente, mida tegelikult hääldatud ei ole;
- vead transkriptsioonis või takerdumised ja kordused lugemisel: sama probleem nagu reduktsiooni puhul tekib siis, kui tekst on valesti transkribeeritud: autosegmenteerija üritab alati leida seda, mis tekstis kirjas, ja kui kirjas on valesti, siis on märgendus ka vale.