Trabalhos anteriores descobriram que gerar formas de onda de áudio cruas coerentes com Gans é um desafio. Neste artigo, mostramos que é possível treinar Gans de maneira confiável para gerar formas de onda coerentes de alta qualidade, introduzindo um conjunto de mudanças arquitetônicas e técnicas de treinamento simples. A métrica de avaliação subjetiva (pontuação média de opinião, ou MOS) mostra a eficácia da abordagem proposta para inversão de alto espectrograma de MEL de alta qualidade. Para estabelecer a generalidade das técnicas propostas, mostramos resultados qualitativos de nosso modelo na síntese da fala, tradução do domínio musical e síntese musical incondicional. Avaliamos os vários componentes do modelo por meio de estudos de ablação e sugerimos um conjunto de diretrizes para projetar discriminadores e geradores de uso geral para tarefas de síntese de sequência condicional. Nosso modelo é não autorregressivo, totalmente convolucional, com significativamente menos parâmetros do que modelos concorrentes e generaliza para falantes invisíveis para inversão de espectrograma MEL. Nossa implementação Pytorch é executada em mais de 100x mais rápida que o Real em tempo real na GPU GTX 1080TI e mais de 2x mais rápido que o tempo real na CPU, sem nenhum truque de otimização específico de hardware. Postagem do blog com amostras e código que o acompanha em breve.
Visite nosso site para obter amostras. Você pode experimentar o aplicativo de correção de fala criado aqui com base no pipeline de síntese de fala de ponta a ponta usando o Melgan.
Verifique os slides se você não estiver participando da conferência Neurips 2019 para conferir nosso 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
Crie uma pasta bruta com todas as amostras armazenadas no wavs/ SubPolder. Execute estes 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)