5 puntos por GN⁺ 2026-03-20 | 1 comentarios | Compartir por WhatsApp
  • Biblioteca ligera de texto a voz (TTS) basada en ONNX y State-of-the-art, que realiza síntesis de voz de alta calidad usando solo CPU
  • El tamaño del modelo va de 15M a 80M parámetros (25 a 80 MB), por lo que puede ejecutarse eficientemente sin GPU
  • Ofrece 8 voces integradas, control de velocidad, pipeline de preprocesamiento de texto y salida de audio a 24 kHz
  • Puede usarse directamente desde Hugging Face y se integra fácilmente con una API de Python
  • Solución TTS de código abierto orientada al despliegue en dispositivos edge y a la integración comercial

Resumen de Kitten TTS

  • Kitten TTS es una biblioteca TTS de código abierto basada en ONNX que realiza síntesis de voz de alta calidad en CPU sin necesidad de GPU
    • El tamaño del modelo es de 15M a 80M parámetros y ocupa entre 25 y 80 MB en disco
    • En la versión 0.8 se ofrecen modelos de 15M, 40M y 80M
  • Actualmente está en fase de developer preview, por lo que la API puede cambiar en el futuro
  • Se ofrece soporte comercial (soporte de integración, voces personalizadas, licencia enterprise)

Funciones principales

  • Arquitectura ultraligera: comienza desde 25 MB en int8, adecuada para despliegues en entornos edge
  • Optimización para CPU: inferencia ONNX eficiente incluso sin GPU
  • 8 voces integradas: Bella, Jasper, Luna, Bruno, Rosie, Hugo, Kiki, Leo
  • Control de velocidad: permite controlar la velocidad del habla con el parámetro speed
  • Pipeline de preprocesamiento de texto: procesa automáticamente números, monedas, unidades, etc.
  • Salida a 24 kHz: genera audio de alta calidad con sample rate estándar

Modelos disponibles

  • Se ofrecen cuatro modelos
    • kitten-tts-mini (80M, 80MB)
    • kitten-tts-micro (40M, 41MB)
    • kitten-tts-nano (15M, 56MB)
    • kitten-tts-nano (int8, 15M, 25MB)
  • Algunos usuarios reportaron problemas con el modelo kitten-tts-nano-0.8-int8, y se recomienda registrar un issue

Demo y uso

  • Se puede probar directamente en el navegador desde Hugging Face Spaces
  • Puede instalarse solo con Python 3.8 o superior y pip
  • Ejemplo de uso básico:
    • from kittentts import KittenTTS
    • model = KittenTTS("KittenML/kitten-tts-mini-0.8")
    • audio = model.generate("texto", voice="Jasper")
  • Funciones avanzadas: control de velocidad (speed), guardado en archivo (generate_to_file), consulta de la lista de voces disponibles

Estructura de la API

  • KittenTTS(model_name, cache_dir=None)
    • Carga el modelo desde Hugging Face Hub
  • model.generate(text, voice, speed, clean_text)
    • Convierte texto en audio a 24 kHz
  • model.generate_to_file(text, output_path, voice, speed, sample_rate, clean_text)
    • Guarda directamente en un archivo la voz sintetizada
  • model.available_voices
    • Devuelve la lista de voces disponibles

Requisitos del sistema

  • Sistema operativo: Linux, macOS, Windows
  • Python: 3.8 o superior
  • Hardware: solo requiere CPU, no necesita GPU
  • Espacio en disco: 25 a 80 MB según el modelo
  • Se recomienda usar un entorno virtual (venv, conda, etc.)

Hoja de ruta

  • Próximamente: optimización del motor de inferencia, SDK móvil, modelos de mayor calidad, TTS multilingüe y KittenASR
  • Apache License 2.0

1 comentarios

 
GN⁺ 2026-03-20
Comentarios en Hacker News
  • Hice purr, un wrapper de CLI para Kitten TTS
    El paquete kitten tiene una cadena de dependencias de kittentts → misaki[en] → spacy-curated-transformers
    Así que, si lo instalas directamente con uv, termina trayendo torch y paquetes NVIDIA CUDA (varios GB), aunque en realidad no son necesarios para ejecutarlo

    • El script de instalación funcionó bien
      En la primera ejecución me salió el error “OSError: PortAudio library not found”, pero lo resolví con apt install libportaudio2
    • Muchas gracias. La cadena de dependencias estaba rota y la instalación seguía fallando, pero con esto se solucionó
      Aunque me da curiosidad si al quitar las dependencias innecesarias se pierde alguna funcionalidad
  • Es un proyecto realmente genial
    Planeo probarlo yo mismo pronto
    Pero tengo una duda: ¿por qué no lo distribuyeron como un ejecutable de línea de comandos?
    La API también es casi estilo manpage, así que parece que podría hacerse rápido. Solo curiosidad

    • Buena idea. También está en planes
      Primero queremos recibir feedback sobre la versión onnx, y luego simplificar el proceso de ejecución, incluyendo un ejecutable de línea de comandos
  • Lo que me gustó de OpenClaw es que, con solo mandar una URL de GitHub en Discord, enseguida te generaba un mensaje de voz
    En pocos minutos ya tenía benchmarks y audio de muestra
    La calidad es impresionante para su tamaño. La voz no es perfecta, pero no está nada mal
    En un CPU Intel 9700 iba a alrededor de 1.5x tiempo real con el modelo 80M, y en una GPU 3080 no fue más rápido

    • Vamos a agregar voces más profesionales y voces personalizadas tipo DIY
      Por ahora pusimos una voz con estilo de animación para mostrar expresividad
      Si puedes compartir por GitHub issue o Discord por qué va lento en GPU, sería de mucha ayuda. También vamos a añadir código de ejemplo
    • Buen caso de uso. Me pareció interesante que se pudiera probar y desplegar en sandbox sin depender de vínculos inseguros como el correo electrónico
    • No puedo decir más que te envidio. A mí me tomó muchísimo más tiempo hacerlo correr
      Me compliqué intentando evitar conflictos de versión de Python, también probé con Docker, pero al final tuve que configurarlo a mano
      Apenas logré hacerlo funcionar, pero de verdad odio Python
  • Parece que por ahora solo soporta voces estadounidenses
    Personalmente solo me interesan los acentos irlandés, británico y galés. El estadounidense no me gusta mucho

  • Un TTS que corre en el propio dispositivo es realmente excelente como herramienta de accesibilidad
    La mayoría de los dispositivos dependen de servicios en línea, y este tipo de enfoque local es mucho mejor

    • Gracias por el feedback. Pronto vamos a lanzar más modelos pequeños para distintos usos
  • Se siente una mejora muy clara frente al modelo anterior
    De verdad es impresionante. Gracias por compartirlo

    • Gracias. Estos modelos son muchísimo mejores que los anteriores
      El modelo 15M actual ya es mejor que el antiguo modelo 80M, y pensamos mantener este ritmo de mejora
  • Me gustaría ver también un modelo exclusivo para japonés en el futuro
    Qwen3-tts sí soporta japonés, pero a veces mezcla chino y así no se puede usar

    • Tal vez podrías intentar una conversión a hiragana en la etapa de preprocesamiento
      Aunque eso podría hacer que se pierda la información de tono, por ejemplo: 飴 vs 雨
    • Vamos a soportar japonés en el próximo modelo, previsto en unas 3 semanas
      Si nos cuentas tu caso de uso, nos gustaría reflejarlo en las mejoras de calidad
  • El rendimiento era impresionante para el tamaño del modelo
    Pero hubo problemas con la pronunciación de números
    Probé con “Startup finished in 135 ms.” y el número sonó como ruido
    Cambiándolo por “one hundred and thirty five seconds” salió más o menos bien

    • Estamos corrigiendo ese problema también a nivel de modelo
      Mientras tanto, se puede resolver añadiendo preprocesamiento de texto
      La mayoría de los modelos TTS manejan números y unidades convirtiéndolos a cadenas de texto
    • Gracias por el feedback. Con preprocesamiento personalizado se puede resolver el 95% de los casos
      En el próximo release también se corregirá a nivel de modelo
    • Como referencia, la palabra correcta es “pronounce” o “pronouncing”. “pronounciating” es un error tipográfico
  • Estaría bien mostrar también audio de muestra comparando los cuatro modelos
    Sería más fácil entenderlo si hubiera ejemplos de la misma frase leída por cada modelo

    • Buena sugerencia. Lo agregaré enseguida
      Mientras tanto, puedes probar los modelos tú mismo en la demo de Hugging Face
  • Me pregunto si esto es open source o si es un modelo de pesos abiertos

    • Sí, así es. Es open source
      Para este fin de semana también planeamos añadir un phonemizer con licencia MIT, así que debería poder usarse libremente