{{tag>portail accessibilité audio multimédia}} ---- ====== Synthèse vocale ====== La **synthèse vocale** (ou TTS, pour //Text To Speech//) consiste à transformer un texte en suite de sons se rapprochant autant que possible de la parole humaine. Une des applications les plus évidentes de la synthèse vocale est l'accessibilité pour les mal-voyants. Il existe plusieurs synthétiseurs vocaux sous Linux, cette page ne se veut pas exhaustive. La synthèse vocale procède en trois temps : - transformation du texte en [[wpfr>Phonème|phonèmes]] ; - [[wpfr>Prosodie]] (ajout d'informations de prononciation : accents toniques, indication de durée, etc.) ; - assembler des sons pré-enregistrés en suivant les règles établies par les deux premières étapes. Pour en savoir plus : [[wpfr>Synthèse_vocale|Wikipedia]] (fr), [[http://download.gna.org/lliaphon/devguide.pdf|Llia-Phon]] (fr). Ce document a pour but de présenter la mise en œuvre de quelques solutions. Comme la [[:reconnaissance vocale]] va de pair avec la **synthèse vocale** vous serez sans doute intéressé par le site [[http://www.voxforge.org/fr|VoxForge.org]]. Vous pouvez y enregistrer un texte qui permettra d'intégrer votre voix dans les modèles de reconnaissance vocale, et ainsi les améliorer. Certains logiciels libres sont compatibles avec les voix Windows (dont certaines peuvent être libres, ou gratuites pour une utilisation non commerciale, voir [[:synthese_vocale#ressources_des_voix|ressources]]). ===== Logiciels de synthèse vocale ===== ====Svoxpico==== [[:Svoxpico]]: le lecteur vocal d'Android, de loin celui qui donne les meilleurs résultats, permet de lire n'importe quelle sélection, ====eSpeak==== * [[:Espeak]] est disponible dans les dépôts, il propose une voix plutôt "robotique", mais combiné avec mbrola, il peut donner de bons résultats. *[[:Gespeaker]] : Interface graphique à eSpeak, pour faire lire le texte que vous tapez dans une case texte. * **[[apt>espeak-gui]]** : Autre interface utilisateur graphique pour l'utilisation d'eSpeak, les résultats semblent de meilleure qualité. ====Festival==== * **[[http://www.cstr.ed.ac.uk/projects/festival/|Festival]]** est un synthétiseur vocal, pour lequel il n'existe apparemment pas de voix française directement pour l'instant ([[http://phantomsdad.blogspot.com/2005/06/ktts-and-french-connection.html|avis aux amateurs]]...). Mais il existe un [[wpfr>Fork (développement logiciel)|fork]] pour festival afin d'avoir les voix françaises : Où ? De même festival peut utiliser les voix françaises de Mbrola - (et Sapi).\\ Il peut fonctionner en mode interactif, même si ça n'a pas l'air très intuitif de prime abord...\\ Pour l'installer, il suffit d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>festival]]**, et [[apt>festvox-rablpc16k|d'autres voix anglaises]]. (voir également [[wpfr>Festival Speech Synthesis System|plus d'information relative sur wikipedia]]) Pour l'utiliser entrez la commande suivante dans un [[terminal]] : echo "That's really a pity I'm not able to speak French" | festival --tts Pour connaître les options : festival --help Si vous obtenez une erreur du type ''can't open /dev/dsp'', réessayez après avoir fermé toutes les applications (y compris les pages internet nécessitant certains plugins) utilisant le son. On peut éviter le ''can't open /dev/dsp'' en redirigeant le son vers ALSA. Pour cela, on demande à festival de sortir le son avec aplay. On [[:tutoriel:comment_modifier_un_fichier|Créez le fichier]] [[:fichier_cache|caché]] **.festivalrc** dans votre **Dossier personnel** avec le contenu suivant : (Parameter.set 'Audio_Command "aplay -t wav -r $SR $FILE") (Parameter.set 'Audio_Method 'Audio_Command) (Parameter.set 'Audio_Required_Format 'wav) ==== MBROLA ==== 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]]. 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**.\\ 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, comme [[:eSpeak]]. Les voix de Mbrola donnent un rendu plus naturel que celles de eSpeak (lesquelles sont très "robotiques"), d'où l'intérêt de combiner les deux. 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]] 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]]. [[[[:archivage#graphiquement|Extraire]] le fichier zip dans **/usr/share/mbrola/**. 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)...)) On extrait le fichier qui correspond à son [[:architecture matérielle|architecture]] dans un répertoire au choix, de préférence /usr/share/mbrola (là où se fait l'installation par les dépôts). ====Autres==== * [[:Orca]] : outil par défaut d'Ubuntu, fonctionne avec les programmes couramment utilisés (Navigateur web, Office, Client mail, terminal, etc.) * [[:abuledu-volubil|Volubil]] : outil destiné aux enfants. * [[https://github.com/BullShark/JSpeak|Jspeak (GPLv3)]] lecteur de presse-papier écrit en [[:java]], attention peut faire planter votre session!! * [[http://www.letime.net/vocale|Im3jo]] synthétiseur musical et vocal, une application sur le temps jo fixe a deux octets par front, un exemple d'étude sur un système à 2 dimensions. Destiné aux enfants pour jouer avec la musique, il donne aussi la possibilité de modifier la voix en fichier texte. ==== Logiciels en console ==== * **[[apt>yasr]]** : Yasr est un lecteur d'écran polyvalent en console pour GNU/Linux et d'autres systèmes d'exploitation de style Unix, * **[[apt>screader]]** : Le programme de fond screader lit l'écran et transmet l'information à un paquet de synthèse vocale logicielle (Comme « festival ») ou à un synthétiseur vocal matériel. * **[[apt>eflite]]** (emacspeak) s'utilise avec Festival, donc seulement en anglais pour l'instant. =====Synthèse vocale intégrée à certaines applications===== ==== Synthèse vocale dans Pidgin==== La synthèse vocale dans Pidgin avec : * [[apt://pidgin-festival|pidgin-festival]] : s'installe en 1 clic (installe Festival et Pidgin s'ils ne sont pas déjà installés). Vous pouvez déjà activer le plugin dans Pidgin, mais vous n'aurez qu'une voix anglaise. Il vous reste donc à installer une voix française et la sélectionner. ==== Dans le dictionnaire Stardict==== Vous pouvez installer : * [[apt>stardict-plugin-festival|le plugin Festival]] * [[apt>stardict-plugin-espeak|le plugin Espeak]] ==== Dans le dictionnaire Goldendict==== [[:Goldendict]] est un peu le remplaçant de [[:Stardict]] il permet aussi, dans sa dernière version, d'intégrer un synthétiseur vocale, Pour cela : * Installez [[:eSpeak]] et éventuellement [[#Mbrola]] * Appuyer sur F3 pour ouvrir la fenêtre des dictionnaires * Dans l'onglet //Sources// selectionnez //Programmes// * Cliquez sur //Ajouter//, dans //Type// mettez //Audio// et dans //Ligne de commande// ''espeak -v f %GDWORD%'' ou ''espeak -v mb/mb-fr1 -f %GDWORD%'' si vous souhaitez utiliser Mbrola. * Fermez et rouvrez Goldendict, vous trouverez maintenant une catégorie dans vos dictionnaires avec un icône d'haut-parleur devant le mot recherché. Si vous souhaitez ajouter la lecture en d'autres langues, modifiez la commande **f** par celle de la langue souhaitée. ====Synthèse vocale dans LibreOffice ou Apache Openoffice ==== Il suffit d'installer l'extension [[http://extensions.libreoffice.org/extension-center/read-text|readtext]]. Il fonctionne avec [[:Svoxpico]] mais est compatible avec Festival et Espeak. Une fois [[:libreoffice#installer_une_extension|l'extension installée dans LibreOffice]], vous trouverez une icône dans votre barre d'outils en haut à gauche: {{:accessibilite:readtext.png}} Pour l'utiliser, sélectionner le texte à lire, cliquez sur l'icône (la bulle noire), une fenêtre s'ouvre, cliquez sur **OK**. ====Synthèse vocale dans Firefox ==== Avec [[:Svoxpico]] l'ajout d'une extension est inutile, **Pico** faisant déjà le travail de lecture.\\ Cependant sachez qu'il existe différents modules qui permettent la synthèse vocale des pages consultées : * [[https://addons.cdn.mozilla.net/user-media/addons/9759/foxvox-1.7.9.1-fx-linux.xpi?filehash=sha256%3Acd1ca1aeefa654065390af9b680d00d375d43a4bdc871b9ea719565af20dc8bd|foxvox]] * [[https://addons.cdn.mozilla.net/user-media/addons/91405/text_to_voice-1.15-fx.xpi?filehash=sha256%3A26dd98884c6cc97dff5c665ac5dc77914530b5ce2dff0aef3b0fef310a9e9f5d|Text to voice]] Depuis la version 49, le mode Lecture s'agrémente de la parole intégrée dans le navigateur et s'appuyant sur la distribution, etc : Détails sur [[https://blog.mozfr.org/post/2016/09/Mozilla-Firefox-49|le Blog de MozFr]] ; Vous pouvez également utiliser Mathspeak pour la lecture de formule mathématique.\\ Faites une recherche dans les modules complémentaires pour voir les différents choix possibles. ====Synthèse vocale dans Chromium ==== Avec [[:Svoxpico]] l'ajout d'une extension est inutile, **Pico** faisant déjà le travail de lecture.\\ Cependant sachez qu'il existe différentes extensions qui permettent la synthèse vocale des pages consultées : Installez l'extension [[https://chrome.google.com/webstore/detail/speak-text/dchmahpmnpogmfofejmdndonfljkjhdm?hl=fr|SpeakIt]] ou claroRead Chrome. Faites une recherche dans les extensions Chrome pour voir les différents choix possibles. ===== Intégration dans l'environnement de bureau ===== Il est possible d'intégrer ces solutions dans votre environnement de bureau, afin de faire lire le contenu des répertoires ou des pages internet par exemple. ==== Sous Unity et Gnome==== Par défaut sous [[:Unity]] et [[:Gnome]] en général, [[:Orca]] permet de lire le contenu affiché à l'écran. Ce qui suit sont des alternatives, à travers des scripts à intégrer à l'environnement Gnome. Pensez à adapter la configuration du script à votre convenance. Les scripts qui suivent doivent être intégrés à [[:nautilus_scripts|nautilus-scripts]] pour leur utilisation. FIXME Comment les arrêter? Refaire cette opération pendant la lecture en cours interrompra la lecture. * Lire le texte sélectionné à l'écran : FIXME Semble ne pas fonctionner ? Pour utiliser ce script, il faut [[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>xclip]]**, puis l'enregistrez selon les indications de cette [[:nautilus_scripts|page]] en lui donnant le nom ''LecteurdeSelection.sh'': #!/bin/bash ##### Affiche le menu Zenity ##### choix=`zenity --list --title="Choisissez la langue" --column="N°" --column="Langue" --height="200" \ 1 français \ 2 anglais ` ##### Sélection automatique de la langue choisie dans le menu Zenity ##### case $choix in 1 ) VOIX=/usr/share/mbrola/fr4/fr4 && TYPE=mb/mb-fr4 ;; # pour une voix de femme en français 2 ) VOIX=/usr/share/mbrola/us1/us1 && TYPE=mb/mb-us1 ;; # pour une voix de femme en anglais esac # on teste si la lecture est en cours, pour l'arrêter le cas échéant if [ ! -z $(ps -A | grep mbrola | awk '{ print $1 }' ) ]; then kill $(ps -A | grep mbrola | awk '{ print $1 }' ) && sleep 2 fi # On traduit la sélection en phonèmes grâce à Espeak, et on l'envoie à Mbrola xclip -o | espeak -v $TYPE -s 150 -p 40 "$@" | mbrola $VOIX - -.au | aplay * Lire le contenu d'un fichier texte : Pour lire le contenu d'un fichier, enregistrez ce qui suit selon les indications de cette [[:nautilus_scripts|page]] en lui donnant le nom ''Readfile.sh'': #!/bin/bash ######### Début de la section de configuration ######### # définition de la voix à utiliser par Mbrola, à adapter selon la voix choisie et son chemin : VOIX=/usr/share/mbrola/fr4/fr4 #VOIX=/usr/share/mbrola/fr1/fr1 # à décommenter si vous vous voulez une voix d'homme TYPE=mb/mb-fr4 # TYPE=mb/mb-fr1 # à décommenter si vous vous voulez une voix d'homme ######### Fin de la section de configuration ######### # on teste si la lecture est en cours, pour l'arrêter le cas échéant if [ ! -z $(ps -A | grep mbrola | awk '{ print $1 }' ) ]; then kill $(ps -A | grep mbrola | awk '{ print $1 }' ) else # On traduit le fichier en phonèmes grâce à espeak, et on l'envoie à Mbrola espeak -v $TYPE -s 150 -f "$@" | mbrola $VOIX - -.au | aplay fi * Lire la liste des éléments contenus dans un dossier : Pour lire le contenu d'un fichier, enregistrez ce qui suit selon les indications de cette [[:nautilus_scripts|page]] en lui donnant le nom ''ReadFolder.sh'': #!/bin/bash ######### Début de la section de configuration ######### # définition de la voix à utiliser par Mbrola, à adapter selon la voix choisie et son chemin VOIX=/usr/share/mbrola/fr4/fr4 TYPE=mb/mb-fr4 # si vous avez téléchargé une voix de femme # TYPE=mb/mb-fr1 # à décommenter si vous vous voulez une voix d'homme ######### Fin de la section de configuration ######### # on teste si la lecture est en cours, pour l'arrêter le cas échéant if [ ! -z $(ps -A | grep mbrola | awk '{ print $1 }' ) ]; then kill $(ps -A | grep mbrola | awk '{ print $1 }' ) else #On liste les fichiers contenus dans le répertoire ou bien ceux sélectionnés par la souris FICHIERS=`ls -1 --quoting-style=c "$@"` for TEXTE in $FICHIERS do # On traduit le fichier texte temporaire en phonèmes grâce à Espeak, et on l'envoie à Mbrola espeak -v $TYPE -s 140 -p 40 $TEXTE | mbrola $VOIX - -.au | aplay done fi * Lire le contenu du presse papier ou de la sélection à l'aide d'un raccourci clavier : FIXME ne semble pas fonctionner? * [[:tutoriel:comment_installer_un_paquet|installez les paquets]] **[[apt>xclip,recode,xbindkeys|xclip recode xbindkeys]]**. * Enregistrez le script [[http://forum.ubuntu-fr.org/viewtopic.php?pid=3686193#p3686193|suivant]], toujours avec [[:Nautilus_scripts|Nautilus-scripts]] À partir de là vous pouvez faire lire votre sélection de texte ou le contenu du presse-papier (texte copié par [Ctrl+C] par exemple) en cliquant avec le bouton droit sur le bureau ou une fenêtre nautilus et en choisissant "scripts / lit le contenu..." Pour définir un raccourci clavier reportez-vous à la page [[:xbindkeys]]. Voici une liste de fil traitant de divers scripts comportant tous une synthèse vocale : * [[http://forum.ubuntu-fr.org/viewtopic.php?id=413946|Script de diction de l'heure]] * [[http://forum.ubuntu-fr.org/viewtopic.php?id=413943|Script de diction du pourcentage de batterie restant]] * [[http://forum.ubuntu-fr.org/viewtopic.php?id=413944|Réglage du volume avec assistance vocale]] * [[http://forum.ubuntu-fr.org/viewtopic.php?id=413945|Consultation de la boite Gmail]] * [[http://forum.ubuntu-fr.org/viewtopic.php?id=413950|Aide à la navigation Nautilus]] ==== Sous KDE ==== Grâce à **kttsd** KDE offre une manière élégante et simple de lire du texte affiché à l'écran mais par défaut il utilise [[#Festival]], il n'y a donc pas de français, c'est pourquoi il faudra aussi installer **[[:eSpeak]]**. Pour le mettre en place il suffit d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>espeak]]** et **[[apt>kttsd]]** qui contient: * le démon kttsd, * Jovie, une application permettant de lire un document copié ou que l'on tape. * La synthèse vocale sera également intégrée dans [[:Konqueror]] et dans [[:Kate]]. Pour configurer la synthèse vocale: * Faites un clic droit sur l'icône dans le tableau de bord sur l'icône Jovie, //Configurer Jovie//, dans l'onglet //Locuteurs// entrez un nom, choisissez le locuteur français cliquez sur Ajouter, * Pour lire du texte sélectionner du texte et cliquer sur l'icône Jovie ou clic droit, //Lire le contenue du presse-papier//.\\ * Lorsque vous utilisez le navigateur [[:Konqueror]] de KDE, vous pouvez entendre le texte de la page web affichée. Pour ce faire, assurez-vous que Jovie est lancé. Sélectionnez le texte que vous voulez entendre et choisissez //Outils → Prononcer le texte// dans le menu principal. Après un moment, le texte sélectionné devrait être prononcé. * Pour prononcer du texte depuis l'éditeur de texte [[:Kate]], assurez-vous que Jovie est lancé et activez l'extension **Synthèse vocale Jovie** de KTextEditor dans la fenêtre de configuration de Kate. Sélectionnez le texte que vous voulez entendre puis choisissez //Outils → Énoncer le texte//. Après un moment, le texte sélectionné devrait être prononcé.\\ Il n'est pas indispensable de sélectionner du texte. Si vous ne le faites pas, tout le fichier sera prononcé. ===== Voir aussi ===== ==== Liens ==== Pages officielles de ces projets, et d'autres : * **[[http://espeak.sourceforge.net/|Site officiel d'Espeak]]**. * [[http://tcts.fpms.ac.be/synthesis/mbrola.html|mbrola]] (en) * [[http://www.cstr.ed.ac.uk/projects/festival/|festival]] (en) / [[http://www.speech.cs.cmu.edu/flite/|flite]] (en) / [[http://festvox.org|Festvox]] (en) * [[https://gna.org/projects/lliaphon/|LLiaPhon]] : Transforme un texte en description phonetic (à utiliser avec un autre logiciel). Conçu pour le français. * [[http://pages.videotron.com/fluxnic/cicero/|Cicero TTS]] * [[http://epos.ure.cas.cz|epos]] (en) (Tchèque et Slovaque) * [[http://freetts.sourceforge.net/docs/index.php|FreeTTS]] (en-us) (en java) * [[http://forum.ubuntu-fr.org/viewtopic.php?id=128037|xclip-speech, synthèse vocale]] * [[http://bothari.free.fr/weblog/post/Ubuntu-Text-to-Speech-%28TTS%29|Synthèse vocale en python (espeak + mbrola + speechdispatcher et son wrapper python)]] Sur [[https://help.ubuntu.com/community/TextToSpeech|la documentation ubuntu anglaise]]. * [[http://emofilt.sourceforge.net/|emofilt]] un logiciel open-source qui permet d'ajouter de l'émotion à la parole Wiki rassemblant des liens de synthese vocale : * [[http://wiki.eagle-usb.org/wakka.php?wiki=SyntheseParole|Wiki eagle usb]] ==== Tutoriaux ==== * [[http://blinuxman.net/edu/fr/EduVocale.txt|La fiche EDU pour une solution vocale en Français sous la console GNU/Linux]] * [[http://kubuntu.free.fr/blog/index.php/2006/09/24/121-synthese-vocale-en-francais-sous-linux|Synthèse vocale en français sous Linux]] (plutot kde ) * [[http://bothari.free.fr/weblog/post/Ubuntu-Text-to-Speech-%28TTS%29|(fr)Ubuntu Text-to-Speech (TTS)]] * [[http://ftp.traduc.org/doc-vf/gazette-linux/html/2005/114/lg114-D.html|Faites parler votre shell avec Festival]] ====Ressources : des voix ==== * Il existe la voix française [[http://rs211.rapidshare.com/files/108331417/Virginie.exe|virginie de microsoft(sapi) : gratuit mais non libre]]. ([[http://sharebee.com/789d0c18|lien miroir]] ) * Lernout & Hauspie TruVoice TTS engine (voix gratuite française) : http://activex.microsoft.com/activex/controls/agent2/lhttsfrf.exe * Trouver d'autres voix sapi sur ce site : http://www.cross-plus-a.com/balabolka_fr.htm * Des voix sur sayz me : http://www.datafurnace.net.au/sayzme/html/voices.html ===== Pages en rapport ===== [[:reconnaissance_vocale|Reconnaissance vocale]] (Opération inverse) {{topic>synthèse_vocale}} ---- //Contributeurs : Page initiale par [[http://forum.ubuntu-fr.org/profile.php?id=7326|Skippy le Grand Gourou]], [[utilisateurs/herberts]], [[http://forum.ubuntu-fr.org/profile.php?id=7540|Balkoth]] et [[http://forum.ubuntu-fr.org/profile.php?id=41914|Dud]], à partir du sujet http://forum.ubuntu-fr.org/viewtopic.php?pid=1469124. Corrections et compléments par [[utilisateurs/Mysteroïd]], [[:utilisateurs:psychederic|Psychederic]] [[:utilisateurs:mohican|mohican]] : refonte pour la simplicité d'abord, et ajout de compléments.//