Ismail Ben Alla

TTS Workbench

Approches de synthèse vocale en PyTorch

Audio · oct. 2026 · Terminé

Quatre modèles de synthèse vocale et un vocodeur neuronal, assez petits pour s’entraîner sur un ordinateur portable et se comparer sur les mêmes métriques.

Construit avecPyTorchNumPyMatplotlibHugging Face TransformerspytestKaggle

TTS Workbench — vue d’ensemble

Présentation

La synthèse vocale a traversé plusieurs conceptions en quelques années : modèles autorégressifs à attention, modèles non autorégressifs à durées explicites, et modèles variationnels de bout en bout à entraînement adversarial. J’ai construit chacun d’eux dans une seule petite base de code PyTorch, d’environ un million de paramètres chacun, pour qu’un run sur CPU montre ce que fait chaque méthode et que chaque ligne puisse être lue.

Les modèles sont Tacotron 2, Transformer-TTS, FastSpeech 2 et VITS, avec Griffin-Lim et un vocodeur HiFi-GAN, un aligneur intégré avec recherche d’alignement monotone pour les durées enseignantes, et un module d’évaluation qui mesure la MCD le long d’un chemin DTW, la RMSE log-F0, les erreurs de voisement et de durée et la diagonalité de l’attention, avec en option le WER via Whisper et un MOS prédit avec UTMOS. Tous partagent l’organisation des données, l’entraîneur, le format de checkpoint et l’évaluation.

J’ai tout testé sur des données simples à 8 kHz en courts runs CPU : une langue jouet synthétique et les chiffres parlés FSDD. Sur la langue jouet, Transformer-TTS, FastSpeech 2 et VITS atteignent 12 à 13 dB de MCD contre un plancher de 10,5 dB en copie-synthèse, avec des alignements quasi diagonaux ; Tacotron 2 montre l’échec classique de l’attention, et le vocodeur HiFi-GAN est clairement sous-entraîné à ce budget. Les chiffres disent que le pipeline et les métriques fonctionnent, pas que les modèles rivalisent avec les systèmes LJSpeech.

La question

Quand quatre conceptions de TTS partagent les mêmes données, le même entraîneur et les mêmes métriques, quelles parties de chacune apprennent réellement, et que révèlent les métriques objectives que la perte d’entraînement cache ?

Fonctionnalités clés

Comment ça marche

  1. Du texte aux symboles

    Le texte est normalisé et tokenisé en identifiants de symboles ; côté audio, un spectrogramme log-mel calculé partout avec les mêmes réglages.

  2. Prédire un mel, ou une forme d’onde

    Tacotron 2 et Transformer-TTS décodent trame par trame avec attention et teacher forcing ; FastSpeech 2 étire chaque symbole selon sa durée prédite et ajoute hauteur et énergie ; VITS projette le texte dans un latent et décode directement la forme d’onde.

  3. Apprendre l’alignement

    Les modèles à attention l’apprennent des données, aidés par une perte d’attention guidée ; FastSpeech 2 et VITS l’obtiennent par recherche d’alignement monotone sur la matrice de similarité de l’aligneur ou de l’encodeur a posteriori.

  4. Vocoder

    Un mel devient de l’audio via Griffin-Lim ou via le générateur HiFi-GAN, entraîné avec des pertes adversariale, de feature matching et mel.

  5. Évaluer

    tts-eval synthétise des phrases de validation, aligne chacune avec son enregistrement par DTW et rapporte les métriques MCD, F0, voisement, durée et alignement, à côté des points de référence copie-synthèse et même locuteur.

Exemples

Langue jouet, 285 phrases d’entraînement : perte d’entraînement (échelle log) et L1 mel de validation en teacher forcing pour les quatre modèles. Tacotron 2 atteint la plus faible erreur en teacher forcing (0,12), ce qui cache que son attention ne s’est jamais alignée.
Langue jouet, 285 phrases d’entraînement : perte d’entraînement (échelle log) et L1 mel de validation en teacher forcing pour les quatre modèles. Tacotron 2 atteint la plus faible erreur en teacher forcing (0,12), ce qui cache que son attention ne s’est jamais alignée.
Alignements à la première et à la dernière évaluation sur la langue jouet : l’attention de Transformer-TTS devient diagonale au pas 720, les chemins MAS de FastSpeech 2 et VITS se fixent sur la diagonale, et Tacotron 2 continue de s’attarder sur un seul symbole.
Alignements à la première et à la dernière évaluation sur la langue jouet : l’attention de Transformer-TTS devient diagonale au pas 720, les chemins MAS de FastSpeech 2 et VITS se fixent sur la diagonale, et Tacotron 2 continue de s’attarder sur un seul symbole.
Chiffres parlés FSDD, 475 clips d’un mot : perte d’entraînement et L1 mel de validation de Tacotron 2 (7 200 pas) et FastSpeech 2 (meilleur checkpoint au pas 4 200).
Chiffres parlés FSDD, 475 clips d’un mot : perte d’entraînement et L1 mel de validation de Tacotron 2 (7 200 pas) et FastSpeech 2 (meilleur checkpoint au pas 4 200).
Sur FSDD, l’attention de Tacotron 2 est encore floue après 7 200 pas et le chemin MAS de FastSpeech 2 empile les trames sur un ou deux symboles (diagonalité 0,29 à 0,40) : 475 clips d’un mot sont trop peu pour un alignement net.
Sur FSDD, l’attention de Tacotron 2 est encore floue après 7 200 pas et le chemin MAS de FastSpeech 2 empile les trames sur un ou deux symboles (diagonalité 0,29 à 0,40) : 475 clips d’un mot sont trop peu pour un alignement net.

Entrée

tts-eval --checkpoint checkpoints/fs2/best.pt --data-dir data/synthetic --n 15

Sortie

MCD 12.3 dB, log-F0 RMSE 3.0 st, voicing error 0.04, duration error 0.05, alignment diagonality 0.97 (Griffin-Lim; copy-synthesis floor 10.5 dB)

FastSpeech 2 sur la langue jouet, les meilleures MCD et F0 des quatre modèles. Avec le HiFi-GAN sous-entraîné à la place de Griffin-Lim, la MCD monte à 14,6 dB et l’erreur de F0 à 19,5 demi-tons.

Stack technique

Ce que j’ai appris

Limites

Mots-clés

synthèse vocale · TTS · synthèse de la parole · Tacotron 2 · Transformer-TTS · FastSpeech 2 · VITS · HiFi-GAN · Griffin-Lim · vocodeur neuronal · recherche d’alignement monotone · MAS · attention sensible à la position · spectrogramme mel · distorsion mel-cepstrale · MCD · F0 · UTMOS · MOS · PyTorch · FSDD · LJSpeech