La synthèse vocale est un outil puissant qui permet aux utilisateurs de générer des voix à partir de textes. Avec Processing et Espeak, il est possible de lancer la synthèse vocale en ligne de commande, ce qui offre aux développeurs une méthode simple et efficace pour intégrer des voix synthétiques dans leurs projets. Dans cet article, nous allons examiner comment utiliser Processing et Espeak pour créer des voix synthétiques en ligne de commande. Nous verrons comment configurer le logiciel, comment lancer la synthèse vocale et comment intégrer les résultats dans un projet Processing.
Processing Synthese vocale avec espeak lancé en ligne de commande depuis Processing

Explication
- Espeak est un logiciel de synthèse vocale, notamment en français, qui permet de réaliser de la synthèse vocale à partir d’une chaîne de caractères (Text to Speech – TTS). Ce logiciel offre la possibilité de paramétrer le type de voix (voix masculine, féminine ou spéciale), la vitesse, la hauteur de la voix, etc..
- Il existe une interface graphique de Espeak sous Ubuntu appelée Gespeaker et disponible depuis la logithèque Ubuntu. Noter qu’il est possible de créer des fichiers sons à partir de Gespeaker, utilisables avec Minim ou Mplayer.
- Ce programme suppose donc que espeak soit installé sur votre distribution Ubuntu. Le logiciel sera lancé depuis la ligne de commande.
Ressources utiles
- http://espeak.sourceforge.net/
- http://www.simple-linux.com/fr/gespeaker-une-interface-graphique-pour-espeak/
- http://doc.ubuntu-fr.org/synthese_vocale
Le programme
- Copier/coller ce programme dans Processing
- Lancer l’exécution : vous devez entendre le texte synthétisé !
// généré avec le générateur de code Processing
// www.mon-club-elec.fr
// par X. HINAULT – Mars 2011 – tous droits réservés
/////////////// Description du programme ////////////
// XXXXXXXXXXXXXXXXXXXXXX ENTETE DECLARATIVE XXXXXXXXXXXXXXXXXXXXXX
// inclusion des librairies utilisées
// déclaration objets
String[] command ;
// déclaration variables globales
// XXXXXXXXXXXXXXXXXXXXXX Fonction SETUP XXXXXXXXXXXXXXXXXXXXXX
void setup(){ // fonction d’initialisation exécutée 1 fois au démarrage
} // fin fonction Setup
// XXXXXXXXXXXXXXXXXXXXXX Fonction Draw XXXXXXXXXXXXXXXXXXXX
void draw() { // fonction exécutée en boucle
// — initialisation des objets et fonctionnalités utilisées —
direTexte(« moteur droit en marche avant, vitesse à 56 pour cent, et capteur de distance orienté à 92 degrès, objet détecté à 126 degrès. »);
delay(1000);
direTexte(« Voulez-vous votre café sucré ou salé ? (entre-nous, salé c’est dégueu) »);
delay(1000);
direTexte(« Latitude 30 degrès 15 minutes et 13 secondes Ouest – Vitesse = 126 kilomètres heures »);
delay(1000);
direTexte(« Vitesse de la lumière activée. Variation temporelle en cours d’acquisition. »);
delay(1000);
direTexte(« Il est exactement l’heure qu’il est à la seconde précise où je parle »);
delay(1000);
// test avec une variable
int valeur=3273;
direTexte(« La variable valeur vaut : » + str(valeur) + « soit en héxadécimal : » + hex(valeur));
direTexte(« Le nombre pi vaut : » + str(PI) );
while(true); // stoppe boucle draw
} // fin de la fonction draw()
// XXXXXXXXXXXXXXXXXXXXXX Autres Fonctions XXXXXXXXXXXXXXXXXXXXXX
void direTexte(String texte) {
// le paquet espeak doit etre installé sous Ubuntu (depuis la logithèque)
command = new String[8];
// espeak -v fr -s 140 « lecture texte espeak »
// espeak -v fr -s 80 -p 30 \ »moteur droit en marche avant\ »
command[0] = « espeak »;
command[1] = « -v »;
command[2]=« fr+m4 »;
// les voix sont dans /usr/share/espeak-data/voices/!v
// les variantes dispo sont : croak f1 f2 f3 f4 fast klatt klatt2 klatt3 m1 m2 m3 m4 m5 m6 m7 whisper
// pour utiliser une variante faire : espeak -ven+m3
command[3]=« -s »; // la vitesse
command[4]=« 120 »; // entre 30 et 200
command[5]=« -p »; // la tonalité
command[6]=« 30 »; // entre 0 et 99
command[7]=« \ »« +texte+« \ »« ; // le texte entre guillemets
//— exécution de la ligne de commande
try {
Process p = exec(command); // exécute la commande
//— récupère la sortie de la commande dans la console de Processing
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
}
catch (IOException e) {
e.printStackTrace();
}
}
/* >>>>>>>>>>>>>>>>>>>>>>>>> page man de espeak <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
ESPEAK(1) ESPEAK(1)
NAME
espeak – A multi-lingual software speech synthesizer.
SYNOPSIS
espeak [options] [<words>]
DESCRIPTION
espeak is a software speech synthesizer for English, and some other
languages.
OPTIONS
-h Show summary of options.
-f <text file>
Text file to speak
–stdin
Read text input from stdin instead of a file
If neither -f nor –stdin, <words> are spoken, or if none then text is
spoken from stdin, each line separately.
-q Quiet, don’t produce any speech (may be useful with -x)
-a <integer>
Amplitude, 0 to 20, default is 10
-l <integer>
Line length. If not zero (which is the default), consider lines
less than this length as and-of-clause
-p <integer>
Pitch adjustment, 0 to 99, default is 50
-s <integer>
Speed in words per minute, default is 160
-v <voice name>
Use voice file of this name from espeak-data/voices
-b Input text is 8-bit encoding
-m Indicates that the text contains SSML (Speech Synthesis Markup
Language) tags or other XML tags. Those SSML tags which are sup‐
ported are interpreted. Other tags, including HTML, are ignored,
except that some HTML tags such as <hr> <h2> and <li> ensure a
break in the speech.
-w <wave file name>
Write output to this WAV file, rather than speaking it directly
-x Write phoneme mnemonics to stdout
-X Write phonemes mnemonics and translation trace to stdout. If
rules files have been built with –compile=debug, line numbers
will also be displayed.
–stdout
Write speech output to stdout
–compile=<voice name>
Compile the pronunciation rules and dictionary in the current
directory. =<voice name> is optional and specifies which lan‐
guage
–path=<path>
Specifies the directory containing the espeak-data directory
–phonout=<filename>
Write output from -x -X commands and mbrola phoneme data to this
file
–punct= »<characters> »
Speak the names of punctuation characters during speaking. If
=<characters> is omitted, all punctuation is spoken.
-k <integer>
Indicate capital letters with: 1=sound, 2=the word « capitals »,
higher values = a pitch increase (try -k20).
–voices[=<language code>]
Lists the available voices. If =<language code> is present then
only those voices which are suitable for that language are
listed.
–compile=voicename
Compile the pronunciation rules and dictionary in the current
directory. =<voice name> is optional and specifies which lan‐
guage
–compile=debug
Compile the pronunciation rules and dictionary in the current
directory as above, but include line numbers, that get shown
when -X is used.
AUTHOR
eSpeak was written by Jonathan Duddington <jonsd@jsd.clara.co.uk>. The
webpage for this package can be found at http://espeak.source‐
forge.net/.
This manual page was written by Luke Yelavich <themuso@ubuntu.com>, for
the Ubuntu project (but may be used by others).
July 25, 2007 ESPEAK(1)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
*/
Articles similaires:
- Processing Synthèse vocale avec espeak : annonce vocale de l’adresse IP de l’interface wifi.
- Processing Synthèse vocale avec espeak : annonce vocale de l’adresse IP de l’interface wifi et éthernet sous Ubuntu.
- Programme GLAP-Box : Test de la synthèse vocale
- Processing Ligne de commande programmée : récupérer l’adresse IP de l’interface wifi wlan0
- GLAP-Box : Programme de test : Tester la synthèse vocale dans un programme Processing
Articles Liés
- jQuery :
jQuery est une bibliothèque JavaScript open source très populaire qui permet aux développeurs web de…
- Processing Synthèse vocale avec espeak : annonce vocale de l'adresse IP de l'interface wifi.
La synthèse vocale est un outil très pratique qui permet aux utilisateurs de communiquer avec…
- Javascript : Graphique Dygraphs simple
Le Javascript est un langage de programmation très populaire et puissant qui permet aux développeurs…