NaturalSpeech: o modelo que definiu “nível humano” antes de afirmar que o alcançou
- O que é o NaturalSpeech?
- Definindo “qualidade de nível humano” como um teste real, não um slogan
- Quatro escolhas de design por trás do resultado
- O resultado do benchmark
- Primeiros passos com o NaturalSpeech
- Dicas para entender e trabalhar com o NaturalSpeech
- NaturalSpeech em comparação com a TTS não autorregressiva da mesma época
- Perguntas frequentes
- Transforme texto em voz com a Echora
Transforme textos e gravações em áudio pronto para ouvir
Dublagem, stems, covers e efeitos sonoros, tudo no navegador.
- Texto para fala, e também clonagem de voz
- Separe as faixas, ou gere um cover
- Cadastre-se para ouvir primeiro e decidir depois
“Soa quase como uma pessoa” já era uma frase de marketing de TTS havia anos antes de alguém tentar determinar o que ela realmente deveria significar, de uma forma que pudesse ser testada em vez de apenas declarada. Desenvolvido pela Microsoft Research Asia e pela Microsoft Azure Speech, o NaturalSpeech fez primeiro esse trabalho de base — definiu a qualidade de nível humano como uma afirmação específica e estatisticamente mensurável — e depois construiu um sistema projetado para realmente atingir esse patamar, em vez de partir de uma meta de marketing e trabalhar de trás para frente.
O que é o NaturalSpeech?
O NaturalSpeech é um sistema totalmente ponta a ponta de síntese de texto para forma de onda que gera áudio diretamente do texto por meio de um autoencoder variacional (VAE), em vez de passar por um modelo acústico e um vocoder treinados separadamente, como faziam muitos pipelines anteriores. No entanto, seu maior diferencial não é apenas arquitetural — antes de propor o próprio modelo, a pesquisa estabeleceu primeiro uma definição rigorosa e testável do que deveria significar “qualidade de nível humano” para um sistema de TTS, além de uma metodologia para realmente julgar se determinado sistema a alcança.
Definindo “qualidade de nível humano” como um teste real, não um slogan
Esta é a contribuição mais singular do NaturalSpeech e vale a pena examiná-la com atenção, pois ela mudou a forma como pesquisas posteriores de TTS relatavam seus resultados. A definição proposta foi a seguinte: um sistema de TTS atinge qualidade de nível humano em determinado conjunto de teste se não houver diferença estatisticamente significativa entre as notas de qualidade da fala gerada e as notas de qualidade das gravações humanas reais correspondentes, medida por meio de um teste formal de hipótese sobre notas comparativas médias de opinião (CMOS).
Ao aplicar esse padrão retroativamente, a pesquisa constatou que vários sistemas de TTS antes celebrados — apesar de descritos como próximos do nível humano em seus próprios artigos — na verdade não haviam superado esse teste específico e rigoroso. O NaturalSpeech foi construído especificamente para fechar a lacuna restante, e não apenas para tornar a fala um pouco melhor do que a do sistema anterior em uma comparação relativa.
Quatro escolhas de design por trás do resultado
A arquitetura do NaturalSpeech baseada em VAE foi construída em torno de um problema específico: a distribuição “prévia” aprendida a partir do texto e a distribuição “posterior” aprendida a partir da fala real são naturalmente muito diferentes em complexidade, e essa incompatibilidade é uma fonte importante da diferença de qualidade entre a fala sintetizada e a real. Quatro elementos de design trabalham em conjunto para reduzi-la:
- Pré-treinamento de fonemas. Um codificador de fonemas é pré-treinado em um grande corpus de texto usando modelagem de linguagem mascarada sobre sequências de fonemas — conceitualmente semelhante à maneira como o BERT é pré-treinado em texto —, dando ao modelo um ponto de partida mais forte para compreender a estrutura fonética antes mesmo de ver áudios pareados.
- Modelagem diferenciável de duração. Como o timing é especialmente importante em TTS não autorregressiva, o NaturalSpeech usa o que seus autores chamam de “durator” — um componente de modelagem de duração construído para ser totalmente diferenciável, permitindo que os gradientes passem por ele durante o treinamento ponta a ponta, em vez de tratar a duração como uma tarefa secundária otimizada separadamente.
- Modelagem bidirecional prévia/posterior. A distribuição posterior (derivada da fala real) opera no nível de frames, enquanto a prévia (derivada do texto) opera no nível mais amplo de fonemas — o NaturalSpeech modela a relação entre elas nas duas direções, especificamente para reduzir a diferença de complexidade entre ambas.
- Um mecanismo de memória no VAE. Um componente adicional de memória dá ao modelo mais capacidade para reter e usar informações relevantes ao longo do processo de geração, em vez de depender apenas da representação latente imediata em cada etapa.
Juntas, essas escolhas reduzem a carga nos dois lados do VAE — simplificando o que a distribuição posterior precisa representar e, ao mesmo tempo, fortalecendo o que a prévia consegue gerar apenas a partir do texto —, o que constitui a estratégia central para eliminar a diferença em relação às gravações humanas, em vez de apenas aumentar o tamanho do modelo.
O resultado do benchmark
Avaliado no conjunto de dados LJSpeech, amplamente usado e com um único falante, o NaturalSpeech não apresentou diferença estatisticamente significativa em sua avaliação CMOS em relação às gravações humanas reais de referência — atingindo exatamente o patamar que a própria pesquisa acabara de definir. É importante ser preciso quanto ao escopo: esse resultado é específico de um conjunto de benchmark com um único falante e qualidade de estúdio; não se trata de uma afirmação sobre qualquer fala captada em ambientes reais ou sobre geração zero-shot com múltiplos falantes. Esse é justamente o problema mais difícil que o trabalho posterior da Microsoft, o NaturalSpeech 2, foi criado para enfrentar usando uma abordagem de difusão latente.
Primeiros passos com o NaturalSpeech
Assim como em vários outros projetos de pesquisa de fala da Microsoft, o código oficial e os pesos pré-treinados do NaturalSpeech não foram disponibilizados publicamente junto com o artigo. O que existe em seu lugar é uma reimplementação comunitária em PyTorch:
- Use a reimplementação da comunidade. O projeto
heatz123/naturalspeechno GitHub oferece uma implementação funcional em PyTorch construída com base na arquitetura descrita no artigo, incluindo amostras de demonstração de seus próprios treinamentos. - Espere treinar seu próprio modelo. Como acontece com a maioria das reproduções comunitárias de trabalhos divulgados apenas como pesquisa, isso geralmente significa preparar seu próprio conjunto de dados e sua própria execução de treinamento, em vez de baixar um checkpoint pronto e imediatamente utilizável.
- Compare as escolhas de design diretamente com o VITS, caso conheça essa arquitetura. A documentação da própria reimplementação apresenta vários de seus componentes — o pré-treinamento de fonemas, o durator diferenciável e a divisão entre a distribuição posterior no nível de frames e a prévia no nível de fonemas — como diferenças específicas em relação ao VITS, um ponto de referência útil se você já conhece essa arquitetura.
- Use o LJSpeech como seu benchmark inicial natural. Como esse foi o conjunto de dados usado na avaliação da pesquisa original, ele é a maneira mais direta de comparar os resultados de seu próprio treinamento com as afirmações publicadas.
Dicas para entender e trabalhar com o NaturalSpeech
- Mantenha a afirmação de qualidade de nível humano dentro do escopo correto. Trata-se de um resultado específico e testado estatisticamente em um conjunto de benchmark de um único falante — uma afirmação verdadeiramente rigorosa, mas não uma evidência do mesmo desempenho em áudio com múltiplos falantes, zero-shot ou captado em ambientes reais com ruído, que é um problema significativamente mais difícil.
- Estude os quatro componentes arquiteturais individualmente se estiver fazendo pesquisas relacionadas. Cada um trata de uma parte distinta da incompatibilidade de complexidade entre as distribuições prévia e posterior — entendê-los separadamente, em vez de considerá-los uma única melhoria indiferenciada, é mais útil se você estiver adaptando ideias semelhantes em outro contexto.
- Não espere um checkpoint pré-treinado oficial. Como a Microsoft não disponibilizou um, reserve tempo para treinamento caso queira reproduzir ou desenvolver diretamente sobre essa arquitetura, em vez de presumir que exista um atalho.
- Consulte o NaturalSpeech 2 se seu caso de uso exigir capacidade zero-shot ou com múltiplos falantes. O NaturalSpeech original foi construído e avaliado especificamente para síntese com um único falante e qualidade de estúdio; a expansão para falantes diversos e dados de ambientes reais foi o problema específico que a continuação foi projetada para resolver usando uma abordagem arquitetural diferente.
NaturalSpeech em comparação com a TTS não autorregressiva da mesma época
| NaturalSpeech | TTS não autorregressiva anterior típica | NaturalSpeech 2 (sucessor) | |
|---|---|---|---|
| Arquitetura principal | Baseada em VAE, ponta a ponta | Varia (muitas vezes, modelo acústico + vocoder separados) | Difusão latente + codec neural |
| Afirmação de qualidade de nível humano | Formalmente definida e testada estatisticamente | Frequentemente apresentada de maneira informal | Focada, em vez disso, na naturalidade zero-shot e com múltiplos falantes |
| Cenário mais adequado | Benchmark de um único falante e qualidade de estúdio | Varia | Múltiplos falantes, zero-shot, dados de ambientes reais |
| Modelagem de duração | Totalmente diferenciável (“durator”) | Muitas vezes, um preditor separado e não diferenciável | Geração baseada em difusão, uma abordagem totalmente diferente |
| Lançamento público oficial | Não (apenas reimplementação comunitária) | Varia conforme o projeto | Artigo de pesquisa, sem lançamento público oficial |
A contribuição duradoura do NaturalSpeech tem menos a ver com a arquitetura específica e mais com a disciplina que ele introduziu: fazer de “nível humano” uma afirmação que se testa, não uma afirmação que apenas se declara. Esse padrão influenciou posteriormente a maneira como seus próprios sucessores — e boa parte das pesquisas de TTS que vieram depois — relataram seus resultados.
Perguntas frequentes
O que “qualidade de nível humano” significa especificamente na pesquisa do NaturalSpeech?
É uma afirmação formalmente definida e testável por métodos estatísticos: um sistema de TTS atinge qualidade de nível humano em um conjunto de teste se não houver diferença estatisticamente significativa entre as notas de qualidade da fala gerada e as das gravações humanas reais, com base em um teste de hipótese CMOS.
O NaturalSpeech realmente passou em seu próprio teste?
Sim, especificamente no conjunto de benchmark LJSpeech de um único falante — sua avaliação CMOS não mostrou diferença estatisticamente significativa em relação às gravações humanas reais de referência naquele conjunto de teste.
Posso baixar os pesos oficiais do modelo NaturalSpeech da Microsoft?
Não. A Microsoft não disponibilizou código oficial nem pesos pré-treinados para o NaturalSpeech original. Existe uma reimplementação comunitária em PyTorch (heatz123/naturalspeech), mas geralmente ela exige que você treine seu próprio modelo, em vez de baixar um checkpoint pronto.
Qual é a diferença entre o NaturalSpeech e o NaturalSpeech 2?
O NaturalSpeech original é um sistema baseado em VAE, focado e avaliado para síntese com um único falante e qualidade de estúdio. O NaturalSpeech 2 aborda um problema mais difícil — síntese de fala com múltiplos falantes, zero-shot e em ambientes reais — usando uma abordagem de difusão latente com um codec de áudio neural.
O NaturalSpeech é autorregressivo ou não autorregressivo?
Não autorregressivo. Seu design ponta a ponta baseado em VAE gera a forma de onda inteira sem a geração sequencial token a token usada por modelos autorregressivos, como os primeiros sistemas de TTS baseados em modelos de linguagem de codecs.
Transforme texto em voz com a Echora
Para um fluxo no navegador com um objetivo semelhante, use o Texto para fala da Echora. Insira até 5.000 caracteres, escolha uma voz integrada ou uma voz personalizada salva, adicione tags de interpretação compatíveis quando necessário e ajuste a estabilidade. Depois, você pode ouvir o resultado e baixar o MP3 final.