Références tirées de [[https://doc.ubuntu-fr.org/synthese_vocale]] \\ [[http://rpihome.blogspot.fr/2015/02/installing-pico-tts.html]] \\ [[http://www.pobot.org/Synthese-vocale-avec-espeak-et.html]] \\ ** 1. PicoTTS = Svoxpico ** Prerequis : mettre ça dans /etc/apt/sources.list deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi deb-src http://mirror.ox.ac.uk/sites/archive.raspbian.org/archive/raspbian/ wheezy main contrib non-free rpi puis sudo apt-get update puis sudo apt-get install fakeroot debhelper automake autoconf libtool help2man libpopt-dev hardening-wrapper puis mkdir pico_build cd pico_build apt-get source libttspico-utils After downloading the sources, you should find a folder named like svox-1.0+git20110131 that will contain all the files. Note that the last part could be different, so please check before proceeding. cd svox-1.0+git20110131 dpkg-buildpackage -rfakeroot -us -uc If no errors arose during packages compilation, you should find four packages in the pico_build folder. Check by changing folder and listing files: cd .. ls These are the packages in my folder: \\ libttspico0_1.0+git20110131-2_armhf.deb libttspico-data_1.0+git20110131-2_all.deb libttspico-dev_1.0+git20110131-2_armhf.deb libttspico-utils_1.0+git20110131-2_armhf.deb To use the library you just need three of them, but they have to be installed in a specific order, so type: sudo dpkg -i libttspico-data_1.0+git20110131-2_all.deb sudo dpkg -i libttspico0_1.0+git20110131-2_armhf.deb sudo dpkg -i libttspico-utils_1.0+git20110131-2_armhf.deb Normalement c'est installé. Pour tester : pico2wave -l fr-FR -w /tmp/temp.wav "Il fait une température extérieure de : 15°" ; aplay /tmp/temp.wav Fonctionne bien, les voix sont propres et fluides. Malheureusement, il semble n'y avoir qu'une voix par langue. Les langues __semblent__ être définies dans le dossier suivant : /usr/share/pico/lang Mais malheureusement les fichiers sont dans un format bin ... ; et après pas mal de recherche sur google, rien à propos d'un paramétrage possible de l'outil ... ** 2. espeak ** sudo apt-get install espeak Exemples : quelques tests, qui fonctionnent plus ou moins bien (son pas terrible) espeak "Bonjour Benoît" -v french -s 200 -p 40 espeak -vfr "il est 12 heure et 7 minute" -s 120 -p 40 2>/dev/null espeak -vfr+3 "il est 12 heure et 7 minute" -s 120 -p 40 2>/dev/null espeak -vfr-fr "il est 12 heure et 7 minute" -s 120 -p 40 2>/dev/null echo "il est 12 heure et 7 minute" | espeak -vfr-fr -s 120 -p 40 2>/dev/null wget -q0 -http://www.confessions-voleur.net/confessions/node1.html | espeak -m -vfr+11 Le +11 permet de changer la voix Remarque : Dans le cas des caractère accentué fournis en UTF-8, il risque d'y avoir des pb car espeak et mbrola sont vieux et fonctionnent avec du iso8859-1. ==> on doit convertir l'encodage avant de passer les commandes : echo "vive les textes accentués" | iconv -t iso8859-1 -f utf8 - | commande espeak à faire écouter gespeaker : surcouche graphique de espeaker ** 3. mbrola ** \\ Le projet MBROLA est développé à la faculté Polytechnique de Mons, et comporte un grand nombre de langages/voix. Hélas MBROLA n'est pas libre. Pour l'installer, il suffit d'installer le paquet mbrola. \\ Pour ça, le site web est ici : [[http://tcts.fpms.ac.be/synthesis/mbrola/mbrcopybin.html]] \\ Par contre attention il faut prendre la version mbrola pour raspberry_pi \\ Récupérer la voix fr1 : [[http://tcts.fpms.ac.be/synthesis/mbrola/dba/fr1/fr1-990204.zip]] \\ Toutes les voix sont disponibles ici : [[http://tcts.fpms.ac.be/synthesis/mbrola/mbrcopybin.html]] Décompresser et installer le dossier fr1 de l'archive dans le répertoire __/usr/share/mbrola/__ Tester le code suivant, si ça produit le son, mbrola est bien installé mbrola /usr/share/mbrola/fr1/fr1 /usr/share/mbrola/fr1/TEST/bonjour.pho bonjour.wav ; aplay bonjour.wav Ce que j'ai compris, le fonctionnement de espeak avec mbrola est le suivant ; espeak effectue les actions suivantes : 1. traduit le texte en syllabes phonétique avec les paramètres langue et voix \\ 2. appelle mbrola pour construire un fichier son wav \\ 3. exécute la lecture de ce fichier wav \\ 4. le supprime \\ Dans le cas ou mbrola n'est pas appelé, espeak utilise son propre moteur de conversion phonétique-->wav, et s'attend à utiliser ses propres voix (définies dans /usr/lib/arm-linux-gnueabihf/espeak-data/) Remarque : Pour utiliser mbrola, les dossiers suivants de espeak sont importants : /usr/lib/arm-linux-gnueabihf/espeak-data/voices/mb : contient la définition des voix espeak qui utiliseront mbrola /usr/lib/arm-linux-gnueabihf/espeak-data/voices est en fait une arbo qui contient toutes les voix de espeak, y compris celles qui n'utilise pas mbrola. /usr/lib/arm-linux-gnueabihf/espeak-data/mbrola_ph : contient d'autres fichiers nécessaires pour appeler mbrola ... (les fichiers _phtrans ) D'autres dossiers mbrola existent /usr/share/mbrola/ : contient la définition des voix mbrola /usr/share/mbrola/voices /usr/share/doc/espeak-data (répertoire ne contenant aucune voix) Au final par déduction de test, on conclue que c'est l'arborescence __**/usr/lib/arm-linux-gnueabihf/espeak-data/voices**__ qui stocke les voix prise en compte par espeak. J'ai réussi à faire en sorte que espeak appelle mbrola en tapant la ligne de commande suivante après avoir défini le fichier /usr/lib/arm-linux-gnueabihf/espeak-data/voices/mb/fr1 espeak -v mb/fr1 "il est 12 heure" -x cat /usr/lib/arm-linux-gnueabihf/espeak-data/voices/mb/fr1 name french language fr-fr language fr gender male dictrules 1 stressLength 180 180 180 180 0 0 220 220 pitch 82 117 voicing 70 mbrola fr1/fr1 fr1_phtrans Ce fichier indique à espeak d'aller chercher la voix mbrola /usr/share/mbrola/voices/**fr1/fr1**. Il contient aussi un ensemble de paramètre de la voix synthétique - stressLength : vitesse de diction - pitch : tonalité - voicing : volume sonore Important : Visiblement espeak semble grésiller quand il utilise les voix mbrola. J'ai réussi à empêcher ces grésillements en découplant la génération du fichier wav et sa lecture. Ci-dessous la commande espeak -v mb/fr1 -x -s 110 "Coucou tout le monde. " -w ~/test.wav ; aplay ~/test.wav ** 4. festival ** \\ Festival est un synthétiseur vocal, pour lequel il n'existe apparemment pas de voix française directement pour l'instant ** 5. Par google ** \\ [[http://gladysproject.com/fr/article/faire-parler-le-raspberry]] Google Text to Speech Google’s Text to Speech engine is a little different to Festival and Espeak. Your text is sent to Google’s servers to generate the speech file which is then returned to your Pi and played using mplayer. This means you will need an internet connection for it to work, but the speech quality is superb. I used used ax206geek’s bash script to access the Google Text to Speech engine: Create a file speech.sh with: nano speech.sh Add these lines to the file and save it (in nano editor use CTRL-O writeOut) #!/bin/bash say() { local IFS=+;/usr/bin/mplayer -ao alsa -really-quiet -noconsolecontrols "http://translate.google.com/translate_tts?tl=en&q=$*"; } say $* Alternatively save from here: File:Speech.sh Add execute permissions to your script with: chmod u+x speech.sh Test it using: ./speech.sh Look Dave, I can see you're really upset about this.