<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ca">
	<id>http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=Langtrainer%3A_Text_To_Speech-TTS</id>
	<title>Langtrainer: Text To Speech-TTS - Historial de revisió</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=Langtrainer%3A_Text_To_Speech-TTS"/>
	<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Langtrainer:_Text_To_Speech-TTS&amp;action=history"/>
	<updated>2026-04-20T13:04:44Z</updated>
	<subtitle>Historial de revisió per a aquesta pàgina del wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=Langtrainer:_Text_To_Speech-TTS&amp;diff=259499&amp;oldid=prev</id>
		<title>Joan: /* Fer sonar Festival a través de NodeJS (Javascript) */</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Langtrainer:_Text_To_Speech-TTS&amp;diff=259499&amp;oldid=prev"/>
		<updated>2020-05-20T14:20:38Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Fer sonar Festival a través de NodeJS (Javascript)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Pàgina nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Les proves s'han fet amb Ubuntu Intrepid (8.10)&lt;br /&gt;
==Primera prova no reeixida==&lt;br /&gt;
Per utilitzar Text-To-Speech a Ubuntu es pot utilitzar el programa Festival (les veus dels diferents idiomes s'instal.len amb el paquet festbox). El problema és que Festival no funciona amb ESD (the default sound server up to Gutsy), PulseAudio (the default sound server since Hardy) or ALSA, i per tal que funcioni s'han de fer uns canvis. Tot això està explicat a https://help.ubuntu.com/community/TextToSpeech.&lt;br /&gt;
&lt;br /&gt;
Primer de tot instal.lem festival:&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install festival&lt;br /&gt;
 $ sudo apt-get install festvox-kallpc16k&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Amb 8.10 (Intrepid) veig que la instal.lació falla, però en canvi ja ve instal.lat per defecte '''espeak''' que funciona de meravella&lt;br /&gt;
&lt;br /&gt;
==espeak amb català==&lt;br /&gt;
Al 8.10 ja ve instal.lat el ''espeak'', que funciona a la primera:&lt;br /&gt;
&lt;br /&gt;
 $ espeak &amp;quot;hello john&amp;quot;&lt;br /&gt;
 $ echo &amp;quot;I am very good at this&amp;quot; | espeak -s 100&lt;br /&gt;
 $ cat hola.txt | espeak&lt;br /&gt;
&lt;br /&gt;
Evidentment, per defecte està pensat per a l'idioma anglès. El problema és que d'entrada no està disponible el català&lt;br /&gt;
&lt;br /&gt;
$ espeak --voices -&amp;gt; llista les veus disponibles&lt;br /&gt;
$ echo &amp;quot;Soy muy bueno&amp;quot; | espeak -s 100 -v es&lt;br /&gt;
&lt;br /&gt;
[Both (espeak &amp;amp; festival) work for me in 8.04.1]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ whereis espeak-data&lt;br /&gt;
espeak-data: /usr/share/espeak-data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
a /usr/share/espeak-data/voices hi ha una llista de totes les veus instal.lades i efectivament no hi és el català. Anem a buscar a Sourceforge la última versió del projecte:&lt;br /&gt;
&lt;br /&gt;
http://espeak.sourceforge.net/&lt;br /&gt;
&lt;br /&gt;
També hi ha un paquet per a Debian: http://packages.debian.org/sid/mips/espeak-data/filelist&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install espeak-data&lt;br /&gt;
&lt;br /&gt;
Vaig a mirar les fonts per a Ubuntu Intrepid: espeak_1.39.orig.tar.gz  (1.2 MiB) -&amp;gt; no hi ha el català&lt;br /&gt;
&lt;br /&gt;
Vaig a mirar les fonts per a Ubuntu Jaunty (10-2-2009, molt recent!): espeak_1.40.02.orig.tar.gz  (1.2 MiB) -&amp;gt; i ara a espeak-data/voices sí que tinc el català!!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Més que instal.lar la nova versió intento substituir el directori on estan totes les veus (espeak-data), i veuré que funciona a mitges...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/share&lt;br /&gt;
sudo mv espeak-data/ espeak-data.old/&lt;br /&gt;
sudo cp -R ~/Escritorio/espeak-1.40.02/espeak-data  /usr/share/espeak-data &lt;br /&gt;
$ echo &amp;quot;Sóc el joan&amp;quot; | espeak -s 100 -v ca&lt;br /&gt;
$ espeak -s 120 -v ca -f voc.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i funciona, sense una qualitat molt gran.&lt;br /&gt;
&lt;br /&gt;
Ara bé, quan intento exportar a fitxer wav falla (això no falla per a l'anglès)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ espeak -s 120 -v ca -f voc.txt -w voc.wav&lt;br /&gt;
Wrong version of espeak-data 0x14000 (expects 0x13900)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ho intento restablint els fitxers originals de espeak-data i només copiant els arxius que fan referència al català, però em diu Unknown phoneme table: 'ca'&lt;br /&gt;
&lt;br /&gt;
ara bé, -w voc.wav funciona bé amb el castellà i l'anglès.&lt;br /&gt;
&lt;br /&gt;
És un problema de versions, he d'instal.lar a partir de les fonts la versió última que inclou el català.&lt;br /&gt;
&lt;br /&gt;
 $ cd ~/Escritorio/espeak-1.40.02/src&lt;br /&gt;
&lt;br /&gt;
aquí hi ha el Makefile&lt;br /&gt;
&lt;br /&gt;
compilo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ make&lt;br /&gt;
...&lt;br /&gt;
/usr/bin/ld: cannot find -lportaudio&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install lportaudio&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
He de llegir el ReadMe, important!&lt;br /&gt;
 $ cp portaudio18.h portaudio.h (per a Debian i Ubuntu)&lt;br /&gt;
&lt;br /&gt;
ara bé, tampoc va.&lt;br /&gt;
&lt;br /&gt;
Compilaré portaudio.h a partir de les fonts. Està explicat a http://live.gnome.org/Orca/Speech (pa_stable_v19_061121.tar.gz )&lt;br /&gt;
&lt;br /&gt;
*Download/build/install PortAudio v19 stable (061121)&lt;br /&gt;
*gunzip/untar it and cd to the portaudio directory&lt;br /&gt;
*./configure --prefix=/usr&lt;br /&gt;
fixem-nos que estem dient que el resultat portaudio.h el trobarem a /usr&lt;br /&gt;
*make&lt;br /&gt;
*sudo make install&lt;br /&gt;
*sudo ldconfig &lt;br /&gt;
&lt;br /&gt;
funciona bé i obtinc /usr/include/portaudio.h (fixem-nos en la data). Copio aquest fitxer al espeak&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /usr/include&lt;br /&gt;
$ cp portaudio.h /home/joan/Escritorio/espeak-1.40.02/src&lt;br /&gt;
$ cd /home/joan/Escritorio/espeak-1.40.02/src&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i ara ja puc compilar el espeak:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ make&lt;br /&gt;
$ sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ara ja funciona bé.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ echo &amp;quot;Sóc el joan&amp;quot; | ./espeak -s 100 -v ca&lt;br /&gt;
$ ./espeak -s 100 -v ca -f /home/joan/voc.txt&lt;br /&gt;
$ ./espeak -s 100 -v ca -f /home/joan/voc.txt -w /home/joan/voc.wav&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Perfecte, tot i que la qualitat no és molt bona. Això sí, si hi ha temps, s'explica en els tutorials com jo mateix puc construir la veu del català i per tant anar fent proves fins a obtenir un resultat més òptim.&lt;br /&gt;
&lt;br /&gt;
'''Nota:'''&lt;br /&gt;
&lt;br /&gt;
Una altra possibilitat més que compilar és baixar-se una versió del programa que ja estigui compilada. Així ho he fet la segona vegada, en el UbuntuServer (Ubuntu 7.10), i m'ha funcionat (tot i que ja havia instal.lat el paquet lportaudio). M'he descarregat el fitxer espeak-1.40.02-linux.zip&lt;br /&gt;
de Sourceforge (http://sourceforge.net/project/showfiles.php?group_id=159649&amp;amp;package_id=179281), i en fer unzip he vist que ja estava l'executable ./espeak i les veus en català. O sigui que ho provo i en principi va bé. Aquesta versió precisament no té la carpeta src. O sigui, que és l'altra aproximació al problema: descarregar-se directament la versió compilada.&lt;br /&gt;
&lt;br /&gt;
 $ cd /usr/share/espeak-1.40.02-linux (és on ho he instal.lat)&lt;br /&gt;
 $ ./espeak -s 120 -v ca -f /home/joan/hola.txt -w /home/joan/hola.wav&lt;br /&gt;
&lt;br /&gt;
Però no!! veig que sona amb un marcat accent anglès, i és que, encara que està la carpeta ''ca'', si faig&lt;br /&gt;
 $ espeak --voices&lt;br /&gt;
veig que l'idioma Català no surt.&lt;br /&gt;
&lt;br /&gt;
També intento instal.lar un paquet deb de la versió 1.40.02, i no s'instal.la i ja em diu unes pistes. Hi ha un problema de dependpències. Bàsicament tinc libc6 (la libreria bàsica de C) i necessito libc7. Tot aixo ve perque el UbuntuServer és un 7.10. Si tingués un 8.10 com en el portàtil no hagués tingut tants problemes. Més val no entretenir-se més en el tema.&lt;br /&gt;
&lt;br /&gt;
==fer sonar el fitxer wav==&lt;br /&gt;
&lt;br /&gt;
Ara vull fer sonar el fitxer wav en línia de comandes. Recordo que amb el Ubuntu Studio utilitzava el play. Per a fer servir el programa play:&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install sox&lt;br /&gt;
 $ play /home/joan/voc.wav&lt;br /&gt;
&lt;br /&gt;
==Integració amb Langtrainer==&lt;br /&gt;
===llegint el fitxer de vocabulari===&lt;br /&gt;
Si vull llegir un fitxer paraula per paraula (word_by_word.sh)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
for WORD in `cat /home/joan/prova.txt`&lt;br /&gt;
do&lt;br /&gt;
echo $WORD&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vull llegir un fitxer paraula per paraula (line_by_line.sh)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
while read LINE&lt;br /&gt;
do&lt;br /&gt;
echo $LINE&lt;br /&gt;
done &amp;lt; /home/joan/prova.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
while read LINE&lt;br /&gt;
do&lt;br /&gt;
echo $LINE | /home/joan/Escritorio/espeak-1.40.02/src/espeak -s 100 -v ca&lt;br /&gt;
done &amp;lt; /home/joan/prova.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El fitxer de vocabulari que llegiré complirà el següent criteri. La línia que comenci per 1: serà una paraula anglesa; la que comenci per 2: serà la traducció catalana; i la que comenci per 3: serà un exemple d'ús de la paraula amb anglès. Per ex:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1:bang&lt;br /&gt;
2:cop, porrasso; colpejar, apallissar, maltractar&lt;br /&gt;
3:to bang the door&lt;br /&gt;
3:How Many chicks is it safe for a bro to say he's banged?&lt;br /&gt;
1:to bark &lt;br /&gt;
2:bordar (gos)&lt;br /&gt;
1:to bear &lt;br /&gt;
2:portar (una càrrega); sostenir, patir&lt;br /&gt;
1:bearable&lt;br /&gt;
2:soportable, aguantable&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per detectar el primer caràcter d'una línia:&lt;br /&gt;
 $ echo &amp;quot;hola:món&amp;quot; | cut -b1&lt;br /&gt;
i per detectar les dues paraules separades per dos punts (:):&lt;br /&gt;
 $ echo &amp;quot;hola:món&amp;quot; | cut -d: -f1&lt;br /&gt;
 $ echo &amp;quot;hola:món&amp;quot; | cut -d: -f2&lt;br /&gt;
&lt;br /&gt;
fitxer prova.txt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1:sand&lt;br /&gt;
2:sorra, arena&lt;br /&gt;
1:table&lt;br /&gt;
2:taula&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
while read LINE&lt;br /&gt;
do&lt;br /&gt;
if [ $(echo $LINE | cut -d: -f1) -eq 1 ] ; then&lt;br /&gt;
        echo &amp;quot;anglès&amp;quot;&lt;br /&gt;
        a=`echo $LINE | cut -d: -f2`&lt;br /&gt;
        echo $a | /home/joan/Escritorio/espeak-1.40.02/src/espeak -s 120 -v en&lt;br /&gt;
else&lt;br /&gt;
        echo &amp;quot;català&amp;quot;&lt;br /&gt;
        a=`echo $LINE | cut -d: -f2`&lt;br /&gt;
        echo $a | /home/joan/Escritorio/espeak-1.40.02/src/espeak -s 120 -v ca&lt;br /&gt;
fi&lt;br /&gt;
done &amp;lt; /home/joan/prova.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Concatenar fitxers wav===&lt;br /&gt;
Aquesta part resulta molt fàcil:&lt;br /&gt;
&lt;br /&gt;
http://www.boutell.com/scripts/catwav.html&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;hola Joan&amp;quot; | /home/joan/Escritorio/espeak-1.40.02/src/espeak -s 100 -v ca -w 1.wav&lt;br /&gt;
play 1.wav&lt;br /&gt;
echo &amp;quot;adéu Joan&amp;quot; | /home/joan/Escritorio/espeak-1.40.02/src/espeak -s 100 -v ca -w 2.wav&lt;br /&gt;
play 2.wav&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
script catwav.sh:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
sox $1 -r 44100 -c 2 -s -w /tmp/$$-1.raw&lt;br /&gt;
sox $2 -r 44100 -c 2 -s -w /tmp/$$-2.raw&lt;br /&gt;
cat /tmp/$$-1.raw /tmp/$$-2.raw &amp;gt; /tmp/$$.raw&lt;br /&gt;
sox -r 44100 -c 2 -s -w /tmp/$$.raw $3&lt;br /&gt;
rm /tmp/$$*.raw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $ catwav 1.wav 2.wav 3.wav&lt;br /&gt;
 $ play 3.wav&lt;br /&gt;
&lt;br /&gt;
i funciona sense problemes&lt;br /&gt;
&lt;br /&gt;
el script queda:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
rm total.wav&lt;br /&gt;
while read LINE&lt;br /&gt;
do&lt;br /&gt;
if [ $(echo $LINE | cut -d: -f1) -eq 1 ] ; then&lt;br /&gt;
        echo &amp;quot;espera&amp;quot; | /home/joan/Escritorio/espeak-1.40.02/src/espeak -s 120 -v en -a 0 -w 1.wav&lt;br /&gt;
        /home/joan/catwav total.wav 1.wav total.wav&lt;br /&gt;
&lt;br /&gt;
        echo &amp;quot;anglès&amp;quot;&lt;br /&gt;
        a=`echo $LINE | cut -d: -f2`&lt;br /&gt;
        echo $a | /home/joan/Escritorio/espeak-1.40.02/src/espeak -s 120 -v en -a 200 -w 1.wav&lt;br /&gt;
        /home/joan/catwav total.wav 1.wav total.wav&lt;br /&gt;
else&lt;br /&gt;
        echo &amp;quot;català&amp;quot;&lt;br /&gt;
        a=`echo $LINE | cut -d: -f2`&lt;br /&gt;
        echo $a | /home/joan/Escritorio/espeak-1.40.02/src/espeak -s 120 -v ca -w 1.wav&lt;br /&gt;
        /home/joan/catwav total.wav 1.wav total.wav&lt;br /&gt;
fi&lt;br /&gt;
done &amp;lt; /home/joan/prova.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fixem-nos com fem una espera per separar les paraules (utilitzem l'opció -a (amplitud)=0)&lt;br /&gt;
&lt;br /&gt;
===Convertir wav a mp3===&lt;br /&gt;
&lt;br /&gt;
http://guia-ubuntu.org/index.php?title=Ffmpeg&lt;br /&gt;
&lt;br /&gt;
Ffmpeg es un programa sin interfaz gráfica que permite convertir o transformar entre formatos multimedia, tanto de video como de audio. Aunque existen otros programas, algunos sin necesidad de usar comandos, es una de las opciones con más posibilidades y es muy rápida. &lt;br /&gt;
&lt;br /&gt;
la primera prova, que no funciona:&lt;br /&gt;
 $ ffmpeg -i total.wav -acodec mp3 -ab 32 -ar 44100 total.mp3&lt;br /&gt;
&lt;br /&gt;
# -acodec mp3, indica que el codec de audio del archivo resultante será MP3 [esto en realidad se prodría omitir, puesto que la extensión del archivo de salida indica a ffmpeg que el codec es MP3]&lt;br /&gt;
# -ab 32, indica que el bitrate del archivo de salida será de 32 kbps&lt;br /&gt;
# -ar 44100, inidica que el archivo de salida tendrá una frecuencia de 44100 Hz [esto en realidad se prodría omitir, puesto que la frecuencia por defecto es 44100 Hz]&lt;br /&gt;
&lt;br /&gt;
ho executo i em dóna:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Unknown encoder 'mp3'&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To have mp3 encoding, you need to install the 'libavcodec-unstripped-51' package, and pass '-acodec libmp3lame' instead of '-acodec mp3' in your command line.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get install libavcodec-unstripped-51&lt;br /&gt;
$ ffmpeg -i total.wav -acodec libmp3lame -ab 32 -ar 44100 total.mp3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ara funciona bé. L'únic problema és que ara play total.mp3 no funciona (unknown file type 'mp3'). Com a player utilitzaré el vlc (que també executa videos):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get install vlc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
then run it with vlc -I ncurses (That is ahttp://www.google.es/search?hl=es&amp;amp;q=bash+script+if+elif&amp;amp;btnG=Buscar+con+Google&amp;amp;meta= capital i not a lowercase L)&lt;br /&gt;
&lt;br /&gt;
 $ vlc total.mp3&lt;br /&gt;
&lt;br /&gt;
i funciona bé&lt;br /&gt;
&lt;br /&gt;
===script line_by_line.sh, versió 16-III-2009===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
rm total.wav&lt;br /&gt;
while read LINE&lt;br /&gt;
do&lt;br /&gt;
if [ $(echo $LINE | cut -d: -f1) -eq 1 ] ; then&lt;br /&gt;
        echo &amp;quot;espera&amp;quot; | /home/joan/Escritorio/espeak-1.40.02/src/espeak -s 120 -v en -a 0 -w 1.wav&lt;br /&gt;
        /home/joan/catwav total.wav 1.wav total.wav&lt;br /&gt;
        echo $LINE&lt;br /&gt;
        a=`echo $LINE | cut -d: -f2`&lt;br /&gt;
        echo $a | /home/joan/Escritorio/espeak-1.40.02/src/espeak -s 120 -v en -w 1.wav&lt;br /&gt;
        /home/joan/catwav total.wav 1.wav total.wav&lt;br /&gt;
elif [ $(echo $LINE | cut -d: -f1) -eq 2 ] ; then&lt;br /&gt;
        echo $LINE&lt;br /&gt;
        a=`echo $LINE | cut -d: -f2`&lt;br /&gt;
        echo $a | /home/joan/Escritorio/espeak-1.40.02/src/espeak -s 120 -v ca -w 1.wav&lt;br /&gt;
        /home/joan/catwav total.wav 1.wav total.wav&lt;br /&gt;
elif [ $(echo $LINE | cut -d: -f1) -eq 3 ] ; then&lt;br /&gt;
        echo $LINE&lt;br /&gt;
        a=`echo $LINE | cut -d: -f2`&lt;br /&gt;
        echo $a | /home/joan/Escritorio/espeak-1.40.02/src/espeak -s 120 -v en -w 1.wav&lt;br /&gt;
        /home/joan/catwav total.wav 1.wav total.wav&lt;br /&gt;
fi&lt;br /&gt;
done &amp;lt; /home/joan/vocabulary_tts_b.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Enviar mails des del projecte PHP===&lt;br /&gt;
La idea és que un cop generat el fitxer mp3, aquest es pugui enviar de forma automàtica com a fitxer adjunt. Necessito el phpMailer i això està explicat a:&lt;br /&gt;
&lt;br /&gt;
[[Enviar_mail_des_de_PHP:_phpMailer]]&lt;br /&gt;
&lt;br /&gt;
==Llocs web on s'utilitza TTS==&lt;br /&gt;
http://www.oddcast.com/home/demos/tts/frameset.php?frame1=talk&lt;br /&gt;
&lt;br /&gt;
==Nova instal.lació, Ubuntu Jaunty setembre 2009==&lt;br /&gt;
Em descarregp espeak-1.41.01-linux.zip, descomprimeixo, i executo des de l'executable que està a:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/share/espeak-1.41.01-linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
No s'ha de fer res més, tampoc s'ha de compilar portaudio. Té la funcionalitat del català correcta.&lt;br /&gt;
&lt;br /&gt;
Ara bé, tinc problemes en els scripts line_by_line.sh i catwav.sh que em pensava que ja tenia solucionats. Per exemple, hi ha un problema amb l'opció -w de sox (he tret aquesta opció. Què feia aquesta opció?)&lt;br /&gt;
&lt;br /&gt;
rectificar ./catwav.sh ../wav/total.wav a line_by_line.sh&lt;br /&gt;
=Festival (TTS) (gener 2020)=&lt;br /&gt;
Festcat - Síntesi de la parla en català&lt;br /&gt;
*http://festcat.talp.cat/demo.php&lt;br /&gt;
&lt;br /&gt;
*Les veus '''HTS''' són més lleugeres però poden sonar una mica més sintètiques.&lt;br /&gt;
*Les veus '''clunits''' son molt més grans, sonen més naturals, però a vegades tenen errors més greus.&lt;br /&gt;
&lt;br /&gt;
Per exemple, una veu que està molt bé és: (http://festcat.talp.cat/download.php):&lt;br /&gt;
*upc_ca_jan_clunits-1.2.tgz	&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install festvox-ca-ona-hts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
que instal·la directament els paquets superiors festival i festival-ca&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ festival&lt;br /&gt;
festival&amp;gt; (SayText &amp;quot;¡Hola, mon!&amp;quot;) &lt;br /&gt;
festival&amp;gt; (voice.list)&lt;br /&gt;
(upc_ca_ona_hts)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
la única veu que tinc instal·lada és la catalana, però de fet no sona bé.&lt;br /&gt;
&lt;br /&gt;
*festvox-en1 - mbrola-en1 voice support for festival&lt;br /&gt;
per definir la veu que faig servir&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
festival&amp;gt; (voice_upc_ca_ona_hts) &lt;br /&gt;
upc_ca_ona_hts&lt;br /&gt;
festival&amp;gt;(voice.list)            &lt;br /&gt;
(en1_mbrola upc_ca_ona_hts)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
però encara no funciona&lt;br /&gt;
&lt;br /&gt;
Instal·lació:&lt;br /&gt;
*http://festcat.talp.cat/install.php&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ festival -b &amp;quot;(if (boundp 'datadir) (print datadir) (print libdir))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;/usr/share/festival&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Aquest és el ''datadir'' que s'ha de fer servir.&lt;br /&gt;
&lt;br /&gt;
Tinc descarregada la veu ''upc_ca_jan_clunits'' i ''upc_ca_ona_hts''. &lt;br /&gt;
&lt;br /&gt;
Copieu el directori descomprimit ''upc_ca_ona_hts/'' al directori ''$datadir/voices/catalan'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo cp -R /home/joan/Baixades/upc_ca_jan_clunits/ /usr/share/festival/voices/catalan&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Bon dia, Catalunya&amp;quot; | festival --tts --language catalan&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Sona la veu de l'Ona, i és que per defecte està seleccionada l'Ona (però tinc dues veus):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
festival&amp;gt; (language_catalan) &lt;br /&gt;
upc_ca_ona_hts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Com elegir entre una veu i l'altra?&lt;br /&gt;
&lt;br /&gt;
http://festcat.talp.cat/usage.php&lt;br /&gt;
&lt;br /&gt;
i ara ja funciona amb la veu que he triat&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ text2wave hola.txt -eval &amp;quot;(voice_upc_ca_jan_clunits) -o hola.wav&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Especificar la veu. Treballar amb diferents veus===&lt;br /&gt;
Per triar la veu per defecte:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(set! voice_upc_ca_jan_clunits)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*http://www.cstr.ed.ac.uk/projects/festival/manual/festival_28.html&lt;br /&gt;
&lt;br /&gt;
El que vull plantejar ara és com llençar diferents comandes en mode batch. I també com treballar amb els accents en català. Provem el mode ''batch'' (-b, --batch):&lt;br /&gt;
&lt;br /&gt;
fitxer ''prova_tts.scm'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(voice_upc_ca_jan_clunits)&lt;br /&gt;
(SayText &amp;quot;Hola Catalunya&amp;quot;)&lt;br /&gt;
(voice_upc_ca_ona_hts)&lt;br /&gt;
(SayText &amp;quot;Adéu Catalunya&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$ festival -b /home/joan/prova_tts.scm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Funciona, però hi ha un problema amb els accents. Recordar que:&lt;br /&gt;
El 'Festival' espera codificació ISO-8859-15. Assegureu-vos que utilitzeu aquesta codificació en el vostre terminal o fitxers. Si el vostre sistema utilitza UTF-8 (tal i com ho fan moltes distribucions actuals), necessiteu convertir el fitxer abans de la lectura. Si ho faig així, ara sí que funciona bé.&lt;br /&gt;
&lt;br /&gt;
La solució en mode comanda seria aquesta seria aquesta (mode ''pipe''):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ echo &amp;quot;(voice_upc_ca_jan_clunits)(SayText \&amp;quot;Adeu Catalunya\&amp;quot;)&amp;quot; |  festival --pipe&lt;br /&gt;
$ echo &amp;quot;(voice_upc_ca_ona_hts)(SayText \&amp;quot;Adeu Catalunya\&amp;quot;)&amp;quot; |  festival --pipe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
però en la línia de comandes tenim un problema amb els accents.&lt;br /&gt;
&lt;br /&gt;
En mode fitxer és fàcil convertir a codificació ISO-8859-15:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ iconv -f UTF-8 -t ISO-8859-15 prova_tts.scm &amp;gt; prova_tts_iso-8859-15.scm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per tant, tot això ho podem posar en un script bash:&lt;br /&gt;
&lt;br /&gt;
Primer he de generar el fitxer ''scm'' amb totes les comandes que vull executar, i després executar un bash on li passo com a argument les comandes a executar i els textos a llegir:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
prova_tts.scm&lt;br /&gt;
(voice_upc_ca_jan_clunits)&lt;br /&gt;
(SayText &amp;quot;Hola Catalunya&amp;quot;)&lt;br /&gt;
(voice_upc_ca_ona_hts)&lt;br /&gt;
(SayText &amp;quot;Adéu Catalunya&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$ iconv -f UTF-8 -t ISO-8859-15 prova_tts.scm &amp;gt; prova_tts_iso-8859-15.scm&lt;br /&gt;
$ festival -b /home/joan/prova_tts_iso-8859-15.scm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Festival a la RPi=&lt;br /&gt;
Funciona igual que en l'ordinador d'escriptori:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install festival&lt;br /&gt;
sudo apt-get install festvox-ca-ona-hts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Després d'instal·lar el paquet català ja exiteix la veu de l'Ona:&lt;br /&gt;
*/usr/share/festival/voices/catalan/upc_ca_ona_hts&lt;br /&gt;
&lt;br /&gt;
i copio l'altra veu masculina:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
al portàtil&lt;br /&gt;
sudo scp -r /usr/share/festival/voices/catalan/upc_ca_jan_clunits/ pi@192.168.1.60:/home/pi&lt;br /&gt;
&lt;br /&gt;
A la RPi:&lt;br /&gt;
sudo mv /home/pi/upc_ca_jan_clunits/ /usr/share/festival/voices/catalan/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=Fer sonar Festival a través de NodeJS (Javascript)=&lt;br /&gt;
*http://www.dreamsyssoft.com/javascript-shell-scripting/shell-tutorial.php&lt;br /&gt;
prova.sh&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;Bon dia, Catalunya&amp;quot; | festival --tts --language catalan&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Podem fer sonar Festival:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ bash prova.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(en aquest script bash podem posar moltes més comandes, com es comenta més amunt. Canviar de veus,etc.&lt;br /&gt;
&lt;br /&gt;
La part de Node:&lt;br /&gt;
script prova.js&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var cp = require('child_process');&lt;br /&gt;
var ls = cp.spawn('ls', ['-lsa']);&lt;br /&gt;
&lt;br /&gt;
ls.stdout.on('data', function(data) {&lt;br /&gt;
        console.log('Message: ' + data);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
ls.on('close', function(code, signal) {&lt;br /&gt;
        console.log('ls finished...');&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ node prova.js&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I ara el modifiquem per fer sonar el '''Festival''':&lt;br /&gt;
script ''prova.js'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env node&lt;br /&gt;
// echo &amp;quot;Bon dia, Catalunya&amp;quot; | festival --tts --language catalan&lt;br /&gt;
&lt;br /&gt;
var cp = require('child_process');&lt;br /&gt;
var ls = cp.spawn('bash', ['prova.sh']);&lt;br /&gt;
&lt;br /&gt;
ls.stdout.on('data', function(data) {&lt;br /&gt;
        console.log('Message: ' + data);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
ls.on('close', function(code, signal) {&lt;br /&gt;
        console.log('festival finished...');&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I per a què serveix això? Doncs perquè en el meu Magic Mirror vull fer sonar veus a través del Festival. Vull aprofitar mòduls que ja tingui instal·lats, per afegir-hi veus. I perquè m'agradaria crear un mòdul que es digués ''HoraCatalana'' que pugués dir ''són dos quarts i mig de set''.&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, març 2009, gener 2020&lt;br /&gt;
[[Categoria: Langtrainer]]&lt;br /&gt;
[[Categoria: Text-to-Speech]]&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
</feed>