Isiklikud vahendid
Oled siin: Algus EKT projektid Kõnetuvastus

Kõnetuvastus

Projekti info

Projekti läbiviiv asutus

TTÜ Küberneetika Instituut

Projekti juht

Tanel Alumäe

Projekti läbiviiv meeskond

Tanel Alumäe

Kairit Sirts

Kaarel Kaljurand

Projekti vajadus ja taust

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õ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. 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 sobivad päringud või tegevused ning genereeritakse vastus, mis muundatakse kõnesüntesaatori abil uuesti kõneks. Selliste dialoogisüsteemide näideteks on Apple'i Siri ja Google Now.

Kõnetuvastuse arendamine konkreetsele keelele on suhteliselt ressursimahukas projekt. Eesti keelt kõnelevate inimeste vähese arvu tõttu ei saa eeldada, et eestikeelse kõnetuvastuse arendamisega tegeldaks kommertseesmärkidel. Näiteks Google on teatanud, et nende eesmärk on luua kõnetuvastus kõikidele sellistele keeltele, millel on üle miljoni kõneleja. Eesti keel oma 900 000 kõnelejaga jääb sellest piirist allapoole. Seetõttu on eestikeelse kõnetuvastustehnoloogia väljatöötamist mõistlik toetada riigi poolt.

Projekti eesmärgid

Projekti eemärgiks on olemasoleva eestikeelse kõnetuvastustehnoloogia täiustamine, tehnoloogia kättesaadavakstegemine uute rakenduste loomiseks, juba olemasolevate rakenduste täiendamine ning uute rakenduste loomine.

Kõnetuvastustehnoloogiat täiustamisel pööratakse põhitähelepanu sellistele aspektidele, mille puhul on hetkel kvaliteet suhteliselt madal. Eesmärgid on:

  • parem tuvastuskvaliteet madalama kvaliteediga kõnesalvestuste puhul (eelkõige läbi telefonikanali salvestatud kõne puhul);
  • parem kvaliteet spontaanse kõne puhul;
  • aktsendiga kõnelejate parem käsitlemine;
  • nimega üksuste mainimiste parem tuvastus;
  • kõne indekseerimine terminite ja nimega üksuste otsimiseks;

 

Projekti planeeritud tulemused

EKKTT projekti „Eestikeelse kõnetuvastuse meetodite uurimine ja arendamine“ raames välja töötatud kõnetuvastustehnoloogia täpsust näitav valesti tuvastatud sõnade osakaal ('word error rate') oli 28,6% raadiote vestlussaadete ning 37,1% konverentsiettekannete salvestuste puhul. Selle projekti eesmärgiks on vähendada vigade arvu suhteliselt 25% võrra vastavalt umbes 21,5 ja 28%-ni. Lisaks sellele on eesmärk saavutada raadiote telefoniintervjuude tüüpi kõne puhul vigade protsent alla 35%.

Luuakse kõnetuvastuse väljundi struktureerimise tehnoloogia, mis võimaldab kõnetuvatuse väljundi “kirjavahemärgistamist”, nimega üksuste identifitseerimist ning automaatset teemadeks segmenteerimist. Kirjavahemärkide lisamine teeb kõnetuvastuse väljundi mugavamini loetavaks, teemade ja nimega üksuste identifitseerimine on oluline näiteks meediamonitooringu puhul, mis on üks kõnetuvastuse olulisi rakendusi.

Programmi raames on kavas luua uusi kõnetuvastusrakendusi. Reaalajalist kõnetuvastust eeldavate rakenduste realiseerimise lihtsustamiseks luuakse veebipõhine reaalajalise kõnetuvastuse server, dokumenteeritakse serveri suhtlusprotokoll ning implementeeritakse serveriga suhtlemist võimaldav tarkvarateek.

Uute rakenduste osas on plaanis tähelepanu pöörata järjest populaarsemaks saavate nutitelefonide rakendustele.

Loodav tehnoloogia avaldatakse tasuta koos lähtekoodiga sellises vormis, mis võimaldab teda võimalikult lihtsalt integreerida kolmandate isikute loodavatesse rakendustesse.

Projekti senised tulemused ja saavutused

Mobiilirakendused

2011. a valmis projekti raames kolm kõnetuvastustehnoloogial põhinevat rakendust Android nutitelefoniplatvormile. Rakendus “Kõnele” lubab eestikeelse kõne abil sisestada teksti kõikides Androidi rakendustes. Seda saab kasutada näiteks sõnumite, e-kirjade, märkmete ja muude dokumentide dikteerimiseks, kaardirakenduses aadressiotsinguks ja paljuks muuks. Rakendus “Arvutaja” kasutab samuti eestikeelset kõnetuvastust, kuid oskab ka kasutaja poolt öeldule arukalt reageerida: selle abil saab teha matemaatilisi tehteid (näiteks käsk “viis pluss kuus” annab vastuseks “11”), teha ühikuteisendusi (näiteks “viis miili kilomeetrites” annab vastuseks “8.04”), otsida Eesti kohanimesid ja Tallinna aadresse (näiteks päring “Akadeemia tee 21, Tallinn” suunatakse kaardirakendusse, mis näitab otsitud aadressi). Rakenduse “Diktofon” abil saab salvestada pikki kõnelõike (näiteks intervjuud) ning neid automaatselt tekstiks teisendada. Rakendus võimaldab märksõnade põhjal ka juba transkribeeritud salvestustest otsida, tuvastatud teksti e-kirjana edasi saata jpm. Kõik kolm rakendust on Androidi rakendustepoes tasuta kättesaadavad. Lisaks sellele on tasuta ja vaba tarkvara litsentsi alusel saadaval ka rakenduste lähtekood, mis võimaldab eesti kõnetehnoloogiat lihtsalt integreerida ka teistesse muude arendajate poolt loodavatesse rakendustesse. Rakendusi on alla laetud kokku üle 10000 korra.

Reaalajalise kõnetuvastuse server

Mobiilirakendused “Kõnele” ja “Arvutaja” kasutavad kõnetuvastuseks 2011. a implementeeritud reaalajalise kõnetuvastuse serverit. Server on mõeldud lühikeste, kuni umbes 20-sekundiliste kõnelõikude tuvastamiseks. Serveri arhitektuuri väljatöötamisel seati üheks eesmärgiks võimalikult väike latentsus – sisendlausele peaks tuvastustulemuse saama võimalikult ruttu, tüüpiliselt paar sekundit peale lause lõppu. Serveri suhtlusprotokoll on seda vajadust silmas pidades kavandatud. Server kasutab Pocketsphinx kõnetuvastusmootorit. Server võimaldab kasutada keelemudelina nii statistilist mudelit kui ka JSGF või Grammatical Framework formaadis grammatikat. Serveri kasutajad saavad uusi grammatikaid ise üles laadida ning tuvastuseks kasutada. Grammatical Framework formaadis grammatika kasutamisel on võimalik ka tuvastatud lause tõlkimine sisendkeelest mingisse teise antud grammatikas implementeeritud keelde. Server on vaba lähtekoodiga. BSD litsents lubab seda vabalt muuta ja kasutada ka kommertsrakendustes. Implementeeriti ka Java teek serveri kasutamise hõlbustamiseks.

Pikkade kõnesalvestuste tuvastamise kvaliteet

Allolev tabel näitab eestikeelse kõnetuvastuse kvaliteedi progressi aastate lõikes. Toodud on sõnavigade osakaal protsentides mitme erinevat tüüpi testvalimi puhul, kasutades kolmesammulist adapteerimisega tuvastust (väiksem number on parem).

Kõne tüüp 2010 2011 2012  2013 2014
Raadio vestlussaated 28,6 27,1 25,6
 20,3  18,1
Konverentsikõned 37,1 33,9 33,0  26,4  
Raadio telefoniintervjuud   29,1 26,6  22,8  
Aktuaalne Kaamera
       21,5  19,6

Tarkvara

Viited projekti käigus loodud tarkvarale on siin.

Tegevused dokumentidega