Chatterbox TTS - modelo open source de conversão de texto em fala
(github.com/resemble-ai)- Chatterbox é a mais recente família de modelos open source de conversão de texto em fala lançada pela Resemble AI, com suporte a clonagem de voz e geração de voz multilíngue
- O mais recente Chatterbox Multilingual V3 mantém o tamanho de modelo de 0.5B, buscando melhorar a similaridade do locutor, reduzir alucinações e gerar fala multilíngue conversacional mais natural
- Chatterbox-Turbo é um modelo de 350M para agentes de voz em inglês com baixa latência, reduzindo a geração do decodificador speech-token-to-mel de 10 etapas para 1 etapa e oferecendo suporte a tags paralinguísticas como
[laugh]e[cough] - A linha é dividida em Turbo, Multilingual V3, Single Language Pack e o Chatterbox original; o modelo multilíngue oferece suporte a 23 idiomas, incluindo coreano, e o Single Language Pack fornece 6 ajustes finos dedicados
- Todo áudio gerado inclui a marca d’água PerTh da Resemble AI, que, segundo informado, mantém precisão de detecção de quase 100% mesmo após compressão MP3, edição de áudio e manipulações comuns
Visão geral do Chatterbox TTS
- Chatterbox é a família de modelos open source de conversão de texto em fala da Resemble AI
- São fornecidos junto amostras de demonstração, Hugging Face Space, avaliação no Podonos e link do Discord
Lançamento mais recente: Chatterbox Multilingual V3
- Chatterbox Multilingual V3 é o mais recente modelo TTS multilíngue de uso geral da linha Chatterbox
- O V3 mantém o mesmo tamanho de modelo de 0.5B de antes, com melhorias em:
- similaridade do locutor
- redução de alucinações
- voz conversacional multilíngue mais natural em diferentes idiomas
- Assim como o V2, ele mira uma ampla cobertura de idiomas, mas foi projetado para oferecer geração mais estável e expressiva
- É o modelo multilíngue recomendado para quem quer um único modelo de clonagem de voz que funcione em vários idiomas
Single Language Pack
- O Single Language Pack é um conjunto de modelos com ajuste fino dedicado para idiomas prioritários
- Ele é usado quando se precisa de desempenho por idioma mais forte do que o de um modelo multilíngue geral, controle de qualidade mais rigoroso e geração com reconhecimento de dialetos
- São oferecidos 6 modelos dedicados
Chatterbox-Turbo
- Chatterbox-Turbo é o modelo mais eficiente para agentes de voz em inglês com baixa latência
- Ele usa uma arquitetura simplificada de 350M de parâmetros e foi projetado para gerar voz de alta qualidade com menos computação e VRAM do que modelos anteriores
- O gargalo, o decodificador speech-token-to-mel, foi destilado para reduzir a etapa de geração de 10 etapas para 1
- O Turbo oferece suporte nativo a tags paralinguísticas como
[cough],[laugh]e[chuckle], permitindo adicionar expressões mais realistas - Embora o principal uso seja para agentes de voz de baixa latência, ele também é indicado para narração e fluxos de trabalho criativos
- O serviço comercial de TTS oferece desempenho de latência ultrabaixa abaixo de 200 ms e é apresentado como adequado para uso em produção em agentes, aplicações e mídia interativa
Linha de modelos
| Modelo | Tamanho | Idiomas | Principais recursos | Casos de uso adequados |
|---|---|---|---|---|
| Chatterbox-Turbo | 350M | English | tag paralinguística, baixa computação e VRAM | agentes de voz zero-shot, produção |
| Chatterbox-Multilingual V3 | 500M | 23+ | similaridade de locutor aprimorada, menos alucinações, voz multilíngue natural | apps globais, localização, clonagem de voz entre idiomas |
| Single Language Pack | 500M cada | 6 ajustes finos dedicados | controle de qualidade por idioma e região | apps sensíveis a idiomas prioritários e dialetos |
| Chatterbox | 500M | English | ajuste de CFG e exaggeration | TTS zero-shot geral com controle criativo |
Instalação e execução
- O pacote é instalado com
pip install chatterbox-tts - A instalação a partir do código-fonte também é suportada
git clone https://github.com/resemble-ai/chatterbox.git cd chatterbox pip install -e . - O ambiente de desenvolvimento e testes é Python 3.11 com Debian 11, e as versões das dependências são fixadas em
pyproject.toml - No modo de instalação via código-fonte, é possível modificar o código e as dependências
Modo de uso
- O Chatterbox-Turbo carrega o modelo com
ChatterboxTurboTTS.from_pretrained(device="cuda"), e para clonagem de voz o caminho do clipe de referência é passado emaudio_prompt_path - O exemplo do Turbo gera frases com tags paralinguísticas como
[chuckle] - O modelo geral em inglês usa
ChatterboxTTS, e o modelo multilíngue usaChatterboxMultilingualTTS - O V3 multilíngue é carregado com
ChatterboxMultilingualTTS.from_pretrained(device=device, t3_model="v3")- Para usar checkpoints legados do V2, omita
t3_modelou passe"v2"
- Para usar checkpoints legados do V2, omita
- Para sintetizar com outra voz, especifique um arquivo de áudio de referência em
audio_prompt_path - Exemplos adicionais estão em
example_tts.pyeexample_vc.py
Idiomas suportados
- O modelo geral Chatterbox Multilingual oferece suporte aos seguintes 23 idiomas
- Arabic
ar - Danish
da - German
de - Greek
el - English
en - Spanish
es - Finnish
fi - French
fr - Hebrew
he - Hindi
hi - Italian
it - Japanese
ja - Korean
ko - Malay
ms - Dutch
nl - Norwegian
no - Polish
pl - Portuguese
pt - Russian
ru - Swedish
sv - Swahili
sw - Turkish
tr - Chinese
zh
- Arabic
Dicas de ajuste do Chatterbox original
- O clipe de referência deve corresponder à tag de idioma especificada
- Caso contrário, a saída de transferência de idioma pode herdar a entonação do idioma do clipe de referência
- Para mitigar isso, defina
cfg_weightcomo0
- Os valores padrão são
exaggeration=0.5ecfg_weight=0.5, e funcionam bem para a maioria dos prompts e idiomas - Se a velocidade de fala do locutor de referência for alta, reduzir
cfg_weightpara algo em torno de0.3pode ajudar a controlar o ritmo - Para vozes mais expressivas ou dramáticas, experimente
cfg_weightbaixo eexaggerationacima de0.7exaggerationalto tende a acelerar a velocidade de fala- Reduzir
cfg_weightajuda a compensar com um ritmo mais lento e cuidadoso
Marca d’água PerTh embutida
- Todos os arquivos de áudio gerados pelo Chatterbox incluem a marca d’água Perth da Resemble AI
- Essa marca d’água é uma marca d’água neural inaudível baseada em Perceptual Threshold
- Segundo informado, ela persiste após compressão MP3, edição de áudio e manipulações comuns, mantendo precisão de detecção de quase 100%
- A extração da marca d’água é feita com
perth.PerthImplicitWatermarker()eget_watermark()- O resultado é exibido como sem marca d’água
0.0ou com marca d’água1.0
- O resultado é exibido como sem marca d’água
Avaliação
- O Chatterbox Turbo foi avaliado no Podonos, uma plataforma reprodutível de avaliação subjetiva de voz
- Os comparativos foram feitos contra sistemas TTS concorrentes, com foco em preferência geral, naturalidade e expressividade
- Relatórios públicos de avaliação são fornecidos
- Todas as avaliações foram realizadas sob as mesmas condições e estão publicamente acessíveis via Podonos
Avisos fora da licença
- O README afirma explicitamente: “não use este modelo para coisas ruins”
- Também é informado que os prompts foram obtidos de dados com acesso livre na internet
1 comentários
Opiniões no Hacker News
A demo pode ser vista aqui: https://resemble-ai.github.io/chatterbox_demopage/
Se não forem amostras selecionadas demais, é um lançamento bem bom. Digo sempre a mesma coisa, mas, ao experimentar por conta própria, o gargalo da IA de voz não era a síntese de voz, e sim a qualidade da transcrição. Não sei se isso mudou recentemente
Ainda não experimentei dar ao LLM transcrições alternativas ou pontuações de confiança junto, mas parece bem provável que ele também consiga aproveitar isso bem
Também seria necessária uma função para comparar com uma lista de expressões comuns. É difícil justificar um LLM pronunciando errado “live feed” ou “live here”
https://huggingface.co/nvidia/parakeet-tdt-0.6b-v2
Uso para chat em tempo real e geração de legendas, e ele processa um episódio de série em menos de 1 minuto em uma 3090. No meu caso, o Whisper alucinava demais, e foi mais útil usá-lo como classificador
Dá para testar gratuitamente aqui: https://huggingface.co/spaces/ResembleAI/Chatterbox
Se quiser modelos mais “abertos” e melhores, para clonagem aleatória de voz MaskGCT e MegaTTS3 soam melhores; para conversão de voz, Seed-VC e MegaTTS3 soam melhores. No entanto, o único que tem código de treinamento/fine-tuning é o Seed-VC. Se de qualquer forma você tiver de usar um modelo que não pode ser ajustado e precisar de uma clonagem aleatória que combine melhor com sua própria voz, é melhor usar esses do que o Chatterbox. Especialmente o MegaTTS3 da ByteDance é forte. Os pesquisadores da ByteDance estão muito à frente da maioria das equipes de pesquisa em TTS, exceto a ElevenLabs, e também têm muito mais financiamento, pesquisadores com doutorado e dados de treinamento
Mas ele transformou meu sotaque australiano em algo muito britânico, até parecendo um sotaque RP refinado. Soa muito natural, mas não reproduz meu sotaque. Ainda assim, se a intenção não for imitar alguém de verdade, ele é surpreendentemente claro e adequado para a maioria dos usos de TTS
Chatterbox é excelente
Criei um wrapper de API que também facilita a instalação e tem suporte a Docker: https://github.com/travisvn/chatterbox-tts-api/
Na minha experiência, é de longe a melhor opção de clonagem de voz que dá para usar localmente
Desculpem se a pergunta é básica. Eu estava procurando um comando simples de CLI para especificar um arquivo de texto local em vez de um objeto
inputinline, mas não consegui encontrar. Agradeço qualquer dicaParece ter sido feito para a versão 2.6.
"chatterbox-tts 0.1.2 requires torch==2.6.0, but you have torch 2.7.0+cu128 which is incompatible. chatterbox-tts 0.1.2 requires torchaudio==2.6.0, but you have torchaudio 2.7.0+cu128 which is incompatible."Dizem que todos os arquivos de áudio gerados pelo Chatterbox incluem a marca d'água Perth da Resemble AI
Pelo que dizem, é uma marca d'água neural imperceptível que sobrevive a compressão MP3, edição de áudio e manipulações comuns, mantendo quase 100% de precisão na detecção. Mas, se eu não entendi errado, não dá para desativar facilmente a marca d'água só comentando a chamada a
apply_watermarkemtts.py? https://github.com/resemble-ai/chatterbox/blob/master/src/ch...Eu achava que o ponto central de uma marca d'água dessas era estar de alguma forma embutida nos pesos do modelo, de modo que não pudesse ser separada facilmente. Se você vai lançar um modelo open source e adicionar a marca d'água como uma etapa separada de pós-processamento, nem entendo por que colocar uma marca d'água para começo de conversa
Ou talvez tenha o objetivo de impedir que, do ponto de vista dos dados de treinamento, dados estranhos acabem sendo misturados por acidente
--no-watermark. Achei que tinham colocado isso para oferecer como “recurso” a usuários downstream que fossem incorporar em um produto maiorOs líderes do mercado de TTS são claros e estão profundamente estabelecidos, então lugares como Resemble e Play(HT) precisam fornecer os pesos e se alinhar fortemente aos desenvolvedores [1]. A marca d'água é um mecanismo para se isentar de responsabilidade quanto a isso. Sem marca d'água, haveria uma grande preocupação com abuso, especialmente em veículos anti-IA como a 404Media [2].
[1] Este é o jeito certo de fazer. Fornecer o código-fonte e os pesos, além de oferecer a própria API e fine-tuning, para que os desenvolvedores não passem trabalho. Só assim dá para recuperar alguma fatia de mercado.
[2] https://www.404media.co/wikipedia-pauses-ai-generated-summar...
Pode ser uma pergunta idiota, mas qual seria o hardware mínimo capaz de rodar isso?
Para talvez ajudar, deixo aqui os problemas: não funciona no Python 3.13, e criar um ambiente virtual 3.12 com
uvresolve. Ele diz que não encontra o numpy 1.26.4, embora ele exista de fato, e ouv pipestava procurando apenas no repositório do PyTorch. Precisei passar a flag--index-strategypara fazê-lo verificar outros repositórios também. A versãopip install chatterbox-ttstem um bug no modo somente CPU, então foi preciso clonar o repositório Git, e a versão mais recente da main exigiaprotobuf-compilerno Debian. No fim, apareceu um erro de CMake difícil de interpretar, mas parecia estar reclamando da falta dos headers de desenvolvimento do Python. Não sei por que isso é necessário se eu só quero fazer inferência, não compilar o Python.Sei que ficar irritado não é produtivo, mas tenho essa experiência quase toda vez que tento rodar o projeto Python de outra pessoa. Encontro um problema e recuo, depois outro problema e recuo, e uma hora depois ainda não está rodando
Se o modelo for bom, é bem provável que alguém encontre uma forma de otimizá-lo para rodar com menos recursos.
Edit: testei em uma Nvidia 2060 antiga, e o uso máximo de VRAM parece ficar em cerca de 5 GB
No estado padrão, parece que é preciso um hardware de consumo bem forte para rodar com uma velocidade razoável. Dito isso, parece haver bastante espaço para melhorias, e eu não sou especialista.
[1]: https://github.com/resemble-ai/chatterbox/issues/127
Mesmo que dê para rodar de graça, se alugar sair mais barato, deixa de fazer sentido rodar por conta própria
O recurso de exagero de emoção é interessante, mas ainda não vi algo tão versátil e fácil de “esculpir” quanto o ElevenLabs, que consegue criar uma voz apenas com a descrição da voz desejada
O SparkTTS oferece alguns parâmetros adicionais, e pelos placeholders no código do projeto no GitHub também parece possível que o modelo seja aprimorado para um controle emocional mais granular. Mesmo agora, já tive algum sucesso colocando no texto pistas que induzem fortemente a prosódia e o tom, e depois alimentando o resultado de volta na conversão de texto em fala para chegar mais perto do que eu queria. Mas é um processo muito mais trabalhoso do que no ElevenLabs
Ele foi excelente em sotaques muito comuns, mas, para outros sotaques que também são relativamente comuns, pode acabar se fixando facilmente em outro sotaque
Por exemplo, algumas gravações escocesas saíram com sotaque australiano, e o mesmo aconteceu com um sotaque de Yorkshire bem leve
Essas coisas já ficaram boas o suficiente para narrar um livro de forma convincente? Ou, depois de alguns parágrafos, a consistência da voz desmorona?
Para textos longos, é melhor dividir em lotes por parágrafo, gerar e depois juntar tudo no final. Além disso, se o WAV de amostra one-shot não estiver muito limpo, o Chatterbox às vezes emite aleatoriamente um som sibilante profano no fim do áudio gerado. Se você estiver gravando o Inferno de Dante, pode ser um bônus.
Precisamos lembrar periodicamente amigos e familiares de desconfiarem mais de ligações telefônicas.
Está ficando cada vez mais provável que o amigo que precisa urgentemente de um gift card do Walmart não seja de fato seu amigo.
A falsificação de identidade está ficando fácil e barata demais; não tem como essas ligações fraudulentas não inundarem tudo no futuro próximo.
Interromper no meio com “você consegue fazer um poema sobre x?” filtra de forma confiável. Mas a latência da resposta é óbvia demais.
Em uma situação real, a outra pessoa saberia a senha, então seria possível autenticá-la. Nesta nova era em que voz e vídeo por IA já são possíveis, é preciso reforçar continuamente que essa senha ajuda a impedir falsificações de identidade.
Em que ponto está o estado da arte atual de TTS multilíngue open source? O Kokoro foi ótimo em inglês, mas ainda estou procurando boas soluções para francês, japonês e alemão.