Descripción
WaveGlow es una red generativa basada en flujos para la síntesis de voz, desarrollada por los investigadores de NVIDIA Ryan Prenger, Rafael Valle y Bryan Catanzaro. Combina ideas de Glow y WaveNet para generar audio de voz de alta calidad a partir de mel-espectrogramas, sin el paso de decodificación autorregresiva en el que se basaban los vocoders anteriores.
Leer más
La red se implementa como un único modelo entrenado con una única función de costo: maximizar la probabilidad de los datos de entrenamiento. Según el documento adjunto, esto hace que el entrenamiento sea más simple y estable que los enfoques de múltiples etapas, y la implementación en PyTorch genera audio a una tasa de 1200 kHz en una GPU NVIDIA V100, con puntuaciones de opinión media comparables a la mejor implementación de WaveNet disponible públicamente en ese momento.
El repositorio proporciona todo lo necesario para reproducir o construir sobre este trabajo. Un punto de control de WaveGlow preentrenado y archivos de mel-espectrograma coincidentes están disponibles para ejecutar inferencias de inmediato, utilizando el script inference.py para sintetizar audio a partir de una lista de archivos de mel-espectrogramas. Para entrenar un nuevo modelo, el repositorio incluye scripts construidos alrededor del formato del conjunto de datos LJ Speech: las listas de archivos se dividen en conjuntos de entrenamiento y prueba, los mel-espectrogramas se generan con mel2samp.py, y el entrenamiento se realiza a través de train.py, con distributed.py disponible para configuraciones de múltiples GPU. El entrenamiento de precisión mixta (fp16) se puede activar a través del archivo de configuración del modelo. Un script de conversión separado, convert_model.py, actualiza puntos de control más antiguos guardados antes de la arquitectura actual para que funcionen con ella, ya que la versión actual fusiona las conexiones residuales y de salto en la red.
La configuración comienza clonando el repositorio e inicializando su submódulo git, instalando los requisitos de Python e instalando la biblioteca Apex de NVIDIA, de la cual dependen el código de entrenamiento y de inferencia. Dado que el proyecto es una versión de investigación en lugar de una aplicación empaquetada, usarlo significa trabajar directamente con estos scripts de línea de comandos en lugar de una interfaz gráfica.
WaveGlow está dirigido a investigadores y ingenieros de síntesis de voz que desean una implementación de vocoder de referencia para ejecutar inferencias, reentrenar con nuevos datos de voz o comparar con otros enfoques generativos como WaveNet. Las muestras de audio generadas por el modelo están disponibles en el sitio web vinculado del proyecto, y el documento adjunto documenta la evaluación de puntuación de opinión media utilizada para juzgar la calidad del audio.
- CategoríaTexto a voz
- Modelo de preciosCódigo abierto
- ImplementaciónNube, Autoalojado
- PlataformasNVIDIA Blackwell, DRIVE, Jetson, RTX
Características principales de WaveGlow
Genera audio de voz directamente a partir de mel-espectrogramas sin un paso de decodificación autorregresiva
Entrenado con una única función de costo de máxima verosimilitud
Incluye un punto de control de WaveGlow preentrenado y datos de mel-espectrograma coincidentes para inferencia
Incluye scripts para entrenar un nuevo modelo en el formato del conjunto de datos LJ Speech
Soporta entrenamiento distribuido en múltiples GPU a través de NCCL
Soporta entrenamiento e inferencia de precisión mixta (fp16)
Incluye un script de conversión para actualizar puntos de control más antiguos a la arquitectura actual
Informa generación de audio a 1200 kHz en una GPU NVIDIA V100 según el documento adjunto
Primeros pasos con WaveGlow
Clona el repositorio: Clona NVIDIA/waveglow e inicializa su submódulo.
Instala dependencias: Instala los requisitos de Python y la biblioteca Apex.
Obtén datos: Descarga el modelo WaveGlow preentrenado y mel-espectrogramas de muestra, o el conjunto de datos LJ Speech para entrenar el tuyo.
Ejecuta inferencia: Genera audio a partir de mel-espectrogramas con inference.py.
Entrena (opcional): Ejecuta train.py, o distributed.py para múltiples GPU, en tu propio conjunto de datos.
Evalúa la salida: Compara la calidad del audio generado y ajusta configuraciones como fp16 o el parámetro sigma.
Casos de uso de WaveGlow
- Vocoding de texto a voz
- Investigación de vocoders
- Entrenamiento de voz personalizada





