Text2wave

Linux.fista
Versio hetkellä 30. maaliskuuta 2022 kello 21.36 – tehnyt Lahtis (keskustelu | muokkaukset) (-)
Siirry navigaatioon Siirry hakuun
Text2wave
Moottori Festival
Käyttöliittymä Komentorivi
Tyyppi syntetisoitu puheääni

text2wave on Festival-projektiin sisältyvä apuohjelma, jonka avulla voit muuntaa tekstidokumentin syntetisoiduksi puheäänitiedostoksi.

Esimerkki

Luo esimerkkitekstitiedosto seuraavalla komentorivikäskyllä:

echo "Tämä teksti muutetaan puheäänitiedostoksi" > minuntekstini.txt

Muuntaa tekstitiedoston wav-ääneksi. Huomaa, että tässä ei toimi äät, ööt ja erikoismerkit.

text2wave -o minunääneni.wav minuntekstini.txt

Mp3-muoto

Luetaan minuntekstini.txt tiedostosta rivit, putkitaa ne muuta UTF-8 ISO-muotoon. Ajetaan 'text2wave ohjelman läpi wav-muotoon ja pakataan lamella mp3-muotoon. Tämä ensimmäinen esimerkki käyttää nais-ääntä. Ja tässä toimivat erikoismerkit.

cat minuntekstini.txt | iconv -f UTF-8 -t ISO8859-1 -c | text2wave -otype wav -eval '(voice_suo_fi_lj_diphone)' -o - | lame - minun_nais_ääni.mp3

Ja tämä toinen esimerkki käyttää mies-ääntä.

cat minuntekstini.txt | iconv -f UTF-8 -t ISO8859-1 -c | text2wave -otype wav -eval '(voice_hy_fi_mv_diphone)' -o - | lame - minun_mies_ääni.mp3

Yhistetään äänet, niin voidaan verrata kumpaakin ääntä samalla raidalla.

cat *.mp3 > kaikki_yhteen.mp3

Kuunnellaan tiodosto käyttämällä komentorivillä toimivaa vlc:tä

nvlc kaikki_yhteen.mp3

OGG Vorbis muoto

Nainen

cat minuntekstini.txt | iconv -f UTF-8 -t ISO8859-1 -c | text2wave -otype wav -eval '(voice_suo_fi_lj_diphone)' -o - | oggenc -r -R 16000 -B 16 -C 2 - > recording.ogg

Mies

cat minuntekstini.txt | iconv -f UTF-8 -t ISO8859-1 -c | text2wave -otype wav -eval '(voice_hy_fi_mv_diphone)' -o - | oggenc -r -R 16000 -B 16 -C 2 - > recording.ogg
  • Huomautuksia jos bitrate eli bittitaajuutta muuttaa suuremmaksi kuin -R 16000, ääni menee oravaksi ja nopeaksi. Äänenlaatua en vielä keksinyt miten sitä saisi parannettua, ogg koodekki ainakin muuttaa ääntä, tässä tapauksessa. Kokeilin myös reitittää sen jackille, mutta tietämys stdout reitittämisestä on liian vähäinen. En tiedä onnistuisiko se reitittää ja käsitellä lennosta.