SíntesiDeVeu
Síntesi de veu
|
Com instal·lar la veu catalana del Festival
Resum: Indiquem com instal·lar les veus catalanes, i com fer-les servir des de la consola per llegir arxius de text i textos de forma interactiva, com fer-les servir amb Orca per llegir la pantalla, i com generar arxius de so. També indiquem algunes millores possibles en les que podeu col·laborar, i com desinstal·lar les veus.
Índex |
Instal·lació
Aquestes instruccions han estat provades amb Ubuntu Hardy 8.04 (1). Si us funcionen en altres versions, us preguem que ho feu saber al fòrum
Si no volem llegir les explicacions, podem anar directament a l'apartat 7. Codi per copiar al terminal.
Instal·lem festival
Si feu servir Ubuntu Hardy 8.04, o posterior, veieu això.
Obrim un terminal (o consola) amb el menú Aplicacions | Accessoris | Terminal i fem (demanarà la nostra contrasenya de la sessió):
$ sudo apt-get install festival festlex-cmu festlex-poslex festvox-kallpc16k libestools1.2
Per comprovar que funciona copiem al terminal la línia següent:
$ echo hello world! | festival --tts
Si funciona correctament i tenim la tarja de so ben configurada, escoltarem el text pels altaveus.
Instal·lem les veus
Amb repositoris (només per a Ubuntu Jaunty 9.04 i Karmic 9.10)
1. Al terminal, afegim la clau amb què s'ha firmat el codi:
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com A3A48C4A
2. Afegim la font al repositori: Al menú Sistema | Administració | Fonts de programari, pestanya Programari de tercers, botó Afegeix, afegim la línia:
deb http://ppa.launchpad.net/zeehio/festcat/ubuntu jaunty main
Per a Ubuntu Karmic 9.10, canviem la paraula jaunty per karmic a la linia anterior.
Fem Afegeix la font i Tanca
Instal·lem les veus: Al menú Sistema | Administració | Gestor de paquets Synaptic, triem el botó Refresca
Cerquem: festvox-ca
Marquem la veu i fem Instal·la-la.
De forma manual (altres versions)
1. Baixem els arxius de llengua i alguna veu de http://gps-tsc.upc.es/veu/festcat/download/
$ wget http://www.talp.cat/festcat/download/upc_ca_base.tgz $ wget http://www.talp.cat/festcat/download/upc_ca_ona_hts.tgz $ wget http://www.talp.cat/festcat/download/upc_ca_pau_hts.tgz
Opcionalment, podem baixar altres veus.
2. Desempaquetem els arxius a la carpeta /usr/share/festival, copiant al terminal:
$ sudo tar -C /usr/share/festival -zxf upc_ca_base.tgz $ sudo tar -C /usr/share/festival -zxf upc_ca_ona_hts.tgz $ sudo tar -C /usr/share/festival -zxf upc_ca_pau_hts.tgz
(Si hem baixat més veus, les desempaquetem de la mateixa forma.)
3. (opcional) Fem uns enllaços simbòlics, per poder trobar les llibreries, copiant al terminal:
$ cd /usr/lib/festival/ $ sudo ln -s /usr/share/festival/voices $ sudo ln -s /usr/share/festival/dicts $ sudo ln -s /usr/share/festival/upc_catalan
Per comprovar que funciona en català copiem al terminal la línia següent:
$ echo hola mon | festival --language catalan --tts
Si funciona correctament i tenim la tarja de so ben configurada, escoltarem el text en català pels altaveus.
3b. (Si hem fet 3. no cal fer això) Una alternativa a fer els enllaços simbòlics és cridar cada cop festival amb la ruta, copiant al terminal:
$ festival --libdir /usr/share/festival
Tot i que així no disposarem de totes les opcions, com ara l'Orca i el text2wave.
4. Per triar una veu en català per omisió, cal crear un arxiu de text a la carpeta de l'usuari, el nom de l'arxiu ha de ser .festivalrc
Sortim del Festival amb (exit), i fem:
$ gedit .festivalrc
Al seu interior copiarem la línia següent, a la que podem triar qualsevol de les veus instal·lades
(set! voice_default 'voice_upc_ca_ona_hts)
Nota: Per llegir en altres llegües ara caldrà indicar-ho. Veiem l'apartat 10.
Configuració del dispositiu de só
Si no tenim cap so i la consola respon amb aquest missatge:
Linux: can't open /dev/dsp
Seguirem aquestes instruccions
ALSA, recomanat
Sortim del Festival amb (exit), i executem:
printf ";use ALSA\n(Parameter.set 'Audio_Method 'Audio_Command)\n(Parameter.set 'Audio_Command \"aplay -q -c 1 -t raw -f s16 -r \$SR \$FILE\")\n" > ~/.festivalrc
OSD, si sabeu el que feu
Cal instal·lar esdplay, obrint un terminal i copiant:
sudo apt-get install esound-clients
i autoritzant la instal·lació, quan demani la contrassenya.
Al mateix terminal fem:
gksudo gedit /etc/festival.scm
i al final hi copiem el següent:
(Parameter.set 'Audio_Command "esdplay $FILE") (Parameter.set 'Audio_Method 'Audio_Command) (Parameter.set 'Audio_Required_Format 'snd)
Exemples d'ús
Cal que els arxius de text a convertir tinguin codificació latin-1
Veieu altres exemples a: http://www.talp.cat/festcat/download/LLEGEIX-ME
Segons l'opció que hem triat al pas anterior, ara tenim dues opcions:
Si hem triat l'opció 3.
Per llegir en veu alta la frase hola mon, copiem al terminal la línia següent:
$ echo hola mon | festival --language catalan --tts
Per llegir en veu alta un arxiu anomenat arxiu.txt hi copiem:
$ festival --language catalan --tts arxiu.txt
o bé:
$ cat arxiu.txt | festival --language catalan --tts
Si hem triat l'opció 3b.
Per llegir en veu alta la frase hola mon, copiem al terminal la línia següent:
$ echo hola mon | festival --libdir /usr/share/festival --language catalan --tts
Per llegir en veu alta un arxiu anomenat arxiu.txt hi copiem:
$ festival --libdir /usr/share/festival --language catalan --tts arxiu.txt
o bé:
$ cat arxiu.txt | festival --libdir /usr/share/festival --language catalan --tts
Les instruccions originals són aquí: http://www.talp.cat/festcat/download/LLEGEIX-ME
Nota: atenció amb les rutes al desempaquetar, un petit error em feia que no funcionés!
Llegir l'hora en veu alta
Per llegir l'hora en veu alta al terminal hi ha prou amb escriure la següent línia (Atenció: les 'cometes' abans i després de date... són accents, no cometes!!!):
echo "Són les `date +%k` hores, `date +%-M` minuts amb `date +%-S` segons." |padsp festival --tts --language catalan
Si volem, per exemple que ens digui l'hora en veu alta a les hores en punt hem de preparar un arxiu de text amb dues línies (Atenció: no hem de deixar cap espai a la primera línia, són aquí només per limitacions d'aquest wiki!!!):
# ! /bin/bash echo "Són les `date +%k` hores, `date +%-M` minuts amb `date +%-S` segons." |padsp festival --tts --language catalan
Al desar l'arxiu anterior, és molt important triar la codificació ISO-8859-1 o ISO-8859-15, ja que si triem UTF-8, que és l'opció per omissió, el Festival no podrà llegir-ho, i donarà l'error 'LTS_Ruleset catala_downcase: no rule matches:'.
posem que l'anomenem digueshora.sh
De nou al terminal fem:
crontab -e
i afegim a l'arxiu de programacions la línia:
0 * * * * bash [ruta]/digueshora.sh
on hem de substituir [ruta] per la ruta absoluta on hem desat l'arxiu digueshora.sh.
No oblidem desar fent Crl+O, abans de sortir amb Ctrl+X
Una altra opció sense els minuts és:
echo "Són les `date +%k` hores, i `date +%-M` minuts." |padsp festival --tts --language catalan
Per que digui les hores amb quarts, podríem fer alguna cosa així (us animem a millorar-ho):
hora=`date +%-I` hora_seg=$(echo "scale=0; $hora+1" | bc) if [ "$hora_seg" -eq "13" ]; then hora_seg="una"; fi minuts=`date +%-M` case $hora in 1 ) xe_hora="És la una" ;; 2 ) xe_hora="Són les dues" ;; * ) xe_hora ="Són les $hora";; esac case $minuts in 0 ) xe_minuts="" ;; * ) xe_minuts=", i $minuts minuts.";; esac case $minuts in 15 ) xerra="És un quart de $hora_seg." ;; 30 ) xerra="Són dos quarts de $hora_seg." ;; 45 ) xerra="Són tres quarts de $hora_seg." ;; * ) xerra="$xe_hora$xe_minuts" ;; esac echo $xerra |padsp festival --tts --language catalan
Possibles millores:
* Que digui "d'una', en lloc de "de una", o "Són dos quarts i cinc", "Són dos quarts i 3 minuts",...
Extensió per a OpenOffice
Read Text és una extensió per a OpenOffice que permet llegir el text seleccionat. Un cop instal·lades les veus segons les instruccions anteriors, podem instal·lar Read Text com qualsevol altre extensió (al menú 'Eines' | 'Gestor d'extensions...' | 'Afegeix...' 1) i funciona directament amb les veus catalanes.
Com llegir la pantalla amb Orca
Per instal·lar l'Orca, copiem al terminal la línia següent:
$ sudo apt-get install orca
Amb el menú Aplicacions | Accés universal | Lector de pantalla i ampliador Orca
El primer cop caldrà triar les opcions de configuració, responen unes preguntes al terminal, que seran llegides en veu alta, i un cop contestades, apareixerà aquesta finestra:
Anem a Preferències i a la pestanya Pronúncia triem:
Síntetitzador de pronunciació: Festival GNOME Speech Driver
Persona: triem una de les veus catalanes que heu instal·lat
Com fer arxius de so (wav)
Es pot aconseguir fent uns enllaços simbòlics així (si no ho hem fet al punt 1.4):
$ cd /usr/lib/festival/ $ sudo ln -s /usr/share/festival/voices $ sudo ln -s /usr/share/festival/dicts $ sudo ln -s /usr/share/festival/upc_catalan
Això també permet arrencar festival sense el paràmetre de la ruta de libdir.
Exemple d'ús:
(Cal que l'arxiu tingui codificació latin-1)
Per convertir un arxiu txt a wav, copiem al terminal:
$ text2wave -o arxiu.wav -eval '(language_catalan)' arxiu.txt
Alternativa (sense text2wave)
Una altra forma per generar arxius wav, podem fer (1):
$ festival festival> (save_waves_during_tts) (language_catalan) (tts_file "arxiu.txt") (exit)
Per convertir a ogg (preferible)
Si no ho està caldrà instal·lar oggenc, copiant al terminal:
$ sudo apt-get install vorbis-tools
Podem fer servir oggenc així, copiant al terminal:
$ oggenc arxiu.wav
També podeu fer servir aquest script
Per convertir a mp3
Atenció: l'mp3 no és lliure! |
Si no ho està caldrà instal·lar lame, copiant al terminal:
$ sudo apt-get install lame
Podem fer servir lame, copiant al terminal:
$ lame arxiu.wav arxiu.mp3
També podeu fer servir aquest script
Scripts per convertir un arxiu a ogg i a mp3
Estan escrits suposant que tenim la veu catalana triada per omissió (veieu el punt 1.5, més amunt).
text2ogg: Converteix un arxiu de text a ogg llegint-lo amb Festival, afegint el nom de l'arxiu a l'etiqueta ogg del títol, i opcionalment l'autor
text2mp3: Converteix un arxiu de text a mp3 llegint-lo amb Festival, afegint el nom de l'arxiu a l'etiqueta ogg del títol, i opcionalment l'autor
Els podem trobar aquí
Codi per copiar al terminal
No és necessari fer aquest pas si hem fet el pas 1. Instal·lació
Obrim un terminal fent Aplicacions | Accessoris | Terminal i copiem això (demanarà la nostra contrasenya de la sessió):
sudo apt-get install festival festlex-cmu festlex-poslex festvox-kallpc16k libestools1.2 wget http://www.talp.cat/festcat/download/upc_ca_base.tgz wget http://www.talp.cat/festcat/download/upc_ca_ona_hts.tgz wget http://www.talp.cat/festcat/download/upc_ca_pau_hts.tgz sudo tar -C /usr/share/festival -zxf upc_ca_base.tgz sudo tar -C /usr/share/festival -zxf upc_ca_ona_hts.tgz sudo tar -C /usr/share/festival -zxf upc_ca_pau_hts.tgz cd /usr/lib/festival/ sudo ln -s /usr/share/festival/voices sudo ln -s /usr/share/festival/dicts sudo ln -s /usr/share/festival/upc_catalan printf ";use ALSA\n(Parameter.set 'Audio_Method 'Audio_Command)\n(Parameter.set 'Audio_Command \"aplay -q -c 1 -t raw -f s16 -r \$SR \$FILE\")\n(set! voice_default 'voice_upc_ca_ona_hts)\n" > ~/.festivalrc
Llavors podem provar que funciona en anglés, copiant al terminal:
$ echo hello world! | festival --language americanenglish --tts
(Si funciona correctament i tenim la tarja de so ben configurada, escoltarem el text pels altaveus)
i en català, copiant al terminal:
$ echo hola mon | festival --tts
Com convertir un arxiu de text a latin-1
La codificació per omissió dels arxius a Ubuntu és UTF-8. Podem fer servir les opcions de guardar del editor gedit, o fer servir programes conversors de format, com iconv copiant al terminal (Més):
$ iconv -f utf8 -t latin1 arxiu_utf8.txt > arxiu_latin1.txt
Com fer que Festival llegeixi també en anglés i / o castellà
Si hem triat que es faci servir la veu catalana quan no indiquem res (Veu el punt 1.5 més a munt), quan volguem llegir en castellà o en anglés - o en qualsevol altre llengua - caldrà indicar-ho.
Primer comprovem que tenim les veus instalades fent (La veu castellana és festvox-ellpc11k i la americana: festvox-kdlpc16k):
$ sudo apt-get install festvox-ellpc11k festvox-kdlpc16k
Per provar aquestes veus podem fer, per la veu castellana:
$ echo hola | festival --language spanish --tts
i per la americana:
$ echo hello | festival --language americanenglish --tts
Desinstal·lació
Per desinstal·lar les veus catalanes, copiem al terminal (demanarà la nostra contrasenya de la sessió):
$ sudo rm -R /usr/share/festival/upc_catalan $ sudo rm -R /usr/share/festival/dicts/upc $ sudo rm -R /usr/share/festival/voices/catalan
Per desintal·lar el festival fem al terminal:
$ sudo apt-get remove festival $ sudo apt-get autoremove
Problemes coneguts
Mireu també a l'apartat Instal·lació la nota sobre ALSA i el dispositiu de so.
Tinc Ubuntu Hardy 8.04 i Festival no em funciona
A partir de la versió 8.04, Ubuntu fa servir el servidor de so Pulseaudio. Per adaptar Festival a Pulseaudio, només cal fer servir l'embolicador Pulseadio (padsp). És a dir, hi ha prou amb anteposar l'ordre padsp a festival, per exemple:
$ echo hola mon | padsp festival --language catalan --tts
Cal posar-ho directament davant de festival (no davant de l'script veus.sh, per exemple).
Al pronunciar la lletra 'ñ' en algun nom propi forani, dóna aquest error
failed to find tree for ñ
La solució que ens ha facilitat Antonio Bonafonte és:
$ sudo gedit /usr/share/festival/dicts/upc/upc_catalan_lts_rules.scm
i cap al final de tot, afegim la linea amb el so de la 'ñ', que es representa amb 'J':
El final queda així:
(ñ ((J))) (· ((_epsilon_))) (- ((_epsilon_))))
Segons ens indica aquesta correcció serà afegida a la propera versió.
Amb algunes paraules, s'obté aquest error
SIOD ERROR: the currently assigned stack limit has been exceded
Aquest problema és dona quan es troba una paraula amb una majúscula repetida com ara TamTam , o amb el punt volat '·' i està sent corregit pels desenvolupadors. Mentrestant podem convertir una d'aquestes lletres a minúscula, i canviant els punt volats per punts corrents '.'.
Nota: Estem treballant en una millora que ho soluciona. Quan estigui llesta ho afegirem aquí.
Textos en format UTF-8
Festival espera arxius de text en codificació latin-1. Si el text conté caràcters que no són en aquesta codificació, també donarà error. Antonio Bonafonte ha fet un script en perl que substitueix els caràcters:
#festcat_neteja.pl - Antonio Bonafonte - Juny 2008 chomp; $debug=0; if ($debug) { s{([^- \t\n\ra-z0-9áàéèíìóòúùüïçñA-ZÁÀÉÈÍÌÓÒÚÙÜÏÇÑ\[\]\{\}ºª\\!\|\"@·#\$~%&/()=?'¿¡*+_.:,;<>€])}{#$1#}g; } else { s{([^- \t\n\ra-z0-9áàéèíìóòúùüïçñA-ZÁÀÉÈÍÌÓÒÚÙÜÏÇÑ\[\]\{\}ºª\\!\|\"@·#\$~%&/()=?'¿¡*+_.:,;<>€])}{ }g; } print "$_\n";
Per fer-lo servir, li donem permisos d'execució i fem:
perl festcat_neteja.pl arxiu.txt > arxiu.net
Millores
Si trobeu alguna solució, podeu afegir-la a aquest wiki, editant-lo, o comentar-ho al fòrum: http://ubuntuforums.org/showthread.php?t=806060 Fora interessant per exemple:
1. (Fet) Simplificar les ordres per desempaquetar els arxius, que segurament es pot fer de forma més eficient.
2. (Fet - veieu més amunt, el punt 4. de 'De forma manual') Poder indicar la llengua o veu per omissió, per no haver de dir cada cop que volem la llengua catalana. Potser es podria indicar a l'arxiu .festivalrc ( http://www.math.ias.edu/doc/festival-1.4.2/festival_6.html#SEC15 )
3. Trobar alguna eina gràfica - a més de l'Orca - que fes servir les veus en català, pels que ho prefereixen a fer servir la consola, com ara eSpeak o KSayit.
4. Determinar les condicions del problema o trobar una solució per convertir arxius de text en format UTF-8 (Veieu 9.2 Problemes coneguts). (Hi estem treballant).
Referències
Fòrum: http://ubuntuforums.org/showthread.php?t=806060 (ha servit per començar aquest document)
Síntesi de veu a Ubuntu amb Festival: https://help.ubuntu.com/community/TextToSpeech (en anglès)
Festival: http://www.cstr.ed.ac.uk/projects/festival/ FAQ (en anglès)
Festcat: http://gps-tsc.upc.es/veu/festcat/ (veus catalanes)
Configuració de só alsa / oss TextToSpeech. (en anglès)
SIOD: http://www.cs.indiana.edu/scheme-repository/imp/siod.html (en anglès)
ReadText: http://extensions.services.openoffice.org/node/2649 (en anglès
Gestor d'extensión de l'OpenOffice: http://wiki.services.openoffice.org/wiki/Documentation/Administration_Guide/Using_Package_Manager (en anglès
HOWTO: Make festival TTS use better voices (MBROLA / CMU / HTS)
Crèdits: PacoRivière http://pacoriviere.cat/ http://galindaines.blogspot.com/