KaniTTS: geração de voz em tempo real em uma GPU que mal merece esse nome
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
A maioria dos modelos modernos de TTS no estilo dos LLMs de voz parte do princípio de que você tem uma GPU de verdade sobrando: 8 GB aqui, 16 GB ali. O KaniTTS, da NineNineSix.ai, foi criado em torno de uma premissa muito menor: 3 GB de VRAM, o tipo de folga que uma RTX 3060 ou 4050 de consumo consegue oferecer, são suficientes para gerar fala natural em tempo real. Essa eficiência não é uma solução de compromisso obtida com cortes: ela vem de uma arquitetura deliberadamente compacta, construída especificamente para não carregar o peso de que o modelo não precisa.
O que é KaniTTS?
KaniTTS é um sistema open source de texto para fala construído sobre um pipeline de duas etapas: um grande modelo de linguagem de base gera representações comprimidas de tokens a partir do texto, e um codec neural de áudio eficiente expande rapidamente esses tokens em uma forma de onda real. O modelo de base é o LFM2 da LiquidAI, com 350 milhões de parâmetros, escolhido especificamente por ser mais eficiente do que um Transformer padrão de capacidade comparável, combinado com o NanoCodec da NVIDIA para a parte de áudio. Essa filosofia de “fala como linguagem” — tratar a geração de áudio como uma tarefa de previsão de tokens, da mesma maneira que um modelo de chat prevê palavras — inspira-se diretamente no Orpheus TTS e no Sesame CSM, mas o KaniTTS leva a mesma ideia central a um consumo de recursos significativamente menor do que qualquer um dos dois.
Vantagens funcionais do KaniTTS
- Requisitos de VRAM realmente baixos: a versão Kani-TTS-2 funciona com apenas 3 GB, sendo compatível com GPUs de consumo básicas em vez de exigir uma placa dedicada de workstation.
- Geração rápida: tem fator de tempo real em torno de 0,2, o que significa que cerca de 10 segundos de áudio são gerados em aproximadamente 2 segundos, além de uma latência documentada inferior a 300 ms até o primeiro trecho de áudio no modo de streaming.
- Clonagem de voz zero-shot por embeddings de locutor na versão Kani-TTS-2: um breve clipe de referência é suficiente para extrair as características de uma voz e aplicá-las imediatamente, sem nenhuma etapa de fine-tuning.
- Vários checkpoints de idiomas e suporte a múltiplos locutores: variantes dedicadas do modelo cobrem inglês, árabe, coreano e outros idiomas separadamente, em vez de estender um único modelo para atender a todos eles.
- Licença Apache 2.0, que permite uso comercial sem um contrato separado.
- Serviço pronto para produção por meio do vLLM, com um servidor de API compatível com a OpenAI disponível de imediato para equipes que queiram implantá-lo como fariam com qualquer outro serviço baseado em LLM.
Como o pipeline de duas etapas alcança essa eficiência
A principal decisão de eficiência é escolher o LFM2 como modelo de base justamente porque os Liquid Foundation Models são projetados para exigir menos computação do que um Transformer convencional de capacidade semelhante. Essa é uma vantagem importante quando o objetivo é minimizar o consumo de recursos, e não maximizar a capacidade bruta. Gerar uma representação comprimida de tokens por meio desse modelo leve e entregá-la ao NanoCodec para uma rápida expansão em forma de onda evita a sobrecarga computacional maior de gerar formas de onda de áudio diretamente com um modelo de linguagem de grande escala. É a mesma lógica ampla de duas etapas usada por outros sistemas de LLM de voz, mas construída com componentes escolhidos deliberadamente pelo baixo consumo em cada etapa, em vez de otimizados apenas para alcançar a máxima qualidade de saída.
Os dados de treinamento refletem a mesma atenção à eficiência adequada à finalidade: em vez dos corpora em estilo de audiolivro e com leitura formal usados para treinar muitos modelos TTS, o KaniTTS recorre a fontes como Emilia (um grande conjunto de dados multilíngue com rótulos de emoção da LAION) e Expresso-Conversational (gravações de diálogos naturais). Essa é uma das razões pelas quais seu resultado costuma soar mais como uma conversa descontraída do que como um narrador lendo um parágrafo em voz alta, uma combinação particularmente significativa para assistentes e usos conversacionais.
Primeiros passos com KaniTTS
- Instale o pacote e fixe a versão necessária do transformers. Execute
pip install kani-ttse depoispip install -U "transformers==4.57.1": essa versão específica é necessária para a compatibilidade com o LFM2, e ignorá-la é uma causa documentada de falhas no carregamento. - Carregue um checkpoint específico para o idioma no Hugging Face. Use
nineninesix/kani-tts-400m-enpara inglês ou o checkpoint equivalente para outros idiomas aceitos (árabe, coreano e outros estão disponíveis como modelos dedicados separados). Escolha com base no idioma de destino, em vez de presumir que um único checkpoint cobre tudo. - Gere áudio em poucas linhas. Execute
from kani_tts import KaniTTS, seguido pormodel = KaniTTS('nineninesix/kani-tts-400m-en')eaudio, text = model("Hello, world!")para obter uma forma de onda diretamente;model.save_audio(audio, "output.wav")a grava no disco. - Use o repositório
kanitts-vllmpara servir o modelo em escala de produção. Esse projeto separado (nineninesix-ai/kanitts-vllmno GitHub) envolve o modelo em um servidor FastAPI com endpoint compatível com a OpenAI, apoiado pelo mecanismo assíncrono do vLLM e pela otimização do cache KV. É o caminho documentado para qualquer uso além de testes locais. - Confira os requisitos de hardware para o seu caminho específico de implantação. O modelo principal funciona confortavelmente com 3 GB de VRAM, mas a documentação do servidor de produção baseado em vLLM recomenda um ambiente CUDA 12.8+ com 12 GB ou mais de VRAM para manter uma folga confortável em escala. Confirme qual configuração corresponde ao seu caso real antes de presumir que o número mínimo se aplica a todas as situações.
- Experimente a versão quantizada em GGUF ou o nó do ComfyUI para fluxos de trabalho alternativos. Há opções mantidas pela comunidade tanto para implantação baseada em llama.cpp quanto para pipelines criativos baseados em nós, caso alguma delas combine melhor com suas ferramentas atuais do que o pacote básico de Python.
Dicas para obter resultados melhores
- Faça o checkpoint corresponder ao idioma de destino em vez de usar inglês por padrão. Como o KaniTTS oferece modelos dedicados para cada idioma em vez de um único checkpoint multilíngue universal, usar o modelo correto para o conteúdo produz resultados melhores do que forçar texto em outro idioma pelo modelo ajustado para inglês.
- Prefira uma redação natural e conversacional à narração formal. Como os dados de treinamento se concentram em diálogos, o KaniTTS tende a soar mais natural com conteúdo de assistentes ou conversas do que quando é solicitado a interpretar uma prosa dramática e narrada formalmente.
- Use especificamente o Kani-TTS-2 se precisar de clonagem de voz. A clonagem zero-shot por embeddings de locutor é um recurso dessa versão específica. Se reproduzir uma determinada voz de referência fizer parte do projeto, confirme se está usando o checkpoint correto.
- Adote o caminho do servidor vLLM assim que terminar os experimentos locais. O pacote básico de Python é ótimo para testes, mas o servidor dedicado
kanitts-vllmé o caminho documentado e mais robusto para qualquer aplicação que atenda ao tráfego de usuários reais. - Respeite as restrições explícitas de uso ético do projeto. Os termos de licença do KaniTTS proíbem especificamente a geração de conteúdo enganoso que se passe por outra pessoa sem consentimento, além de outros usos prejudiciais ou ilegais. Trate essas condições como restrições reais à implantação, não como texto padronizado a ser ignorado.
KaniTTS em comparação com outros modelos no estilo dos LLMs de voz
| KaniTTS | Orpheus TTS | Chatterbox | |
|---|---|---|---|
| Modelo de base | LiquidAI LFM2 (350M) | Llama-3B | Baseado em difusão |
| VRAM mínima | ~3 GB (Kani-TTS-2) | ~8 GB (GGUF quantizado) | Menor, mas não é o foco principal |
| Fator de tempo real | ~0,2 | Não é a principal métrica publicada | Não é a principal métrica publicada |
| Clonagem de voz | Sim, zero-shot por embeddings de locutor (Kani-TTS-2) | Sim, zero-shot | Sim, zero-shot |
| Prioridade de projeto | Consumo mínimo de recursos | Expressividade competitiva com sistemas comerciais fechados | Controle da intensidade emocional |
| Licença | Apache 2.0 | Apache 2.0 | MIT |
A contrapartida específica do KaniTTS é trocar parte da sutileza emocional e do alcance dramático oferecidos por modelos maiores e mais pesados, como o Orpheus TTS, pela confiabilidade em tempo real sobre um hardware realmente modesto. É a escolha certa quando a latência e a facilidade de implantação importam mais do que alcançar o máximo de expressividade.
Perguntas frequentes
Qual é a menor quantidade de VRAM de que o KaniTTS realmente precisa?
A versão Kani-TTS-2 funciona com apenas 3 GB de VRAM, sendo compatível com GPUs de consumo básicas, como a RTX 3060 ou 4050. No entanto, a documentação do servidor baseado em vLLM recomenda mais folga (12 GB ou mais) para obter throughput confortável em escala de produção.
O KaniTTS oferece suporte à clonagem de voz?
Sim, na versão Kani-TTS-2, usando embeddings de locutor extraídos de um breve clipe de referência. Não é necessária nenhuma etapa de fine-tuning para reproduzir as características de uma voz de destino.
Qual é a velocidade do KaniTTS?
O fator de tempo real informado é de aproximadamente 0,2, o que significa que cerca de 10 segundos de áudio são gerados em torno de 2 segundos, com latência inferior a 300 ms até o primeiro trecho de áudio no modo de streaming.
O KaniTTS é gratuito para uso comercial?
Sim. Ele é publicado sob a licença Apache 2.0, que permite o uso comercial sem um contrato de licenciamento separado, embora o uso continue sujeito às restrições éticas explícitas do projeto relacionadas à personificação e a conteúdo prejudicial.
Quais idiomas o KaniTTS suporta?
Ele é distribuído como checkpoints dedicados e separados para cada idioma. O inglês é a opção principal e mais robusta, com modelos adicionais disponíveis individualmente para árabe, coreano e outros idiomas, em vez de um único modelo multilíngue universal.
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.