Peatükk 15 Automaatsel kõnetuvastusel põhinevad tööriistad
Automaatne kõnetuvastus (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 Elisa klienditugi.
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, 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. Ja 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 foneetiline kõne 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 transkrptsioon peaks olema väga täpne ning teiseks kõne peaks olema selgelt artikuleeritud ja mitte väga redutseeritud.
Nagu rakenduse inglisekeelne nimetus osutab, see rakendus paneb jõuga kokku teksti ja helisignaali, mis tähendab, et kui tekst ja heli täielikult tegelikult kokku ei lange, siis on tulemus vigane.
Autosegmenteerijad on üldiselt keelespetsiifilised, sest sisendiks olev kirjalik tekst on tavaortofraafias ning selle vastavus fonoloogilisele süsteemile on keeleti väga erinev.
Eesti keele jaoks on olemas vähemalt kaks autosegmenteerijat, juba mainitud TTÜ oma ning Münchenis LMU-s arendatav WebMAUS. Mõlemad töötavad nii, et heli ja tekstifail tuleb laadida veebirakenduse kaudu teenusepakkuja serverisse ja vastuseks saab alla laadida TextGrid faili.
AGA nad mõlemad töötavad 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 ja korrigeerida ja täpsustada. Esiteks, vähemalt TTÜ segmenteerija tuvastustäpsus on 30 millisekundit, mis aga foneetilise analüüsi seisukohalt on päris oluline erinevus. Teiseks ei erista autosegmenteeria hääldusnüansse, mida ortograafia ei märgi, st eesti keele puhul palatalisatsiooni ning teist ja kolmandat väldet.
15.3 Autosegmenteerija Praatis
Alates 2023. aastast on autosegmenteerija integreeritud ka Praati.27 Valikus on ka eesti keel.
- Selle 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 TextGridi esimesele kihile ühte intervalli ja seejärel
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 üldiselt kõnetuvastusele antakse ainult helisalvestus ja ta teeb oletusi selle kohta, mis sõnad kõnes esinevad, siis autosegmeteerijale anname transkribeeritud teksti ja ta teeb oletusi selle kohta, kus need sõnad ja sõnas olevad häälikud helifailis paiknevad. Foneetikakorpuse märgendamisel kasutame TalTechi autosegmenteerijat.
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. Need topeltmärgiga konsonandi segmendid peaksid 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 ka ei märgi.
- reduktsioon: autosemgenteerija üritab leida helisignaalist kõiki häälikuid, mis kirjapildis peaks olema, 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. Sama probleem tekib siis, kui transkribeeritud on valesti: autosegmenteerija üritab alati leida seda, mis tekstis kirjas ja kui kirjas on valesti, siis on märgendus ka vale.
2024. augusti seisuga on see veel manuaalis dokumenteerimata, aga keeltevaliku põhjal tundub tõenäoline, et tegemist on MAUSi mudeliga.↩︎