Other translations of this page: None.

Kõnetuvastus

Kõnetuvastus on tehnoloogia, mille abil leitakse automaatselt sõnad ja laused, mis kõige paremini vastavad sisendiks olevale inimkõnele. Selline tehnoloogia võimaldab luua mitmesuguseid rakendusi, kus kõnetuvastuse väljund võib olla lõpptulemuseks (näit. dikteerimine) või sisendiks edasisele töötlusele (näit. tuvastatud sõnade põhjal käskluste edastamine seadmetele, kõne semantiline analüüs automaatses dialoogisüsteemis).

Kõnetuvastusteadus on interdistsiplinaarne valdkond, kus kasutatakse meetodeid arvutiteadusest, signaalitöötlusest, matemaatikast, foneetikast ja lingvistikast. Tänapäeva kõnetuvastusmootorite südameks on statistilised mudelid, mille parameetrid „treenitakse“ suurte kõne- ja tekstikogumite põhjal. Kasutatavad algoritmid on keelest sõltumatud ning konkreetse keele kõnetuvastusmootori realiseerimiseks praktiliselt puudub vajadus põhjalike keelespetsiifiliste lingvistliste teadmiste järele.

Kõnetuvastuse toimimisest

Konetuvastusüsteemi arhitektuur

Eeltöötlus ja tunnusvektorite arvutamine

Kõnetuvatastusprotsessi esimene samm on heli salvestamine ja digitaliseerimine. Seejärel eeltöödeldakse signaali selleks, et teisaldada see tuvastuseks sobivamale kujule. Signaal lõigutakse lühikesteks, tüüpiliselt paarikümne millisekundi pikkusteks osaliselt kattuvateks tükikesteks. Tükikesed on parajasti nii pikad, et selle kestel signaali spekter oluliselt ei muutu, ja parajasti nii laiad, et spektrit on võimalik veel usaldatavalt arvutada. Seejärel analüüsitakse spektrit ning leitakse sealt olulised tunnused, esitatuna paarikümne mõõtmelise reaalarvude vektrorina. Tunnused peaksid võimaldama hästi eristada erinevaid häälikuid ja samas mitte arvestama kõnetuvastuseks mitteolulisi signaali aspekte, nagu keskkonna ja mikrofoni eripära, taustamüra, kõneleja emotsioonid. Eeltöötluse väljundiks on seega tunnusvektorite jada, mis esitab sisendsignaali märksa kompaktsemal kujul: kui 16 kHz sagedusel ja 16 bitise sügavusega digitaliseeritud helisignaalis on sekundis 32000 baiti, siis samast signaalist arvutatud tunnusvektorite jadas ainult tüüpiliselt 100*13*4=5200 baiti (13-mõõtmelise reaalarvulise tunnusvektori puhul).

Akustilised mudelid

Kõnetuvastussüsteemi üheks oluliseimaks komponendiks on akustilised mudelid. Akustiliste mudelite abil modelleeritakse häälikuid. Süsteemi hääldussõnastikus on kirjas kõigi rakenduse poolt tuntavate sõnade hääldused, s.t., sõnadele vastavad häälikujadad. Häälikumudelite ja hääldussõnastiku abil saab modelleerida sõnu ja sõnamudelite abil terveid lauseid. Akustiliste mudelite põhiomadus on võime öelda suvalise tunnusvektorite jada kohta: kui sarnane see kõnesignaal „minu“ mudelile on, ehk teisisõnu: kui tõenäoliselt see signaal on just „minu“ signaal. Selleks kasutatakse akustilistes mudelites normaaljaotustel põhinevaid segumudeleid, mis näitavad, millised on häälikule omased tunnusvektorid ja kuidas nad varieeruvad. Et modelleerida spektri sõltuvust hääliku algusest, keskosast ja lõpust, kasutatakse häälikumudelitena Markovi peitmudeleid (joonis 2). Nimi viitab sellele, et hääliku tegelikud faasid on signaalis peidetud ning nende piiride tõenäoliseimaid asukohti saab ainult oletada signaali tunnusvektorite jada ja mudeli parameetrite põhjal. Kõnetuvastuses on märgatud, et häälikute spekter võib olla tugevas sõltuvuses sellest, millises kontekstis häälik parasjagu on: näiteks hääliku /a/ algus erineb olenavalt sellest, kas talle eelneb vokaal või klusiil. Seetõttu modelleeritakse häälikuid nn. konktekstist sõltuvate ühikutega: ühel häälikul on reaalselt palju erinevaid füüsilisi mudeleid, mida kasutatakse automaatselt olenevalt kontekstist. Akustiliste mudelite optimaalsed parameetrid arvutatakse välja ühiselt suurte kõneandmebaaside põhjal. Kõneandmebaasides on suur hulk erinevate inimeste kõnet koos transkriptsioonidega: iga kõnelõigu kohta on andmebaasis kirjas, mida selles lõigus öeldi. Selle info abil saab akustilisi mudeleid treenida: seada Markovi peitmudelite parameetrid just sellisteks, et nad kõneandmebaasiga kõige paremini sobituksid. Kui andmebaasis on piisav hulk kõnet (reeglina vähemalt kümneid tunde ja sadu erinevaid kõnelejaid), peaks treenimise käigus mudelid saama üldistusvõime, ehk sobima ka andmebaasis mitteolevate inimeste kõne tuvastamiseks.

Hääliku modelleerimine Markovi peitmudeli abil. Olekud s0 , s1  ja s2   vastavad hääliku peidetud algus-, kesk- ja lõpuosale. Olekule vastavaid tunnuseid modelleeritakse normaaljaotuste segumudeliga.

Keelemudel

Akustiliste mudelite abil saame arvutada, kui sarnane mingi sõna või lause kasutaja poolt öeldud lausungile on. See ei ole aga lause rekonstrueerimiseks piisav. Põhjuseid on siin mitmeid: inimesed kipuvad rääkima väga lohakalt, sõnalõpud muutuvad dünaamiliselt järgmisteks sõnadeks, sõnade vahel tuuakse kuuldavale mitmesuguseid kõhklushäälitsusi jne. Samuti on inimeste kõne väga varieeruv: ühe inimese /o/ häälik võib sarnaneda teise inimese /u/ häälikule jne. Teiseks, isegi ideaalse häälikute tuvastamise puhul on keeruline teisendada seda sõnade jadaks, teadmata midagi keelest, kuna sidusa kõne puhul puuduvad tüüpiliselt sõnade vahel pausid, mis aitaksid sõnapiire paika panna. Nii näiteks võib häälikute jada /marilähebjalakooli/ tähendada nii lauset „Mari läheb jala kooli“ kui ka „Maril äheb ja lagooli“, kuigi viimane ei oma mingit mõtet. Selle probleemi lahendamiseks kasutades suuri tekstiarhiive e. korpuseid, mille abil saab leida, millised sõnad keeles esinevad. See aitab tuvastusüsteemil antud näite puhul öelda, et „Mari läheb jala kooli“ on ilmselt tõenäolisem vaste kasutaja poolt öeldule, kuna sõnu „äheb“ ja „lagooli“ eestikeelsetes tekstides tihti ei esine. Tuvastusmootor suudabki tegelikult tuvastada vaid neid sõnu, mis tema keelemudeli sõnastikus esinevad, ning loomuliku keele puhul koosneb sõnastik vaid nendest sõnadest, mis esinevad treeningkorpuses piisavalt tihti. Ainult sõnade loendamine ei aita aga lahendada nn. homofoonilisuse probleemi: kas häälikujada /kassaoledvalmis/ vastab lausele „Kas sa oled valmis“ või „Kassa oled valmis“? Selle kahetimõistetavuse lahendamiseks tuleb uurida, kuidas sõnu tüüpiliselt omavahel kombineeritakse. Näiteks ilmneb, et sõnakolmik „kas sa oled“ on üle 100 korra sagedasem, kui sõnapaar „kassa oled“. Taoline statistika aitabki arvutil leida paljude akustiliselt sarnaste sõnakombinatsioonide seast loodetavasti selle õige. Kuna eesti keeles on erinevaid sõnu väga palju (keelest süvastruktuurist mittemidagi teadva arvuti seisukohast on ju ka kõik liitsõnad ning sama sõna erinevad käänd- ja pöördvormid unikaalsed sõnad), kasutatakse keelemudelis sõnade asemel morfeeme (näiteks sõna „keelemudeliga“ lahutatakse kolmeks osaks: „keele“, „mudeli“, „-ga“). Morfeemid liidetakse pärast tuvastamist uuest sõnadeks, seega toimib see protsess kasutajale märkamatult.

Dekodeerimine

Treenitud akustilise mudeli ja keelemudeli ning sõnade hääldussõnastiku abil leiab tuvastusmootor sisendlausele kõige tõenäolisema tuvastusväljundi. Seda protsessi nimetatakse dekodeerimiseks. Piiratud sõnavaraga tuvastuse puhul on tuvastusprotsess lihtsalt ettekujutatav. Näiteks mobiiltelefonis kasutatava häälvalimise sarnase rakenduse puhul arvutatakse sisendsignaali vastavus kõigi telefoniraamatu nimede akustilise mudeli suhtes, ning valitakse välja kõige tõenäolisem vaste. Loomuliku ja sidusa kõne tuvastuse puhul on olukord keerulisem, kuid põhimõte on siiski eelmisega sarnane: antud juhul tuleb kõigi loomuliku keele lausete hulgast valida välja selline, mis on akustilise ja keelemudeli seisukohast kõige tõenäolisem. Kuna loomulikus keeles on erinevaid võimalikke lauseid praktiliselt lõpmatu hulk, tuleb otsingus kasutada keerulisi algoritme, mille abil „lootusetuna“ näivad (ehk suhteliselt vähetõenäolised) harud sellises lausete puus varakult kõrvale jätta, vastasel korral võtaks dekodeerimine lause pikkusega võrreldes sadu või tuhandeid kordi rohkem aega. Sellist otsinguruumi piiramist nimetatakse kärpimiseks (ingl k. pruning) ning kärpimise ulatuse abil saab dekodeerimise kiirust „tuunida“. Paratamatult võib aga juhtuda, et liigulatusliku kärpimise korral lõigatakse ära ka mõningad sellised harud, mis hiljem võivad osutuda „viljakaiks“ ning seetõttu ei saa seda liiga innukalt rakendada. Joonisel 3 on näitena toodud Priit Hõbemäe poolt Kuku raadio saates „Keskpäevatund“ (11. aprill 2009) öeldud lausungi „Omavahel või oma rahvaga?“ tugevasti kärbitud dekodeerimisgraaf. Antud juhul õnnestus kõnetuvastusmootoril leida korrektne tee läbi kandidaatsõnade graafi – selline tee on märgitud katkematu joonega. Teistele tõenäolistele sõnahüpoteesidele vastavad graafi servad on toodud punktiirjoonega. Märksõnaga *DELETE* kirjeldatakse graafi sellist serva, mis sõna ei väljasta, sõnaga ++UH++ kõhklushäälitsust, ning sõnadega <s> ja </s> vastavalt lause algust ja lõppu. Seega, tuvastaja väljund oli antud lausungi puhul „oma vahel või oma rahva _ga“. Suffiksmorfeem „_ga“ liidetakse talle eelneva morfeemiga, ning järeltöötluses rakendatava statistlise liitsõnamudeli abil liidetakse kokku sõnad „oma“ ja „vahel“.

 Lausungi "Omavahel või oma rahvaga" tugevasti kärbitud kandidaatlausete graaf.

Kõnetuvastuse rakendustest

Kõige loomulikumaks kõnetuvastuse rakenduseks on dikteerimine, mille abil saab kõnetuvastuse abil kirju ja muid dokumente koostada. Paljude keelte jaoks on taoline dikteerimistarkvara juba aastaid küllalt levinud ja see töötab päris hästi. Dikteerimisele lisaks saab sidusa loomuliku keele tuvastust kasutada paljudes rakendustes, kus kõnetuvastus toimub kasutaja eest varjatult, näiteks heliarhiivide automaatseks transkribeerimiseks, et võimaldada nende paremat organiseerimist ja indekseerimist. Tänapäeval on paljude raadiote veebilehekülgedel saadaval aastatepikkused saadete arhiivid. Ainus võimalus neist midagi otsida on tugineda lühikesele saate kirjeldusele (kui see üldse olemas on) ning saade lihtsalt läbi kuulata. See on muidugi tülikas ja aeganõudev. Palju mugavam oleks ju, kui ka heliarhiivide seest saaks otsida märksõnade põhjal, nagu saame otsida mingit sõna tekstidokumentidest. Heliarhiivides oleva kõne tuvastamine on dikteerimisest mõneti keerulisem ja mõneti lihtsam. Erinevalt dikteerimisest tuleb siin tihti tegemist teha spontaanse kõnega, mis on ettearvatuma struktuuriga kui dikteeritud kõne. Samuti võib helisalvestustes esineda rohkem taustamüra, samaaegset kõnet ja muid häirivaid tegureid. Teisalt, erinevalt dikteerimisest puudub siin reaalajanõue – piisava masinapargi olemasolul saab ühe salvestuse tuvastamiseks kulutada salvestuse pikkusega võrreldes kordi rohkem aega. See annab võimaluse kasutada keerulisi mitmesammulisi tuvastusskeeme. Kaasaegsetes uurimisotstarbel ehitatud helisalvestussüsteemide tuvastusprototüüpides koosnebki tuvastus väga mitmest faasist: kõigepealt leitakse salvestusest kõnet (mitte muusikat või muud müra) sisaldavad lõigud; seejärel grupeeritakse kõnelõigud kõnelejate kaupa, kasutades kõnelejatuvastusalgoritme; sellele järgneb esimene tuvastusfaas, millest saadud lausehüpoteese kasutatakse kõikidele salvestuses esinenud kõnelajatele adapteeritud akustiliste mudelite loomiseks; sellist adapteerimist korratakse tihti erinevate adapteerismeetoditega; lõpuks leitakse kõnelajale adapteeritud mudelite abil iga kõnelõigu jaoks kõige tõenäolisemate lausehüpoteeside graaf, mida omakorda töödeldakse keerukama ja kõnelõigu teemale adapteeritud keelemudeliga. Kõnetuvastus on ka üks oluline osa sellises mõneti ulmelises rakenduses nagu automaatne kõnest-kõnesse tõlkimine. Samuti kasutatakse kõnetuvastust automaatsetes dialoogisüsteemides. Sellised, tavaliselt telefoni abil kasutatavad süsteemid omavad infot mingi kindla valdkonna kohta ning neid saab kasutada loomuliku kõne abil. Kasutaja kõne tuvastatakse, seda analüüsitakse, käivitatakse sovivad päringud või tegevused ning genereeritakse vastus, mis muundatakse kõnesüntesaatori abil uuesti kõneks. Dialoogisüsteemid on küll väga populaarsed uurimisobjektid, kuid laia kasutusse pole neid väga palju jõudnud. Reaalselt toimivate automaatsete dialoogisüsteemide näideteks on CMU's arendatud prototüübid Roomline (ülikooli auditooriumide ja koosolekuruumide broneerimissüsteem), Let's Go! (Pittsburghi bussigraafiku infosüsteem).

Kõnetuvastuse uurimine ja arendamine Eestis

TTÜ küberneetika instituudi foneetika- ja kõnetehnoloogia laboris tehti esimesed eksperimendid eestikeelse kõnetuvastusega juba kaheksakümnendate lõpus. Aktiivsemalt hakati tuvastusega tegelema 2000-ndate keskel. Suure tõuke sellele andis kahe mahuka eesti keelse kõne andmebaasi (BABEL ja Eesti SpeechDat) loomine, mis võimaldasid treenida juba üsna hästi toimivaid akustilisi mudeleid. Kõneandmebaaside loomine ongi labori üks tähtsamaid tegevusi, mis toetab teisi uurimissuundi. Põhiliseks kõnetuvastusega seotud uurimisobjektiks on olnud keelemudel. Eesti keele grammatika, eelkõige keele süntaksist tingitud erinevate sõnavormide rohkus, teeb sõnapõhise laiahaardelise statistilise keelemudeli loomise keeruliseks. Ühe uurimissuunana käsitletaksegi seda, millised sõnast lühemad ühikud on keele statistiliseks modelleerimiseks optimaalseimad, kuidas neid ühikuid suurte tekstikorpuste põhjal automaatselt leida, ning kuidas integreerida lingvistilist teadmust statistilise mudeliga. Teine hetkel aktiivne uurimissuund käsitleb statistilise keelemudeli adapteerimist. Keelemudeli treenimiseks kasutatakse suuri tekstikorpuseid. Tekstikorpustes kasutatav kirjakeel ei ühti aga kõikides aspektides kõnekeelega, mida üldjuhul tuleb arvutil tuvastada. Kõnekeele korpuste kogumine on aga palju kallim ja aeganõudvam (selleks tuleb kõnesalvestusi käsitsi märgendada), ning seetõttu on kõnekeele korpused mahult sadu või tuhandeid kordi väiksemad kui kirjakeele korpused, mis kogutakse tihti ajalehtede arhiivide põhjal. Keelemudeli adapteerimise eemärgiks on mahuka kuid sihtkõne laadilt veidi erinevat keelt sisaldava korpuse põhjal treenitud mudeli muutmine väikese sihtkeele korpuse põhjal nii, et ta võimalikult hästi modelleeriks sihtkeelt, säilitades samal ajal oma üldistusvõime.

Dikteerimissüsteem radioloogidele

AS Cybernetica tellis foneetika- ja kõnetehnoloogia laborilt kõnetuvastussüsteemi prototüübi radioloogia valdkonnale. Radioloogid on paljude keelte puhul olnud kõnetuvatuse kasutamisel pioneeriks. Radioloogia-uuringu käigus koostab radioloog digitaalse pildikirjelduse (näit. röntgen- või magnetresonantskujutise põhjal), mis sisestatakse arvutisse käsitsi, s.t. arvutiklaviatuuri abil. Klaviatuuri kasutamine viib radioloogi tähelepanu eemale ning häirib seega keskendumist uuritavale kujutisele. Pildikirjelduse dikteerimine ning teisendamine tekstiks kõnetuvastaja abil peaksid kirjelduste koostamise aega märgatavalt kiirendama. Meie labori ülesandeks oli uurida, kui suur tuvastustäpsus on võimalik olemasolevate akustiliste mudelitega saavutada eesti keele jaoks. Selleks saime kasutada suure digitaalsete pildikirjelduste arhiivi, mille põhjal koostasime radioloogia valdkonnale suunatud statistilise keelemudeli. Eksperimentides radioloogide poolt dikteeritud pildikirjelduste salvestustega andis saadud kõnetuvastussüsteem üle 90-protsendilise sõnatuvastustäpsuse. Plaanis on edasine koostöö tellijaga kõnetuvastussüsteemi integreerimiseks radioloogide poolt kasutatava infosüsteemiga.

Kõnesalvestuste transkribeerimise süsteem ning sisu indekseerimise, organiseerimise ning otsingu veebirakendus

Riikliku programmi “Eesti keele keeletehnoloogiline tugi (2006-2010)” kõnetuvastusprojekti raames on foneetika- ja kõnetehnoloogia laboris valminud eestikeelset kõnet sisaldavate helisalvestuste täisautomaatset transkribeerimist võimaldava süsteemi koostisosad. Süsteem võimaldab leida salvestusest kõnet sisaldavad lõigud, grupeerida kõnelõigud kõnelejate järgi ning tuvastada lõikudes oleva kõne kahesammulise kõnelejapõhist adapteerimist kasutava skeemi abil. Tuvastustäpsus sõltub paljudest teguritest, kuid ei küündi siiski veel üle 80%. Süsteem sobib näiteks raadiote vestlussaadete, aga ka konverentsiettekannete salvestuste transkribeerimiseks. 2010. a aastal on kavas alustada süsteemile saadete sisu indekseerimise, organiseerimise ja otsingu funktsioonide lisamist ning nendele funktsioonidele avalikku ligipääsu võimaldava kasutajaliidese implementeerimist. Kasutajaliides oleks implementeeritud veebirakendusena ning võimaldaks järgmisi tegevusi:

  • transkribeeritud kõnesalvestuse sisu vaatamine; transkribeeritud tekst oleks organiseeritud kõneleja kaupa ning võimaldaks lihtsalt kuulata tekstilõigule vastavat kõnet;
  • otsing transkribeeritud salvestustest sisust kasutaja poolt sisestatud märksõnade põhjal;
  • mingile salvestusele sarnase sisuga teiste salvestuste otsimine.

Süsteem oleks suuteline automaatselt uusi salvestusi alla laadima, transkribeerima ning indekseerima, kasutades sisendina RSS-vooge. Rakenduse potensiaalsed hiljem lisatavad funktsioonid on:

  • automaatselt transkribeeritud tekstidesse kasutajapoolsete paranduste tegemine; parandusi saab omakorda kasutada olemasolevate mudelite täiustamiseks;
  • sama kõneleja kõnelõikude otsing erinevatest saadetes, otsing kõneleja ja märksõna põhjal;
  • salvestuste automaatsed lühikokkuvõtted;

Uuendus: Kirjeldatud kasutajaliides on valmis, kasutatav aadressil http://bark.phon.ioc.ee/tsab.

Kõnetuvastusega seotud uuringuid toetavad sihtrahastamisteema 0322709s06, riiklik programm "Eesti keele keeletehnoloogiline tugi (2006-2010)", arvutiteaduse tippkeskus ja EAS.

 
konetuvastus.et.txt · Last modified: 2011/11/18 10:41 by tanel