Puheentunnistus ja synteettinen puhe S-114.1100 Laskennallinen tiede, syksy 2005 (kuva: viite 5) Heikki Hyyti 60451P
1. Sisällysluettelo 1. Sisällysluettelo... 2 2. Tiivistelmä...3 3. Yleistä... 3 4. Kieli ja puhe...4 5. Puheentunnistuksen ja synteettisen puheen ongelmat... 5 6. Ratkaisumallit... 6 6.1. Luokitukset... 6 6.2. Markovin malli... 6 6.3. Modernit puheentunnistusjärjestelmät... 7 6.4. Puhesyntetisaattoriratkaisut... 8 6.4.1. Yksiköiden valinta tietokannasta... 9 6.4.2. Päätaajuus-synteesi... 9 6.4.3. Markovin mallien käyttö synteesissä... 9 7. kysaavutukset ja kehityskohteet... 9 8. Tavoitteet ja sovellukset... 10 9. Lähdeviitteet... 10 2
2. Tiivistelmä Tässä tutkielmassa pohdin yleisesti puheen tuottamista ja tunnistamista tietokoneella. Tutustumme kielen monimutkaisuuteen ja erilaisiin tulkintatapoihin riippuen asiayhteydestä, puhujan äänenpainosta tai eleistä. Perehdyn yleisiin puheen tunnistuksen ja tuoton menetelmiin ja niiden osiin sekä laskennallisiin menetelmiin. Lopuksi keskityn pohtimaan mahdollisia käyttökohteita ja sovelluksia kyseiseltä alalta. 3. Yleistä Emme tiedä miten aivot käsittelevät, tunnistavat ja tuottavat puhetta. Siksi tietokonelingvistiikkan ongelmia pyritään ratkaisemaan kehittämällä uusia matemaattisia malleja, joilla puhetta voitaisiin parhaiten tunnistaa ja tuottaa olemassa olevalla tietoteknisellä arkkitehtuurilla. Nykyiset tietokoneet pystyvät tekemään paljon monimutkaisia laskutoimituksia lähestulkoon virheettömästi, mutta hahmon- tai kielentunnistuksessa ne ovat vielä erittäin huonoja. Jos kuitenkin kone saadaan ymmärtämään ihmisen puhumaa kieltä, helpottuu ihmisen ja koneen välinen vuorovaikutus. Puheentunnistus on maailmalla suosittu tieteenala, jolle on jo nyt olemassa jonkinlaisia käyttökelpoisia sovelluksia, kuten lääkäreille tarkoitettuja saneluohjelmia tai kännyköiden soittoautomaatioita sekä automaattisia puhelinpalveluita. Puheentunnistuksen markkinat ovat suhteellisen suuret, noin 130 miljoonaa dollaria (vuonna 2003). Markkinat ovat pääsääntöisesti olleet Yhdysvalloissa, mutta muu maailma on ottamassa tälläkin saralla kiinni. Lähivuosina tämä tieteenala tullee kasvamaan räjähdysmäisesti, kunhan kunnollisia, normaalia puhetta hyvin ymmärtäviä järjestelmiä pystytään rakentamaan. (lähde 2) Synteettisen puheen luominen, niin sanottu puhesynteesi, on kehittynyt huomattavasti pidemmälle kuin puheentunnistus. Nyt jo on saatavilla palveluita, jotka lukevat mitä tahansa tekstiä ymmärrettävälle kielelle. Tämä puhe, jota television chateista saa kuulla puhuvan pään puhumana, ei todellakaan ole mitään kaunista kuunneltavaa ja on vielä kaukana ihmisten käyttämästä kielestä. Tätä puhetta voi kuitenkin ymmärtää, ja siksi sovelluksia on alkanut nyt jo ilmestyä. Merkittävistä tutkimuksista mainittakoon suomalainen tutkimus Tampereen yliopiston tietojenkäsittelyopin laitokselta. Siellä ihmisen ja tietokoneen vuorovaikutusta tutkivassa TAUCHI-ryhmässä on puhekäyttöliittymiä tutkittu vuoden 1998 kesästä alkaen. Puhekäyttöliittymät -nimisessä projektissa työtä on tehty nimenomaan suomenkielisen järjestelmän parissa. Vaikka sovelluksessa ollaankin keskitytty erityisesti suomenkieleen, on perustutkimustyö sinällään muillekin kielille yleistettäviin tuloksiin suuntautunutta. (viite 3) Tästä tutkimuksesta syntyi valmis Postimies-järjestelmä, jolla käyttäjä pääsee käyttämään sähköpostilaatikkoaan pelkän puheen avulla. Järjestelmä osaa vastaanottaa muutamia komentoja puheella ja lukea käyttäjän haluamat sähköpostit suomeksi. 3
4. Kieli ja puhe Ihmisen puhuma kieli on todella monimutkaista ja erilaista kirjoitettuun kieleen verrattuna. Suomen kielessä kirjoitettu ja puhuttu kieli ovat suhteellisen samankaltaisia, mutta jos vertaamme esimerkiksi englannin puhe- ja kirjakieltä, niin erilaiset ääntämyserot alkavat tulla esiin. Ääritapauksena kielten erilaisuudesta voidaan pitää esimerkiksi kiinan kieltä, jossa jokaiselle sanalle on oma merkkinsä. Tällöin luonnollisestikin puhe- ja kirjakieli ovat täysin eri kielet. Oman erikoisuutensa kieleen tuovat tämän lisäksi erilaiset murteet ja puheviat. Jokainen ihminen puhuu omalla tavallaan, joten puhetta ymmärtävän laitteen kehittäminen on todella haastavaa. Kieli on usein myös tulkittavissa monella eri tavalla. Kielten piirteet vaikuttavat puheteknologialle asetettaviin vaatimuksiin. Suomen kielessä sanavartaloon liittyvät päätteet voivat vaikuttaa sanan merkitykseen, samoin virkkeen sanajärjestys ja asiayhteys. Lisäksi sanoihin ja ilmauksiin liittyy assosiaatioita ja symbolisia merkityksiä. Tulkitessaan sanoja ihminen hahmottaa ne osana lauserakenteita, jotka eivät ole aina yksiselitteisiä. Samojen sanojen merkitys voi muuttua myös riippuen äänenpainosta, sävystä, asiayhteydestä tai puhujan ilmeestä. Kuusi voi tarkoittaa puuta tai numeroa. (viite 1) Lisäksi puhe voi olla ivallista tai sarkastistista, jolloin kaikki ihmisetkään eivät enää ymmärrä viestiä oikein. Kuva 1: Spektrogrammissa puheesta tulee näkyvää. Kuva: Martti Vainio (Helsingin yliopisto). (viite 1) Ihminen käyttää puhuessaan suhteellisen suurta taajuuskaistaa, 100Hz:tä aina 8kHz:iin asti, kuten kuvasta 1 voimme havaita. Tosin ihmiskorva on herkimmillään taajuusalueella 2000-6000 Hz (viite 4). Kuvassa 1 on spektrogrammikuva ilmauksesta menemme laivalla Lemille. Kapeat pystyviivat osoittavat äänihuulten värähtelyä. Niiden välisestä 4
etäisyydestä voi päätellä ilmauksen perustaajuuden eli sen, millä äänenkorkeudella puhuja puhuu. Kuvan puhuja on mies. Puheessa ei juuri ole taukoja sanojen välillä, vaan kaikki lauseen sanat ovat lomittuneet toisiinsa. Puhuessamme emme tuota erillisiä sanoja, vaan yhteensulautuneiden sanojen virtaa. (viite 1) 5. Puheentunnistuksen ja synteettisen puheen ongelmat Puheessa sanat ovat yleensä yhtenäisesti liittyneet toisiinsa, ja vasta lauseiden välillä saattaa olla havaittava tauko. Erillisiä sanoja ei välttämättä pystytä erottamaan toisistaan, vaan on kyettävä tunnistamaan äänteitä ja tavuja, joiden perusteella päätellään mihin sanaan kokonaisuuden eri äänteet kuuluvat. Oletetaan että tarkastellaan pidempää ääninäytettä, jossa on useampia toisiinsa liittyviä lauseita. Selvitetyistä äänteistä saadaan rakennettua nippu vaihtoehtoisia lauseita, jotka ovat tulkittavissa analysoitavan materiaalin perusteella. Äänteistä pitää vielä valita kielellisesti järkevä ja asiayhteyteen liittyvä lause, jonka puhuja on tarkoittanut kuulijoidensa havaitsevan. Ihmisen aivot tekevät tätä tulkintatyötä koko ajan puhetta kuunnellessaan. Tietokoneelle tämä todennäköisimmin oikean lauseen löytäminen on haastavaa. Tehtävä vaatii täydellistä puheen ymmärtämystä, jota ei nykykapasiteetilla pystytä läheskään saavuttamaan. Vaikka puheentunnistin tunnistaa sanat, niiden merkityksen tulkinta voi olla hankalaa, koska kieli on tulkittavissa monella eri tavalla kuten edellä mainitsin. Sana kuusi voi tarkoittaa numeroa tai puulajia, ja sanan oikea taivutus pitää tehdä merkitykseen sopivan sanan mukaan. (viite 1) Lisähaastetta puheentunnistukseen aiheuttavat ihmisten erilaiset murteet, puhetyylit, puhenopeudet sekä puheviat. Eri murrealueilta tulevien ihmisten on aluksi vaikea ymmärtää toisiaan, mutta he oppivat nopeasti toisen erityyppisen puhetyylin, minkä jälkeen kuuntelu helpottuu. Sama pätee muihin puhetyylien eroavaisuuksiin. Tietokoneen pitäisi pystyä jatkuvasti oppimaan kuulemastaan puheesta ja pyrkiä ymmärtämään viestiä, jotta puhe voitaisiin tunnistaa luotettavasti. Synteettisen puheen tuottamisessa on osaltaan samat ongelmat kuin puheentunnistuksessakin. Tietyntasoista puhetta voidaan tuottaa taulukoimalla kaikki mahdolliset äänteet niissä tilanteissa, joissa ne esiintyvät puheessa. Puhe tuotetaan muuntamalla tekstiä suoraan taulukon avulla äänteiksi. Kieliteknologia kehittää koneille sääntöjä ja tekniikoita, joiden pohjalta äänteitä yhdistellään. (viite 1) Nämä yksinkertaiset puhesyntetisaattorit jättävät kuitenkin huomioimatta asiayhteyksien pakottamat intonaatioiden muutokset ja puheäänen viestittämät tunnetilat. Osaltaan siksi ääni kuulostaa kylmältä ja synteettiseltä. Näiden tunteiden mallintaminen vaatisi myös asiasisällön täydellistä ymmärtämistä, jolloin voidaan liittää oikeanlainen ele tai väri ääneen oikealle paikalleen. Näin voitaisiin lisätä myös taukoja ja muita inhimillisiä puhetyylin ominaisuuksia syntetisoituun puheeseen. Kaiken lisäksi puheentunnistuksen ja puhesynteesin pitäisi olla lähes realiaikaista, jotta kommunikointi koneen kanssa onnistuisi. Harva käyttäjä suostuu odottamaan 5
minuuttiakaan tietokoneen laskiessa mitä sille on sanottu. Itse ainakin tyytyisin mielummin näppäimistöön ja hiireen. 6. Ratkaisumallit 6.1. Luokitukset Puheentunnistusjärjestelmät voidaan luokitella ominaisuuksiensa mukaan. Se mitä järjestelmältä toivotaan muttaa täysin sen rakennetta. Esimerkiksi kokonaisia lauseita ymmärtävä ohjelma saattaa olla rakenteeltaan tyystin erilainen kuin joitakin komentoja vastaanottava järjestelmä. Komennot voidaan tallentaa kokonaisuudessaan muistiin ja verrata kaikkea saatavaa äänimateriaalia näihin muutamiin muistissa oleviin ääninäytteisiin. Näin saadaan muutaman komennon tunnistus tehtyä yksinkertaisesti. Se että järjestelmä pystyisi ymmärtämään kaikkia sanoja ja lauseita, vaatii aivan erilaisen näkökulman. Kaikki puhetta tunnistavat järjestelmät voidaan jaotella seuraavalla tavalla: (viite 8) Järjestelmät voivat vaatia käyttäjän opettamaan itselleen oman puheensa äänteet ja rakenteet tai vaihtoehtoisesti järjestelmää ei tarvitse erikseen opettaa. Järjestelmä ymmärtää vain yhtä käyttäjää, joka on mahdollisesti koulutettu järjestelmälle tai se ymmärtää kaikkia puhujia samalla tavalla. Järjestelmä ymmärtää joko kokonaisia lauseita ja virkkeitä tai sille täytyy luetella sana kerrallaan. Järjestelmä on suunniteltu toimimaan vain puhtaalla puhemateriaalilla tai järjestelmä toimii myös vääristyneillä kanavilla kuten puhelimen välityksellä tai se sietää häiriöitä tai jopa useata puhetta päällekäin. Järjestelmän ymmärtämä sanasto on lyhyt eli se kattaa vain muutamia satoja sanoja tai se ymmärtää tuhansia sanoja. Luokittelu sen mukaan, ymmärtääkö laitteisto parhaiten numeroita, nimiä, kokonaisia lauseita vai vain komentoja. 6.2. Markovin malli Suurin osa nykyisistä puheentunnistusjärjestelmistä perustuu piilotettuun Markovin malliin (hidden Markov model, HMM). Se on tilastollinen malli, joka palauttaa luettelon arvoja eri vaihtoehdoille. Malli laskee kirjoitetun datan, jota puhe todennäköisimmin tarkoittaa. Tunnistuksen todennäköisyys on Bayesin sääntöjen mukaan laskettuna: (viite 8) 6
Pr( sana ääni) = Pr( ääni sana) * Pr( sana) Pr( ääni) Tietyllä ääninäytteellä (vaikkapa audiotiedosto) äänen todennäköisyys Pr(ääni) on jatkuva ja se voidaan jättää huomiotta. Pr(sana) on sanan todennäköisyys sopia tunnistuksessa tähän kohtaan. Pr(sana) lasketaan kielen mallinnuksen kautta, joka on itsessäänkin jo oma tieteenalansa. On siis tärkeä erottaa toisistaan se että esimerkiksi autoton on eri asia kuin autot on. Näille saadaan eri todennäköisyydet kieliteorioiden mukaan. Monimutkaisin todennäköisyystermi on Pr(ääni sana) ja se haetaankin juuri piilotetun Markovin mallin mukaan. Piilotettu Markovin malli on suosittu, koska se voidaan helposti harjotuttaa mihin tahansa puhemateriaaliin ja se on laskennallisesti toteutuskelpoinen. (viite 8) Puheentunnistuksessa piilotettu Markovin malli palauttaa luettelon n-ulotteisia realiarvoisia vektoreita. Vektorit taas sisältävät yksinkertaisimmassa tapauksessa lyhyen aikavälin Fourier-muunnoksesta saatavat ääntä kuvaavat kertoimet. Ne saadaan kun ääni pätkitään lyhyiksi jaksoiksi, ja jokainen jakso kosinimuunnetaan ja otetaan ensimmäiset, tärkeimmät Fourier-kertoimet. Piilotetulla Markovin mallilla on jokaisessa tilanteessa tilastollinen jakauma, jota käytetään verrattaessa äänidataa muistissa olevaan dataan. Jokaiseen tavuun tai äänteeseen voidaan soveltaa omaa prosessiaan, jolloin voidaan mahdollisesti tunnistaa puhetta kirjain tai äänne kerrallaan. Malli opetetaan kuitenkin tunnistamaan vain yhden ihmisen puhetta kerrallaan. (viite 8) 6.3. Modernit puheentunnistusjärjestelmät Kehittyneemmät järjestelmät käyttävät monia erilaisia tekniikoita ja niiden yhdistelmiä puheen tulkitsemiseen. Tyypillisessä jatkuvaa puhetta ymmärtävässä suurisanastoisessa järjestelmässä on seuraavat osat: Järjestelmä, joka muuntaa kuultua puhetta puhtaammaksi puhesignaaliksi eli suodattaa pois häiriöitä ja muuttaa kaikkien puhujien äänen samalle taajuusalueelle ja -kaistalle. Jos ääni kuullaan puhelimen läpi, pitää ottaa huomioon eri taajuuksien erilaiset vaihesiirtymät ja puuttuvat taajuuskomponentit, sillä ääni muokkautuu moneen kertaan esimerkiksi puhelimella puhuttaessa. Naisen ja miehen äänten erot pitää myös normalisoida eli muuntaa muotoon josta voidaan helpoiten tulkita niin miehen kuin naisenkin puhetta ilman, että järjestelmää pitää kouluttaa erikseen toiselle sukupuolelle. Lisäksi pitää ottaa huomioon erilaiset puhenopeudet. (viite 8) 7
Kuva 2: Amerikan englantilaisen miespuhujan lausuma phonetician. Sana on pätkitty äänteittäin osiin, joita tulkitaan erikseen. (viite 5) Seuraavaksi laitteessa tarvitaan puhetta osiin jakava osa, joka etsii puheesta esimerkiksi äänteitä. Sana jaetaan äänteisiin esimerkiksi kuten kuvassa 2 on esitetty. Tämän jälkeen pyritään tunnistamaan jokainen äänne oikeaksi merkikseen, jotka on lueteltu kuvan 2 oskillogrammin alapuolella. Tässä vaiheessa voidaan siis käyttää piilotettua Markovin mallia (HMM) tai vastaavaa äänen tunnistusalgoritmia. Kuvassa 3 on Fourier-muunnetut äänteet listattuna peräkkäin. Tästä Markovin mallit laskevat todennäköisimmät äänteet. Kuva 3: Sama phonetician kuin kuvassa 2 kuvattuna spectrogrammina. Jokaisessa ikkunassa on kuvattu kyseisen äänteen spektrianalyysi nopean Fourier-muunnoksen (FFT) avulla. (viite 5) Tämän jälkeen tunnistetuista äänteiden jonosta pitää vielä tunnistaa erilliset sanat ja lauseet. Tähän tarvitaan kehittynyttä sanakirjaa ja oikeinkirjoitustyökalua, joka ymmärtää myös slangi- ja murresanoja sekä taivutuksia. Tämä on jo oma uusi ongelmansa, joka vaatii omat todella massiiviset järjestelmänsä. 6.4. Puhesyntetisaattoriratkaisut Puhesyntetisaattoreita on tehty jo paljon pidempään kuin puheentunnistusjärjestelmiä, joten erilaisia ratkaisuvaihtoehtojakin on paljon enemmän. Tutustutaan tässä niistä muutamaan. 8
6.4.1. Yksiköiden valinta tietokannasta Laskennallisesti yksinkertaisin malli, jossa on taulukoitu todella paljon erilaisia valmiita äänteitä jokaista erilaista tapausta varten. Lauseen alkua varten on omat äänteensä ja lauseen loppua varten omansa. Sama pätee jokaiseen sanaan ja sanojen vaihtokohtaan. Tämä syntetisoitu puhe kuulostaa ehkä aidoimmalta koska se on ihmisen puhumaa kieltä, jota ei ole hirvittävästi muokattu, vain pätkitty ja sovitettu yhteen. Tällainen järjestelmä vaatii mittavat tietokannat ja valtavasti työtä tietokantojen rakentamiseen. (viite 10) Edellä mainitsemiani järjestelmiä on käytössä pienessä mittakaavassa esimerkiksi VR:llä jossa saapumisajat ilmoitetaan sana kerrallaan puhetta syntetisoimalla. Puhe kuulostaa todella huvittavalta koska sanojen välillä on pitkiäkin taukoja ja se saa puheen kuulostamaan vähäjärkisen tuotokselta. Toki tälläkin tavalla voi tehdä toimivan ratkaisun, mutta sen jälkeen sanat pitää onnistua lomittamaan toistensa sekaan niin kuin ihminenkin sekoittaa puheessaan sanat toisiinsa. 6.4.2. Päätaajuus-synteesi Tässä synteesissä ei ole ollenkaan äänitietokantaa, vaan vain puhetta simuloiva matemaattinen malli. Tässä puhetta luodaan syntetisoimalla puheessa esiintyviä äänteitä kuten syntetisoidaan musiikki-instrumenttejakin. Tässäkin siis luodaan muutamat tärkeimmät äänteiden päätaajuudet ja niiden amplitudit. Tätä ääntä soitetaan oikea aika, saadaan jotenkin äännettä muistuttavaa ääntä. Näitä äänteitä yhdistelemällä saadaan syntetisoitua jonkintasoista puhetta. (viite 10) Tällä tavalla, ilman tietokantoja tehdyssä synteesissä äänen aitous riippuu täysin matemaattisen mallin monimutkaisuudesta. Jotta päästäisiin aidolta kuulostaviin ratkaisuihin, vaaditaan todella paljon laskentakapasiteettia. Monet ohjelmistojen mukana tulevat pienet syntetisaattoriohjelmat toimivat tällä periaatteella, jolloin suuria tietokantoja ei tarvitse lisätä mukaan, vaan syntetisaattori mahtuu pieneen tilaan. TV:stä tuttu puhuva pääkin toimii todennäköisimmin näin ja tuloksen kyllä kuulee. 6.4.3. Markovin mallien käyttö synteesissä Myös piilotettua Markovin mallia voidaan hyödyntää puheen synteesissä. Siinä jollakin tavalla tuotettua ääntä pyritään tulkitsemaan kuten puheentunnistuksessakin. Näin voidaan laskea tarvittavat muunnokset joita alkuperäiseen ääneen pitää tehdä, jotta ääni kuulostaisi luonnollisemmalta ja oikeammalta. (viite 10) 7. kysaavutukset ja kehityskohteet Yleensä puheentunnistimet vertaavat havainnoimaansa ääntä puhetietokantaan tallennettuihin puhenäytteisiin. Tunnistaminen on todennäköisempää, jos verrattavat näytteet ovat lyhyitä. Jos ne ovat kokonaisia lauseita, on tunnistaminen lähes mahdotonta. Osa puheentunnistimista kykenee erottamaan puhevirrasta tietyt komentosanat, jotka ne on ohjelmoitu tunnistamaan ja toteuttamaan. (viite 1) 9
Nykyisin puhetta pystytään tunnistamaan niin, että yksittäisiä sanoja ja komentoja voidaan luotettavasti tunnistaa. Tämän lisäksi, jos järjestelmä koulutetaan tietylle henkilölle, voidaan pystyä kohtalaisesti tunistamaan hänen puheensa. Nykyiset järjestelmät pystyvät tunnistamaan 80-90% puhtaasta puheesta, (viite 8) mutta hälyn seasta tai useamman ihmisen puheen tunnistuksesta ei voida vielä puhua. Jos halutaan tunnistaa puhetta realiajassa, huononee tunnistustarkkuus entisestään, koska laskentatehoa ei vielä ole riittävästi. Onneksi tämä alue kehittyy nopeasti. 8. Tavoitteet ja sovellukset Puheentunnistusta ja synteettistä puhetta sovelletaan käytännössä muun muassa matkapuhelinten ja tietokoneiden käyttöliittymissä ja erilaisissa puhelinpalveluissa. Niiden avulla ihmisen ja koneen välistä vuorovaikutusta voidaan muokata luontevammaksi ja helpommaksi. (viite 1) Kaikkiin viidennessä kohdassa luettelemiini ongelmiin pitää löytää kunnolliset ratkaisut. Tietotekniikan ja laskentatehon lisääntyminen auttaa jo paljon, mutta puhe olisi parhaiten tunnistettavissa tehokkaalla rinnakkaislaskennalla kuten aivot puhetta tunnistavat. Voimme tietysti simuloida massiivisia itseorganisoituvia neuroverkkoja, mutta tavoitteellista olisi rakentaa fyysisesti tällaisia massiivisia rinnakkaislaskentaa hyödyntäviä järjestelmiä. Ne olisivat huomattavasti tehokkaampia niin puheen kuin kuvienkin analysoimisessa ja tunnistuksessa. 9. Lähdeviitteet 1) http://www.csc.fi/suomi/info/sovelluksia/puhe.phtml.fi 2) http://www.digitoday.fi/showpage.php?page_id=9&news_id=24815 3) http://www.prosessori.fi/es99/postimies.htm 4) http://www.cult.tpu.fi/sound/akusti_1.htm 5) http://www.ling.lu.se/research/speechtutorial/tutorial.html 6) http://www.mor.itesm.mx/~omayora/tutorial/tutorial.html 7) http://svr-www.eng.cam.ac.uk/~ajr/sa95/ 8) http://en.wikipedia.org/wiki/speech_recognition 9) http://en.wikipedia.org/wiki/hidden_markov_model 10) http://en.wikipedia.org/wiki/speech_synthesis 10