Kõnetuvastus

**Kõnetuvastus** (inglise keeles *speech recognition*, lühend SR) on inimkõne sisu automaatne äratundmine arvutustehnika vahenditega.

Arvutite kõnetuvastus jõudis praktilise tasemeni 1990. aastatel, kui United Airlines vahetas oma lennuinfo klaviatuurisüsteemi süsteemiga, mis kasutab lennunumbrite ja linnanimede kõnetuvastust.

Kuigi arvuteid on võimalik juhtida häälkäskudega, on enamik kasutajaid jäänud siiski klaviatuuri ja hiire juurde, kuna need on siiani mugavamad. Tänapäeval on kõnetuvastus juba levinud nutitelefonidele.

## Ajalugu
1952. aastal lõid firma Bell Labs teadlased süsteemi, mille ülesandeks oli kõneleja lausutud üksikute numbrite tuvastamine kõnesignaalis olevate vokaalide formantsageduste põhjal . 1950. ja 1960. aastate jooksul uuriti kõnetuvastust piiratud sõnavara ja selgelt eraldatud sõnade puhul. Samuti tehti katseid kõne sõnadeks segmenteerimisel ja süsteemi võimaliku sõnavara suurendamisel. Rõhk oli reeglipõhistel mudelitel.

1970. aastatel laiendati sõnavara. Meetoditest tehti esimesi katsetusi statistiliste meetoditega, s.h Markovi peitmudel (HMM) ja lineaarprognoos (LPC). Kasutati ka võtmesõnade tuvastamist. 1970. aastatel tuldi välja ka avalikkusele suunatud kõnetuvastusteenustega, näiteks häälvalimine.

1980. aastatest hakati reeglipõhise lähenemise kõrval rohkem tähelepanu pöörama statistilistele meetoditele (HMM, tehisnärvivõrgud) ja masinõppele. IBMis loodi kõnetuvastusmasin Tangora, mis suutis teisendada öeldud lauseid tähejadadeks ja trükkida need paberile. Oluline oli sõnastiku suurus (20 000 sõna) ja masina kasutatav keelemudel, mis hindas, kui tõenäoline on tuvastatud sümbolite järjekorra tõenäosus.

1990. aastatel ületas tüüpiliste kommertskõnetuvastusprogrammide sõnavara keskmise inimese sõnavara hulga. 1993. aastal tõi IBM turule esimese laiatarbe kõnetuvastussüsteemi.

2000. aastatel tehti DARPA toetusel kõnetuvastuse uuringuid firmades Effective Affordable Reusable Speech-to-Text (EARS) ja Global Autonomous Language Exploitation (GALE). NSA alustas võtmesõnade tuvastusega suurtes kõnekorpustes 2006. aastal. Google tegi esimesi edusamme 2007. aastal kõnetuvastuse alal, nüüdseks on sellest välja kasvanud Google'i häälotsinguteenus.

### Ajalugu Eestis
Küberneetika Instituudi foneetika ja kõnetehnoloogia laboratooriumis tehti esimesed eksperimendid eestikeelse kõnetuvastusega juba 1980. aastate lõpus. Aktiivsemalt hakati tuvastusega tegelema 2000. aastate keskel. Suure tõuke andis sellele kahe mahuka eestikeelse 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.

## Mudeleid
Statistilises kõneanalüüsis kasutatakse nii akustilisi mudeleid kui keelemudeleid. Akustiliste mudelite eesmärgiks on leida kõige sobivamad vasted sisendsignaalile. Keelemudel aitab otsustada, kas leitud vaste sobib ka keele vaatenurgast: koosneb keeles olevatest sõnadest, on grammatiliselt korrektne jne. Akustilisele mudelile ja keelemudelile vastavust kontrollitakse statistiliste mudelite abil:
* Markovi peitmudel (HMM)
* Tehisnärvivõrgud
* Süvaõpe

## Meetodeid
Analüüsimisel rakendatakse mitmesuguseid digitaalse signaalitöötluse meetodeid : 
* Fourier' teisendus (FFT) – ajafunktsiooni teisendamine sagedusspektrit iseloomustavaks funktsiooniks. 
* Spektraalanalüüs – analüüs, mille puhul võrreldakse akustilise energia jagunemist heli erinevate sageduste vahel. 
* Formantanalüüs – suurema energiaga sagedusalade kauguste analüüs põhitoonist.
* Nulltaseme ületamiste hulk (ZCR) – helilaine ajatelje ületamiste (ehk helirõhu null-väärtuste) arv mingis ajavahemikus.
* Lineaarprognoos (LCP) – meetod, mille puhul eeldatakse, et kui teatakse signaali väärtusi mingil ajahetkel, saab prognoosida signaali väärtusi järgmisel ajahetkel.
* Kepstraalanalüüs.

## Kõnetuvastussüsteemide klassifikatsioone
* Piiratud sõnavara või piiramatu sõnavara – tuvastatavate sõnade arv on piiratud (seotud mingi valdkonnaga vms) või püütakse tuvastada kõiki sõnu
* Kõnelejast sõltuv või kõnelejast sõltumatu – süsteemi peab iga kasutaja jaoks eraldi treenima või oskab süsteem arvestada erinevate kasutajate eripäradega
* Sõnadeks jagatud kõne või sidus kõne – süsteem eeldab, et sisendis olev tekst on sõnadeks jagatud, või oskab ise teksti vajadusel osadeks jagada

## Jõudlus
Kõnetuvastussüsteemide jõudlust mõõdetakse täpsuse ja kiiruse põhjal. Täpsust hinnatakse tavaliselt sõna veasagedus (WER – *Word Error Rate*) põhjal, samas kiirust mõõdetakse reaalajas. Teised mõõdupulgad võivad olla üksiksõna veasagedus (SWER – *Single Word Error Rate*) ja käsu edusagedus (CSR – *Command Success Rate*). Kõnetuvastus on riistvara poolest siiski väga keeruline probleem. Inimeste hääled erinevad nii aktsendi, häälduse, liigenduse, sügavuse, nasaalsuse, helikõrguse, -tugevuse ja kiiruse poolest. Häirivad on ka taustahelid ja kajad. Keele täpsuse äratundmine sõltub mitmest tegurist:
* sõnavara suurus ja keerukus
* kõneleja sõltuvus või sõltumatus
* isoleeritud, seisatud või ladus kõne
* ülesande ja keele piirangud
* lugemine või spontaane kõne
* ebasoodsad tingimused

## Segavad tegurid
Kõnetuvastust mõjutavad mitmesugused tegurid :
* müra (taust, akustika)
* kõneleja eripära (kõne kvaliteet, sugu, keel, kõnelemisstiil, tempo)
* tehnilised probleemid (mikrofoni kvaliteet)

## Veaparandus
Kõne äratundmise täpsus sõltub mitmest tegurist .
*Veasagedus on võrdelises seoses sõnavara suurusega. Näiteks: kümme esimest arvu "null" kuni "üheksa" tuntakse ära peaaegu täiuslikult, aga sõnavarad suurustes 200, 5000 või 100 000 võivad sisalda veasagedust vastavalt ligi 3, 7 või 45%.
*Sõnavara on raske ära tunda, kui see sisaldab keerulisi sõnu. Näiteks: Inglise tähestiku 26 tähte on raske eristada, kuna nende hääldus erineb sõnast sõnasse (kõige kurikuulsam E-komplekt: "B, C, D, E, G, P, T, V, Z"); ligi 8%-list veasagedust peetakse sellise sõnavara puhul heaks tasemeks.[tsitaat puudulik]
*Kõneleja sõltuvus vs sõltumatus. Kõnelejast sõltuv süsteem on mõeldud kasutuseks ühele kasutajale. Kõnelejast sõltumatu süsteem on mõeldud kõigile, ent on keerulisem.
*Isoleeritud, seisatud või ladus kõne. Isoleeritud kõne puhul kasutatakse vaid üksikuid sõnu, seega on kergem kõnet ära tunda. Seisatud kõnes kasutatakse terveid lauseid, mis on eraldatud vaikusega, seega on sarnaselt isoleeritud kõnega kergem kõnet ära tunda. Isoleeritud ja seisatud kõnest keerulisem on ära tunda ladusat kõnet, sest kasutatakse loomulikult öeldud lauseid.
*Ülesande ja keele piirangud. Näiteks võib infopäring loobuda hüpoteesist " Õun on punane." Samuti võivad piirangud olla semantilised ning lükata tagasi fraasi "Õun on vihane," või süntaktilised ning lükata tagasi "Vihane õun on." Piiranguid võib esitada ka grammatika.
*Loetud vs spontaanne kõne. Kui inimene loeb, siis on see tavaliselt seotud eelneva kontekstiga, aga spontaanse kõne puhul on kõnet ära tunda, sest see on varjutatud kõnekeelsusest tulevatest vigadest (nagu "ee" ja "mm", vale algused, poolikud laused, kogelused, köhimine ja naer) ning piiratud sõnavarast.
*Ebasoodsad tingimused. Kõnetuvastuse ülesanne on mitmetasemelise mustri äratundmine, mida võivad mõjutada keskkonna helid (autod, tehased) ning akustilised häired (kajad, ruumi geomeetria).
*Akustilised signaalid on struktureeritud hierarhiariliselt. Näiteks: foneemid, sõnad, fraasid ja laused.
*Igal hierarhia tasemel on võimalik teha vigu. Näiteks tuntud sõna hääldus või süntaks võib kompenseerida madalamatel tasemetel tehtud vigu. Kõnetuvastusel kasutatakse seda piirangute hierarhiat ära. Madalamatel tasemetel tehtud otsused kombineeritakse vaid tõenäosuslikult ja täpsustavaid otsuseid tehakse vaid kõrgeimal tasemetel.

Masinlik kõnetuvastus on mitmest faasist koosnev protsess. Arvutuslikult on ülesanne helimustri äratundmises või klassifitseerimises kategooriasse, mis esindavad tähendust inimesele. Keerulise helisignaali lõhkumisel väiksemateks helisignaalideks luuakse erinevad tasemed. Madalaimal tasemel, mil heli on kõige fundamentaalsem, suudab arvuti lihtsaid tõenäolisusreegleid kasutades kontrollida, mida heli esindab. Kõrgemal tasemel kombineeritud helide puhul määrab uus reeglite kogu, mida uus keeruline heli võiks esindada. Kõige kõrgema taseme reeglite kogu määratleb väljendite tähenduse. Selleks, et laiendada meie kõneteadust, tuleks arvesse võtta neuronvõrgud.

### Dikteerimisvigade parandamine
Dikteerimise käigus tehtud vigade parandamiseks on mitmeid viise. Viimasena öeldud fraasi parandamiseks võib kasutaja öelda "Paranda see". Üksiku sõna parandamiseks võib öelda parandatava sõna järel "Paranda". Kui sõna ilmneb mitu korda, tõstetakse kõik esinemisjuhud esile ning kasutaja võib valida, millist soovite parandada. Samuti võib funktsiooni "Kõnesõnastik" kasutades lisada korduvalt valesti kuuldud või tuvastamatuid sõnu.

## Kõnetuvastus ja Windows OS
Kõnetuvastuse toetamiseks ei vaja lisatarkvara operatsioonisüsteemid Windows Vista, 7 ja 8. Windows XP vajab kasutajaliidese pakkumiseks Microsoft Plusi, Microsoft Office XP või Microsoft .NET Speechi SDK-d.

## Rakendused
* Teksti sisestamise lihtsustamine (eriti nutiseadmete rakendustes): diktofon, telefoniraamat, kaardirakendus, kalkulaator, taimer.
* Intervjuude, loengute, kõnede jm transkribeerimine: veebipõhine kõnetuvastus, kõnesalvestuse brauser.
* Kuulmispuuetega inimeste abivahendid
* Füüsiliste puuetega inimeste abivahendid
* Keeleõpe
* Dialoogsüsteemid
* Meditsiinitekstide dokumenteerimine
* Autode juhtimissüsteemid
* Lennujuhtimissüsteemid
## Vaata ka
* Keeletehnoloogia
* Kõnesüntees

## Viited