Kitten TTS - un modèle TTS open source de 25 Mo qui fonctionne uniquement sur CPU
(github.com/KittenML)- Kitten TTS est un modèle TTS (text-to-speech) open source qui vise à la fois la légèreté et une haute qualité audio
- Il n’utilise que 15 millions de paramètres, pour une taille de modèle inférieure à 25 Mo
- Contrairement aux autres grands modèles TTS, son principal atout est de pouvoir fonctionner dans tous les environnements, y compris sur mobile et embarqué
- Même sans GPU, il permet une synthèse vocale de haute qualité sur tous les appareils
- Il propose différentes options de voix premium pour une synthèse vocale haute fidélité proche de la voix réelle
- L’inférence vocale est rapide, ce qui l’optimise pour la synthèse en temps réel
- Un modèle en préversion développeur est déjà disponible, et la publication progressive des poids complets du modèle entraîné, d’un SDK mobile et d’une version web est prévue par la suite
2 commentaires
Ce serait bien qu'il y ait aussi un modèle coréen..
Commentaires sur Hacker News
J’ai effectué un petit benchmark sur Ubuntu 24 avec un Razer Blade 16 équipé d’un Intel Core i9-14900HX
La latence initiale est d’environ 315 ms pour un texte court, et la vitesse de génération vocale atteint entre 3,35x et 5,5x le temps réel selon la longueur du texte
Le modèle se charge en environ 710 ms
Il n’y a pratiquement aucune différence de performances entre les 4 voix testées, qui restent proches d’une vitesse maximale d’environ 5x le temps réel
Sur mon CPU Intel Celeron N4020 (1,10 GHz), le chargement prend 6 secondes, et la vitesse est quasiment en temps réel quelle que soit la longueur du texte
Merci pour le benchmark
Le modèle n’est pas encore optimisé pour l’instant
Nous comptons aussi optimiser le chargement et d’autres aspects lors de la sortie du SDK de production
Un échantillon audio généré par KittenTTS a été posté sur Reddit
Échantillon audio Reddit
Il y a aussi une courte vidéo avec différentes voix
Vidéo YouTube
La vidéo Reddit est vraiment impressionnante
C’est étonnant d’obtenir cette qualité avec moins de 25 MB et uniquement un CPU
Je ne comprends pas pourquoi certains disent que c’est « un modèle moyen »
Le son est très net et très clair
Même en tant que non-anglophone natif, je le trouve facile à comprendre
Ça sonne un peu lent, avec une voix qui semble sortir d’un dessin animé
Vous êtes sûrs que ce n’est pas entraîné en croisé sur des voix de personnages de Futurama ?
J’aimerais que ce genre de modèle représente l’avenir
Une époque où des modèles de ML hors ligne et compacts effectuent l’inférence sur du matériel bon marché et disponible partout
Faciles à intégrer dans d’autres appareils ou applis, voire à faire tourner au sein d’autres modèles
C’est exactement le type de vision qu’Apple esquisse avec les SLM (petits modèles de langage)
Si un modèle ne sert qu’à gérer des événements de calendrier, il n’a pas besoin d’embarquer tout le savoir de l’humanité
Il suffit de le concentrer sur la gestion du calendrier
Faire tourner un modèle sur du matériel dédié à usage unique permet une efficacité énergétique très élevée
On peut même faire fonctionner des réseaux de neurones uniquement avec des résistances (sans transistors)
Bien sûr, ce matériel n’est pas à usage général et il est difficile à mettre à niveau
Mais dans bien des cas, c’est largement suffisant
Je me demande lequel réussira le mieux : les modèles que l’on achète une fois et qui peuvent tout faire, ou les modèles liés à un abonnement et nécessitant du matériel que seules les méga-entreprises les plus riches peuvent se permettre
En réalité, c’est exactement l’objectif que nous poursuivons
C’est aussi précisément notre vision
Les 25 MB sont impressionnants, mais la vraie innovation, c’est surtout que KittenTTS est publié sous licence Apache-2.0
Cette combinaison permet d’intégrer directement un moteur vocal entièrement hors ligne dans du matériel de type Pi Zero ou dans des jouets sur batterie
Pas besoin de GPU, d’appels au cloud ni de s’inquiéter de licences restrictives
En une fois, cela transforme les problèmes de matériel ou de licence en simple problème de packaging
L’amélioration de la qualité viendra plus tard, mais le vrai changement de donne, c’est d’avoir rendu possible cette catégorie de déploiement
Nous sommes nous aussi très enthousiastes à l’idée de créer des modèles d’IA ultra-compacts et de haute qualité
Nous pensons que les interfaces vocales locales sont inévitables et voulons jouer un rôle central dans ce domaine à l’avenir
Ce modèle est une preview, et nous publierons vers la semaine prochaine une version bien plus aboutie
Nous prévoyons aussi de publier un modèle d’environ 80M
Vous mentionnez le fait que KittenTTS est sous Apache-2.0, mais si l’on regarde le code source sur GitHub, il utilise phonemizer
Or phonemizer est sous licence GPL-3.0
Donc en pratique, c’est actuellement du GPL
(Note ajoutée : ce commentaire a aussi l’air d’avoir été généré par un LLM)
Le modèle festvox-kallpc16k de Festival fait environ 6 MB, et festvox-kallpc8k environ 3,5 MB
Les données multilingues de eSpeak NG tournent autour de 12 MB
Le modèle actuel produira sans doute une voix plus naturelle
Mais même les anciens ou petits ordinateurs savaient déjà faire du TTS assez correct depuis longtemps
Si KittenTTS est sous Apache-2.0, je me demande ce qu’il en est des données d’entraînement
Même si le modèle pouvait reproduire des entrées d’entraînement quasiment à l’identique
Peut-on vraiment être certain, juridiquement, qu’il ne s’agit pas d’une œuvre dérivée ?
Il dépend de espeak-ng, donc c’est du GPLv3
Il existe une version web
Accéder à la démo
Le son est correct, mais c’est très impressionnant au vu de la taille
Ce n’est pas amusant, dans les films SF, de voir qu’on déforme volontairement la voix pour qu’elle fasse « vraiment robot », alors qu’une voix clairement non humaine peut en réalité être plus attrayante et plus adaptée dans bien des contextes ?
Par exemple, un grille-pain intelligent n’a pas besoin de parler comme un présentateur du journal de la BBC
Il suffit que la prononciation soit claire
Je lui ai fait lire le texte de démo, mais ça ne sonnait pas aussi bien que les échantillons
Je laisse ici le texte d’exemple pour ceux qui veulent essayer
J’ai lancé la démo avec 6 phrases et j’ai eu une erreur
En réduisant à 3 phrases, ça a bien fonctionné
Je me demande si la limite de longueur vient du modèle ou simplement de la démo
Chez moi, ça ne fonctionne pas du tout
J’obtiens une erreur 404 sur le module backend
Exemple de lien d’erreur 404
J’étais justement en train de chercher ce lien
La démo Reddit est passable, ça fait penser au niveau d’il y a quelques années
Mais en l’essayant moi-même, tous les échantillons sont presque impossibles à comprendre
La configuration minimale indiquait « fonctionne pratiquement partout », ce qui m’a fait rire
Sur certaines machines, la version de Python est trop ancienne
Sur d’autres, elle est trop récente, et l’installation échoue à cause des dépendances
J’ai ouvert quelques PR pour régler ce problème
PR 21, PR 24, PR 25
Si
uvest installé, depuis ma branche de référence fusionnéeil suffit d’exécuter ceci
Installer via uvx résout la plupart des problèmes d’environnement Python
Guide d’installation de uv
Choisir Python résout un problème, mais en crée des dizaines d’autres en même temps
Sur Fedora, ça ne marche pas faute d’une version adaptée de g++
Python est le problème
Après l’avoir testé moi-même, la taille et la vitesse du modèle sont plutôt bonnes
Mais l’installation demande énormément de bibliothèques et d’éléments annexes
Au final, on s’éloigne beaucoup des 25 MB
Cela reste malgré tout un super projet
C’est une bonne remarque sur les dépendances
Pour simplifier l’installation et l’usage, et pour ajouter la prise en charge GPU ainsi que les textes longs que les gens demandent, j’ai créé un serveur auto-hébergé pour ce modèle
Kitten-TTS-Server
Il fonctionne directement avec un environnement Python venv standard, sans souci de conflit
Il suffit de
git clone,pip install, puispython server.pyPuisqu’il est question d’ONNX, j’imagine qu’un modèle ONNX existe déjà ou sera ajouté bientôt
ONNX runtime tient dans une seule bibliothèque, qui fait environ 115 MB compressée côté C#
Ce n’est pas minuscule, mais le code nécessaire pour l’exécuter tient en quelques lignes, donc les dépendances restent limitées
Faire entrer plusieurs bibliothèques d’un coup aide au développement rapide et à l’itération
Plus tard, quand les fonctionnalités seront stabilisées, on supprimera les bibliothèques inutiles
Plus que la taille du modèle en MB, ce qui compte surtout, c’est l’exécution sur CPU et la qualité, et ma seule vraie inquiétude est la latence
Je me demande s’il existe des modèles de transcription vocale hors ligne qui fonctionnent sans entraînement séparé
Ce sera vraiment impressionnant le jour où l’on pourra converser avec une IA à une vitesse naturelle, comme entre humains
Le modèle parakeet de Nvidia est actuellement à la pointe pour l’anglais
Il est 10 fois plus rapide que Whisper et tourne bien plus vite que le temps réel même sur mon CPU AMD milieu de gamme
La reconnaissance vocale hors ligne est possible avec Whisper
Certaines applis prennent déjà en charge la dictée ou la transcription entièrement hors ligne
Par exemple, avec le texte « The brown fox jumps over the lazy dog.. »
le temps moyen de génération est de 1,28 s, soit environ 30,35 caractères par seconde
sur un AMD Ryzen 7 5800H
Pour les modèles de reconnaissance vocale hors ligne, Whisper d’OpenAI est la référence la plus connue
Dépôt officiel de Whisper
Quelqu’un sait quels sont les facteurs qui influencent la latence d’un modèle TTS ?
C’est assez impressionnant
Il y a clairement des usages possibles dans des domaines spécifiques, par exemple l’embarqué
En revanche, la qualité ne semble pas encore suffisante pour remplacer les gros modèles
Pour le TTS open hors ligne de la meilleure qualité, je dirais que fish-speech et f5-tts sont les références
F5-TTS tournait correctement sur une vieille NVidia 1660 (6 GB de VRAM)
Avec du matériel plus récent, on peut obtenir une meilleure qualité, du multilingue et même du zero-shot à coût raisonnable
Sur Android, SherpaTTS offre une bonne compatibilité
Ce modèle est une version preview, et nous voulons encore beaucoup améliorer sa qualité
Fish Speech a des poids non autorisés pour un usage commercial
Je serais curieux de connaître les besoins en VRAM, mais KittenTTS n’a que 15 millions de paramètres, donc il peut fonctionner sur un ordinateur basse consommation à moins de 100 €
Le GPU 6 GB que tu mentionnes est déjà ancien
La qualité n’est pas aussi impressionnante que je l’espérais
Mon objectif est une voix naturelle
Je ne suis pas satisfait non plus de piper ni de kokoro, et l’installation de XTTS était un peu compliquée
Côté reconnaissance vocale (STT), Whisper est vraiment excellent
Un bon TTS me manque
Une forte utilisation GPU ne me dérange pas si la qualité est au rendez-vous
À titre de référence, ce modèle est actuellement moins bon que kokoro
À mon avis, la meilleure qualité SOTA actuelle en open weights est chatterbox
Le meilleur TTS open source que j’ai vu est Dia
Il a quelques limites, mais tourne bien sur un laptop
Pinokio vaut aussi le détour
Chatterbox mérite aussi d’être essayé
Si tu as largement assez de ressources GPU, inutile d’être trop exigeant sur la qualité ici
L’important, c’est que ce modèle fonctionne sans GPU
Avant Tacotron2, on faisait déjà tourner à bas coût de petits modèles TTS et vocoders comme GlowTTS ou MelGAN sur le cloud de Digital Ocean
Ensuite, la tendance est allée vers des modèles toujours plus gros
Mais je pense qu’on va maintenant revenir à une époque où de petits modèles seront embarqués directement dans les appareils
Raspberry Pi, jouets, petits appareils sans réseau, etc.
L’edge AI va connaître une énorme expansion dans la robotique, les jouets, l’électronique grand public et le jeu vidéo