Logo Mon Club Elec

Processing – Synthese vocale avec espeak lancé en ligne de commande depuis Processing

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

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

Le programme

  • Copier/coller ce programme dans Processing
  • Lancer l’exécution : vous devez entendre le texte synthétisé !
// Programme processing
// 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&#8208;
              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&#8208;
              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&#8208;
              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&#8208;
       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)

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
*/

 

Noter cet article

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Archive Mon Club Elec

Articles populaires

Newsletter

Inscrivez-vous maintenant et bénéficiez d'un soutien continu pour réaliser vos travaux électriques en toute sécurité.