Text-To-Speech

  coquillederains.1202061220.jpg 

 Encore un post orienté outil. Il s’agit d’un prolongement du post sur le shield wave d’Adafruit.

     L’objet de l’acquisition du shield sonore est de disposer d’un système de diffusion du son dans mes installations. La forme sonore que je veux privilégier est le langage et plus particulièrement la voix. Pour traiter cette forme il existe des instruments particulièrement intéressants qui sont les Text-To-Speech qui permettent de transcrire des textes en sons. Ce sont des dispositifs logiciels assez complexes qui sont composés de plusieurs éléments : des bases de données de diphones enregistrés suivant des règles précises, un phonétiseur qui transcrit le texte en labels phonétiques, un moteur qui produit des sons synthétiques à partir des textes phonétisés et des bases de données (traitement du langage / séquençage / traitement du signal). Il existe aussi des « aligneurs »  qui permettent de donner une forme prosodique (le ton) aux textes (pour y voir un peu plus clair, An introduction to text-to-speech synthesis de Thierry Dutoit, 1997, Kluwer academic publisher).

       Pour ce qui est de la langue française, il existe des TTS en free accessibles sur le net. Celui de Microsoft, MSREADER n’est qu’un prétexte pour créer une adresse hotmail et acheter des livres en ligne, on méprise donc. Celui de AT&T est plus intéressant car il permet de récupérer le fichier son (pendant 5 minutes) en format .wav, et d’intervenir sur le débit et la prosodie en insérant les balises SSML dans le texte à dire.

Démo :

att.1232444236.mp3

     À ma connaissance  un seul TTS gratuit (les auteurs permettent une utilisation non commerciale et non militaire) est accessible dans ses parties constitutives. Certes, il date de 1996 (ça sonne précambrien) mais il fonctionne avec XP (annoncé compatible W95 et NT 4.0), même si  certaines fonctionnalités sont défaillantes.

    De mon humble point de vue, en tenant compte du peu de pratique que j’ai de l’outil et sans porter atteinte au travail entrepris et gracieusement mis à disposition, c’est intéressant pour faire des maquettes ou pour des gens qui, comme moi, essayent de mettre en évidence le poids émotionnel de la présence machinale.

Une petite citation qui ne fait de mal à personne :

      « J’appellerai « prescription » le comportement réimposé aux humains par des délégués non humains. La prescription est la dimension morale et éthique des mécanismes. Malgré les larmes incessantes des moralistes, aucun humain n’est aussi implacablement moral qu’une machine. Nous avons pu déléguer aux non humains non seulement la force telle que nous l’avons connue pendant des siècles, mais aussi des valeurs, des responsabilités, et l’éthique. » Bruno Latour in Where are the missing masses ? Sociology of a few mundane artifact, 1992 MIT Press. 

    Le T.T.S. qui nous intéresse est proposé suivant deux formules : MBROLATOOLS  (dans la version 1.5) et MBROLIGN (dans la version 1.1), pour utiliser le second (qui nécessite aussi le premier), il vaut mieux télécharger le pack MBROLATOOL depuis la page MBROLIGN pour la compatibilité des versions.

L’approche aligneur avec MBROLIGN

   Une fois téléchargé tous les éléments (ne pas oublier de télécharger au moins une des bases de données FR (1 —>7) et de les configurer dans le Control Pannel), on réalise  les deux fichiers dont on a besoin : un fichier wave échantillonné en 16 bits et sa transcription en phonétique SAMPA.

    La procédure pour faire un fichier .wav  conforme au système MBROLIGN est la même que celle utilisée pour le shield.  

 Le fichier maître.

jouircool2.1232274722.mp3

   Il faut placer le fichier contenant la transcription phonétiséz par fOnetiz@R2.php en .txt  dans le même répertoire que le fichier .wav.

    Le système phonétique utilisé est le SAMPA un  système simplifié pour les machines. Je n’ai pas trouvé de transcripteur automatique du texte normal en phonèmes SAMPA. J’en ai bricolé un (il est ici):  fOnetiz@R2.php, avec des REGEX en PHP (il est quand même composé de quelque 200 règles, mais il ne résout pas tous les problèmes, il faut parfois corriger à la main. Ce qui s’avère assez aisé, tant le système SAMPA est facile à assimiler). Je l’ai mis dans la page PHP qui accompagne le post avec les explications pour s’en servir. La transcription SAMPA de la phrase du fichier maître est :

_ v i v R s a~ t a~ m o R e Z u i R s a~ a~ t R a v _ 

Vivre sans temps mort et jouir sans entrave 

     Dans la transcription pour MBROLIGN j’ai rajouté à la main le phonétiseur ne prenant pas en charge les liaisons, un  s (z) entre les deux a~ de sans entrave, et deux @ pour faire chuter les fins de mots, en définitive ça donne ça : 

_ v i v R @ s a~ t a~ m o R e Z u i R s a~ z a~ t R a v @ _ 

   Dans la version gratuite de MBROLIGN la fonction « record » ne fonctionne pas (ou je n’ai pas su la faire marcher). On est donc obligé de faire des enregistrements à partir des sorties de l’ordinateur.

   Comment s’y prendre :

   D’abord charger le fichier .wav dans Mbrolign.

mbropersil1.1232296808.jpg

   Lancer le menu « Transcription ». Si le fichier .txt avec le code SAMPA est dans le même dossier il s’affiche dans la fenêtre, sinon on peut toujours le copier/coller (la copie d’écran qui suit ne correspond pas au fichier maître, mais la manipulation est la même).

mbropersil2.1232296823.jpg

   On appuie ensuite sur le menu « Mbroli », s’affiche alors à l’écran deux fenêtres supplémentaires : le séquençage de la partie phonétique et une fenêtre représentant le pitch (la hauteur) des phonèmes dans l’enregistrement.

mbropersil3.1232296836.jpg

   Enfin on appuie sur « Synthétise », on  visualise alors le résultat. Pour l’entendre il faut mettre la souris dans la fenêtre et double cliquer. On peut agir sur l’ajout ou la suppression de labels phonétiques en double cliquant sur la fenêtre « transcription », et on peut « manipuler » (clic gauche tenu) la ligne de pitch.

mbropersilcomp.1232296850.jpg

   Le résultat, bien qu’un peu lascif, est audible ; on doit pouvoir améliorer ça avec un peu de pratique.

vivmbroli.1232297528.mp3

   Après correction de Pitch 

defvivr.1232354735.mp3

   L’approche MBROLI de MBROLATOOL 

  Ouvrir le programme MBROLI, copier/coller les labels phonétiques produits par fOnetiz@r2, les aligner verticalement. Ici il y a deux façons d’intervenir sur les sons. La durée exprimée en milliseconde et que l’on place (après un blanc) derrière le label.

_ 55 un silence de 55 millisecondes 

v 100 un « v » de 100 millisecondes

    Et une valeur de pitch, qui s »exprime par deux paramètres constitués de deux nombres aussi séparés par des blancs. Le premier nombre exprime un % de la durée précédente et le second une hauteur en hertz. Ça signifie que le phonème en question devra atteindre la hauteur en hertz lorsqu’il sera au % de sa durée stipulée par le premier nombre.

  v 100 50 120 un v de 100 millisecondes qui atteindra 120 hertz au bout de 50 millisecondes.

    Ça a l’air un peu barbare dit comme ça, mais c’est finalement assez facile à moduler. ecranmboli.1232299940.jpg

Le résultat

vivmbrola.1232300864.mp3

Répondre

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l'aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

%d blogueurs aiment cette page :
search previous next tag category expand menu location phone mail time cart zoom edit close