VT2021 TTS fiche

From air
Revision as of 15:45, 13 December 2021 by Kevin.Cosotti (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

TextToSpeech

COSOTTI Kévin (kevin.cosotti@etu.univ-grenoble-alpes.fr) - GRANGER Oscar (oscar.granger@etu.univ-grenoble-alpes.fr)

Résumé

Résumé

Le Text-To-Speech (TTS), aussi connu sous le nom de “Synthèse Vocal” est le concept de faire convertir par la machine un texte en parole compréhensible. Si de nos jours, avec la démocratisation d’outils utilisant le TTS, cette technologie semble acquise, elle possède tout de même différentes formes qui n’ont pas les mêmes applications. En effet, les annonces dans les gares, les aides à la prononciation où même encore des chanteurs virtuels utilisent tous des versions différentes de cette technologie. Après une courte présentation de l’histoire de cette technologie, nous parlerons ici des techniques les plus utilisées du domaine, de leur principe de base, de leurs atouts et de leurs défauts.

Mots clés : TTS, Synthèse vocal, réseaux de neurones, Text-To-Phoneme

Abstract

Text-To-Speech (TTS), also known as "Speech Synthesis" consist in having a machine convert text into understandable speech. If currently we take it for granted, it still possesses various forms which does not have the same applications. In fact, trainstations' announcements, pronouciation helpers or even virtual singers all use different versions of this technology. After a short presentation of it, we'll discuss of the most fequently used techniques, of their basic principle, of their pros and their cons.

Histoire

Ère mécanique

Les premières traces de reproduction de l'appareil vocal humain remonte 1779, quand le scientifique Germano-Danois Christian Gottlieb Kratzenstein présente une reproduction de conduit vocal humain capable de produire le son des 5 voyelles (en alphabet phonétique international: [aː], [eː], [iː], [oː] et [uː]). Ensuite, en 1791, Wolfgang von Kempelen décrit son modèle de "machine vocale mécanico-acoustique"; cette machine fonctionnait à base de soufflets et ajoutait la reproduction de la longue et des lèvres, rendant possible de produire les sons associés aux consonnes. Plusieurs "machines parlantes" basées sur ce modèle verront le jour comme celle de Charles Wheatstone en 1837 ou encore la machine "Euphonia" de Joseph Faber en 1846. Dans les années 30 Bell Labs ont développés le vocoder, un codec vocal capable d'analyser automatiquement le langage. A partir de ceci Homer Dudley créa un synthétiseur de voix à clavier appelé le Voder(Voice Operating Demonstrator). En 1950, le Dr. Franklin S. Cooper et ses collègues des laboratoires Haskins terminent leur lecteur de motif, machine convertissant des images de motif acoustique (sous forme de spectrogramme) en son.

Ère mécanique.PNG

Ère électronique

Les premiers systèmes de synthèse vocale par ordinateur sont apparus à la fin des années 50. En 1961 les physiciens John Larry Kelly et Louis Gerstman ont utilisé un IBM 704 pour synthétiser de la parole: c'est d'ailleurs ce système qui est utilisé dans 2001: L'Odyssée de l'Espace (l'ordinateur HAL 9000). En 1968 sort le premier système de Text-To-Speech générique anglais, développé par Noriko Umeda. Dans la fin des années 60 et le début des années 70 le Linear Predictive Coding(LPC), une forme de codage de la parole, voit le jour. Le LPC est majoritairement utilisé pour représenter l'enveloppe spectral d'un signal digital de parole sous sa forme compressé et sera dans la fin des années 70 la base des systèmes embarqués de synthèse vocale. En 1975 l'un des premiers systèmes de synthèse vocale, le MUSA(MUltichannel Speaking Automaton) sort; cela consistait simplement en un ordinateur avec dessus installé un logiciel permettant de lire l'italien. Toujours en 1975, Fumitada Itakura a développé la méthode Line Spectral Pairs(LSP) pour une haute compression du codage de la parole. En 1980, son équipe sorti une puce de synthèse vocale basé sur le LSP. Par la suite, le LSP sera reconnu comme quasi essentiel et dans les années 90 sera adopté dans pratiquement tous les standards du codage de la parole.

Ère électronique.PNG

Enjeux de la technologie

La difficulté que cette technologie rencontre vient de la complexité du langage humain. En effet, si pour le verbal (qui touche uniquement au contenue dit), il semble envisageable de le convertir en voix, il est autrement plus compliqué d’y ajouter la prosodie, “comment on le dit”. Cette dernière comporte tous les aspects de la parole qui ne tient pas du contenue. Soit le ton, le rythme, les pauses, l’accentuation, et le débit de la parole. Ces éléments restent un point essentiel dans la communication orale et les retranscrire via la machine est tout le défi du text-to-speech.

Transcription phonétique

La transcription phonétique, aussi connu sous le nom de Text-to-phoneme (TTP) ou Grapheme-to-phoneme (GTP), consiste à convertir un mot ou ensemble de mots en leur équivalent phonétique (par exemple Hello world devient hɛˈləʊ wɜːld). La plupart des algorithmes de transcription phonétiques s'appuient aussi sur des dictionnaires de plusieurs milliers de mots. La plupart des problèmes de speech processing requiert des fonctions non-linéaires et pour cette raison l'usage de réseau de neurones est essentiel. Dans la suite nous mentionnerons rapidement trois types de réseaux utilisé à cette fin, sans entrer dans tous les calculs complexes.

Multilayer Perceptron (MLP)

Le Multilayer Perceptron consiste en une couche d'entrée, plusieurs couches cachées et une couche de sortie, en général chaque neurones étant connecté à tous ses prédécesseurs et ses successeurs. La méthode d'entrainement est celle du back-propagation, c'est à dire qu'on "déroule" une exécution jusqu'à la couche de sortie puis de là on fait le chemin inverse en envoyant les résultats aux neurones précédents pour analyser les erreurs. On peut aussi régler un paramètre nommé le taux d'apprentissage pour contrôler la vitesse de convergence et la stabilité du modèle.

MLP.PNG

Recurrent Neural Network (RNN)

Le Recurrent Neural Network incorpore une ou plusieurs boucle(s) de feedback. Elles peuvent être soit global (c'est à dire les sorties du réseau sont réutilisées comme entrées) ou local (les sorties d'une couche sont réutilisées comme entrées pour la même couche). De fait, ce type de réseau inclus en plus une dépendance temporelle, ce qui peut le rendre plus pratique pour des prédictions de texte par exemple.

RNN.PNG

Bidirectional Recurrent Neural Network (BRNN)

Comme vu précédemment, le RNN crée une dépendance temporelle vers le passé, ce qui signifie que dans le cas du text-to-phoneme on peut se servir de une ou plusieurs lettre précédant celle actuelle. Cependant dans le contexte de transcription phonétique, il est aussi utile d'avoir le contexte (les lettres) dans le futur (les lettres suivantes). Pour ceci on divise l'état des neurones en deux: une partie s'occupe des états dans le sens positif (i.e les états suivants) tandis que l'autre s'occupe des états dans le sens négatif (i.e les états précédents). Les états précédents sont là pour introduire la dépendance du contexte alors que les états suivants indiquent les informations du contexte à partir des états précédents.

BRNN.PNG

Synthèse vocale

Une fois que la machine connaît les sons qu’elle doit dire, il lui faut encore savoir comment les générer. Pour cela, il y a 3 grandes approches.

-Synthèse par concaténation

-Synthèse par Formant

-Deep Learning

Synthèse par concaténation

Le principe de la concaténation est simple, on met bout-à-bout les sons nécessaires pour former la parole. Cela demande cependant d’enregistrer au préalable ces sons et d’avoir une bonne mémoire pour les stocker. C’est pour cela qu’il y a différentes façons de mettre en place ce genre de synthèse. La méthode qui est le plus utilisée, car le plus “naturel” à l’écoute consiste à avoir tous les sons possibles d’une langue, pas seulement les phonèmes, mais aussi les diphones (son entre 2 phonèmes) et autres briques élémentaires de la parole. Cette méthode reste très coûteuse en données et sur une mauvaise “partitions” de phonèmes, présenteras des glitch auditif. (Exemples :Vocaloid/Utauloid synthèse de chant) Pour des textes à vocabulaire restreint il est possible d’enregistrer directement des bouts de phrase. Très proche de la parole humaine car peu retouché par la machine, il reste cependant très limité car impossible d’utiliser des mots non-enregistrés. L’un des meilleurs exemples est la voix de la sncf qui annonce les trains. Il y a également un mix entre la synthèse par concaténation et par formant, avec la synthèse par diphones. Son principe étant de concaténer des sont généré par ordinateur et les diphones enregistrés, limitant ainsi les données à transporter. Peu utilisé car sonne moins “vrai”, on a cependant le modèle Mbrola qui fonctionne très bien.

Synthèse par formant

La synthèse par formant est également simple dans son approche : on génère tous les sons par ordinateur. Les phonèmes, diphones et autres étant caractérisés par des formant, les fréquences fondamentales du son les produisant. Ainsi, le son /i/ se forme avec les formants 1 à 250 Hz, le 2 à 2250 Hz et le 3 à 3000 Hz.Ce processus donne des sons bien moins réalistes que la concaténation, mais tient bien plus facilement dans un système embarqué.

Deep learning

La troisième grande méthode pour synthétiser une voix est le deep learning. Apparue beaucoup plus récemment que les autres techniques (2016-2017, par Google et Facebook), son principe repose sur l'entraînement d’un réseau de neurones pour lier un texte avec le spectre d’une voix disant ce texte. On ne passe plus par la conversion en phonème. Les résultats sont extrêmement bons. Comme le processus apprend également la prosodie du locuteur, il la répliquera, donnant ainsi un résultat très proche de l’humain. Le procédé reproduit la voix et l’accent de la personne qui à servi à l'entraînement. Il y a tout de même des limites, la prosodie ainsi créée n’est pas garantie d’être en lien avec le texte : un ton joyeux pour un texte triste est vite arrivé. Il ne faut pas oublier également que cette technologie est très coûteuse en calcul, tant pour l’apprentissage que pour son utilisation.

Conclusion

Le TTS est une technologie bien maîtrisée, preuve en est de son utilisation déjà présente dans la vie courante. Ses diverses méthodes permettent une utilisation plus ou moins poussée, du système embarqué à l'entraînement intensif de réseau de neurone, du tout automatisé au grand contrôle de l’humain. En somme c’est une technologie dont l’avenir viendra uniquement de son perfectionnement, sur tous ses plans.

Sources

- https://en.wikipedia.org/wiki/Speech_synthesis

- https://trepo.tuni.fi/handle/10024/114031

- https://github.com/numediart/MBROLA

- https://github.com/stakira/OpenUtau