DeepLearning: Mise en oeuvre du modèle TACOTRON pour la synthèse de la parole en Français.

Cet article couvre les résultats obtenus lors de ma recherche de mise en oeuvre du modèle TACOTRON « pour faire apprendre à parler le français à une intelligence artificielle » (pour résumer de manière compréhensible). Ecoutez les démos audio…


Contrairement au film HER (dont l’image ci-dessus est tirée), je ne suis pas tombé amoureux de la voix de mon Intelligence artificielle…

Deep Learning: Quelques exemples de phrases générées par la voix de synthèse en Français (Tacotron – TensorFlow – IA)

Démo audio TACOTRON en Français:

« Quelle est la nature de votre demande? je ne comprend pas. »

« Je trouve cela très dangereux. »

« Là encore, nous ne sommes guère convaincus par cet argument. »

« Je me demande pourquoi on ne retrouve pas une telle diversité dans vos rangs. »

« Les bus ne sont pas un problème, ils sont en réalité la solution. »

« En clair, l’herbe est toujours plus verte, dans le champ du voisin. »

« Pour les traiter, elles peuvent demander une délégation de compétences ou une adaptation. »

« Trois gros rats gris dans trois gros trous ronds. »

Vous trouvez ca convainquant? Mais déjà c’est quoi TACOTRON? cela signifie en gros « Towards End-to-End Speech Synthesis » ou en Francais « Vers une synthèse vocale de bout en bout ». un modèle (provenant de chez google) qui synthétise la parole directement à partir de caractères. Et les résultats obtenus sont assez bluffants.
Mais les voix de synthèse, ça existe déjà?! Oui mais leur qualité laisse à désirer. impossible de se tromper jusque là lors de l’écoute d’une voix générée par un ordinateur; Le côté haché et robotique ne trompe personne. Le but ultime est de pouvoir « humaniser une voix de synthèse », de pouvoir lui faire dire tout ce qu’on veux avec une qualité de prononciation proche ou encore mieux égale à celle d’un être humain. Cela soulève plein de questions philosophiques, éthiques, mais cet article ne parlera évidement uniquement que de technique (je laisse la philosophie aux philosophes). Avec le Deep Learning (Apprentissage profond), nous franchissons une étape significative dans le domaine de la synthèse vocale. Une Intelligence artificielle est désormais capable en quelques dizaines d’heures d’apprendre à parler une langue avec une qualité proche de celle d’un humain. J’ai essayé d’obtenir un résultat proche d’une prononciation humaine en français; Je vous laisse juge pour déterminer si j’y suis parvenu.

Point de départ:

A l’annonce de la mise au point de TACOTRON par Google, une communauté de développeur s’est mise à la recherche de la réalisation de ce modèle, plusieurs implémentations Open Source ont vu le jour dont celui de Keith Ito obtenant d’assez bons résultats à partir d’un corpus audio d’une voix anglaise.

J’ai donc pris comme base de départ le travail de Keith Ito, à savoir son implémentation de TACOTRON sur TensorFlow en langage de programmation python. J’ai cherché à adapter le modèle d’apprentissage et donc le code source au langage Français et j’ai utilisé également un dictionnaire pour l’apprentissage de la prononciation des phonèmes contenant plus de 32000 mots courants dans la langue française.

Les Datas:

Il m’a fallu donc constituer un corpus audio en français segmenté avec transcription. Ceci afin que le modèle apprenne à synthétiser la parole à partir de paires Textes-Audio. J’ai donc travaillé à partir d’un corpus audio d’un peu plus de 10 heures d’enregistrements studio de qualité d’une voix féminine.  Mon empire pour des données: Il s’agit de la clé de voûte de toute IA. sans data, pas d’IA. Mais dans le cas de la synthèse vocale, la qualité audio est essentielle. Inutile d’essayer de travailler à partir d’enregistrements contenant bruits de fond et parasites. Le signal doit être impeccable. Il faut garder en tête un principe fondamental: Garbage In -> Garbage Out.

Training – La phase d’apprenstissage:

le modèle a été entraîné sur le GPU d’une GEFORCE GTX 1070 pendant un peu plus de 60 heures pour 400.000 étapes. Ça chauffe bien et en cette période hivernale, cela m’a aussi servi de chauffage d’appoint, la chaussette de noël accrochée à la carte graphique.

Taux d’apprentissage par étape

Evolution de la perte:

J’ai arrêté l’apprentissage du modèle à 400.000 étapes après environ 60 heures. Le modèle ne semblant plus obtenir de gain audible, bien que la perte continuait sensiblement à baisser.

Les résultats obtenus me semblent encouragent mais pas encore suffisants. En effet, ce modèle, bien qu’adapté pour de courtes phrases, (même s’il subsiste parfois des erreurs dans la synthèse avec répétition de mots ou au contraire disparition de mots ou syllabes) est inadapté pour travailler à partir de longs textes (je pense que c’est également le cas du TACOTRON version 1 généré par Google).
En effet l’entrainement d’un modèle se fait à partir d’un corpus avec des phrases plus ou moins longues (13 secondes maximum dans mon cas); Le modèle n’a jamais été confronté à des phrases
de 20 secondes par exemple… Donc essayer de lui faire synthétiser une phrase plus longue que ce à quoi il a été confronté lors de la phase apprentissage va générer un résultat qui sera très loin d’être parfait bien qu’artistiquement intéressant. La possibilité résiduelle pour synthétiser un long texte est de segmenter ce long texte en phrases courte et générer l’audio phrase après phrase.

Et Après?

  • La phase d’après c’est la réalisation de TACOTRON version 2 avec la superposition d’une autre couche de réseau de neurone, à savoir WaveNet. WaveNet qui va servir de vocoder pour la synthèse vocale. Moi et d’autres travaillons déjà dessus.
  • A des fins de Proof of Concept, je travaille aussi à la synthèse de la voix d’une personnalité politique connue en France afin de prouver la possibilité de synthétiser n’importe quelle voix humaine. Mais cela pourvu qu’il existe suffisamment de données audio évidement. Une personnalité politique est donc une cible de choix pour cet exercice car il est très facile de trouver discours et interviews et cela souvent en bonne qualité. Le travail de segmentation et de transcription nécessaire à l’apprentissage est long et fastidieux. Le corpus déjà construit n’est pas encore suffisant pour produire de résultats intéressants alors… affaire à suivre.

Avouez que les possibilités sont à la fois excitantes et effrayantes… Avoir la capacité de faire dire n’importe quoi à n’importe qui. Ajoutez à ceci le lip Sync déjà mis au point par l’université de Washington
et vous obtenez un beau merdier 🙂

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *