Descrição
WaveGlow é uma rede generativa baseada em fluxo para síntese de fala, desenvolvida pelos pesquisadores da NVIDIA Ryan Prenger, Rafael Valle e Bryan Catanzaro. Ela combina ideias do Glow e do WaveNet para gerar áudio de fala de alta qualidade a partir de mel-espectrogramas, sem a etapa de decodificação autoregressiva que vocoders anteriores dependiam.
Ler mais
A rede é implementada como um único modelo treinado com uma única função de custo: maximizar a verossimilhança dos dados de treinamento. De acordo com o artigo acompanhante, isso torna o treinamento mais simples e estável do que abordagens de múltiplas etapas, e a implementação em PyTorch supostamente gera áudio a uma taxa de 1200 kHz em uma GPU NVIDIA V100, com pontuações de opinião média comparáveis à melhor implementação pública do WaveNet na época.
O repositório fornece tudo o que é necessário para reproduzir ou construir sobre este trabalho. Um ponto de verificação pré-treinado do WaveGlow e arquivos de mel-espectrograma correspondentes estão disponíveis para execução de inferência imediata, usando o script inference.py para sintetizar áudio a partir de uma lista de arquivos de mel-espectrograma. Para treinar um novo modelo, o repositório inclui scripts construídos em torno do formato do conjunto de dados LJ Speech: listas de arquivos são divididas em conjuntos de treinamento e teste, mel-espectrogramas são gerados com mel2samp.py, e o treinamento é executado através do train.py, com distributed.py disponível para configurações de múltiplas GPUs. O treinamento de precisão mista (fp16) pode ser ativado através do arquivo de configuração do modelo. Um script de conversão separado, convert_model.py, atualiza pontos de verificação mais antigos salvos antes da arquitetura atual para funcionar com ela, uma vez que a versão atual funde as conexões residuais e de salto na rede.
A configuração começa com a clonagem do repositório e a inicialização de seu submódulo git, instalando os requisitos do Python e a biblioteca Apex da NVIDIA, da qual o código de treinamento e inferência depende. Como o projeto é um lançamento de pesquisa em vez de uma aplicação empacotada, usá-lo significa trabalhar diretamente com esses scripts de linha de comando em vez de uma interface gráfica.
WaveGlow é voltado para pesquisadores e engenheiros de síntese de fala que desejam uma implementação de vocoder de referência para executar inferência, re-treinar em novos dados de voz ou comparar com outras abordagens generativas, como o WaveNet. Amostras de áudio geradas pelo modelo estão disponíveis no site vinculado do projeto, e o artigo acompanhante documenta a avaliação da pontuação de opinião média usada para julgar a qualidade do áudio.
- CategoriaTexto para voz
- Modelo de preçosCódigo aberto
- ImplantaçãoNuvem, Auto-hospedado
- PlataformasNVIDIA Blackwell, DRIVE, Jetson, RTX
Recursos principais de WaveGlow
Gera áudio de fala diretamente de mel-espectrogramas sem uma etapa de decodificação autoregressiva
Treinado com uma única função de custo de máxima verossimilhança
Inclui um ponto de verificação pré-treinado do WaveGlow e dados de mel-espectrograma correspondentes para inferência
Inclui scripts para treinar um novo modelo no formato do conjunto de dados LJ Speech
Suporta treinamento distribuído em múltiplas GPUs via NCCL
Suporta treinamento e inferência de precisão mista (fp16)
Inclui um script de conversão para atualizar pontos de verificação mais antigos para a arquitetura atual
Relata geração de áudio a 1200 kHz em uma GPU NVIDIA V100, conforme o artigo acompanhante
Primeiros passos com WaveGlow
Clone o repositório: Clone NVIDIA/waveglow e inicialize seu submódulo.
Instale as dependências: Instale os requisitos do Python e a biblioteca Apex.
Obtenha dados: Baixe o modelo pré-treinado do WaveGlow e amostras de mel-espectrogramas, ou o conjunto de dados LJ Speech para treinar o seu próprio.
Execute a inferência: Gere áudio a partir de mel-espectrogramas com inference.py.
Treine (opcional): Execute train.py, ou distributed.py para múltiplas GPUs, em seu próprio conjunto de dados.
Avalie a saída: Compare a qualidade do áudio gerado e ajuste configurações como fp16 ou o parâmetro sigma.
Casos de uso de WaveGlow
- Vocoding de texto para fala
- Pesquisa de vocoder
- Treinamento de voz personalizada





