CosyVoice: o modelo que repensou o que um "token de fala" deveria ser
Transforme texto e gravações em obras que se ouvem
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
Em 2024, a maioria dos modelos de TTS zero-shot baseados em LLM — incluindo o VALL-E — compartilhava a mesma premissa: representar a fala como tokens aprendidos de modo não supervisionado e deixar um modelo de linguagem prevê-los como prevê texto. A equipe FunAudioLLM da Alibaba examinou essa premissa e a desafiou diretamente. CosyVoice construiu seus tokens de fala a partir de um modelo multilíngue de reconhecimento de fala, e o ganho resultante em precisão de conteúdo e fidelidade de clonagem de voz foi o que colocou o modelo em evidência e lançou a base arquitetural sobre a qual CosyVoice 2 e 3 construiriam mais tarde.
O que é CosyVoice?
CosyVoice é um modelo open source de texto para fala multilíngue e zero-shot desenvolvido pela FunAudioLLM, a equipe de pesquisa em IA de voz da Alibaba. Lançado como um modelo de 300 milhões de parâmetros, ele introduziu uma abordagem escalável de clonagem de voz baseada em LLM que podia reproduzir a voz de uma pessoa a partir de um clipe de referência curto sem qualquer fine-tuning — uma capacidade ainda relativamente nova em TTS open source no momento de seu lançamento.
CosyVoice oferece suporte a cinco idiomas — chinês, inglês, japonês, cantonês e coreano — e vem em três checkpoints distintos, conforme a necessidade:
- CosyVoice-300M — o modelo base zero-shot e entre idiomas, mais adequado para clonar uma voz arbitrária a partir de um clipe de referência.
- CosyVoice-300M-SFT — ajustado de forma supervisionada em um conjunto fixo de vozes de alta qualidade; troca flexibilidade de clonagem por uma saída mais consistente e pronta para produção em um elenco de vozes conhecido.
- CosyVoice-300M-Instruct — adiciona controle por instruções em linguagem natural sobre o estilo de fala, permitindo orientar velocidade, emoção e dialeto por prompts de texto descritivos, e não apenas por um clipe de áudio de referência.
A inovação central: tokens semânticos supervisionados
Este é o detalhe que de fato explica por que CosyVoice se comporta da forma como se comporta, e vale a pena entendê-lo em vez de ignorá-lo.
Os primeiros sistemas TTS baseados em LLM representavam a fala usando tokens extraídos de forma não supervisionada — em essência, o modelo aprendia a comprimir áudio em unidades discretas sem receber informação sobre o significado linguístico dessas unidades. A equipe de pesquisa da CosyVoice adotou outra abordagem: derivou tokens de fala das representações internas de um modelo multilíngue de reconhecimento de fala, inserindo uma etapa de quantização vetorial no codificador. Como esse modelo de origem foi treinado para entender o conteúdo da fala, os tokens resultantes carregam alinhamento semântico e textual explícito que os tokens não supervisionados não têm.
O ganho prático, confirmado nas avaliações publicadas pela equipe, foi duplo: consistência de conteúdo significativamente melhor (a fala gerada diz de forma mais confiável o que o texto realmente diz) e maior semelhança com o falante na clonagem zero-shot, em comparação com abordagens de tokens não supervisionados como a do VALL-E. Em uma avaliação direta contra o ChatTTS, contemporâneo de escala semelhante, o CosyVoice também mostrou muito menos erros de inserção e exclusão — evitando em especial o problema de "vazamento de falante", em que fragmentos da voz de outra pessoa aparecem na saída gerada.
Arquiteturalmente, a geração acontece em duas etapas: um modelo de linguagem autorregressivo converte texto nesses tokens semânticos, e um modelo condicional de flow matching converte os tokens em um espectrograma mel, que um vocoder então renderiza na forma de onda final.
Como começar com CosyVoice
- Faça o clone com submódulos. CosyVoice depende do projeto Matcha-TTS como submódulo git, portanto use
git clone --recursive https://github.com/FunAudioLLM/CosyVoice.git; um clone padrão deixará componentes necessários ausentes. - Configure o ambiente e instale dependências. Crie um ambiente Python dedicado (Conda é recomendado) e execute
pip install -r requirements.txt; usar o mirror PyPI da Alibaba acelera isso sensivelmente se a instalação for feita na China. - Escolha o checkpoint certo para sua tarefa. Baixe
CosyVoice-300Mpara clonagem zero-shot ou entre idiomas,CosyVoice-300M-SFTse um elenco fixo de vozes de alta qualidade for suficiente, ouCosyVoice-300M-Instructse precisar de controle de estilo em linguagem natural. - Instale opcionalmente o recurso de frontend de texto. O pacote
CosyVoice-ttsfrdmelhora a normalização de texto (números, datas e abreviações) e vale a pena se o texto de entrada ainda não estiver limpo e em forma falada. - Inicie a WebUI para testar antes de integrar. Executar
python3 webui.py --port 50000 --model_dir pretrained_models/CosyVoice-300Mabre uma interface Gradio onde você pode testar a clonagem de voz diretamente, enviando um clipe de referência e inserindo o texto-alvo.
Dicas para melhores resultados
- Faça o checkpoint corresponder ao trabalho, e não o contrário. Tentar forçar o modelo SFT a fazer clonagem de voz arbitrária, ou o modelo base a fazer narração fixa de alta qualidade, contraria o ajuste de cada checkpoint; escolha primeiro o checkpoint a partir do seu caso de uso.
- Use o modelo Instruct quando o estilo importar mais que uma voz clonada específica. Se a prioridade for controlar a entrega — ritmo, emoção e sotaque — e não reproduzir a voz exata de uma pessoa, os prompts de estilo em linguagem natural do
CosyVoice-300M-Instructsão mais diretos que tentar extrair estilo de um modelo apenas de clonagem. - Forneça clipes de referência limpos e bem gravados. Como os tokens supervisionados do CosyVoice são sensíveis ao conteúdo real da fala, áudio de referência ruidoso ou de baixa qualidade degrada a precisão de clonagem de modo mais perceptível do que em uma abordagem de tokens puramente acústicos.
- Pré-processe o texto com o pacote ttsfrd para números e datas. Texto bruto com dígitos, abreviações ou datas se beneficia do frontend opcional de normalização de texto, em vez de ser passado ao modelo como está.
- Trate o CosyVoice 1.0 como a linha de base sem streaming. Se seu projeto exige especificamente geração streaming de baixa latência, essa capacidade foi introduzida no CosyVoice 2; esta versão original é mais adequada à geração offline, em que a latência da fala completa não é uma restrição.
CosyVoice em contexto
| CosyVoice (2024) | Modelos no estilo VALL-E | ChatTTS | |
|---|---|---|---|
| Tipo de token de fala | Supervisionado (de um modelo ASR) | Não supervisionado (ex.: Encodec) | Não supervisionado |
| Consistência de conteúdo | Forte, vantagem de token semântico | Propenso a desvio de conteúdo | CER comparável, mais erros de inserção/exclusão |
| Vazamento de falante | Não observado | Pode ocorrer | Ocorreu com mais frequência na avaliação |
| Parâmetros | 300M | Varia | Escala comparável |
| Controle de estilo | Variante Instruct (prompts em linguagem natural) | Limitado | Limitado |
| Streaming | Sem suporte (introduzido no CosyVoice 2) | Varia | Não é o foco |
A contribuição do CosyVoice não foi a escala — com 300M de parâmetros, ele era modesto até mesmo pelos padrões de 2024 — e sim provar que como você representa tokens de fala importa tanto quanto o tamanho do modelo. Essa decisão arquitetural foi o que as versões posteriores CosyVoice 2 e CosyVoice 3 continuaram a desenvolver.
Perguntas frequentes
Quem desenvolveu o CosyVoice?
CosyVoice foi desenvolvido pela FunAudioLLM, a equipe de pesquisa em IA de voz dentro do Alibaba Group, e lançado como um projeto open source no GitHub.
O que diferencia os tokens de fala do CosyVoice dos de outros modelos TTS?
CosyVoice deriva seus tokens de um modelo multilíngue de reconhecimento de fala, em vez de aprendê-los de forma não supervisionada, dando aos tokens um alinhamento semântico explícito com o texto; isso melhora a precisão de conteúdo e a semelhança com o falante em comparação com abordagens de tokens não supervisionados.
Qual checkpoint do CosyVoice devo usar?
Use o modelo base CosyVoice-300M para clonagem de voz zero-shot ou entre idiomas, CosyVoice-300M-SFT para um conjunto fixo de vozes de alta qualidade pré-ajustadas, ou CosyVoice-300M-Instruct se precisar de controle em linguagem natural sobre o estilo de fala.
CosyVoice oferece geração streaming?
Não, não nesta versão original. A síntese streaming foi introduzida no CosyVoice 2, que se baseou na arquitetura de tokens deste modelo com um design atento a blocos para saída de menor latência.
CosyVoice é gratuito para uso comercial?
Sim. O código e os pesos do modelo CosyVoice estão abertamente disponíveis no GitHub e no Hugging Face para implantação local e desenvolvimento posterior.
Experimente um recurso comparável de clonagem de voz
CosyVoice está disponível por sua implementação open source e ferramentas da comunidade. Se quiser explorar clonagem de voz no navegador, experimente Clonagem de voz como um recurso comparável. Ele não é o CosyVoice e não executa o modelo CosyVoice, mas permite testar um fluxo semelhante de clonagem de voz sem configurar o modelo localmente.
Clone apenas vozes que sejam suas ou para as quais você tenha permissão explícita.