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 :

  1. transformation du texte en phonèmes ;
  2. Prosodie (ajout d'informations de prononciation : accents toniques, indication de durée, etc.) ;
  3. assembler des sons pré-enregistrés en suivant les règles établies par les deux premières étapes.

Pour en savoir plus : Wikipedia (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 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 ressources).

Speech Dispatcher : l'approche unifiée

Speech Dispatcher est une interface standardisée pour la synthèse vocale sous Linux. De nombreuses applications (comme Orca, Firefox) l'utilisent pour parler sans avoir à connaître le moteur TTS sous-jacent.

Installation

Choisir son moteur TTS par défaut

Speech Dispatcher peut utiliser différents moteurs : espeak, festival, piper, etc.

1. Voir les modules disponibles :

spd-say -O

2. Changer le moteur par défaut :

Éditez le fichier de configuration système avec les droits d'administration : /etc/speech-dispatcher/speechd.conf

Décommentez ou ajoutez :

DefaultModule <nom_du_module>

Exemples :

DefaultModule espeak-ng  # voix robotique mais rapide
DefaultModule festival   # voix festival (si installé)
DefaultModule piper      # voix neuronale (voir ci-dessous, recommandé)

3. Redémarrer Speech Dispatcher après modification :

pkill -f speech-dispatcher; speech-dispatcher

4. Tester la voix :

spd-say "Bonjour, ceci est un test de synthèse vocale"

Intégration avec Piper (voix neuronales)

Pour utiliser Piper comme moteur par défaut de Speech Dispatcher, consultez la page dédiée à Piper TTS. La configuration correcte pour Ubuntu 24.04 utilise le module générique sd_generic avec paplay (PulseAudio) pour éviter les conflits audio avec les navigateurs web.

Logiciels de synthèse vocale

Piper TTS (voix neuronales de haute qualité)

Piper est un moteur TTS moderne utilisant des réseaux de neurones pour produire des voix très naturelles, proches de l'humain. Il est totalement hors-ligne et rapide. Voir la page dédiée.

Svoxpico

Svoxpico : était le premier lecteur vocal d'Android, de loin celui qui donnait les meilleurs résultats pour un usage courant. Il permet de lire n'importe quelle sélection.

gSpeech

gSpeech est une GUI par dessus Svoxpico tout en améliorant sa prononciation sur les mots/expressions les plus courantes.

Une description de gSpeech est disponible ici : présentation de gSpeech. Un descriptif plus technique de l'avancement est également disponible sur linuxfr

Installation via un PPA :

Vous pouvez trouver les sources sur Github.

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.

installez le paquet espeak-ng,espeak-ng-data.

Festival

Festival est un synthétiseur vocal historique, pour lequel il n'existe apparemment pas de voix française.

installez le paquet festival,festvox-rablpc16k.

Festival est moins utilisé aujourd'hui au profit de Piper.

MBROLA

Le projet MBROLA a été développé à l'Université de Mons (Institut NUMEDIART), et comporte un grand nombre de langages/voix.

En 2019, MBROLA a été rendu disponible en open source sur github sous licence GNU GPL3 Afero.

Installez le paquet mbrola.

Un certain nombre de voix pour Mbrola - pour diverses langues - sont présentes dans les dépôts officiels, pour les installer faites une recherche dans votre gestionnaire de paquets avec le mot clé Mbrola.

Voix françaises MBROLA :

  • fr1 (homme), fr2 (femme), fr3 (homme), fr4 (femme), fr5 (homme belge), fr6 (homme), fr7 (homme belge)

Combinaison avec eSpeak :

espeak -v mb/mb-fr4 "Bonjour" | mbrola /usr/share/mbrola/fr4/fr4 - -.au | aplay

Autres

  • Orca : outil par défaut d'Ubuntu, fonctionne avec les programmes couramment utilisés (Navigateur web, Office, Client mail, terminal, etc.)
  • Jspeak (GPLv3) lecteur de presse-papier écrit en java, attention peut faire planter votre session!!

Logiciels en console

  • yasr : Yasr est un lecteur d'écran polyvalent en console pour GNU/Linux et d'autres systèmes d'exploitation de style Unix.
  • 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 :

  • 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 :

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 vocal. 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

Il suffit d'installer l'extension readtext ou PicoSvoxOOo pour Apache Openoffice. Il fonctionne avec Svoxpico mais est compatible avec Festival et Espeak. Une fois l'extension installée dans LibreOffice, vous trouverez une icône dans votre barre d'outils en haut à gauche:

Pour l'utiliser, sélectionner le texte à lire, cliquez sur l'icône (la bulle noire), une fenêtre s'ouvre, cliquez sur OK.

Activer la lecture à voix haute dans Firefox

Firefox dispose d'une fonction de lecture à voix haute intégrée, accessible via le Mode Lecture. Elle utilise Speech Dispatcher et donc le moteur TTS configuré par défaut (par exemple Piper). Voilà comment l'utiliser :

  • Ouvrir une page compatible : le mode lecture n'est disponible que sur les pages contenant du texte (articles, blogs, documentations). Il n'apparaît pas sur les pages d'accueil ou les sites complexes.
  • Activer le Mode Lecture : repérez l'icône en forme de page ou de document dans la barre d'adresse, à droite. Cliquez sur cette icône. La page se transforme en vue simplifiée, sans publicités ni menus.
  • Lancer la lecture à voix haute : une fois en mode lecture, une barre d'outils apparaît sur le côté gauche de la page. Cliquez sur le bouton "Lecture à voix haute" (icône de haut-parleur).
Firefox garde parfois le périphérique audio ALSA en exclusivité. Si la lecture à voix haute ne fonctionne pas ou plante, assurez-vous que votre configuration Speech Dispatcher utilise paplay (PulseAudio) plutôt que aplay pour la sortie audio. Voir la page Piper TTS pour la configuration correcte.

Vérifiez également dans about:config que media.webspeech.synth.enabled est à true.

Synthèse vocale dans Brave/Chromium

Il existe différentes extensions qui permettent la synthèse vocale des pages consultées : Installez l'extension SpeakIt ou claroRead Chrome.

Outil par défaut proposé par Brave

Le Speedreader est un lecteur proposé par défaut sur Brave. Pour l'activer :

  • Dans Brave, allez dans Menu → Paramètres → Apparence et activez l'option Speedreader.
  • Le navigateur détecte automatiquement si une page peut être simplifiée. Si c'est le cas, l'icône du mode lecture apparaît dans la barre d'adresse.
  • Cliquez dessus pour afficher la page en format simplifié avec les commandes Speedreader.

Intégration dans l'environnement de bureau

Sous Unity et Gnome

Par défaut sous Unity et Gnome en général, Orca permet de lire le contenu affiché à l'écran.

Sous KDE

Grâce à kttsd KDE offre une manière élégante et simple de lire du texte affiché à l'écran.

Pour le mettre en place il suffit d'installer le paquet espeak et 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.

Voir aussi

Liens

Pages en rapport