Veu computeritzada o text to speech amb Festival

Tres exemples amb Silvia, la veu femenina de la Junta de Andalucía

Exemple 1: "Hola compañero."
ejemplo1.mp3

Exemple 2: "Buenos días, hoy hace un día maravilloso y creo que iré a pasear por la playa y tomaré una horchata."
ejemplo2.mp3

Exemple 3: "De momento, los ordenadores obedecemos las órdenes que los humanos programáis, pero quizás en un futuro no muy lejano la cosa cambie, y sea al revés. Y tal vez ese día, terminen las guerras y las agresiones a la naturaleza."
ejemplo3.mp3

Al final de l'article explique com he generat i convertit a mp3 aquestos àudios.

Configuració i mans a l'obra

Festival té moltes opcions: ficar-ho per a que et diga el resultat de les cerques a internet, els logs del teu servidor, informació meteorològica des d'un script, ficar-ho al xchat i que parle lo que diu la gent dels canals IRC, etc, etc, etc.

Comencem des de zero. Per a que el nostre ordinador puga parlar, instal·larem l'aplicació festival.
I seguidament, festvox-ellpc11k, perquè per defecte festivalnomès parla anglès. L'aplicació festvox-e11pc11k és als repositoris non-free de Debian). Si no el trobes, pots descarregar-ho des del repositori del Forja de la Junta d'Andalucia on ha compartir més veus computeritzades (a mi m'agrada la veu de Silvia):


# wget http://forja.guadalinex.org/frs/download.php/154/festvox-sflpc16k_1.0-1_all.deb

I a continuació el instal·lem amb:

dpkg -i festvox-sflpc16k_1.0-1_all.deb

Per defecte, festival parla nomès anglès. Ara cal editar l'arxiu /usr/share/festival/voices.scm, per a que festival agafe com a veu principal la del castellà:

gedit /usr/share/festival/voices.scm

i canviar la línea 326:


(defvar default-voice-priority-list
'(kal_diphone
cmu_us_bdl_arctic_hts
cmu_us_jmk_arctic_hts
cmu_us_slt_arctic_hts
cmu_us_awb_arctic_hts

per


(defvar default-voice-priority-list
'(JuntaDeAndalucia_es_sf_diphone
cmu_us_bdl_arctic_hts
cmu_us_jmk_arctic_hts
cmu_us_slt_arctic_hts
cmu_us_awb_arctic_hts

Es canvia el "kal_diphone" pel mateix nom que tenim a /usr/share/festival/voices/spanish

Si escrivim les Ñ als fitxers possiblement experimentarem uns errors raros i el Festival no podrà pronunciar bé les paraules... per evitar aixó podem fer:


less arxiu.txt|iconv -f utf-8 -t iso-8859-1|festival --tts

Aleshores, podem dir "Hola compañero" amb:


# echo Hola compañero | iconv -f utf-8 -t iso-8859-1| festival --tts

Ara per a dir-li un fitxer complet:

$ festival --language spanish --tts Saludo.txt

O una línea d'ordre:


festival
(SayText "Hola mundo")

Festival també té una eina per a convertir arxius de text en arxius WAV. Aquesta eina s'anomena text2wave i funciona de la següent manera:


text2wave -o tu-audio.wav tu-texto.txt

Així, pots després escoltar aquestos àudios amb 'aplay', que és una senzilla aplicació reproductura d'àudio des de la consola:


aplay tu-audio.wav

Error: Linux: can't open /dev/dsp

Vaig trobar la solució d'aquest error a http://aanugraha.wordpress.com/2008/12/20/festival-cant-open-devdsp/. Nomès caldrà afegir el següent al fitxer .festivalrc del teu usuari:


(Parameter.set 'Audio_Command "aplay -q -c 1 -t raw -f s16 -r $SR $FILE")
(Parameter.set 'Audio_Method 'Audio_Command)

COM HE GENERAT ELS AUDIOS DEL COMENÇAMENT DE L'ARTICLE

Exemple 1:


echo Hola compañero | iconv -f utf-8 -t iso-8859-1 > ejemplo1.txt;

text2wave -o ejemplo1.wav ejemplo1.txt

Exemple 2:


echo Buenos días, hoy hace un día maravilloso y creo que iré a pasear por la playa y tomaré una horchata | iconv -f utf-8 -t iso-8859-1 > ejemplo3.txt;

text2wave -o ejemplo2.wav ejemplo2.txt

Exemple 3:


root@raspberrypi:~# echo De momento, los ordenadores obedecemos las órdenes que los humanos programáis, pero quizás en un futuro no muy lejano la cosa cambie, y sea al revés. Y tal vez ese día, terminen las guerras y las agresiones a la naturaleza. | iconv -f utf-8 -t iso-8859-1 > ejemplo3.txt;

text2wave -o ejemplo3.wav ejemplo3.txt

I escoltarem els audios, des de la consola, amb "aplay FICHERO".

Ara els he transformat a mp3 amb:


for file in *.wav; do
lame $file ${file/.wav/.mp3}
done

ARTICLES RELACIONATS

Script: Festival pel Xchat
http://jcatala.net/node/718