Table des matières
info
Introduction
Présentation
Cette page traite de l'audition d'un fichier texte, c'est à dire la possibilité d'écouter le contenu d'un fichier texte de langue française par une voix masculine ou féminine.
Je n'ai pas trouvé de documentation très bien faite sur le sujet donc cette page est quelque peu empirique, elle sera complétée au fur et à mesure.
L'état de l'art
Vous avez peut-être remarqué que les distributions récentes, notamment celles qui intègrent KDE, sont livrées avec un outil nommé ktts qui est un serveur capable de recevoir des fichiers ASCII et de les retranscrire en ... anglais. La conversion se fait au moyen de la commande festival.
Cette commande comprend des dictionnaires en langue française mais ceux-ci sont payants. Le présent article va tenter d'expliquer comment faire de la synthèse vocale en français de façon gratuite.
Installation
MBROLA
À la place de festival on va installer mbrola qui est libre pour un usage non commercial.
Allez à la page : http://tcts.fpms.ac.be/synthesis/ .
Dans la section download, télécharger MBROLA binary and voices puis aller dans la section : LINUX i386 / ppc / alpha / ultra1 c'est à dire en cliquant à : http://tcts.fpms.ac.be/synthesis/mbrola/bin/pclinux/mbr301h.zip ( à la mise à jour de version près), puis faire:
mkdir /usr/local/speach unzip mbr301h.zip sudo cp mbrola-linux-i386 /usr/local/speach
À ce stade, vous pouvez convertir des fichiers pho en wav, il nous faut maintenant un convertisseur text vers pho, c'est à dire un TTS (Text2phone)
Le fichier voix
Dans la partie Getting the MBROLA Voices, choisir une voix française ( ou les télécharger toutes), la mieux est la fr3 : http://tcts.fpms.ac.be/synthesis/mbrola/dba/fr3/fr3-990324.zip puis faire :
unzip fr3-990324.zip cp fr3 /usr/local/speach/fr3
le programme TTS
Le programme TTS que j'ai choisi est dans le menu Text-to-Speach (FRENCH/TTS in perl).
Il existe llilan qui est souvent utilisé mais qui donne des résultats décevants : un arbre est lu comme un arbreuu.
Il en existe aussi un en java mais je déteste le Java.
Le programme perl-tts est un vieux programme en Perl et il n'est jamais utilisé car il contient un ou deux bogues depuis 1996, bogues que j'ai corrigé au passage et pour lequel je vais donner les modifications plus bas.
Allez hop : http://tcts.fpms.ac.be/synthesis/mbrola/tts/French/perl_tts.zip puis faire :
unzip perl_tts.zip cd tts-French/
Éditer le fichier text2phone
changer la première ligne en #!/usr/bin/perl
(si votre interpréteur perl n'est pas en /usr/local/bin/perl)
Mettre
- la variable $olabase = "/usr/share/speach/fr3";
- la variable $mbrola_cmd = "| mbrola-linux-i386 $olabase - -.au | aplay";
- la variable $text2phonebase = "/usr/share/speach/base";
- à la ligne 111 ajouter devant la ligne print $resultat; la ligne $resultat =~ s/\s*;.*//g;
puis copier text2phone dans /usr/local/speach ainsi que base dans /usr/share/speach
À ce niveau là pour écouter un texte faire :
echo "bonjour les amis de linuxmao, le site de la musique libre" | /usr/local/speach/text2phone
Conversion UTF8 vers ISO
Comme le programme text2phone date de 1996, il faut lui demander de transcrire les caractères UTF8 en ISO par la commande
iconv -t iso8859-1 -f utf8 -
Ainsi vous pouvez écouter des textes accentués par :
echo "vive les textes accentués" | iconv -t iso8859-1 -f utf8 - | text2phone
libttspico-utils
pico2wave
Soucieux de trouver une alternative libre, voici pico2wave faisant parti du paquet libttspico-utils mais il faut trouver quelques astuces concernant la prononciation de certaines lettres.
Voici un exemple copier le contenu suivant dans votre terminal :
pico2wave -l "fr-FR" --wave=test.wav " Yo! Voici un m ci synthétique en directe de linucce m a o pour un test de micro Pour pouvoir parler parfois je dois m'exprimer en phonétique ce n'est qu'une thématique Je reconnais la lettre x mais pour prononcer le mot linucce je dois mettre deux c et le mot eux à la place d'un x Pour le y grec je dois trouver le contenu écrit en toute lettre"
Le fichier obtenu sera lu directement avec cette commande.
play test.wav
Le logiciel a ses limites, par exemple il va prononcer le mots "sens" de cette façon: "sans" ou encore si vous tombez sur une phrase du style:
En effet sortie de guerre 39-45 il la prononcera En effet sortie de guerre 39 trait d'union 45 ou encore je ne sais pas à quel moment le monde à commencé à dis-fonctionner. qui sortira ainsi je ne sais pas à quel moment le monde à commencé à dis-fonctionnère.. Vous y trouverez des astuces de contournement en jouant sur la phonétique des syllabes ou en supprimant les traits d'union indésirables.
LibreOffice et l’extension Read Text
Il existe une extension nommée read text à ajouter dans libreoffice.
Il ajoutera, après redémarrage du programme, un bouton qui permet de lire le texte.
Par défaut, la voix est féminine, mais avec certains paramètres il est possible de la modifier.
Veuillez noter qu'il semble pouvoir fonctionner avec "festival".
KTTS
Les dernières versions de KDE on un outil qui se nomme KTTS et qui permet de lire vos courriers, les pages Web, de mettre des messages sonores comme "batterie faible". Ce qui est pratique...
Lancer kttsmgr ou cliquer sur le perroquet dans la liste des tâches de fond.
Dans l'onglet talkers faire Add ou ajouter, show all sur synthétiseur et là dans l'onglet language mettre Other, puis dans le synthétiseur mettre commande, choisir la langue french.
Cliquer sur Send the data as standard input
Puis character encoding ISO8859-1 pour permettre à text2phone de recevoir les caractères en ISO.
Ensuite dans la ligne commande entrer
text2phone -p | mbrola /usr/share/speach/fr4 - %w
Voila !
- Autre nom de cette page :
ecouterdutexte