MaskGCT: como resolver dois problemas opostos de TTS com um único truque de treinamento
- O que é o MaskGCT?
- Vantagens funcionais do MaskGCT
- Como a geração por mascaramento e previsão realmente funciona
- Resultados de benchmarks
- Como começar a usar o MaskGCT
- Dicas para obter resultados melhores
- MaskGCT em comparação com outros modelos TTS não autorregressivos
- Perguntas frequentes
- Gere uma voz semelhante a partir de um áudio de referência
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
Os modelos TTS autorregressivos modelam a duração de forma implícita, o que tende a prejudicar a robustez e não oferece controle real sobre quanto tempo a saída vai durar. Os modelos não autorregressivos resolvem o problema de robustez, mas historicamente exigiram supervisão explícita do alinhamento entre texto e fala e previsão de duração no nível dos fonemas durante o treinamento — mecanismos adicionais que também podem comprometer a naturalidade. O MaskGCT, desenvolvido por pesquisadores da CUHK-Shenzhen e lançado por meio do toolkit Amphion, foi criado para evitar os dois problemas ao mesmo tempo, usando uma abordagem de treinamento emprestada de um ramo totalmente diferente da modelagem generativa: mascarar e depois prever.
O que é o MaskGCT?
O MaskGCT (Masked Generative Codec Transformer) é um modelo TTS zero-shot, open source, totalmente não autorregressivo, lançado em outubro de 2024 e publicado posteriormente na ICLR 2025. Ele elimina a necessidade de informações explícitas de alinhamento entre texto e fala durante o treinamento e dispensa por completo a previsão de duração no nível dos fonemas — uma verdadeira mudança de arquitetura em relação aos sistemas TTS não autorregressivos típicos, e não apenas uma diferença de ajuste. Ele é distribuído pelo Amphion, um toolkit open source para pesquisa em geração de áudio, música e fala.
Vantagens funcionais do MaskGCT
- Não requer supervisão de alinhamento durante o treinamento, eliminando toda uma categoria de pré-processamento e possíveis pontos de falha da qual depende a maioria dos sistemas TTS não autorregressivos.
- Não usa previsão de duração no nível dos fonemas, evitando um mecanismo que pode introduzir falta de naturalidade na fala gerada.
- Controle explícito sobre a duração total da saída, permitindo especificar exatamente quanto tempo um clipe gerado deve durar — uma verdadeira vantagem sobre modelos autorregressivos, que modelam a duração apenas de forma implícita.
- Clonagem de voz zero-shot com apenas 5 segundos de áudio de referência, sem necessidade de treinamento adicional para o locutor-alvo.
- Geração rápida e paralela, exigindo apenas 25 a 50 etapas de inferência no estágio de texto para semântica, em vez de gerar tokens um por vez em sequência.
- Versatilidade demonstrada além do TTS principal, com o mesmo sistema subjacente explorado para dublagem entre idiomas, conversão de voz, controle de emoção e edição do conteúdo da fala.
Como a geração por mascaramento e previsão realmente funciona
A abordagem de treinamento do MaskGCT é conceitualmente semelhante à modelagem de linguagem mascarada em texto (como no BERT) ou à modelagem generativa mascarada em imagens (como no MaskGIT), mas aplicada aqui a tokens discretos de fala. Durante o treinamento, o modelo aprende a prever tokens semânticos ou acústicos mascarados de acordo com o contexto ao redor, as condições e os prompts. Durante a inferência, em vez de gerar tokens em sequência, ele produz uma sequência completa de tokens com um comprimento especificado por meio de decodificação paralela iterativa — preenchendo as posições mascaradas em várias passagens, e não um token por vez.
O pipeline real funciona em dois estágios. O estágio de texto para semântica (T2S) prevê tokens semânticos a partir do texto de entrada e dos tokens semânticos do prompt; esses tokens semânticos são extraídos com um VQ-VAE treinado especificamente para quantizar embeddings de um modelo de aprendizado autossupervisionado de fala. Essa foi uma escolha deliberada em vez do agrupamento k-means comum em trabalhos anteriores, pois minimiza a perda de informações até mesmo com um único codebook. Em seguida, o estágio de semântica para acústica (S2A) prevê tokens acústicos — obtidos de um codec de fala baseado em RVQ — condicionado por esses tokens semânticos e por prompts acústicos adicionais. Para preservar detalhes acústicos sutis, ele usa geração camada por camada nas várias camadas de tokens do codec.
Resultados de benchmarks
Treinado com 100.000 horas de fala em ambientes reais do conjunto de dados Emilia, divididas igualmente entre inglês e chinês, o MaskGCT relatou superar os sistemas TTS zero-shot de ponta anteriores com os quais foi comparado em qualidade, similaridade e inteligibilidade, alcançando o que seus autores descrevem como resultados de nível humano nessas métricas. Em uma comparação direta com um forte baseline que combina um modelo autorregressivo e o SoundStorm, o MaskGCT apresentou melhorias mensuráveis de naturalidade — ganhos de CMOS de +0,12 no LibriSpeech test-clean, +0,08 no SeedTTS test-en e +0,37 no SeedTTS test-zh — além de melhor similaridade e robustez. A vantagem de robustez foi especialmente acentuada em casos realmente difíceis, como palavras repetidas e trava-línguas, os gatilhos clássicos de alucinação e omissão de palavras em TTS. Esse é um resultado com utilidade prática significativa, que vai além das pontuações gerais dos benchmarks.
Como começar a usar o MaskGCT
- Clone o repositório do Amphion.
git clone https://github.com/open-mmlab/Amphion.gitfornece o toolkit completo, do qual o MaskGCT é um dos componentes. - Configure o ambiente com o script fornecido.
bash ./models/tts/maskgct/env.shcuida da configuração específica do MaskGCT dentro do repositório mais amplo do Amphion. - Baixe os checkpoints pré-treinados do Hugging Face. Use
hf_hub_download("amphion/MaskGCT", filename="semantic_codec/model.safetensors")como padrão e repita para os demais componentes necessários: o codificador e o decodificador do codec acústico, o modelo T2S e os modelos S2A, tanto a variante de 1 camada quanto a completa. - Use a classe
MaskGCT_Inference_Pipelinepara gerar. Crie uma instância com o modelo semântico, o codec semântico, o codificador e o decodificador do codec, o modelo T2S e os modelos S2A já carregados; depois, chame.maskgct_inference()com o caminho do áudio de prompt, o texto do prompt, o texto-alvo e os códigos dos idiomas de origem e destino. - Defina
target_lenexplicitamente quando precisar de uma duração exata para a saída. Informar um valor específico em segundos oferece controle direto sobre a duração gerada; deixá-lo comoNonefaz o sistema recorrer a uma regra simples de estimativa de duração. - Experimente o notebook Jupyter, a interface Gradio ou a demonstração no Hugging Face Space se preferir testar o modelo de forma interativa antes de programar um pipeline personalizado.
Dicas para obter resultados melhores
- Use
target_lende forma intencional sempre que o tempo for importante. Essa é uma das verdadeiras vantagens estruturais do MaskGCT sobre modelos autorregressivos — aproveite-a em qualquer caso de uso, como narração de vídeo ou dublagem em um intervalo fixo, no qual a duração exata seja uma restrição real, e não apenas algo desejável. - Teste com textos realmente difíceis, e não apenas com frases simples. Como a vantagem de robustez do MaskGCT aparece com mais clareza em palavras repetidas e conteúdo semelhante a trava-línguas, essa também é a maneira mais informativa de compará-lo com alternativas para o seu próprio caso de uso.
- Mantenha o clipe de referência limpo durante o mínimo completo de 5 segundos. Como a qualidade da clonagem depende dos tokens semânticos e acústicos extraídos dessa referência, uma gravação nítida com essa duração ou mais terá um resultado melhor do que uma amostra mais curta ou ruidosa.
MaskGCT em comparação com outros modelos TTS não autorregressivos
| MaskGCT | F5-TTS | E2 TTS | |
|---|---|---|---|
| Abordagem principal | Mascarar e prever, tokens semânticos/acústicos em dois estágios | Diffusion Transformer + flow matching | Flow matching, Transformer U-Net plano |
| Supervisão de alinhamento necessária | Não | Não | Não |
| Controle explícito de duração | Sim, pelo parâmetro target_len | Sem modelo dedicado de duração | Sem modelo dedicado de duração |
| Clipe de referência para clonagem | ~5 segundos | ~5–15 segundos | Semelhante |
| Idiomas | 6 (inglês, chinês, coreano, japonês, francês e alemão) | Voltado principalmente para inglês | Voltado para inglês |
O nicho específico do MaskGCT é combinar o treinamento sem alinhamento e sem previsão de duração com um verdadeiro controle explícito sobre o comprimento da saída — uma combinação que trata diretamente das fraquezas específicas tanto do campo autorregressivo quanto do campo não autorregressivo típico entre os quais ele se posiciona.
Perguntas frequentes
O que significa “generativo mascarado” no nome MaskGCT?
Refere-se ao paradigma de treinamento de mascarar e prever do modelo, conceitualmente semelhante à modelagem de linguagem mascarada em texto ou aos modelos generativos de imagens mascaradas. O modelo aprende a prever tokens mascarados a partir do contexto ao redor e, durante a inferência, gera sequências completas por meio de decodificação paralela iterativa.
Posso controlar exatamente a duração da fala gerada?
Sim, pelo parâmetro target_len, que permite especificar uma duração exata para a saída — uma capacidade que os modelos autorregressivos não oferecem diretamente, pois modelam a duração apenas de forma implícita.
De quanto áudio de referência o MaskGCT precisa para clonar uma voz?
Apenas 5 segundos, sem necessidade de treinamento adicional para o locutor-alvo.
Quais idiomas o MaskGCT aceita?
Seis: inglês, chinês, coreano, japonês, francês e alemão.
O MaskGCT está pronto para uso comercial ou em produção?
A página oficial do projeto o descreve como destinado a demonstrações de pesquisa. Faça testes completos com seu próprio conteúdo e revise os termos atuais da licença antes de considerar qualquer implantação em produção.
Gere uma voz semelhante a partir de um áudio de referência
Para um fluxo no navegador com objetivo semelhante, use a Clonagem de voz da Echora. Envie uma gravação da sua própria voz ou de uma voz que você tenha permissão explícita para usar, insira um texto novo e gere uma nova fala parecida com a referência.