Description
WaveGlow est un réseau génératif basé sur le flux pour la synthèse vocale, développé par les chercheurs de NVIDIA Ryan Prenger, Rafael Valle et Bryan Catanzaro. Il combine des idées de Glow et WaveNet pour générer un audio de parole de haute qualité à partir de mel-spectrogrammes, sans l'étape de décodage autoregressive sur laquelle reposaient les vocodeurs précédents.
Lire la suite
Le réseau est implémenté comme un modèle unique entraîné avec une fonction de coût unique : maximiser la vraisemblance des données d'entraînement. Selon l'article qui l'accompagne, cela rend l'entraînement plus simple et plus stable que les approches à plusieurs étapes, et l'implémentation PyTorch génère apparemment de l'audio à un taux de 1200 kHz sur un GPU NVIDIA V100, avec des scores d'opinion moyens comparables à la meilleure implémentation WaveNet disponible publiquement à l'époque.
Le dépôt fournit tout ce qui est nécessaire pour reproduire ou s'appuyer sur ce travail. Un point de contrôle WaveGlow pré-entraîné et des fichiers de mel-spectrogramme correspondants sont disponibles pour exécuter immédiatement l'inférence, en utilisant le script inference.py pour synthétiser de l'audio à partir d'une liste de fichiers de mel-spectrogrammes. Pour entraîner un nouveau modèle, le dépôt comprend des scripts construits autour du format de jeu de données LJ Speech : les listes de fichiers sont divisées en ensembles d'entraînement et de test, les mel-spectrogrammes sont générés avec mel2samp.py, et l'entraînement se fait via train.py, avec distributed.py disponible pour les configurations multi-GPU. L'entraînement en précision mixte (fp16) peut être activé via le fichier de configuration du modèle. Un script de conversion séparé, convert_model.py, met à jour les anciens points de contrôle sauvegardés avant l'architecture actuelle pour fonctionner avec celle-ci, puisque la version actuelle fusionne les connexions résiduelles et de contournement dans le réseau.
La configuration commence par cloner le dépôt et initialiser son sous-module git, installer les exigences Python et installer la bibliothèque Apex de NVIDIA, dont dépendent le code d'entraînement et d'inférence. Étant donné que le projet est une version de recherche plutôt qu'une application empaquetée, son utilisation implique de travailler directement avec ces scripts en ligne de commande plutôt qu'une interface graphique.
WaveGlow s'adresse aux chercheurs et ingénieurs en synthèse vocale qui souhaitent une implémentation de vocodeur de référence pour exécuter l'inférence, réentraîner sur de nouvelles données vocales ou comparer avec d'autres approches génératives telles que WaveNet. Des échantillons audio générés par le modèle sont disponibles sur le site Web lié au projet, et l'article qui l'accompagne documente l'évaluation des scores d'opinion moyens utilisés pour juger de la qualité audio.
- CatégorieSynthèse vocale
- Modèle tarifaireOpen source
- DéploiementCloud, Auto-hébergé
- PlateformesNVIDIA Blackwell, DRIVE, Jetson, RTX
Fonctionnalités principales de WaveGlow
Génère de l'audio de parole directement à partir de mel-spectrogrammes sans étape de décodage autoregressive
Entraîné avec une fonction de coût unique de vraisemblance maximale
Fournit un point de contrôle WaveGlow pré-entraîné et des données de mel-spectrogramme correspondantes pour l'inférence
Comprend des scripts pour entraîner un nouveau modèle au format de jeu de données LJ Speech
Prend en charge l'entraînement distribué multi-GPU via NCCL
Prend en charge l'entraînement et l'inférence en précision mixte (fp16)
Comprend un script de conversion pour mettre à jour les anciens points de contrôle vers l'architecture actuelle
Rapporte la génération audio à 1200 kHz sur un GPU NVIDIA V100 selon l'article qui l'accompagne
Premiers pas avec WaveGlow
Clonez le dépôt : Clonez NVIDIA/waveglow et initialisez son sous-module.
Installez les dépendances : Installez les exigences Python et la bibliothèque Apex.
Obtenez des données : Téléchargez le modèle WaveGlow pré-entraîné et des mel-spectrogrammes d'exemple, ou le jeu de données LJ Speech pour entraîner le vôtre.
Exécutez l'inférence : Générez de l'audio à partir de mel-spectrogrammes avec inference.py.
Entraînez (optionnel) : Exécutez train.py, ou distributed.py pour multi-GPU, sur votre propre jeu de données.
Évaluez la sortie : Comparez la qualité audio générée et ajustez les paramètres tels que fp16 ou le paramètre sigma.
Cas d'utilisation de WaveGlow
- Vocodage texte-à-parole
- Recherche sur les vocodeurs
- Entraînement de voix personnalisée





