Fiche de synthèse

Présentation

 * Enseignants : Georges-Pierre Bonneau, Didier Donsez (EA2014)
 * Auteur : <@e.ujf-grenoble.fr>
 * Télécharger Présentation

Abstract
Speech synthesis is a technique whose purpose is the artificial production of human speech. This practice is mainly dedicated to firms which need to automate voice interaction with their customers. Such a technique involve some treatments on the entry text, formatting, labeling, and phonetization in order to produce the correct pronounciation of the whole text. Other treatments are made on the phonemes associated to each word in order to get a voice similar to a human voice by means of the prozody step.

Keywords
formating, labeling, phoneme, phonetization, prozody.

Résumé
La synthèse vocale est une technique ayant pour objectif la production parole à partir de n'importe quel texte. La synthèse vocale est essentiellement présente dans les domaines où le besoin d'automatiser une intéraction ou une communication vocale avec le client se fait ressentir. La production vocale à partir d'un texte nécessite certains traitements sur le texte: le formatage, l'étiquetage, et la phonérétisation, dans le but d'obtenir la liste de phonèmes correspondant au texte en entrée. D'autres traitements, sont effectués sur les phonèmes produits afin d'obtenir une voix se rapprochant d'une voix humaine.

Mots-clés
formatage, étiquetage, phonème, phonétisation.

Motivations
La synthèse vocale répond essentiellement à un besoin de générer une voix humaine à partir d'un texte écrit dans une langue connue du système. Cette technique, dont la première génération date de 1965, s'est aujourd'hui développée et est utilisée dans dans différents domaines tels:  Les services d'annonce vocale. Les systèmes d'assistance aux personnes malvoyantes. Les services de réponse assurant une communication téléphonique, généralement dans le cas de services de vente.

Réalisation
La production de voix à partir d'un texte donné implique certains traitements à appliquer au texte, afin de permettre au système de produire la liste de phonèmes en sortie à partir de données normalisées.

Procédé de normalisation
Ainsi, le premier objectif est d'obtenir des données textuelles homogènes. Pour ce faire, la première étape consiste à ne traiter que des chaînes alphabétiques. Le premier traitement, le formatage, permet de traiter le texte en entrée afin de transformer les chaînes de caractères présentes en chaînes alphabétiques. Des algorithmes sont donc prévus pour un traitement correct des expressions non exclusivement alphabétiques telles que les dates, les chiffres, ou encore les adresses email. Il est à noter qu'au vu du nombre de types distincts d'expressions non alphabétiques pouvant se trouver dans un texte, la phase de formatage s'appuie sur un ensemble disparate de traitements, ensemble, qui de plus, est en constante évolution à mesure de l'apparition de nouveaux types (les adresses email n'étaient par exemple pas traités, lors de l'apparition de la synthèse vocale). Une étape préliminaire est effectuée avant de convertir une chaîne non alphabétique en chaîne alphabétique. Cette étape consiste à segmenter chaque chaîne du texte en entrée en sous-chaînes de homogènes selon trois types : numérique, alphabétique, et un troisième type regroupant toutes les chaînes n'appartenant à aucun des deux précédents types. Une fois la segmentation effectuée, les sous-chaînes sont regroupées dans le but de constituer un item dont le type est connu du système. Par exemple, la chaîne 13h15 sera d'abord segmentée en 13 h 15, puis sera regroupée pour constituer l'item (13h15) car le système aura reconnu une suite de sous-chaînes constituant un élèmént de type horaire. Des algorithmes, basés sur le fonctionnement d'automates déterministes sont utilisés pour identifier les items correspondant à la suite des sous-chaînes présentes. Une fois les items constitués, des traitements propres à chaque type d'item sont appliqués afin d'obtenir la chaîne numérique correspondant à l'item.

À la fin de l'étape de formatage, le texte en cours de traitement ne contient que des caractères alphabétiques. Néanmoins, des ambiguïtés peuvent apparaître lors de la prononciation de certains mots du texte. Par exemple, la chaîne "président" devra être prononcée différemment selon qu'elle représente un nom masculin ou un verbe à la troisième personne du pluriel. Une étiquetage grammatical des items obtenus est donc nécessaire. Lors de la phase d'étiquetage, le système s'appuie sur un ensemble d'étiquettes grammaticales données, d'un catalogue contenant les probabilités d'une étiquette pour un mot donné.

Procédé de phonétisation
L'étape de phonétisation consiste à associer à chaque mot une liste de phonèmes. Un dernier traitement doit cependant être effectué pour finaliser une génération correcte des phonèmes. L'objectif de ce prétraitement est d'étudier la possibilité de présence d'une liaison entre deux mots consécutifs. La première étude de décision d'établir une liaison ou non repose sur l'observation de la fin d'un mot et du début du mot suivant. Si une liaison est possible, le système consulte un ensemble de règles s'appuyant sur l'étiquette grammaticale des mots concernés afin de déterminer si une liaison entre les deux mots est obligatoire, facultative, ou interdite. Le traitement des liaisons est donc la dernière étape précédant la génération des phonèmes. À chaque phonème correspond un signal. La concaténation des phonèmes revient donc à créer un signal sonore correspondant à la suite des signaux correspondant à chaque phonème.

Enfin, pour donner un aspect "humain" à la voix à synthétiser, une certaine intonation est donnée aux phrases synthétisées. Cette phase, appelée calcul de la prosodie, consiste à jouer sur la répartition de l'énergie sur la fréquence fondamentale et les harmoniques des phonèmes obtenus lors de la phonétisation.

Voxygen
Voxygen est un logiciel de synthèse vocale proposant ses services à des entreprises de divers secteurs et présentant donc un besoin de synthèse de parole correspondant à différents contextes.Pour ce faire, Voxygen dispose de différentes voix pouvant correspondre aux besoins des clients, mais offre également la possibilité aux clients de personnaliser la voix à faire produire. Le client peut en effet disposer d'un studio d'enregistrement en ligne, avec des phrases spécifiques à prononcer permettant au système de compléter son apprentissage concernant la voix personnalisée, en isolant les phonèmes apparaissant dans les phrases prononcées.

Voxygen propose trois solutions de production de voix en temps réel:

Voxygen expressive speech server, basé sur une architecture client/server. Le logiciel, installé sur la plateforme client, communique avec le serveur, chargé d'effectuer les différents traitements via le protocole MRCP ou TCP. L'envoi d'une requête implique l'allocation d'un port TTS qui sera libéré après une durée égale au temps de traitement de la requête, ajouté à la durée du contenu audio généré. Pour répondre à des contraintes liées à une forte charge, utilise plusieurs serveurs physiques dédiés au traitement des requêtes de synthèse vocale, avec un script chargé de répartir la charge entre les différents serveurs, et de détecter et relancer un serveur arrêté.

Voxygen cloud, accessible via des requêtes HTTP REST. L'utilisateur a accès à toutes les voix disponibles dans le catalogue commercial Voxygen. Comme dans le cas précédent, la charge peut être répartie sur les serveurs disponibles en cas de défaillance d'un serveur. Une telle fonctionnalité garantit une disponibilité de 99.99%.

Voxygen embedded, disponible par l'intégration chez le client de l'ensemble des bibliothèques de l'application. L'intégration de l'application se fait via une API en C ou en C++ pour embarquer le logiciel. Les environnements d'exécution supportés sont Android OS (version >= 2.2), binaires multi-architecture (ARMv5/ARMV7a/x86/MIPS), iOS, toutes versions sur architecture ARMv7 et ARMv7s (iPod Touch 3G et suivants, iPhone 3GS et suivants, iPad), Windows XP, Windows Vista, Windows 7, Windows 8, Linux, glibc>=2.4, Symbian plateforme S60, et Bada.

Références
http://doc.ubuntu-fr.org/synthese_vocale
 * Voxygen