Ääntämisen parantelua, osa 2 – hidasta, pidennä

Lauseiden hidastaminen

Tällä viikolla kokeiltiin lauseiden hidastamista, koska iso ongelma nykyisessä ohjelmassa on sanojen liian nopea lausuminen. Varsinkin pitkissä lauseissa, ohjelma lausuu sanat niin nopeesti peräkkäin, ettei lauseesta saa mitään selvää. Yksittäisten sanojen tai kirjainten pidentäminen paransi huomattavasti lyhyiden lauseiden ääntämistä.

Screenshot_2018-11-04_19-33-05.png

Tänään oli tarkoitus selvittää, voiko sanojen välisiä taukoja pidentää hieman.

Nostettiin duration arvoa 0.5 korkeammaksi (alkuarvo 1.0). Hitaammaksi ei saa, ilman, että ääkkösten ääntäminen menee hajalle. Tämä käy myös ilmi dokumentissa alkuperäisten tekijöiden koodimerkinnöissä.

Testissä lause: “Seriffi ilmoittaa haluavansa ulos, mikä merkitsee rangaistusta, puhdistustehtävää. Holston lähetetään ulos tappavaan ulkomaailmaan ja hänen täytyy puhdistaa ulkoa kuvaa välittävien kameroiden linssit.”

Ääkkösten lyhentäminen sanojen lopussa

Viime kerralla pidenettiin peräkkäisiä vokaaleja, tällä viikolla vuorossa oli ääkkösten lyhentäminen sanojen lopussa. Ohjelma lausuu esimerkiksi sanat Pasila, Mäkkylä ja Töölö tavalla “Pasilaa, Mäkyylää, Töölöö”.

Pidennetään…

Mäkkylässä oli y-kirjain myös kummallisen kuuloinen, niin lyhennettiin sitä siinä samalla -0.10. Mäkkylästä siirryttiin vielä seuraavaan ongelmaan, eli kaksois konsonantint, jotka toimivat vain kunnolla, jos niitä laittaa kolme peräkkäin. Myös tietyit kirjaimet eivät painotu kunnolla. Tässä tilanteessa kirjain M.

Pidennettiin kirjain M ja kaksois K.

Ongelmia

Ratkottuja ongelmia rupee olemaan jo mukava lista takana, mutta aina tilalle ilmenee jotain uutta. Kun muuntaa yksittäisiä asioita, ne kuulostavat paremmilta juuri sillä hetkellä kyseisessä sanassa tai lauseessa. Kun siiryy eteenpäin työstämään toista sanaa tai lausetta, huomaa, ettei edellä tehdyt muutokset kuulostakkaan enää niin hyvältä. Siitä joutuu menemään takaisin yrittämään uudelleen. Tällainen ongelma on etenkin ollut yksittäisen ä:n kanssa, joka yllämainitussa esimerkissä “Mäkkylä”, on tuottanut melko paljon päänvaivaa. Kun sana itsessään vihdoin kuulosti hyvältä, huomattiin, että muut ä:hän loppuvat sanat kuulostivat liian lyhkäsiltä. Esimerkiksi “käräjillä” kuulosti sanalta “käräjill-äh”. Piti mennä pidentämään ä:tä, niin että se ei kuulosta tyhmältä muissa sanoissa, eikä myöskään sanassa “Mäkkylä”.

Korjattiin myös m-kirjaimen painotus tietyissä sanoissa. Tämä ongelma esiintyy varsin monessa sanassa, missä on vahvat kaksois konsonantit. Ongelma ilmeny myös kirjaimessa S. Esimerkiksi sanan “hitto” ohjelma lausuu “hito”, ja “kissa – kisa”. Sk-sanoissa taas ohjelma lausuu “sk – sh”. Eli Jaska on “Jashka”.

Ohjelma ei toistaiseksi tunnista ruotsalaista å:ta. Se tunnistaa kirjaimen yksittäisenä kirjaimena, mutta ei sanassa eikä lauseessa. Eli nimi Åberg tai Svartå muuttuu ohjelmassa “tuntematonmerkki-berg, Svart-tuntematonmerkki”. Koitetaan saada tämäkin muunneltua, kunhan keksimme miten.

Tallenteiden teko

Aikaavievää on virheiden etsimisen lisäksi tallenteiden teko. Välillä tulee tehtyä tallenne kun muutokset on jo tehty, sitten pitää backtrackaa ja tehdä alkuperäinen tallenne. Mutta alla on todistusaineistoa jonkin verran muunnoksista, siitä voi hämmästellä niitä jos tahtoo.

Mäkkylä

Pasila

“Seriffi ilmoittaa haluavansa ulos, mikä merkitsee rangaistusta, puhdistustehtävää. Holston lähetetään ulos tappavaan ulkomaailmaan ja hänen täytyy puhdistaa ulkoa kuvaa välittävien kameroiden linssit.”

https://1drv.ms/u/s!AtKwItQ_si8GlSIz-_FceAE9wiSu

https://1drv.ms/u/s!AtKwItQ_si8GlSN56IYiBehe2Bid

Pidemmät näytteet pitää ladata koneelle, jos niitä haluaa kuunella…

Advertisements

Festival muutoksen askeleita

Tällä viikolla, ollaan vihdoin saatu pientä muutosta tehtyä. Olemme tarkastelleen Festival CMU Arctic projektia ja siitä pompanneet takaisin Suopuheeseen ja vertailleet niitä toisiinsa. Niissä löytyi yhtäläisyyksiä, mutta Arctic projekti perustuu 541:een ääninäytteeseen, kun taas Suopuhe 134:ään. Lisäksi Arcticin ääntämissäännöt ovat tehty eritavalla.

Screenshot_2018-10-21_17-49-28.png

Kokeiltiin muunnella Festivalin ääntämisaikoja ja onnistuttiin siinä ihan hyvin. Keskityttiin aluksi ihan pieniin muunnoksiin, että saataisiin luontevamman kuuloisempia yksittäisiä sanoja. Käytiin läpi lauseita ja poimittiin sieltä sanoja, jotka tarvitsivat parannusta. Koko prosessi tapahtui komentotulkissa. Tähän mennessä ollaan raavittu päätä ja hierottu silmiä eikä oikein päästy perille, missään asiassa, mutta nyt heräsi vihdoin hieman onnistumisen tunnetta. Tästä pieni pala kerrallaan päästään vihdoin etenemään.

Screenshot_2018-10-21_18-32-44.png

Alla on esimerkkejä alkuperäisestä äänestä ja muunnellusta äänestä:

“Joo.”

 

“Uutuussarja.”

 

“Mitä sä teet?”

 

“Jossain päin maailmaa, minua odottaa suuri ihme.”

 

Lähteitä:

Apuja äänitiedostojen ymmärtämiseen:

http://festvox.org/bsv/x1902.html

 

 

eSpeak säännöt ja Festival Arctic CMU asennus

Tällä viikolla ollaan tarkkailtu eSpeakin rakennetta hieman ja eSpeakin ääntämissääntöjä. Ääntämissääntö-tiedostoa voi muokata, ja sieltä pystyy hienosäätämään, miten ohjelma ääntää eri kirjaimia, mutta itse äänenlaatua ei voi muokata mitenkään. Otettiin eSpeak takaisin käyttöön, siinä toivossa, että siinä pystyisi käyttämään Mbrola-projektin ääniä. Ne kuulosti eSpeakissä hieman paremmalta, mutta silti todella robottimaisia, kun taas Festivalissa ne kuulosti ihan hyvältä.

Hylättiin jo toistamiseen eSpeak ja lähdettiin selvittämään, miten Festivalia voisi parannella. Löydettiin Festivaliin parempia ääniä toisesta projektista nimeltä Festival Arctic CMU, joka on Carnegie Mellon yliopiston toteuttama.

Seuraavaksi, koitetaan jos sitä voisi muunnella mitenkään tai jos siellä olisi jotain apua Suopuheen muuntamiseen.

Ohjelmavalinta: Festival

Projektissä päädyttiin etsimään ratkaisua, miten saataisiin paranneltua Festival-ohjelman suomenkielistä ääntämistä. eSpeakin tuottaman puheen lähtökohtainen taso oli selkeästi heikkolaatuisempi Suopuheeseen verrattuna. Valintavaiheessa kävi ilmi projektin haastavuus ja vaikka Festivalin muokkaus on haastavaa, päädyimme siihen ratkaisuun, että se on muista vaihtoehdoista kuitenkin meille se ainoa, joka voisi olla jollain tavalla toteutettavissa. Festivaliin on tarjolla eri kielille paranneltuja versioita äänistä, joita mahdollisesti voidaan hyödyntää projektissamme.

Python3 Visual Studiossa jäi toteuttamatta siksi, koska se toimii englanninkielisellä ääntämiskirjastolla (CMU Pronouncing Dictionary). Ääntämiskirjasto on avoimenlähdekoodin tietokanta, jonka on kehittänyt Puhe Ryhmä Carnegie Mellon Yliopistolla äänentunnistamisprojektia varten. Siihen olisi pitänyt itse tehdä uusi ääntämiskirjasto jokaiselle suomen kielen sanalle ja uusi äänitietokanta, lisäksi ohjelma käytti Google Text-to-Speechiä toimiakseen ja se toimi vain englanniksi, niin luontevan kuuloinen suomenkielinen versio siitä olisi ollut liian vaikea toteuttaa.

eSpeakissä oli vähän samankaltaisia ongelmia kuin Python3 toteutuksessa. Luontevan äänen saaminen olisi hyvin vaikea toteuttaa, koska eSpeak ei käytä äänitieto kantaa vaan luo äänet täysin digitaalisesti. eSpeakiin tosin on mahdollista saada Mbrola projektin ääniä, jotka ovat toteutettu difonisynteesin avulla. Mutta myös Suopuhe on toteutettu difonisynteesillä ja siitä löytyi enemmän referenssejä ja apuja netistä, niin sekin on osa syy, miksi lopulta päädyimme valitsemaan Festivalin.

Lähteitä:

Mbrola projekti

http://www.tcts.fpms.ac.be/synthesis/mbrola/mbrcopybin.html

Diphone

https://www.cs.cmu.edu/~awb/papers/ICSLP2000_diphone/node2.html

Suopuhe

http://www.ling.helsinki.fi/suopuhe/

Festival

http://festvox.org/festival/downloads.html

https://en.wikipedia.org/wiki/MIT_License

eSpeak

http://espeak.sourceforge.net/

https://en.wikipedia.org/wiki/ESpeakNG

https://sourceforge.net/p/espeak/discussion/538921/thread/7be4e8b2/

https://en.wikipedia.org/wiki/RISC_OS

Python3 ja Visual Studio

http://arcompware.com/python-basic-text-to-speech-engine/

http://www.speech.cs.cmu.edu/cgi-bin/cmudict

Projektin alku

Projekti käynnistettiin viikolla 38, kun aihe oli valittu ja projektisuunnitelma tehty. Alla etenemisen alun vaiheita.

Työvälineiden hankinta

Aluksi ajateltiin, että pärjäämme hyvin Windows käyttöjärjestelmällä varustetulla koneella, koska lähtökohtaisesti eSpeak ja Python3 vaikutti parhailta vaihtoehdoilta, mutta selvisi pikku hiljaa, että haluttu lopputulos olisi ehkä sittenkin parempi toteuttaa Festival-ohjelmalla.

hei maailma

Koska kummallakaan meistä ei ollut Linux-pohjaista konetta eikä ylimääräistä konetta, mihin sen voisi asentaa  niin lähdettiin metsästämään lainaläppäriä. Päädyimmie lopulta lainaamaan konetta koulusta. Elikkä nyt käytössä on HP Elitebook 2530P.

Käyttöjärjestelmän asennus

Läppärillä oli entuudestaan toinen Linux-käyttöjärjestelmä, joten tämä poistettiin ja asennettiin tilalle Linux Xubuntu 16.04. Vanhan järejstelmän poistamisessa oli hieman ongelmia, mutta saatiin se kuitenkin poistettua. Kun Xubuntu oli asennettu, niin päivitettiin rauta ja sen jälkeen koneelle asennettiin Festival sekä Suopuhe-äänitietokanta.

Windows ohjelmat

Aiemmin oltiin keräilty ääninäytteitä läppärillä. Paremmassa työympäristössä asennettiin Python3 ja Visual Studio uudestaan. Eli käytössä on siis kunnollinen pöytäkone.

Pöytäkoneella saatiin valittua vähän enemmän työkaluja Visual Studioon, koska kapasiteettia oli luonnollisesti enemmän kuin läppärissä. Kokeiltiin tehdä ohjeiden mukaista TTS:ää Visual Studioon, mutta lopulta kävikin ilmi, että se toimii ainoastaan englanniksi, koska kyseinen tapa käyttää gTTS (google-TTS) ja englanninkielistä ääntämiskirjastoa, jota ei meidän taidoilla pystytä muokkaamaan suomenkielisiksi. Mielenkiintoinen projekti löytyy täältä englanniksi: https://github.com/alexram1313/text-to-speech-sample.

epseak.png

Paremmalle koneelle asennettiin myös eSpeak, joka jostain syystä ei toiminut komentorivin kautta, mutta sen pysty administratorilla käynnistämään progam files-kansiosta. eSpeakin suhteen on herännyt pientä epäilystä, että vaikka siinä onkin suomenkielinen ääntämiskirjasto, niin itse ääntä ei välttämättä saa luonnollisemmaksi. Tätä pitää katsoa ensi viikolla.

Muut tehtävät

23.9 korjattiin projektisuunnitelmaa, se löytyy täältä. Samana päivänä tehtiin myös viikkoraportti loppuun (tiivistelmä tästä blogipostauksesta ja tuntikirjanpito). Se on palautettu moodleen. Tällä viikolla ollaan alustavasti jo perehdytty siihen, miten Festivalin äänitietokanta on toteutettu.

Ensi viikolla

Käydään läpi paremmin ohjelmien hyvät ja huonot puolet ja valitaan yhdessä, mitä ohjelmaa käytetään. Mietitään vaihtoehtoja, miten lähtisimme muokkaamaan valittua ohjelmaa. Sovitaan myös tehtävänjako, vaikka tähän mennessä ollaan tehty erikseen, mutta myös paljon yhdessä. Aina tulee vastaan niistä asioita, mitä toinen tietää ja toinen ei, ja sitten tulee sen myötä katsottua yhdessä ongelmia.

Ohjelmatestaukset ja ääninäytteet, osa 1

eSpeak, Festival ja Python3 ääninäytteet nauhoitettiin Audacity-ohjelmalla testauksen yhteydessä. Näytteitä verrattiin keskenään ja lopulta erittäin hyvänkuuloiseen TTS-sampleen, Tacotron 2. Python3 kuulosti hyvältä englanniksi, ei samaa luokkaa Tacotronin kanssa eikä myöskään toiminut suomeksi. eSpeak kuulosti erittäin robottimaiselta suomeksi. Festival kuulosti hieman paremmalta kuin eSpeak, mutta sekin oli kovin robottimainen. Alla ääninäytteitä.

eSpeak, Windows

Suomenkielisiä eSpeak ääninäytteitä.

Festival, Linux

Suomenkielisiä ääninäytteitä Festival Suopuhe TTS-projektista.

   

Python3, Windows

Python gTTs enlganninkielinen ääninäyte. Ei toimi suomenkielellä.

Tacotron 2

Tacotron 2 ääninäyte. Englanninkielinen TTS-projekti.

 

Monialaprojekti TTS Suomeksi

Tämä projekti on n. 6kk kestävä projekti, joka tehdään Haaga-Helian monialaprojekti-kurssilla. Projektin aikana etsitään tietoa olemassa olevista avoimenlähdekoodin tekstistä puheeksi -syntetisaattoreista, sekä verrataan niitä toisiinsa. Kartoittamisen jälkeen tavoitteena on luoda paranneltu versio suomenkielisestä tekstistä puheeksi -ohjelmasta.

Projektiryhmän jäsenet ova Tomi Irla ja Ina Andersin.

Vaihtoehtojen kartoitus

Suopuhe on LGPL lisenssillä julkaistu äänitietokanta, joka toimii Festival-
puhesyntetisaatorilla. Suopuheen projekti rahoitettiin TEKESIn rahoittaman
’Finnish Speech Technology: A Multidisciplinary Project’ -hankkeessa, joka
päättyi huhtikuussa 2003.  Suopuhe syntetisaattori julkaistiin 19.9.2004.

Suopuhe tulee toimiman projektin laadullisena tavoitekynnyksenä, mutta
äärimmäinen tavoitteellinen kiintopiste Tacotron 2:n suuntainen
puhesyntetisaattori.

Tutustumme projektin alussa avoimen lähdekoodin Festival-syntetisaattorin
toimintaan.

Vaihtoehtona on myös käyttää Pythonia ja eSpeakia.