Différences
Ci-dessous, les différences entre deux révisions de la page.
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 ! ;-) | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + |