Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
espeak [Le 17/04/2016, 09:56]
L'Africain créée
espeak [Le 17/04/2016, 21:40]
L'Africain page terminée
Ligne 1: Ligne 1:
-{{tag>portail ​accessibilité audio multimédia ​BROUILLON}}+{{tag>Trusty ​accessibilité audio multimédia}}
  
 ---- ----
  
-====== ​Synthetiseur ​vocale eSpeak ====== +====== ​Synthétiseur ​vocale eSpeak ====== 
-=====Pré-requis=====+**eSpeak**, écrit en C++, est un logiciel de synthèse vocale pour l'​anglais et certaines autres langues, dont le français.\\ 
 + Il utilise une méthode de synthèse différente des autres moteurs libres de synthèse vocale, et a un son assez différent. Il n'est peut-être pas aussi naturel ou "​fluide",​ mais certains trouvent l'​articulation plus claire et plus facile à écouter sur de longues périodes. 
 + 
 +Il peut être lancé en ligne de commande pour lire un texte depuis un 
 +fichier. 
 + 
 +  * Comprend différentes voix, dont les caractéristiques peuvent être modifiées. 
 +  * Peut produire une sortie vocale sous forme de fichier **WAV**. 
 +  * Peut traduire un texte en codes de phonèmes, afin qu'il soit adapté en donnée d'​entrée pour un autre moteur de synthèse vocale. 
 +  * Plus de 40 langues sont comprises. 
 +  * Taille compacte, le programme et ses données totalisent environ 350 ko. 
 + 
 +===== Pré-requis ===== 
 +  
 +  * Disposer des [[:​sudo|droits d'​administration]]. 
 +  * Disposer d'une connexion à Internet configurée et activée. 
 =====Installation===== =====Installation=====
-Ce synthétiseur vocal étant disponible dans les dépôts ​Ubuntu il vous suffira d'​[[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] **[[apt>Espeak]]**.+Ce synthétiseur vocal est installé par défaut sur Ubuntu, si vous souhaitez l'​utiliser sur une [[:​variante]] d'Ubuntu il vous suffira d'​[[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] **[[apt>espeak]]**. Pour avoir une interface graphique [[:​tutoriel:​comment_installer_un_paquet|installez le paquet]] **[[apt>​espeak-gui]]**.
  
 =====Utilisation===== =====Utilisation=====
Ligne 12: Ligne 28:
 soit directement en ligne de commande : <​code>​espeak -v fr "Votre texte à lire..."</​code>​ soit directement en ligne de commande : <​code>​espeak -v fr "Votre texte à lire..."</​code>​
 ou encore par un "​[[:​diagnostic#​commande|pipe]]"​ sur la sortie standard : <​code>​echo "Lis mon texte" | espeak -v fr</​code>​ ou encore par un "​[[:​diagnostic#​commande|pipe]]"​ sur la sortie standard : <​code>​echo "Lis mon texte" | espeak -v fr</​code>​
- 
-Lire une page html (c'est pas parfait mais l'​option -m permet d'​éviter la lecture des tags HTML) : wget -q0 -http://​www.confessions-voleur.net/​confessions/​node1.html | espeak -m -vfr+11 
  
 L'​option **-v** définit la langue/voix à utiliser. D'​autres options peuvent être utiles, comme l'​option **-s** qui permet de définir le nombre de mots par minutes, ou **-p** qui règle la hauteur (grave/​aigu) de la voix. Pour plus d'​options : <​code>​espeak --help</​code>​ L'​option **-v** définit la langue/voix à utiliser. D'​autres options peuvent être utiles, comme l'​option **-s** qui permet de définir le nombre de mots par minutes, ou **-p** qui règle la hauteur (grave/​aigu) de la voix. Pour plus d'​options : <​code>​espeak --help</​code>​
  
-Malheureusement,​ le rendu d'​Espeak n'est pas exceptionnel. Il est possible d'​obtenir de meilleurs résultats, notamment en le combinant avec [[#​MBROLA]].+Malheureusement,​ le rendu d'​Espeak n'est pas exceptionnel. Il est possible d'​obtenir de meilleurs résultats, notamment en le combinant avec [[:​synthese_vocale#MBROLA|Mbrola]]. 
  
 +==== Combinaison MBROLA avec espeak ====
 +
 +[[:​synthese_vocale#​Mbrola|MBROLA]] ne fait pas directement la transformation de texte en voix. Il traite des fichiers de phonèmes. Une autre application,​ capable de décomposer du texte en phonème est donc nécessaire.
 +Les voix de Mbrola donnent un rendu plus naturel que les voix de eSpeak (lesquelles sont très "​robotiques"​),​ d'où l'​intérêt de combiner les deux.
 +Si les bonnes Mbrola voix onté été installé vous pouvez les utiliser directement avec eSpeak: <​code>​espeak -v mb/mb-fr1 -f votre_fichier_texte</​code>​
 +La voix féminine fr4 reste masculine si on n'​utilise pas la commande mbrola.
 +
 +Pour plus d'​information sur les options disponibles : <​code>​man mbrola</​code>​
 +
 +====Création de fichier avec phonème====
 +On peut aussi traduire un texte en phonèmes, en passant à l'​option **-v** les arguments **mb/​mb-fr1** (voix masculine) ou **mb/​mb-fr4** (voix féminine). On crée un fichier de phonème dans un format compatible avec Mbrola avec la commande: <​code>​espeak -v mb/mb-fr4 -f votre_fichier_texte --pho  --phonout=bonjour.pho</​code>​
 +
 +Par exemple, le fichier qui contenait le mot ''​bonjour'',​ donne à la sortie le fichier ''​bonjour.pho'',​ qui suit :
 +<​file>​
 +; bO~Z'​ur
 +
 +b 65
 +
 +o~ 35 0 94 20 95 40 96 59 97 80 99 100 99
 +
 +Z 65
 +
 +u 40 0 117 80 109 100 109
 +
 +R 65
 +</​file>​
 +
 +Le fichier .pho (qui est un fichier texte éditable) comprendre sur chaque ligne : un phonème suivi de sa durée suivi éventuellement d'​indications de hauteur.
 +
 +Pour faire ensuite parler l'​ordinateur,​ il suffit de lire les phonèmes avec MBROLA et de rediriger la sortie soit :
 +  * vers un lecteur audio : <​code>​mbrola /​usr/​share/​mbrola/​voices/​fr1 texte.pho -.au | aplay</​code>​
 +  * vers un fichier wav : <​code>​mbrola /​usr/​share/​mbrola/​voices/​fr1 texte.pho texte.wav</​code>​
 +
 +Ou bien en une commande on peut aussi directement envoyer à Mbrola la sortie standard :
 +  espeak -v mb/mb-fr1 -f votre_fichier_texte --pho | mbrola /​usr/​share/​mbrola/​voices/​fr1 - -.au | aplay
 +
 +=====Problème connu=====
 Si vous recevez le message d'​erreur "​bt_audio_service_open:​ connect() failed: Connection refused (111)",​ enlevez le paquet bluez-alsa (support bluetooth audio). Si vous recevez le message d'​erreur "​bt_audio_service_open:​ connect() failed: Connection refused (111)",​ enlevez le paquet bluez-alsa (support bluetooth audio).
  
Ligne 41: Ligne 93:
 (après avoir installé paplay via pulseaudio-utils, ​ : [[http://​askubuntu.com/​questions/​82118/​espeak-returns-error-on-ubuntu-server|source]]) (après avoir installé paplay via pulseaudio-utils, ​ : [[http://​askubuntu.com/​questions/​82118/​espeak-returns-error-on-ubuntu-server|source]])
  
-==== MBROLA ​====+===== Désinstallation ​===== 
 +  
 +Pour supprimer cette application,​ il suffit de [[:​tutoriel:​comment_supprimer_un_paquet|supprimer son paquet]]. Selon la méthode choisie, la configuration globale de l'​application est conservée ou supprimée. Les journaux du système, et les fichiers de préférence des utilisateurs dans leurs dossiers personnels sont toujours conservés.
  
-Le projet **[[http://​tcts.fpms.ac.be/​synthesis/​mbrola.html|MBROLA]]** est développé à la faculté Polytechnique de Mons, et comporte un grand nombre de langages/​voix. Hélas MBROLA [[http://​eupat.ffii.org/​pikta/​xrani/​mbrola/​index.fr.html|n'​est pas libre]].+===== Voir aussi =====
  
- +**[[http://espeak.sourceforge.net/|Site officiel d'Espeak]]**.
-Pour l'​installer,​ il suffit d'​[[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] ​**[[apt>​mbrola]]**. +
- +
-Un certain nombre de voix pour mbrola - pour diverses langues - sont présentes dans les [[:depots|dépôts officiels]],​ pour les installer faites une recherche dans votre [[:​gestionnaire de paquets]] avec me mot clé **Mbrola**.\\ +
-Par défaut les voix de mbrola s'​installent dans **/usr/share/​mbrola/​**. Pour le français il existe fr1, une voix masculine, et fr4 une voix féminine. +
-Si vous les mettez ailleurs, ​espeak ​(voir plus bas) ne les trouvera pas. +
- +
-Si vous souhaitez ajouter d'​autres voix, elles sont téléchargeables depuis le  [[http://​tcts.fpms.ac.be/synthesis/​mbrola/​mbrcopybin.html|site officiel]]. Extraire le fichier zip dans **/​usr/​share/​mbrola/​** (Attention : les fichiers voix "​fr1"​ "​fr2"​ ... ne doivent pas être dans un sous répertoire,​ ils doivent être directement sous .../​voices/​). +
- +
-Les voix françaises de [[http://​tcts.fpms.ac.be/​synthesis/​mbrola/​mbrcopybin.html|mbrola]] (non libre): +
-  * [[http://​tcts.fpms.ac.be/​synthesis/​mbrola/​dba/​fr1/​fr1-990204.zip|Voix Mbrola FR1]] : homme, Faculte Polytech. De Mons. +
-  * [[http://​tcts.fpms.ac.be/​synthesis/​mbrola/​dba/​fr2/​fr2-980806.zip|Voix Mbrola FR2]] : Femme, Celine Egea +
-  * [[http://​tcts.fpms.ac.be/​synthesis/​mbrola/​dba/​fr3/​fr3-990324.zip|Voix Mbrola FR3]] : homme, Babel Technology +
-  * [[http://​tcts.fpms.ac.be/​synthesis/​mbrola/​dba/​fr4/​fr4-990521.zip|Voix Mbrola FR4]] : femme, Babel Technology +
-  * [[http://​tcts.fpms.ac.be/​synthesis/​mbrola/​dba/​fr5/​fr5-991020.zip|Voix Mbrola FR5]] : homme, belge, Faculte Polytech. De Mons +
-  * [[http://​tcts.fpms.ac.be/​synthesis/​mbrola/​dba/​fr6/​fr6-010330.zip|Voix Mbrola FR6]] : homme, ​ Faculte Polytech. De Mons +
-  * [[http://​tcts.fpms.ac.be/​synthesis/​mbrola/​dba/​fr7/​fr7-010330.zip|Voix Mbrola FR7]] : homme belge , Faculte Polytech. De Mons, +
-  * [[http://​tcts.fpms.ac.be/​synthesis/​mbrola/​dba/​ca1/​ca1.zip|Voix québecois 1]] : homme,​Vincent Arnaud, +
-  * [[http://​tcts.fpms.ac.be/​synthesis/​mbrola/​dba/​ca2/​ca2.zip|Voix québecois 2]] : homme, Silex Creations Inc. +
- +
- +
-MBROLA est également disponible sous forme de fichiers binaires téléchargeables [[http://​tcts.fpms.ac.be/​synthesis/​mbrola/​mbrcopybin.html|première partie de la page]]. ((Il y a aussi des « .deb » [[http://​tcts.fpms.ac.be/​synthesis/​mbrola/​mbrcopybin.html|ici]] (troisième ligne linux), je sais pas ce qu'il y a dedans...)) On extrait le fichier qui correspond à son [[architecture matérielle|architecture]] (le plus souvent i386) dans un répertoire au choix, de préférence /usr/bin/ (là où se fait l'​installation par les dépôts). +
- +
-=== Combinaison avec espeak === +
- +
-MBROLA ne fait pas directement la transformation de texte en voix. Il traite des fichiers de phonèmes. Une autre application,​ capable de décomposer du texte en phonème est donc nécessaire. +
-Les voix de mbrola donnent un rendu plus naturel que les voix de espeak (lesquelles sont très "​robotiques"​), ​d'où l'​intérêt de combiner les deux. +
- +
-Avec [[#espeak]] préalablement installé, on peut traduire un texte en phonèmes, en passant à l'​option ​**-v** les arguments **mb/​mb-fr1** (voix masculine) ou **mb/​mb-fr4** (voix féminine)On crée un fichier de phonème dans un format compatible avec mbrola : +
- +
-  espeak -v mb/mb-fr4 -f votre_fichier_texte --pho  --phonout=texte.pho +
-   +
-<note important>​Pour être compatible avec mbrola, le fichier .pho (qui est un fichier texte éditable) doit comprendre sur chaque ligne : un phonème suivi de sa durée suivi éventuellement d'​indications de hauteur. Mettre en commentaire avec ; les autres lignes. Voir exemple ci-dessous.</​note>​+
 ---- ----
-Fichier exemple : bonjour.pho +//Contributeurs principaux ​: [[:utilisateurs:l_africain|L'Africain]]// 
- + 
-; bO~Z'​ur +
- +
-b 65 +
- +
-o~ 35 0 94 20 95 40 96 59 97 80 99 100 99 +
- +
-Z 65 +
- +
-u 40 0 117 80 109 100 109 +
- +
-R 65 +
----- +
- +
- +
- +
-Pour faire ensuite parler l'​ordinateur,​ il suffit de lire les phonèmes avec MBROLA et de rediriger la sortie soit vers un lecteur audio : +
-  mbrola ​/usr/share/​mbrola/​voices/​fr1 texte.pho -.au | aplay +
-ou pour passer par pulseaudio +
-  mbrola /​usr/​share/​mbrola/​voices/​fr1 texte.pho -.au | paplay +
-soit vers un fichier wav : +
-  mbrola /​usr/​share/​mbrola/​voices/​fr1 texte.pho texte.wav +
- +
-À la place d'​utiliser un fichier contenant des phonèmes, on peut aussi directement envoyer à Mbrola la sortie standard : +
-  espeak -v mb/mb-fr1 -f votre_fichier_texte --pho | mbrola /​usr/​share/​mbrola/​voices/​fr1 - -.au | aplay +
- +
-ou +
- +
-  espeak -v mb/mb-fr1 'votre texte ici' --pho | mbrola /​usr/​share/​mbrola/​voices/​fr1 - -.au | aplay +
-   +
-<note help>​Apparemment il n'y a pas besoin d'​invoquer mbrola : espeak peut utiliser les voix mbrola lui-même (si elles ont été installées au bon endroit) : <​code>​espeak -v mb/mb-fr1 -f votre_fichier_texte</​code>​ +
-La voix féminine fr4 reste masculine si on n'​utilise pas la commande mbrola.</​note>​ +
- +
-Pour plus d'​information sur les options disponibles : +
-  man mbrola +
- +
----- +
- +
-<note warning>​Il semble que l'​expression "on a" génère un phonème "​n2"​ illisible par Mbrola. Pour contourner ce problème si vous l'avez également, voir ci-dessous</​note>​ +
-== Solution n°1 == +
-On peut ajouter les options((cf paragraphe « Renaming and Cloning phonemes » voir [[http://​nautilux.physik.uni-freiburg.de/​~eric/​kabuff/​texte/​vocal/​mbrola.html|ce message en anglais]] ou [[http://​stuff.mit.edu/​afs/​sipb/​user/​kenta/​festival/​mbrola/​readme.txt|idem]])) -e, -C et -R à Mbrola : +
-  * -e    = IGNORE fatal errors on unkown diphone +
-  * -C CL = Phoneme CLONE list of the form a A b B ... +
-  * -R RL = Phoneme RENAME list of the form a A b B ... +
-exemple : <​code>​mbrola -e -C "n n2 s z3" /​opt/​fr2/​fr2 - -.au</​code>​ +
-== Solution n°2 == +
-substituer (commande « s ») à l’aide des expressions rationnelles/​régulières de [[sed]] aux deux codes de phonèmes problématiques (en début de ligne), « n2 » et « z3 » respectivement « n » et « s » : +
-<​code>​[entrée] | sed -e "s/^n2 /n /"| sed -e "s/^z3 /s /" | [sortie]</​code>​ +
-« ^ » dénotant le début de ligne. +
- +
-Soit : +
-<​code>​espeak -v mb/​mb-fr1 ​'votre texte ici' | sed -e "s/^n2 /n /"| sed -e "s/^z3 /s /" | mbrola /​usr/​share/​mbrola/​voices/​fr1 - -.au | aplay</​code>​ +
-NB cette solution n’implique pas l’emploi d’un fichier de phonèmes intermédiaire +
-== Solution n°3 == +
-1- Il vous faudra dans ce cas procéder en 2 étapes, créez un fichier des phonèmes de votre texte à lire par : +
-  espeak -v mb/mb-fr1 -f "​votre_fichier_texte"​ > texte.pho +
-ou +
-  espeak -v mb/mb-fr1 "votre texte à lire ici..."​ > texte.pho +
- +
-2- Envoi des phonèmes (corrigés au passage) vers Mbrola puis aplay pour lecture. +
-  diphorect.sh "​texte.pho"​ | mbrola /​opt/​fr1/​fr1 - -.au | aplay +
-<note help>Il vous faudra au préalable installer le script "​diphorect"​ sur votre ordinateur comme indiqué ci-dessous</​note>​ +
- +
-=== Installation du script diphorect === +
-FIXME mes tests ne me pose pas de problème. +
-== script de conversion du phonème problématique "​n2"​ == +
- +
-[[:​tutoriel:​comment_modifier_un_fichier|Créez (avec les droits administrateur) le fichier]] /usr/​bin/​diphorect.sh +
- +
-Copiez et collez le script que vous trouverez ici : +
- +
-[[http://​forum.ubuntu-fr.org/​viewtopic.php?​pid=3686164#​p3686164|Forum,​ sujet Diphorect]] +
- +
-Ensuite rendez le script exécutable par : +
-  sudo chmod +x /usr/bin/diphorect.sh +
- +
-Et voilà, vous êtes prêt ! ;-) +
- +
- +
- +
- +
- +
  • espeak.txt
  • Dernière modification: Le 08/08/2023, 23:39
  • par Benjamin Loison