[PYTHON] Synthèse vocale de texte de bout en bout à partir d'ESPnet2

introduction

Bonjour. Je suis Tomoki Hayashi (@ kan-bayashi) de Human Dataware Lab. Mon éditeur préféré est Vim / Neovim.

Aujourd'hui, je voudrais vous présenter brièvement la synthèse texte-parole de bout en bout à l'aide d'ESPnet2, que je participe au développement.

Le contenu suivant est basé sur le contenu d'ESPnet v.0.9.3 au 15/09/2020. Le contenu peut changer considérablement en raison des mises à jour de version.

Résumé de 3 lignes pour les personnes occupées

Qu'est-ce que ESPnet?

ESPnet est une boîte à outils open source pour le traitement de la voix E2E développée pour accélérer la recherche de modèles de type End-to-End (E2E). est. Pour plus de détails, veuillez consulter Article ici.

Qu'est-ce que ESPnet2?

ESPnet2 est une boîte à outils de traitement de la voix de nouvelle génération développée pour surmonter les faiblesses d'ESPnet. Le code lui-même est intégré dans le référentiel ESPnet (https://github.com/espnet/espnet). La configuration de base est la même que ESPnet, mais les extensions suivantes ont été faites pour améliorer la commodité et l'évolutivité.

La dernière version v.0.9.3 d'octobre 2020 prend en charge les tâches de reconnaissance vocale (ASR), de synthèse vocale de texte (TTS) et d'amélioration de la voix (SE). À l'avenir, d'autres tâches (par exemple, la traduction vocale, la conversion vocale) seront prises en charge (https://github.com/espnet/espnet/issues/1795). Dans cet article, je voudrais vous présenter brièvement la partie TTS que je développe principalement.

Modèles TTS pris en charge par ESPnet2

Le modèle E2E-TTS se compose généralement d'un modèle Text2Mel qui génère des caractéristiques acoustiques (spectrogramme mel) à partir de texte et d'un modèle Mel2Wav qui génère des formes d'onde à partir de caractéristiques acoustiques. ESPnet peut principalement construire la partie Text2Mel.

Depuis octobre 2020, les modèles Text2Mel suivants sont pris en charge.

En tant que modèle Mel2Wav, il peut être combiné avec celui du Repository que je développe. Les modèles Mel2Wav suivants sont pris en charge.

Inférence à l'aide d'un modèle de pré-apprentissage

ESPnet2 fonctionne avec Zenodo, un référentiel de partage de données de recherche, vous pouvez donc facilement essayer divers modèles de pré-apprentissage. En plus de l'essayer, tout utilisateur peut télécharger un modèle de pré-apprentissage en s'inscrivant sur Zenodo.

Ci-dessous, le modèle TTS FastSpeech2 pré-formé à l'aide du JSUT Corpus Voici un exemple de code Python qui effectue une inférence par).

from espnet_model_zoo.downloader import ModelDownloader
from espnet2.bin.tts_inference import Text2Speech

# Create E2E-TTS model instance
d = ModelDownloader()
text2speech = Speech2Text(
    # Specify the tag
    d.download_and_unpack("kan-bayashi/jsut_fastspeech2")
)

# Synthesis with a given text
wav, feats, feats_denorm, *_ = text2speech(
	"Il a tordu toute la réalité vers lui-même."
)

Ici, «wav», «features» et «feats_denorm» représentent respectivement les formes d'onde générées, les caractéristiques acoustiques statistiquement normalisées et les caractéristiques acoustiques dénormalisées. Par défaut, Griffin-Lim convertit la forme d'onde des fonctions acoustiques, mais il peut également être combiné avec le modèle Mel2Wav présenté ci-dessus.

Une liste des modèles de pré-formation publiés est disponible sur ESPnet Model Zoo.

Démo Colab

Nous avons également publié une démo utilisant Google Colab pour ceux qui ont du mal à créer un environnement. Vous pouvez facilement découvrir une synthèse vocale de pointe sur votre navigateur, alors essayez-la. Open In Colab Vous pouvez générer librement Un tel audio.

Construire un modèle à l'aide de recettes

Avec ESPnet2, vous pouvez également créer votre propre modèle à l'aide de recettes. Je ne vais pas expliquer en détail ici, donc si vous êtes intéressé, veuillez vous référer à cette page.

Conclusion

Dans cet article, nous avons décrit la synthèse texte-parole à l'aide de la boîte à outils de traitement vocal E2E ESPnet2. ESPnet est développé principalement par des Japonais, et nous sommes toujours à la recherche de développeurs enthousiastes. Si vous êtes intéressé, n'hésitez pas à contacter les membres du développement ou à rejoindre la discussion sur Github!

Lien de référence

Recommended Posts

Synthèse vocale de texte de bout en bout à partir d'ESPnet2
Synthèse vocale japonaise à partir de Tacotron2
Utiliser la synthèse vocale Windows 10 avec Python
Reconnaissance vocale en anglais avec python [speech to text]
Python à partir de Windows 7
GRPC commençant par Python
Text mining avec Python-Scraping-
Pythonbrew avec Sublime Text
Capture approfondie des données ouvertes PDF. Analyse de texte PDF à partir de PDFMiner.