Kitten TTS - modelo TTS open source de 25 MB que funciona só com CPU
(github.com/KittenML)- O Kitten TTS é um modelo open source de TTS (texto para fala) que busca combinar leveza e alta qualidade de áudio
- Usa apenas 15 milhões de parâmetros, com tamanho de modelo inferior a 25 MB
- Ao contrário de outros TTS de grande porte, sua principal característica é poder rodar em qualquer ambiente, incluindo mobile e embarcado
- Mesmo sem GPU, consegue processar síntese de voz de alta qualidade em qualquer dispositivo
- Oferece várias opções de vozes premium, com suporte a síntese de voz de alta qualidade semelhante à fala real
- Permite inferência de voz em alta velocidade, sendo otimizado para síntese em tempo real
- O modelo em developer preview já foi divulgado, e futuramente serão lançados de forma gradual os pesos completos do modelo treinado, SDK mobile, versão web e mais
2 comentários
Seria bom se também houvesse um modelo em coreano..
Comentários do Hacker News
No Ubuntu 24, foi feito um benchmark simples com um Razer Blade 16 e Intel Core i9-14900HX
A latência inicial é de cerca de 315 ms para textos curtos, e a velocidade de geração de voz fica entre 3,35x e 5,5x em tempo real, dependendo do tamanho do texto
O modelo carrega em cerca de 710 ms
Quase não há diferença de desempenho entre 4 vozes diferentes, mantendo até cerca de 5x a velocidade em tempo real
No meu CPU Intel Celeron N4020 (1.10GHz), leva 6 segundos para carregar e roda quase em tempo real, independentemente do tamanho do texto
Obrigado por rodar o benchmark
O modelo ainda não foi otimizado
Quando o SDK para produção for lançado, planejamos otimizar também o carregamento e outros pontos
Há um sample de áudio gerado pelo KittenTTS no Reddit
Sample de áudio no Reddit
Também há um vídeo curto com várias vozes diferentes
Vídeo no YouTube
O vídeo do Reddit é realmente incrível
É impressionante conseguir essa qualidade usando só CPU em menos de 25 MB
Não entendo por que algumas pessoas chamam isso de “modelo mais ou menos”
O som é muito nítido e claro
Mesmo para mim, que não sou falante nativo de inglês, é fácil de entender
Soa um pouco lento e com uma vibe meio de animação
Será que não fizeram cross-training com vozes de personagens de Futurama?
Eu gostaria que modelos assim fossem o futuro
Uma era em que modelos pequenos de ML, offline, façam inferência em hardware barato e amplamente disponível
Possam ser facilmente integrados a outros dispositivos ou apps, e até executados dentro de outros modelos
Esse é exatamente o plano que a Apple está desenhando com SLMs (small language models)
Se existir um modelo dedicado só a gerenciar eventos de calendário, ele não precisa conter todo o conhecimento da humanidade
Basta focar apenas no que é necessário para gerenciar calendários
Se você roda modelos em hardware dedicado para uma única finalidade, a eficiência energética fica muito alta
Dá até para executar redes neurais só com resistores (sem transistores)
Claro que esse tipo de hardware não é de propósito geral e é difícil de atualizar o modelo
Mas, em muitos casos, isso já é suficiente
Fico curioso para saber qual vai ter mais sucesso:
modelos que você compra uma vez e podem rodar qualquer coisa, ou
modelos presos a assinaturas e a hardware que só megacorporações riquíssimas conseguem comprar
Na verdade, esse é exatamente o objetivo que estamos tentando alcançar
Essa também é exatamente a nossa visão
Os 25 MB já impressionam, mas o verdadeiro ponto de inovação é que o KittenTTS foi lançado sob licença Apache-2.0
Essa combinação permite embutir diretamente um motor de voz totalmente offline em hardware do nível de um Pi Zero ou em brinquedos alimentados por bateria
Sem precisar se preocupar com GPU, chamadas à nuvem ou licenças restritivas
De uma vez só, isso transforma questões de hardware e licenciamento em um “problema de empacotamento”
Melhorar a qualidade fica para depois; o verdadeiro divisor de águas é ter viabilizado distribuição nesse nível
Nós também estamos muito animados para continuar criando modelos de IA ultrapequenos e de alta qualidade
Acreditamos que interfaces de voz locais são inevitáveis e queremos ser uma peça central dessa área no futuro
Este modelo é uma prévia, e por volta da próxima semana vamos lançar outra versão com qualidade muito superior
Também pretendemos lançar junto um modelo de cerca de 80M
Foi mencionado que o KittenTTS é Apache-2.0, mas
ao olhar o código-fonte no GitHub, dá para ver que ele usa phonemizer
O phonemizer usa licença GPL-3.0
Então, no momento, isso é na prática GPL
(Observação: o comentário também acrescenta que parece ter sido gerado por LLM)
O modelo festvox-kallpc16k do Festival tem cerca de 6 MB, e o festvox-kallpc8k cerca de 3,5 MB
Os dados multilíngues do eSpeak NG ficam em torno de 12 MB
Este modelo atual provavelmente produz uma voz mais natural
Mas mesmo computadores antigos ou de baixa potência já conseguiam fazer TTS razoavelmente bom há bastante tempo
Se o KittenTTS é Apache-2.0,
como fica a questão dos dados de treinamento?
Dá para ter certeza jurídica de que não é uma obra derivada, mesmo que o modelo consiga reproduzir entradas de treino quase exatamente?
Como depende de espeak-ng, é GPLv3
Existe uma versão web
Abrir demo
O som é razoável, mas considerando o tamanho, é bastante impressionante
Não é engraçado como, em filmes de ficção científica, muitas vezes deformam sutilmente a voz para deixar o robô “mais robótico”?
Uma voz claramente não humana pode, na prática, ser mais atraente e desejável em vários contextos
Por exemplo, não há necessidade de uma torradeira inteligente falar como um âncora da BBC
Basta que a pronúncia seja clara
Fiz a demo ler o texto padrão, mas não soou tão bem quanto os samples
Para quem quiser testar, deixo aqui o texto de exemplo
Ao rodar a demo com 6 frases, deu erro
Reduzi para 3 frases e funcionou bem
Fiquei na dúvida se o limite de tamanho do texto vem do modelo ou é limitação da demo
No meu ambiente não funciona de jeito nenhum
Dá erro 404 em um módulo do backend
Link de exemplo do erro 404
Eu estava justamente procurando esse link
A demo do Reddit é até aceitável e me parece coisa do nível de alguns anos atrás
Mas, ao testar pessoalmente, quase todos os samples ficaram praticamente ininteligíveis
Achei engraçado ver os requisitos de sistema dizendo “funciona praticamente em qualquer lugar”
Em uma máquina a versão do Python é antiga demais,
em outra é nova demais, então a instalação falha por causa das dependências do pacote
Enviei alguns PRs para resolver esse problema
PR 21, PR 24, PR 25
Se você tiver
uvinstalado, na branch de referência que eu mergeeidá para executar assim
Instalar via uvx resolve a maior parte dos problemas de ambiente Python
Guia de instalação do uv
Quando você escolhe Python, resolve um problema e ao mesmo tempo cria dezenas de novos
No Fedora, não funciona porque não há uma versão adequada do g++
A culpa é do Python
Testando diretamente, o tamanho e a velocidade do modelo são bem decentes
Mas a instalação exige muitas bibliotecas e componentes extras
No fim, isso faz o pacote real ficar bem longe dos 25 MB
Ainda assim, é um projeto muito legal
Boa observação sobre o problema das dependências
Para facilitar instalação e uso, e também adicionar o suporte a GPU e processamento de textos longos que as pessoas queriam,
criei um servidor self-hosted para esse modelo
Kitten-TTS-Server
Ele roda direto em um ambiente Python venv padrão, sem preocupação com conflitos
Basta git clone, pip install e python server.py
Já que ONNX foi mencionado, imagino que um modelo ONNX já exista ou vá ser adicionado em breve
O ONNX runtime é uma única biblioteca e, no caso de C#, fica em cerca de 115 MB comprimido
Não é minúsculo, mas o código necessário para rodar de fato são só algumas linhas, então também há poucas dependências
Colocar várias bibliotecas de uma vez ajuda no desenvolvimento rápido e na iteração
Depois, quando as funcionalidades se estabilizam, as bibliotecas desnecessárias são removidas
Mais importante do que o tamanho do modelo em MB é ele rodar em CPU e ter boa qualidade, e a única preocupação que eu teria seria a latência
Tenho curiosidade se já existe um modelo de fala-para-texto que funcione offline sem precisar de treino separado
Vai ser realmente impressionante quando chegar a era de conversar com IA em velocidade natural, como numa conversa entre pessoas
O modelo parakeet da Nvidia é o estado da arte atual em inglês
É 10 vezes mais rápido que o Whisper e roda muito mais rápido que tempo real até no meu CPU AMD intermediário
Dá para fazer reconhecimento de voz offline com Whisper
Alguns apps oferecem ditado ou transcrição totalmente offline
Por exemplo, com o texto “The brown fox jumps over the lazy dog..”,
o tempo médio de geração foi de 1,28 s, com cerca de 30,35 caracteres por segundo
Isso em um AMD Ryzen 7 5800H
Como modelo offline de reconhecimento de voz, o Whisper da OpenAI é o mais conhecido
Repositório oficial do Whisper
Alguém sabe quais fatores influenciam a latência em modelos de TTS?
Bastante impressionante
Há espaço para uso em áreas específicas, como embarcados
Mas não parece ter qualidade suficiente para substituir modelos grandes
Na minha opinião, os modelos open de TTS offline com melhor qualidade hoje são fish-speech e f5-tts
Rodei F5-TTS em uma NVidia 1660 antiga (6 GB de VRAM) e funcionou bem
Em hardware moderno, dá para usar qualidade mais alta, multilíngue e até zero-shot sem custo absurdo
No Android, o SherpaTTS tem boa compatibilidade
Este modelo é uma versão preview, e queremos melhorar muito mais a qualidade daqui para frente
Os pesos do Fish Speech não permitem uso comercial
Fico curioso sobre a exigência de VRAM, porque o KittenTTS tem 15 milhões de parâmetros e pode rodar até em computadores baratos e de baixo consumo, abaixo de 100 dólares
Essa GPU de 6 GB que você citou já é considerada antiga
A qualidade não impressiona tanto quanto eu esperava
O objetivo é ter voz natural
piper e kokoro também não me satisfazem, e XTTS foi um pouco complicado de instalar
Em reconhecimento de voz (STT), o whisper é sensacional
Faz falta um TTS realmente bom
Não me importo com alto uso de GPU, quero qualidade boa
Para referência, este modelo agora está pior que kokoro
Na minha opinião, a melhor qualidade SOTA com pesos abertos hoje é chatterbox
O melhor TTS open source que eu vi foi Dia
Tem algumas limitações, mas roda bem até em notebook
Vale a pena testar também o Pinokio
Chatterbox também merece uma tentativa
Se você tem GPU de sobra, não precisa se prender tanto à qualidade aqui
O ponto importante é que este modelo roda sem GPU
Antes do Tacotron2, eu rodava TTSs pequenos como GlowTTS, MelGAN e vocoders na nuvem da Digital Ocean por um custo baixo
Depois disso a tendência foi ficando cada vez mais voltada a modelos grandes
Mas acho que o futuro será de modelos pequenos embutidos diretamente em cada dispositivo
Raspberry Pi, brinquedos e vários dispositivos compactos sem necessidade de rede
Edge AI vai trazer uma expansão enorme em robôs, brinquedos, eletrônicos de consumo e jogos