TTS-møte 13.1.2021
Til stades: Inga, Katri, Tommi, Sjur
Mål:
- TTS for SMJ
- open kjeldekode
- TTS for Windows, macOS, Linux, kanskje: Android, iOS
- TTS for SME
- Grunn for andre språk
Prosjektdelar:
- tekstprosesering
- syntese
- integrering mot OS
Moglege syntesemaskiner/-system:
- e-speak: krev svært detaljerte samiske uttalereglar - basera desse på finsk, og tilpassa til samisk
- formantsyntese (standard)
- kan òg nytta andre syntesemaskiner
- WaveNet: learns EVERYTHING, also noise, acoustic conditions of the room etc. Slow to train (approx. 1hr/1minute) and requires a lot of power from hardware but is the most natural-sounding.
- Voiceloop (FB - e-speak: phonemizer (tekst-til-ipa), Cuda, PyTorch <- NVIDIA required)
- Mozilla: Tacotron (Tacotron2 is the best, is built on Tensorflow), NVIDIA as base system
- Merlin? Finst på GitHub
Speech data requirements: Opptak: 5-10 timer trengst for å trena ein WaveNet-syntese.
Om opptaka:
- Inga leter opp lydopptak av potensielle stemmer.
- Preferably no creak, no maneurisms etc. -It would be good to record multiple languages from one speaker: Lule Saami, Swedish/Norwegian and maybe also North Saami. -Text for reading/recording: we need a lot of text, different types of texts; maybe also dialogs, containing different information structures, focus conditions.
Samarbeid: - med Bruce? Sjur spør. - med Helsingfors (Katri has consulted Antti Suni and Martti Vainio on 13.1.)
Espeak-ng instructions from Juho Hiltunen (in Finnish)
Teknisenä ratkaisuna espeak-ng:n vahvuus on avoin lähdekoodi ja suurin tuettu kielten määrä. Se tukee yli 100 kieltä, tosin tuen laatu vaihtelee. Sen heikkous on monen mielestä formanttisynteesistä johtuva robottimainen puhe, mutta se lienee jonkin verran mielipidekysymys.
Löytyykö saamenkielien ääntämykselle IPA (International Phoneme Alphabet) tai Kirschenbaum-merkit? Jos löytyy ja ymmärrät miten ne toimivat, helpoin tapa on varmasti ottaa saamenkieliä lähinnä oleva kieli (varmaan suomi), tehdä siitä kopio ja muokata pikku hiljaa. Esimerkiksi suomea koskevat tiedot löytyvät pääosin täältä:
- https://github.com/espeak-ng/espeak-ng/blob/master/dictsource/fi_list
- https://github.com/espeak-ng/espeak-ng/blob/master/dictsource/fi_list
- https://github.com/espeak-ng/espeak-ng/blob/master/dictsource/fi_emoji
- https://github.com/espeak-ng/espeak-ng/blob/master/phsource/ph_finnish
- https://github.com/espeak-ng/espeak-ng/blob/master/espeak-ng-data/lang/urj/fi
- https://github.com/espeak-ng/espeak-ng/blob/master/src/libespeak-ng/tr_languages.c
Dokumentaatio löytyy täältä: https://github.com/espeak-ng/espeak-ng/blob/master/docs/index.md. Siinä on sekaisin sekä teknisiä muokkauksia vaativat osuudet että kieliosaamista vaativat osuudet.
Uskon, että suurin työ on päästä sinuksi syntetisaattorin dokumentaation ja sisäisen toimintalogiikan kanssa niin, että muutoksia voi tehdä ja testata nopealla syklillä. Löytyykö sinulta tai kontakteiltasi tietoteknistä osaamista? Jos löytyy, dokumentaation seuraaminen pitäisi onnistua. Jos ei, voin jonkin opettaa. En ole täysin varma kuinka pitkälle uuden kielen lisäämisessä pääsee ilman ohjelmointiosaamista. Isompiin muutoksiin tarvitaan C-kääntäjä ja gnu autotools (esim. gcc ja make). Varsinaista ohjelmointikoodin lisäämistä tuskin tarvitaan, mutta ns. build environment kyllä. Suomenkielistä käsitettä en tuolle tiedä. Suosittelen linux-ympäristöä.
Ehdotukseni työvaiheiksi pähkinänkuoressa:
- ohjelman toimintalogiikkaan tutustuminen, build environmentin rakentaminen ja testaus. Tässä vaiheessa pitäisi pystyä tekemään jokin haluttu pieni muutos vaikkapa suomenkieliseen toteutukseen ja todentaa ottaako syntetisaattori tehdyn muutoksen käyttöön.
- suomenkielisen toteutuksen kopioiminen saamenkielisen toteutuksen pohjaksi - yksittäisten sanojen turhat lausumissäännöt yms. voi tässä vaiheessa poistaa
- aakkosten saaminen oikeankuuloisiksi
- diftongien ja muiden tavujen lausumissääntöjen toteuttaminen
- numerot
- sanapainosäännöt
- tärkeimpien yksittäisten sanojen hienosäätöä.
- tehtyjen muutosten julkaisu Githubiin, jotta muutokset päätyvät aikanaan esim. NVDA-ruudunlukuohjelman käyttöön
Oulun yliopiston Petter Morottajan kanssa oli puhetta, että inarinsaameksi ongelma on siinä ettei yksitttäisen sanan kirjoitusasusta voi täysin päätellä lausumisasua, jolloin hyvälaatuiseen lopputulokseen tarvittaisiin tekstin ja syntetisaattorin väliin ns. lexical analyser. Pohjois- ja koltansaamesta en tiedä.