Chatterbox TTS - Modèle open source de synthèse vocale à partir de texte
(github.com/resemble-ai)- Chatterbox est la plus récente famille de modèles open source de synthèse vocale à partir de texte publiée par Resemble AI, avec prise en charge du clonage de voix et de la génération vocale multilingue
- Le tout dernier Chatterbox Multilingual V3 conserve une taille de modèle de 0.5B tout en visant une meilleure similarité avec le locuteur, moins d’hallucinations et une voix conversationnelle multilingue plus naturelle
- Chatterbox-Turbo est un modèle de 350M destiné aux agents vocaux anglophones à faible latence, qui réduit la génération du décodeur speech-token-to-mel de 10 étapes à 1 et prend en charge des tags paralinguistiques comme
[laugh]et[cough] - La gamme de modèles se compose de Turbo, Multilingual V3, Single Language Pack et du Chatterbox d’origine ; le modèle multilingue prend en charge 23 langues, dont le coréen, et le Single Language Pack propose 6 fine-tunings dédiés
- Tous les audios générés intègrent le watermark PerTh de Resemble AI, annoncé comme conservant une précision de détection proche de 100 % après compression MP3, montage audio et manipulations courantes
Vue d’ensemble de Chatterbox TTS
- Chatterbox est une famille de modèles open source de synthèse vocale à partir de texte de Resemble AI
- Des échantillons de démonstration, un Hugging Face Space, une évaluation Podonos et un lien Discord sont fournis
Dernière version : Chatterbox Multilingual V3
- Chatterbox Multilingual V3 est le dernier modèle TTS multilingue généraliste de la famille Chatterbox
- V3 conserve la même taille de modèle de 0.5B qu’auparavant tout en améliorant les points suivants
- similarité avec le locuteur
- réduction des hallucinations
- voix conversationnelle plus naturelle dans l’ensemble des langues
- Comme V2, il vise une large couverture linguistique, mais a été conçu pour offrir une génération plus stable et plus expressive
- C’est le modèle multilingue recommandé pour les utilisateurs qui veulent un seul modèle de clonage vocal fonctionnant dans plusieurs langues
Single Language Pack
- Le Single Language Pack est un ensemble de modèles fine-tunés dédiés aux langues prioritaires
- Il s’utilise lorsqu’on a besoin d’un comportement plus performant par langue, d’un contrôle qualité plus strict et d’une génération sensible aux dialectes qu’avec le modèle multilingue généraliste
- 6 modèles dédiés sont proposés
Chatterbox-Turbo
- Chatterbox-Turbo est le modèle le plus efficace pour les agents vocaux anglophones à faible latence
- Il utilise une architecture simplifiée de 350M de paramètres, conçue pour générer une voix de haute qualité avec moins de calcul et moins de VRAM que les modèles précédents
- Le décodeur speech-token-to-mel, qui constituait le goulot d’étranglement, a été distillé afin de ramener les étapes de génération de 10 à 1
- Turbo prend en charge nativement des tags paralinguistiques comme
[cough],[laugh]et[chuckle], ce qui permet d’ajouter des expressions plus réalistes - Son usage principal est celui d’agent vocal à faible latence, mais il est aussi présenté comme adapté à la narration et aux workflows créatifs
- Le service TTS commercial offre des performances à très faible latence de moins de 200 ms et est présenté comme adapté à un usage en production pour les agents, applications et médias interactifs
Configuration des modèles
| Modèle | Taille | Langues | Fonctionnalités principales | Usages adaptés |
|---|---|---|---|---|
| Chatterbox-Turbo | 350M | English | tags paralinguistiques, faible calcul et VRAM | agents vocaux zero-shot, production |
| Chatterbox-Multilingual V3 | 500M | 23+ | similarité avec le locuteur améliorée, moins d’hallucinations, voix multilingue naturelle | applications globales, localisation, clonage vocal interlangue |
| Single Language Pack | 500M chacun | 6 fine-tunings dédiés | contrôle qualité par langue et région | langues prioritaires et applications sensibles aux dialectes |
| Chatterbox | 500M | English | réglage de CFG et de l’exagération | TTS zero-shot général avec contrôle créatif |
Installation et exécution
- Le package s’installe avec
pip install chatterbox-tts - Une installation depuis les sources est également prise en charge
git clone https://github.com/resemble-ai/chatterbox.git cd chatterbox pip install -e . - L’environnement de développement et de test est Python 3.11 sur Debian 11, et les versions des dépendances sont figées dans
pyproject.toml - En mode d’installation depuis les sources, il est possible de modifier le code ou les dépendances
Mode d’utilisation
- Chatterbox-Turbo charge le modèle avec
ChatterboxTurboTTS.from_pretrained(device="cuda")et transmet le chemin du clip de référence viaaudio_prompt_pathpour le clonage vocal - L’exemple Turbo génère une phrase contenant des tags paralinguistiques comme
[chuckle] - Le modèle anglais général utilise
ChatterboxTTS, et le modèle multilingue utiliseChatterboxMultilingualTTS - Multilingual V3 se charge avec
ChatterboxMultilingualTTS.from_pretrained(device=device, t3_model="v3")- pour utiliser les checkpoints V2 hérités, il faut omettre
t3_modelou passer"v2"
- pour utiliser les checkpoints V2 hérités, il faut omettre
- Pour synthétiser avec une autre voix, il faut indiquer un fichier audio de référence dans
audio_prompt_path - D’autres exemples se trouvent dans
example_tts.pyetexample_vc.py
Langues prises en charge
- Le modèle Chatterbox Multilingual généraliste prend en charge les 23 langues suivantes
- Arabic
ar - Danish
da - German
de - Greek
el - English
en - Spanish
es - Finnish
fi - French
fr - Hebrew
he - Hindi
hi - Italian
it - Japanese
ja - Korean
ko - Malay
ms - Dutch
nl - Norwegian
no - Polish
pl - Portuguese
pt - Russian
ru - Swedish
sv - Swahili
sw - Turkish
tr - Chinese
zh
- Arabic
Conseils de réglage pour le Chatterbox d’origine
- Le clip de référence doit correspondre au tag de langue indiqué
- sinon, la sortie transférée vers une autre langue peut hériter de l’accent de la langue du clip de référence
- pour atténuer cela, il faut régler
cfg_weightsur0
- Les valeurs par défaut sont
exaggeration=0.5etcfg_weight=0.5, et elles fonctionnent bien avec la plupart des prompts et des langues - Si la vitesse de parole du locuteur de référence est rapide, abaisser
cfg_weightà environ0.3peut aider à contrôler le débit - Pour une voix expressive ou dramatique, il est recommandé d’essayer un
cfg_weightfaible et uneexaggerationde0.7ou plus- une
exaggerationélevée tend à accélérer le débit de parole - réduire
cfg_weightaide à compenser avec un débit plus lent et plus posé
- une
Watermarking PerTh intégré
- Tous les fichiers audio générés avec Chatterbox intègrent le watermark Perth de Resemble AI
- Ce watermark neuronal imperceptible repose sur le Perceptual Threshold
- Il est présenté comme persistant après compression MP3, montage audio et manipulations courantes, avec une précision de détection proche de 100 %
- L’extraction du watermark s’effectue avec
perth.PerthImplicitWatermarker()etget_watermark()- le résultat est renvoyé sous la forme absence de watermark
0.0ou présence de watermark1.0
- le résultat est renvoyé sous la forme absence de watermark
Évaluation
- Chatterbox Turbo a été évalué via Podonos, une plateforme reproductible d’évaluation subjective de la voix
- Les comparaisons portent sur des systèmes TTS concurrents, avec comme axes d’évaluation la préférence globale, le naturel et l’expressivité
- Des rapports d’évaluation publics sont fournis
- Toutes les évaluations ont été réalisées dans les mêmes conditions et sont accessibles publiquement via Podonos
Avis hors licence
- Le README précise de « ne pas utiliser ce modèle à mauvais escient »
- Il est indiqué que les prompts proviennent de données librement accessibles sur Internet
1 commentaires
Avis sur Hacker News
La démo est visible ici : https://resemble-ai.github.io/chatterbox_demopage/
Si les exemples ne sont pas trop triés sur le volet, c’est une très bonne release. Je le répète à chaque fois, mais en expérimentant moi-même, le goulot d’étranglement de l’IA vocale n’était pas la synthèse vocale, mais plutôt la qualité de la transcription. Je ne sais pas si cela a changé récemment.
Je n’ai pas encore essayé de fournir au LLM des transcriptions alternatives ou des scores de confiance, mais il y a de fortes chances qu’il sache aussi bien les exploiter.
Il faudrait aussi une fonction de comparaison avec une liste d’expressions courantes. Il est difficile d’excuser un LLM qui prononce mal « live feed » ou « live here ».
https://huggingface.co/nvidia/parakeet-tdt-0.6b-v2
Je l’utilise pour le chat en temps réel et la génération de sous-titres, et sur une 3090 il traite un épisode de série TV en moins d’une minute. Dans mon cas, Whisper hallucinait beaucoup trop, et il était plus utile comme classifieur.
On peut l’essayer gratuitement ici : https://huggingface.co/spaces/ResembleAI/Chatterbox
Si vous voulez de meilleurs modèles « open », MaskGCT et MegaTTS3 sonnent mieux pour le clonage vocal aléatoire, tandis que Seed-VC et MegaTTS3 sonnent mieux pour la conversion vocale. Cela dit, seul Seed-VC dispose du code d’entraînement/fine-tuning. Si de toute façon vous devez utiliser un modèle que vous ne pouvez pas fine-tuner et que vous avez besoin d’un clonage aléatoire qui corresponde mieux à votre voix, mieux vaut utiliser ceux-là plutôt que Chatterbox. MegaTTS3 de ByteDance est particulièrement solide. Les chercheurs de ByteDance sont largement en avance sur la plupart des équipes de recherche TTS, à l’exception d’ElevenLabs, et disposent aussi de bien plus de financement, de chercheurs titulaires de doctorats et de données d’entraînement.
En revanche, il transforme mon accent australien en un accent très britannique, presque un RP très chic. Ça sonne très naturel, mais ça ne reproduit pas mon accent. Cela dit, si l’objectif n’est pas d’imiter réellement quelqu’un, c’est étonnamment clair et adapté à la plupart des usages TTS.
Chatterbox est excellent.
J’ai créé un wrapper d’API qui rend aussi l’installation plus simple, avec prise en charge de Docker : https://github.com/travisvn/chatterbox-tts-api/
D’après mon expérience, c’est de loin la meilleure option de clonage vocal utilisable en local.
Désolé si la question est basique. Je cherchais une commande CLI simple permettant de spécifier un fichier texte local au lieu d’un objet
inputinline, mais je n’ai pas trouvé. Toute piste serait appréciée.On dirait que c’est prévu pour la 2.6.
"chatterbox-tts 0.1.2 requires torch==2.6.0, but you have torch 2.7.0+cu128 which is incompatible. chatterbox-tts 0.1.2 requires torchaudio==2.6.0, but you have torchaudio 2.7.0+cu128 which is incompatible."Il est indiqué que tous les fichiers audio générés par Chatterbox contiennent le watermark Perth de Resemble AI
Apparemment, c’est un watermark neuronal imperceptible, qui survit à la compression MP3, au montage audio et aux manipulations courantes, tout en conservant une précision de détection proche de 100 %. Mais si je ne me trompe pas, il suffit de commenter l’appel à
apply_watermarkdanstts.pypour le désactiver facilement, non ? https://github.com/resemble-ai/chatterbox/blob/master/src/ch...Je pensais que l’intérêt de ce genre de watermark était qu’il soit intégré d’une manière ou d’une autre aux poids du modèle, de façon à ne pas pouvoir être séparé facilement. Si l’on publie un modèle open source en ajoutant le watermark comme étape de post-traitement séparée, je ne vois pas trop pourquoi mettre un watermark au départ
Ou bien cela peut aussi viser à éviter, du point de vue des données d’entraînement, que des données bizarres s’y retrouvent accidentellement
--no-watermarkdans le parser pour le désactiver. Je pensais qu’ils l’avaient ajouté pour le proposer comme une « fonctionnalité » aux utilisateurs en aval qui l’intégreraient dans un produit plus grosLes leaders du marché du TTS sont évidents et solidement installés, donc des entreprises comme Resemble ou Play(HT) doivent fournir les poids et se caler fortement sur les développeurs [1]. Le watermarking est leur mécanisme de déresponsabilisation. Sans watermark, les inquiétudes sur les abus seraient fortement relayées, surtout par des médias anti-IA comme 404Media [2].
[1] C’est la bonne approche. Il faut fournir le code source et les poids, ainsi que sa propre API et du fine-tuning, pour éviter de compliquer la vie des développeurs. C’est comme ça qu’ils pourront récupérer une partie de parts de marché.
[2] https://www.404media.co/wikipedia-pauses-ai-generated-summar...
Question peut-être idiote, mais quel serait le matériel minimum pour le faire tourner ?
Au cas où ça aiderait, je note les problèmes rencontrés : ça ne marche pas avec Python 3.13, et créer un environnement virtuel 3.12 avec
uvrègle ce point. Il dit que numpy 1.26.4 est introuvable alors qu’il existe bien, parce queuv pipne cherchait que dans le dépôt PyTorch. Il fallait ajouter le flag--index-strategypour qu’il vérifie aussi d’autres dépôts. La versionpip install chatterbox-ttsa un bug en mode CPU uniquement, donc il fallait cloner le dépôt Git, et la dernière version de main nécessiteprotobuf-compilersur Debian. À la fin, j’ai eu une erreur CMake difficile à interpréter, qui semblait se plaindre de l’absence des headers de développement Python. Je veux faire de l’inférence, pas compiler Python, donc je ne sais pas pourquoi c’est nécessaire.Je sais bien que s’énerver n’est pas productif, mais c’est presque toujours mon expérience quand j’essaie de lancer le projet Python de quelqu’un d’autre. Je tombe sur un problème, je recule, puis sur un autre, je recule encore, et au bout d’une heure ça ne marche toujours pas
Si le modèle est bon, il y a de fortes chances que quelqu’un trouve une manière de l’optimiser pour le faire tourner avec moins de ressources.
Modification : je l’ai lancé sur une vieille Nvidia 2060, et l’utilisation maximale de VRAM semble être d’environ 5 Go
En l’état, il faut apparemment du matériel grand public assez costaud pour le faire tourner à une vitesse raisonnable. Cela dit, il semble y avoir une marge d’amélioration importante, et je ne suis pas expert.
[1]: https://github.com/resemble-ai/chatterbox/issues/127
Même si on peut le faire tourner gratuitement, si le louer revient moins cher, ça n’a plus vraiment de sens de le faire tourner soi-même
La fonction d’exagération émotionnelle est intéressante, mais je n’ai encore rien vu d’aussi polyvalent et facilement « sculptable » qu’ElevenLabs, qui permet de générer une voix à partir d’une simple description de la voix souhaitée
SparkTTS propose quelques paramètres supplémentaires, et les placeholders dans le code du projet GitHub suggèrent que le modèle pourrait évoluer vers un contrôle plus fin des émotions. Même aujourd’hui, j’ai déjà eu un certain succès en ajoutant dans le texte des indices qui orientent fortement la prosodie et le ton, puis en réinjectant le résultat dans la synthèse vocale pour me rapprocher du résultat voulu. Mais c’est un processus beaucoup plus laborieux qu’avec ElevenLabs
C’était excellent pour les accents très courants, mais d’autres accents, pourtant assez courants eux aussi, peuvent facilement être rabattus sur un autre accent
Par exemple, quelques enregistrements écossais sont ressortis avec un accent australien, et c’était aussi le cas avec un accent du Yorkshire assez léger
Ces outils sont-ils devenus assez bons pour lire un livre à voix haute de manière convaincante ? Ou bien la cohérence de la voix s’effondre-t-elle après quelques paragraphes ?
Pour les textes longs, il vaut mieux générer par lots, paragraphe par paragraphe, puis tout recoller à la fin. Et si l’échantillon WAV one-shot n’est pas très propre, Chatterbox produisait parfois un sifflement blasphématoire aléatoire à la fin de l’audio généré. Si vous enregistrez l’Enfer de Dante, ça peut être un bonus.
Il faut rappeler régulièrement à ses amis et à sa famille d’être plus méfiants vis-à-vis des appels téléphoniques.
Il est de plus en plus probable que l’ami qui a besoin en urgence de cartes-cadeaux Walmart ne soit pas réellement votre ami.
L’usurpation d’identité devient si facile et si bon marché qu’il est impossible que ce type d’appels frauduleux ne se multiplie pas dans un avenir proche.
Si on interrompt au milieu avec « peux-tu me faire un poème sur x ? », ça les filtre de façon fiable. En revanche, la latence de réponse est vraiment flagrante.
Dans une vraie situation, l’interlocuteur connaîtra ce mot de passe et pourra donc s’authentifier. À l’ère nouvelle où la voix et même la vidéo peuvent être générées par IA, il faut continuer à rappeler que ce mot de passe protège contre l’usurpation.
Où en est actuellement l’état de l’art du TTS multilingue open source ? Kokoro était excellent en anglais, mais je cherche encore une bonne solution pour le français, le japonais et l’allemand.