- Pocket TTS, un modèle léger de synthèse vocale de 100 millions de paramètres, intègre une fonction de clonage vocal et peut fonctionner en temps réel sur le CPU d’un ordinateur portable standard
- Il réduit l’écart de performances entre les TTS basés sur de grands LLM (plus d’un milliard de paramètres) et le petit Kokoro TTS (82 millions de paramètres), en atteignant à la fois haute qualité et efficacité
- Avec seulement environ 5 secondes d’échantillon vocal, il reproduit fidèlement le timbre, l’émotion, l’intonation et les conditions acoustiques du locuteur
- Son architecture basée sur un Continuous Audio Language Model prédit directement des vecteurs latents continus au lieu de tokens discrets, ce qui réduit la taille du modèle sans dégrader la qualité
- Publié en open source sous licence MIT, il établit une nouvelle référence pour les technologies TTS légères capables d’offrir une synthèse vocale de haute qualité sur CPU
Vue d’ensemble de Pocket TTS
- Pocket TTS est un modèle de synthèse vocale de 100 millions de paramètres prenant en charge le clonage vocal (voice cloning)
- Il peut fonctionner en temps réel même sur le CPU d’un ordinateur portable
- Exécution locale possible avec les commandes
uvx pocket-tts serveouuvx pocket-tts generate
- Il a été développé par Kyutai et publié en open source sous licence MIT
- Les données d’entraînement utilisent uniquement des jeux de données vocaux publics en anglais
- La possibilité d’une extension avec des données privées supplémentaires est évoquée
Comparaison avec les modèles TTS existants
- Les technologies TTS actuelles se divisent en deux catégories
- Grands modèles basés sur des LLM : par ex. Kyutai TTS 1.6B (environ 1,6 milliard de paramètres)
- Capables de modéliser une grande variété de voix, d’émotions et de conditions acoustiques, mais nécessitent un GPU
- Petits modèles spécialisés : par ex. Kokoro TTS (82 millions de paramètres)
- Efficaces grâce à un ensemble de voix fixe et à des pipelines artisanaux, mais avec une flexibilité limitée
- Grands modèles basés sur des LLM : par ex. Kyutai TTS 1.6B (environ 1,6 milliard de paramètres)
- Pocket TTS se situe à mi-chemin entre ces deux approches et permet une synthèse vocale de haute qualité sur CPU
Évaluation des performances
- Évaluation réalisée sur le jeu Librispeech test-clean
- Les entrées audio ont été nettoyées avec Adobe Enhance Speech afin d’obtenir une qualité de 24 kHz
- Modèles comparés : F5-TTS, DSM, Chatterbox Turbo, Kokoro TTS
- Indicateurs d’évaluation :
- Word Error Rate (WER)
- Qualité audio (ELO)
- Similarité du locuteur (ELO)
- Résumé des résultats :
- Pocket TTS affiche le WER le plus bas avec 1,84
- Sa qualité audio est supérieure à celle de F5-TTS et DSM
- Sa similarité du locuteur est au niveau de la voix de référence
- C’est le seul modèle capable de fonctionner plus vite que le temps réel sur CPU
| Modèle | Nombre de paramètres | WER ↓ | Qualité audio (ELO) ↑ | Similarité du locuteur (ELO) ↑ | Exécution temps réel sur CPU |
|---|---|---|---|---|---|
| F5-TTS | 336M | 2.21 | 1949 ± 27 | 1946 ± 26 | ✗ |
| Kyutai TTS 1.6B | 750M | 1.84 | 1959 ± 25 | 2037 ± 21 | ✗ |
| Chatterbox Turbo | 350M | 3.24 | 2055 ± 23 | 2012 ± 22 | ✗ |
| Kokoro | 82M | 1.93 | pas de clonage vocal | pas de clonage vocal | ✓ |
| Pocket TTS | 100M | 1.84 | 2016 ± 25 | 1898 ± 26 | ✓ |
- Lors des tests sur les CPU Intel Core Ultra 7 165H et Apple M3, seuls Pocket TTS et Kokoro ont permis une synthèse en temps réel
Architecture
- Pocket TTS a été conçu à partir des recherches sur les Continuous Audio Language Models
- Les approches existantes prédisaient des tokens audio discrets, tandis que Pocket TTS prédit directement des vecteurs latents continus (latents)
- Cela permet de supprimer le goulot d’étranglement du RQ-transformer et d’alléger le modèle
Neural Audio Codec
- Architecture conçue sur la base du codec Mimi
- Mimi compresse en tokens discrets, mais Pocket TTS utilise une représentation latente continue
- Application d’un entraînement VAE normalisé par une distribution normale
- Distillation de WavLM vers des représentations internes avec une perte de similarité cosinus
- Suppression de l’étape RVQ et application de la perte de distillation à l’ensemble de la représentation latente
Modèle génératif
- Basé sur le framework Masked Autoregressive (MAR)
- Composé d’une colonne vertébrale Transformer causale et d’un échantillonneur MLP
- Utilise une perte Lagrangian Self-Distillation (LSD) pour réaliser un échantillonnage en 1 étape
- En inférence, les vecteurs latents prédits sont réinjectés de manière autorégressive
Conditionnement par la voix et le texte
- L’entrée du modèle combine un prompt vocal (quelques secondes) et du texte
- La voix est encodée par l’encodeur du codec, le texte par un tokenizer SentencePiece
Répartition de la taille du modèle
- Modèle génératif (Transformer + MLP) : 90 millions de paramètres
- Décodeur du codec : 10 millions de paramètres
- Encodeur du codec : 18 millions de paramètres (utilisé une seule fois lors de l’encodage de l’échantillon vocal)
Données d’entraînement
- Entièrement constituées de jeux de données vocaux publics en anglais, pour un total de 88 000 heures
- AMI, EARNINGS22, GIGASpeech, SPGISpeech, TED-LIUM, VoxPopuli, LibriHeavy, Emilia
Principales contributions techniques
Head Batch Multiplier
- Réutilisation multiple du vecteur z afin d’atténuer le goulot d’étranglement de calcul du Transformer
- Pour chaque séquence d’entrée, z est calculé une fois puis réutilisé pour 8 calculs de perte
- Effets : amélioration de l’efficacité et stabilisation de l’entraînement
Gaussian Temperature Sampling
- Application d’un contrôle de la température d’échantillonnage même dans un espace continu
- Réduction de la variance du bruit gaussien pour améliorer la qualité
- De bons résultats ont été observés avec une température de 0,7
Latent Classifier-Free Guidance (Latent CFG)
- Application du CFG classique au niveau des variables latentes (z)
- Combinaison linéaire des sorties conditionnelles et non conditionnelles pour améliorer la qualité
- Utilisation de α=1.5
- Un concept similaire apparaît aussi dans les recherches sur SoundReactor
Distillation
- Utilisation d’un modèle CFG comme modèle enseignant pour distiller un modèle étudiant léger
- La tête MLP du modèle enseignant est figée, et le modèle étudiant apprend z avec une perte L2
- Réduction possible d’un modèle enseignant de 24 couches vers un modèle étudiant de 6 couches
Conclusion
- Pocket TTS est un modèle TTS léger capable de produire une synthèse vocale de haute qualité en temps réel sur CPU
- Il combine une architecture fondée sur un espace latent continu, des techniques d’entraînement efficaces et une fonction de clonage vocal
- Publié en open source sous licence MIT, il offre aux développeurs et chercheurs reproductibilité et extensibilité
4 commentaires
On ne voit pas vraiment de modèles TTS open source prenant en charge le coréen. J’avais entendu dire que Kokoro-82M, publié il y a quelque temps, prenait bien en charge le coréen, mais aussi que la qualité n’avait pas l’air très bonne, et en cherchant rapidement, j’ai vu qu’on pouvait aussi en créer et utiliser avec GPT-Sovits, ou obtenir des résultats plutôt corrects avec quelque chose comme Edge-TTS.
Ces temps-ci, avec le vibe coding, je me dis qu’en le combinant avec Whisper il y aurait sûrement moyen de faire quelque chose d’intéressant, mais je n’ai pas d’idée haha
Récemment, Supertonic a sorti un modèle qui prend aussi en charge le coréen, allez y jeter un œil.
J’ai aussi créé une bibliothèque en un clic !
https://www.npmjs.com/package/easy-supertonic-tts
C’est sympa, mais ce serait bien d’avoir aussi l’adresse des ressources cibles pendant la création. Je ne peux pas juste tout installer comme ça haha
Réactions sur Hacker News
Je suis vraiment ravi de voir autant d’intérêt pour mon article
Je fais partie d’une équipe à Paris qui développe des solutions vocales de niveau entreprise basées sur les recherches de Kyutai
Si vous construisez quelque chose dans ce domaine, j’aimerais partager les modèles et fonctionnalités à venir
N’hésitez pas à me contacter à l’adresse e-mail figurant sur mon profil
En lisant cette longue étude de cas, je me suis rendu compte qu’il me fallait une extension de navigateur, alors j’ai créé moi-même une interface navigateur
Le résultat, c’est Pocket Reader
J’ai trouvé ça intéressant, donc j’en ai immédiatement fait un serveur MCP pour que Claude puisse m’indiquer quand une tâche est terminée
speak_when_done
J’ai aussi créé un outil similaire en lançant la commande
sayen processus d’arrière-plan, mais j’ai eu du mal à configurer une bonne voix de manière fiableOn dirait que cette voix naturelle est cachée quelque part
speak-mcp
Je vais maintenant essayer votre serveur aussi
Cette fois, la qualité du code est vraiment excellente
En général, les codebases des nouveaux modèles sont remplies d’un dump de dépendances inutile, mais ici c’est aussi remarquable du point de vue de l’ingénierie logicielle
Merci pour le partage ! Je suis fan de Kokoro, donc j’ai construit moi-même un assistant vocal local
projet ova
Je vais clairement essayer Pocket TTS aussi
En revanche, comme Pocket TTS est fermé, impossible de vérifier ses capacités de clonage vocal
Je me demande si c’est basé sur mlx ou sur Hugging Face transformers
Je me demande s’il serait possible de distribuer ce projet sous forme de petit binaire statique
À l’heure actuelle, les dépendances sont assez volumineuses
J’aime vraiment beaucoup
Mais c’est indiqué sous licence MIT, alors que le README contient une section distincte sur les usages interdits (Prohibited Use), ce qui prête à confusion sur le fait que ce soit ou non un logiciel libre
Comme pour les images ou les sons, un modèle de ML peut ne pas être considéré comme un logiciel
La model card sur Hugging Face contient la même clause d’interdiction
Donc les interdictions dans le README pourraient être juridiquement contradictoires
J’ai essayé
uvx pocket-tts servesur un Mac M1Pour tester, je lui ai fait lire le premier paragraphe de A Tale of Two Cities, et la voix Javert avait tendance à sauter certains morceaux des phrases
Par exemple, des passages comme « it was the age of foolishness » étaient omis
C’est un point qui nuit à la confiance
J’ai signalé le problème ici
Je n’avais pas beaucoup utilisé de modèles vocaux jusqu’ici, mais Pocket TTS m’a fait découvrir unmute.sh
C’est open source et cela semble venir de la même entreprise
Ces modèles donnent l’impression d’être tout à fait exploitables à faible coût, même dans un homelab
Les modèles open source se sont tellement améliorés qu’il y en a désormais pour presque tous les usages
Le seul domaine où une vraie barrière à l’entrée semble subsister, ce sont les modèles de code
Je suis aussi curieux de voir si Deepseek 4 pourra battre Claude Sonnet
Je l’ai intégré à mon plugin Codex pour lui faire lire un résumé à la fin de chaque tour, et ça marche étonnamment bien
Sur mon MacBook, cela tourne beaucoup plus fluidement que Samantha
agentify-sh/speak