3 points par GN⁺ 2025-06-12 | 1 commentaires | Partager sur WhatsApp
  • 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

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

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 via audio_prompt_path pour 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 utilise ChatterboxMultilingualTTS
  • 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_model ou passer "v2"
  • 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.py et example_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

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_weight sur 0
  • Les valeurs par défaut sont exaggeration=0.5 et cfg_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 à environ 0.3 peut aider à contrôler le débit
  • Pour une voix expressive ou dramatique, il est recommandé d’essayer un cfg_weight faible et une exaggeration de 0.7 ou plus
    • une exaggeration élevée tend à accélérer le débit de parole
    • réduire cfg_weight aide à compenser avec un débit plus lent et plus posé

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() et get_watermark()
    • le résultat est renvoyé sous la forme absence de watermark 0.0 ou présence de watermark 1.0

Évaluation

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

 
GN⁺ 2025-06-12
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.

    • Il semble y avoir une limite de 40 secondes dont personne ne parle. Si l’audio dépasse 40 secondes, il est coupé.
    • D’après mon expérience récente, les LLM s’en sortent plutôt bien même quand il y a des erreurs de transcription.
      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.
    • Ce serait bien d’avoir une intégration frontend qui affiche à l’utilisateur la liste des homographes hétérophones trouvés dans le texte et lui demande de valider chacun d’eux.
      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 ».
    • C’est vrai. J’ai essayé Speechmatics, et la transcription est plutôt correcte.
    • Si c’est uniquement pour l’anglais et pour un usage non commercial, Parakeet était presque irréprochable.
      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

    • Malheureusement, ils ne publient pas le code d’entraînement ni de fine-tuning, donc ce n’est pas « ouvert » au même sens que lorsqu’on dit que Flux ou Stable Diffusion le sont.
      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.
    • C’est amusant à tester.
      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.
    • Utiliser un échantillon de la comédienne voix professionnelle Jennifer English comme fichier audio de référence par défaut dans l’outil Hugging Face, c’est vraiment très voyant.
    • Du point de vue de la vie privée, je me demande comment cela fonctionne. Les échantillons enregistrés peuvent-ils être utilisés pour l’entraînement ?
  • 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.

    • J’ai essayé le wrapper, et Chatterbox TTS comme le wrapper d’API m’ont vraiment impressionné.
      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 input inline, mais je n’ai pas trouvé. Toute piste serait appréciée.
    • J’ai essayé pendant environ une heure de le faire tourner sur une RTX série 50, sans succès, et ça n’a pas marché non plus avec PyTorch 2.7.
      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."
    • Peut-on l’utiliser même sur un PC sans GPU ?
  • 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_watermark dans tts.py pour 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

    • Ça peut être une sorte de geste de déresponsabilisation. Un peu comme le filtre de contenu qu’il y avait dans les anciennes versions de Stable Diffusion
      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
    • Il y a même un flag --no-watermark dans 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 gros
    • Les acteurs qui ne sont ni OpenAI, ni Google, ni ElevenLabs sont condamnés à devenir complètement insignifiants s’ils ne font pas de l’open source de manière agressive
      Les 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 ?

    • Je voulais indiquer comment ça tourne sur un vieux CPU, mais même après environ 30 minutes de galère, je n’ai même pas réussi à le lancer
      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 uv règle ce point. Il dit que numpy 1.26.4 est introuvable alors qu’il existe bien, parce que uv pip ne cherchait que dans le dépôt PyTorch. Il fallait ajouter le flag --index-strategy pour qu’il vérifie aussi d’autres dépôts. La version pip install chatterbox-tts a un bug en mode CPU uniquement, donc il fallait cloner le dépôt Git, et la dernière version de main nécessite protobuf-compiler sur 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
    • D’après cette issue GitHub, il faut 6 à 7 Go de VRAM : https://github.com/resemble-ai/chatterbox/issues/44
      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
    • À voir la page des issues, il semble qu’il ne soit pas encore très optimisé pour l’instant[1]
      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
    • Ce n’est pas une question idiote, c’est la meilleure question
      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
    • J’étais venu pour poser la même question. Je me demande s’il faut un GPU à quatre chiffres, ou si ça tourne aussi sur un ThinkPad de 12 ans, ou quelque part entre les deux
  • 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

    • Ça en dit peut-être plus sur l’accent écossais que sur le modèle
    • Curieusement, mon accent australien a été transformé en quelque chose de très RP britannique. Je suis soudain devenu extrêmement chic
    • Moi, j’ai un accent britannique RP, et j’ai donné successivement un accent du Yorkshire puis un accent écossais
    • On dirait un acteur professionnel
  • 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 ?

    • La plupart de ces systèmes TTS ont tendance à se dégrader à mesure que le texte s’allonge.
      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.
    • C’est possible. J’ai créé des livres audio à partir d’epub avec cet outil, et le résultat était plutôt utilisable : https://github.com/santinic/audiblez
    • Dès que ce sera assez bon, Audible sera inondé de livres lus par IA, donc on le saura vite. La seule question, bien sûr, est de savoir si Amazon le rendra public.
    • Je conseille une entreprise dans ce domaine — pas Resemble — mais je peux l’affirmer : la lecture de livres est possible.
    • Il y a un an, pour m’amuser, j’ai créé pour un ami un livre audio de thérapie de Carl Rogers, avec une narration façon Attenborough, et c’était déjà assez bon à l’époque. Ça doit être encore mieux maintenant.
  • 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.

    • Ma famille parle espagnol avec un accent argentin. D’après ce que j’ai vu jusqu’ici dans ce domaine, je pense être à l’abri.
    • Un jour, il faudra sans doute que les pouvoirs publics fassent pression sur des enseignes comme Walmart pour qu’elles arrêtent complètement la vente de cartes-cadeaux.
      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.
    • Au Royaume-Uni, les appels TTS avancés basés sur l’IA sont assez fréquents. J’en ai encore reçu un aujourd’hui.
      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.
    • Le moyen le plus simple d’éviter les arnaques téléphoniques est de convenir à l’avance d’un mot de passe oral avec sa famille et les amis assez proches pour qu’on leur prête de l’argent.
      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.

    • Moi aussi je cherche. OpenVoice2 prend en charge quelques langues — de mémoire, environ cinq — mais je n’ai encore rien vu de vraiment utilisable.