Los trabajos anteriores han encontrado que generar formas coherentes de onda de audio sin procesar con GAN es un desafío. En este artículo, mostramos que es posible entrenar Gans de manera confiable para generar formas de onda coherentes de alta calidad mediante la introducción de un conjunto de cambios arquitectónicos y técnicas de entrenamiento simples. Métrica de evaluación subjetiva (puntaje de opinión media o MOS) muestra la efectividad del enfoque propuesto para la inversión de espectrograma MEL de alta calidad. Para establecer la generalidad de las técnicas propuestas, mostramos resultados cualitativos de nuestro modelo en la síntesis del habla, la traducción del dominio musical y la síntesis de música incondicional. Evaluamos los diversos componentes del modelo a través de estudios de ablación y sugerimos un conjunto de pautas para diseñar discriminadores y generadores de propósito general para tareas de síntesis de secuencia condicional. Nuestro modelo no es autorregresivo, totalmente convolucional, con significativamente menos parámetros que los modelos competidores y generaliza a los altavoces invisibles para la inversión del espectrograma MEL. Nuestra implementación de Pytorch se ejecuta a más de 100 veces más rápido que en tiempo real en GTX 1080TI GPU y más de 2 veces más rápido que en tiempo real en CPU, sin ningún truco de optimización específico de hardware. Publicación de blog con muestras y código acompañante próximamente.
Visite nuestro sitio web para obtener muestras. Puede probar la aplicación de corrección del habla aquí creada en función de la tubería de síntesis de voz de extremo a extremo usando Melgan.
Consulte las diapositivas si no está asistiendo a la conferencia Neurips 2019 para consultar nuestro póster.
├── README.md <- Top-level README.
├── set_env.sh <- Set PYTHONPATH and CUDA_VISIBLE_DEVICES.
│
├── mel2wav
│ ├── dataset.py <- data loader scripts
│ ├── modules.py <- Model, layers and losses
│ ├── utils.py <- Utilities to monitor, save, log, schedule etc.
│
├── scripts
│ ├── train.py <- training / validation / etc scripts
│ ├── generate_from_folder.py
Cree una carpeta RAW con todas las muestras almacenadas en wavs/ Subcarpeta. Ejecute estos comandos:
ls wavs/ * .wav | tail -n+10 > train_files.txt
ls wavs/ * .wav | head -n10 > test_files.txt . source set_env.sh 0
# Set PYTHONPATH and use first GPU
python scripts/train.py --save_path logs/baseline --path <root_data_folder>
import torch
vocoder = torch.hub.load('descriptinc/melgan-neurips', 'load_melgan')
vocoder.inverse(audio) # audio (torch.tensor) -> (batch_size, 80, timesteps)