5 points par GN⁺ 2026-03-20 | 1 commentaires | Partager sur WhatsApp
  • Bibliothèque légère de synthèse texte-parole (TTS) basée sur ONNX et de niveau State-of-the-art, capable de produire une synthèse vocale de haute qualité sur CPU בלבד
  • La taille des modèles va de 15M à 80M de paramètres (25 à 80 Mo), pour une exécution efficace même sans GPU
  • Fournit 8 voix intégrées, le réglage de la vitesse, un pipeline de prétraitement du texte et une sortie audio en 24 kHz
  • Utilisable directement sur Hugging Face et simple à intégrer via une API Python
  • Solution TTS open source pensée pour le déploiement sur edge devices et l’intégration commerciale

Présentation de Kitten TTS

  • Kitten TTS est une bibliothèque TTS open source basée sur ONNX qui effectue une synthèse vocale de haute qualité sur CPU, sans GPU
    • Les modèles vont de 15M à 80M de paramètres, soit 25 à 80 Mo sur disque
    • La version 0.8 propose des modèles 15M, 40M et 80M
  • Le projet est actuellement en developer preview, et l’API peut évoluer à l’avenir
  • Une prise en charge commerciale est proposée (support d’intégration, voix personnalisées, licence entreprise)

Fonctionnalités principales

  • Architecture ultra-légère : à partir de 25 Mo en int8, adaptée au déploiement en environnement edge
  • Optimisation CPU : inférence ONNX efficace sans GPU
  • 8 voix intégrées : Bella, Jasper, Luna, Bruno, Rosie, Hugo, Kiki, Leo
  • Réglage de la vitesse : contrôle du débit de parole via le paramètre speed
  • Pipeline de prétraitement du texte : gestion automatique des nombres, devises, unités, etc.
  • Sortie 24 kHz : génération audio de haute qualité à fréquence d’échantillonnage standard

Modèles disponibles

  • Quatre modèles sont proposés
    • kitten-tts-mini (80M, 80MB)
    • kitten-tts-micro (40M, 41MB)
    • kitten-tts-nano (15M, 56MB)
    • kitten-tts-nano (int8, 15M, 25MB)
  • Certains utilisateurs ont signalé des problèmes avec le modèle kitten-tts-nano-0.8-int8 ; il est recommandé d’ouvrir une issue

Démo et utilisation

  • Essai direct dans le navigateur via Hugging Face Spaces
  • Installation possible avec Python 3.8 ou version ultérieure et pip uniquement
  • Exemple d’utilisation de base :
    • from kittentts import KittenTTS
    • model = KittenTTS("KittenML/kitten-tts-mini-0.8")
    • audio = model.generate("texte", voice="Jasper")
  • Fonctions avancées : réglage de la vitesse (speed), sauvegarde dans un fichier (generate_to_file), consultation de la liste des voix disponibles

Structure de l’API

  • KittenTTS(model_name, cache_dir=None)
    • Charge le modèle depuis le Hugging Face Hub
  • model.generate(text, voice, speed, clean_text)
    • Convertit le texte en audio 24 kHz
  • model.generate_to_file(text, output_path, voice, speed, sample_rate, clean_text)
    • Enregistre directement la voix synthétisée dans un fichier
  • model.available_voices
    • Renvoie la liste des voix disponibles

Configuration requise

  • Système d’exploitation : Linux, macOS, Windows
  • Python : 3.8 ou version ultérieure
  • Matériel : CPU uniquement, GPU non requis
  • Espace disque : 25 à 80 Mo selon le modèle
  • Utilisation d’un environnement virtuel (venv, conda, etc.) recommandée

Feuille de route

  • Optimisation du moteur d’inférence, SDK mobile, modèles haute qualité, TTS multilingue, sortie prévue de KittenASR
  • Apache License 2.0

1 commentaires

 
GN⁺ 2026-03-20
Réactions sur Hacker News
  • J’ai créé purr, un wrapper CLI pour Kitten TTS
    le paquet kitten a une chaîne de dépendances kittentts → misaki[en] → spacy-curated-transformers
    donc si on l’installe directement avec uv, il récupère torch et les paquets NVIDIA CUDA (plusieurs Go), alors qu’ils ne sont pas nécessaires à l’exécution

    • Le script d’installation a bien fonctionné
      Au premier lancement, j’ai eu l’erreur « OSError: PortAudio library not found », résolue avec apt install libportaudio2
    • Merci beaucoup. L’installation échouait sans arrêt à cause de la chaîne de dépendances cassée, et ça a réglé le problème
      En revanche, je me demande s’il y a une perte de fonctionnalités en supprimant les dépendances inutiles
  • Projet vraiment génial
    Je vais l’essayer moi-même bientôt
    J’ai juste une question : pourquoi ne pas l’avoir distribué sous la forme d’un exécutable en ligne de commande ?
    L’API ressemble presque déjà à une manpage, donc ça semblerait rapide à faire. Simple curiosité

    • Bonne idée. C’est aussi prévu
      On veut d’abord recueillir des retours sur la version ONNX, puis simplifier le processus d’exécution par la suite, notamment avec un exécutable en ligne de commande
  • Ce que j’ai aimé avec OpenClaw, c’est que sur Discord il suffisait d’envoyer une URL GitHub pour générer immédiatement un message vocal
    J’ai reçu un benchmark et des échantillons audio en quelques minutes
    La qualité est impressionnante pour la taille. La voix n’est pas parfaite, mais elle est loin d’être mauvaise
    Sur un CPU Intel 9700, le modèle 80M tournait à environ 1,5× le temps réel, et ce n’était pas plus rapide sur un GPU 3080

    • Nous prévoyons d’ajouter des voix plus professionnelles ainsi que des voix personnalisées DIY
      Pour l’instant, nous avons mis une voix au style anime pour montrer l’expressivité
      Si tu peux partager via une issue GitHub ou sur Discord pourquoi c’est lent sur GPU, ce serait utile. Nous allons aussi ajouter du code d’exemple
    • Bon cas d’usage. J’ai trouvé intéressante la structure qui permettait de tester et déployer dans un sandbox sans liaisons vulnérables côté sécurité comme l’e-mail
    • Je ne peux que dire que je suis jaloux. Chez moi, il a fallu bien plus de temps pour arriver à l’exécuter
      J’ai galéré pour éviter les conflits de version Python, et j’ai aussi essayé avec Docker, mais j’ai finalement dû tout configurer à la main
      J’ai fini par le faire tourner, mais je déteste vraiment Python
  • À l’heure actuelle, on dirait que seules les voix américaines sont prises en charge
    Personnellement, je ne m’intéresse qu’aux accents irlandais, britanniques et gallois. L’américain, très peu pour moi

  • Un TTS qui fonctionne en local sur l’appareil, c’est vraiment excellent comme outil d’accessibilité
    La plupart des appareils dépendent de services en ligne, et ce type d’approche locale est bien meilleur

    • Merci pour le retour. Nous allons bientôt publier d’autres petits modèles pour divers usages
  • On sent une amélioration bien plus nette que sur les anciens modèles
    C’est vraiment impressionnant. Merci d’avoir partagé ça

    • Merci. Ces modèles sont bien meilleurs que les précédents
      Le modèle 15M actuel est meilleur que l’ancien 80M, et nous comptons maintenir ce rythme d’amélioration
  • J’aimerais voir à l’avenir un modèle dédié au japonais
    Qwen3-tts prend bien en charge le japonais, mais comme du chinois se mélange parfois dedans, c’est inutilisable

    • On pourrait essayer une conversion en hiragana à l’étape de prétraitement
      Mais cela risquerait de faire perdre l’information de hauteur tonale (par ex. 飴 vs 雨)
    • Le prochain modèle, prévu dans environ 3 semaines, prendra en charge le japonais
      Si tu peux nous indiquer ton cas d’usage, on aimerait s’en servir pour améliorer la qualité
  • Les performances étaient impressionnantes vu la taille du modèle
    En revanche, il y avait un problème avec la prononciation des nombres
    J’ai essayé « Startup finished in 135 ms. », et le nombre sonnait comme du bruit
    En remplaçant par « one hundred and thirty five seconds », c’était déjà plus correct

    • Nous corrigeons ce problème aussi au niveau du modèle
      En attendant, on peut le résoudre en ajoutant un prétraitement du texte
      La plupart des modèles TTS gèrent cela en convertissant les nombres et les unités en chaînes de caractères
    • Merci pour le retour. Un prétraitement personnalisé peut régler 95 % des cas
      Ce sera aussi corrigé au niveau du modèle dans la prochaine release
    • Au passage, les bons mots sont « pronounce » ou « pronouncing ». « pronounciating » est une faute
  • Ce serait bien d’avoir en plus des échantillons audio comparant les quatre modèles
    Avec un exemple de la même phrase lue par chaque modèle, ce serait plus facile à comprendre

    • Bonne suggestion. Je vais l’ajouter tout de suite
      En attendant, vous pouvez essayer directement les modèles sur la démo Hugging Face
  • Je me demande si c’est de l’open source ou simplement un modèle à open weights

    • Oui, c’est bien open source
      Nous allons aussi ajouter d’ici ce week-end un phonemizer sous licence MIT, donc il pourra être utilisé librement