5 pontos por GN⁺ 2026-03-20 | 1 comentários | Compartilhar no WhatsApp
  • Biblioteca leve de texto para fala (TTS) baseada em ONNX e State-of-the-art, que realiza síntese de voz de alta qualidade usando apenas CPU
  • O tamanho dos modelos varia de 15M a 80M parâmetros (25 a 80 MB), permitindo execução eficiente mesmo sem GPU
  • Oferece 8 vozes integradas, controle de velocidade, pipeline de pré-processamento de texto e saída de áudio em 24 kHz
  • Pode ser usada diretamente no Hugging Face e integrada de forma simples com a API em Python
  • Solução TTS open source voltada para implantação em dispositivos de borda e integração comercial

Visão geral do Kitten TTS

  • Kitten TTS é uma biblioteca open source de TTS baseada em ONNX que realiza síntese de voz de alta qualidade em CPU, sem GPU
    • Os modelos têm de 15M a 80M parâmetros e ocupam de 25 a 80 MB em disco
    • Na versão 0.8, são oferecidos os modelos 15M, 40M e 80M
  • Atualmente está em fase de preview para desenvolvedores, e a API pode mudar no futuro
  • suporte comercial disponível (suporte à integração, vozes customizadas, licença enterprise)

Principais recursos

  • Estrutura ultraleve: começa em 25 MB na versão int8, adequada para implantação em ambientes edge
  • Otimizado para CPU: inferência ONNX eficiente mesmo sem GPU
  • 8 vozes integradas: Bella, Jasper, Luna, Bruno, Rosie, Hugo, Kiki, Leo
  • Controle de velocidade: ajuste da velocidade de fala com o parâmetro speed
  • Pipeline de pré-processamento de texto: trata automaticamente números, moedas, unidades etc.
  • Saída em 24 kHz: gera áudio de alta qualidade em taxa de amostragem padrão

Modelos disponíveis

  • Quatro modelos são oferecidos
    • kitten-tts-mini (80M, 80MB)
    • kitten-tts-micro (40M, 41MB)
    • kitten-tts-nano (15M, 56MB)
    • kitten-tts-nano (int8, 15M, 25MB)
  • Alguns usuários relataram problemas com o modelo kitten-tts-nano-0.8-int8, e recomenda-se abrir uma issue

Demonstração e uso

  • Pode ser testado diretamente no navegador via Hugging Face Spaces
  • A instalação requer apenas Python 3.8 ou superior e pip
  • Exemplo básico de uso:
    • from kittentts import KittenTTS
    • model = KittenTTS("KittenML/kitten-tts-mini-0.8")
    • audio = model.generate("texto", voice="Jasper")
  • Recursos avançados: controle de velocidade (speed), salvamento em arquivo (generate_to_file), consulta da lista de vozes disponíveis

Estrutura da API

  • KittenTTS(model_name, cache_dir=None)
    • Carrega o modelo a partir do Hugging Face Hub
  • model.generate(text, voice, speed, clean_text)
    • Converte texto em áudio de 24 kHz
  • model.generate_to_file(text, output_path, voice, speed, sample_rate, clean_text)
    • Salva diretamente em arquivo a voz sintetizada
  • model.available_voices
    • Retorna a lista de vozes disponíveis

Requisitos do sistema

  • Sistema operacional: Linux, macOS, Windows
  • Python: 3.8 ou superior
  • Hardware: apenas CPU, GPU desnecessária
  • Espaço em disco: 25 a 80 MB, dependendo do modelo
  • Recomenda-se usar ambiente virtual (venv, conda etc.)

Roadmap

  • Estão planejados otimização do motor de inferência, SDK móvel, modelos de alta qualidade, TTS multilíngue e o lançamento do KittenASR
  • Apache License 2.0

1 comentários

 
GN⁺ 2026-03-20
Comentários do Hacker News
  • Criei o purr, um wrapper de CLI para o Kitten TTS
    o pacote kitten tem uma cadeia de dependências kittentts → misaki[en] → spacy-curated-transformers
    então, se você instalar direto com uv, ele puxa torch e pacotes NVIDIA CUDA (vários GB), embora isso não seja necessário para executar de fato

    • O script de instalação funcionou bem
      Na primeira execução apareceu o erro “OSError: PortAudio library not found”, mas resolvi com apt install libportaudio2
    • Muito obrigado. A cadeia de dependências estava quebrada e a instalação continuava falhando, mas isso resolveu
      Só fiquei curioso se há alguma perda de funcionalidade ao remover as dependências desnecessárias
  • Projeto realmente incrível
    Vou testar eu mesmo em breve
    Mas fiquei com uma dúvida — por que não distribuir isso na forma de um executável de linha de comando?
    A API também está quase no estilo de manpage, então parece que daria para fazer rapidinho. É só curiosidade

    • Boa ideia. Também pretendo fazer assim
      Primeiro quero receber feedback sobre a versão onnx e depois simplificar o processo de execução, incluindo um executável de linha de comando
  • O que me agradou no OpenClaw foi que, no Discord, bastava mandar uma URL do GitHub e ele já gerava uma mensagem de voz na hora
    Em poucos minutos eu já tinha benchmark e áudio de exemplo
    A qualidade é impressionante para o tamanho. A voz não é perfeita, mas não é ruim
    Num CPU Intel 9700, o modelo 80M rodou em cerca de 1,5x tempo real, e numa GPU 3080 não foi mais rápido

    • Vou adicionar vozes mais profissionais e vozes customizadas DIY
      Por enquanto coloquei uma voz mais puxada para animação para mostrar a expressividade
      Se puder compartilhar por GitHub issue ou Discord por que está lento na GPU, seria ótimo. Também vou adicionar código de exemplo
    • Bom caso de uso. Achei interessante a estrutura que permite testar e implantar em sandbox sem um elo vulnerável de segurança como e-mail
    • Só me resta dizer que estou com inveja. Para mim demorou muito mais até conseguir rodar
      Sofri para evitar conflitos de versão do Python e tentei até com Docker, mas no fim tive que configurar tudo manualmente
      No fim consegui fazer funcionar, mas odeio Python mesmo
  • Pelo visto, por enquanto só há suporte para vozes americanas
    Pessoalmente, só tenho interesse em sotaques irlandês, britânico e galês. Não curto o americano

  • Um TTS rodando no próprio dispositivo é realmente excelente como ferramenta de acessibilidade
    A maioria dos dispositivos depende de serviços online, e esse tipo de abordagem local é muito melhor

    • Obrigado pelo feedback. Em breve vou lançar mais modelos pequenos para diferentes usos
  • Dá para sentir uma melhoria muito clara em relação ao modelo anterior
    Realmente impressionante. Obrigado por compartilhar

    • Obrigado. Esses modelos estão muito melhores do que os anteriores
      Atualmente o modelo 15M já é melhor do que o antigo modelo 80M, e pretendo manter esse ritmo de melhoria
  • Eu gostaria de ver também um modelo dedicado ao japonês no futuro
    O Qwen3-tts suporta japonês, mas às vezes mistura chinês, então acaba não servindo

    • Você pode tentar uma conversão para hiragana na etapa de pré-processamento
      Só que aí pode haver perda de informação de entonação (por exemplo: 飴 vs 雨)
    • O próximo modelo (previsto para daqui a cerca de 3 semanas) deve suportar japonês
      Se você contar seu caso de uso, eu gostaria de refletir isso na melhoria da qualidade
  • O desempenho foi impressionante para o tamanho do modelo
    Mas houve problema com a pronúncia de números
    Tentei “Startup finished in 135 ms.” e o número soou como ruído
    Quando troquei para “one hundred and thirty five seconds”, ficou bem melhor

    • Esse problema também está sendo corrigido no nível do modelo
      Enquanto isso, dá para resolver adicionando pré-processamento de texto
      A maioria dos modelos de TTS lida com isso convertendo números e unidades em texto
    • Obrigado pelo feedback. Com pré-processamento customizado dá para resolver 95% dos casos
      Na próxima release isso também deve ser corrigido no nível do modelo
    • Só como observação, a palavra correta é “pronounce” ou “pronouncing”. “pronounciating” é um erro de digitação
  • Seria bom mostrar junto áudios de exemplo comparando os quatro modelos
    Se houvesse exemplos da mesma frase lida por cada modelo, ficaria fácil de entender

    • Boa sugestão. Vou adicionar isso agora mesmo
      Enquanto isso, você pode testar os modelos diretamente na demo no Hugging Face
  • Fiquei em dúvida se isso é open source ou se é apenas um modelo com pesos abertos

    • Sim, é open source
      Até este fim de semana também devo adicionar um phonemizer sob licença MIT, então deve poder ser usado livremente