Statut: Testé en local. Les quatre workflows tournent sur mon portable RTX 3080 en local. Un premier démarrage sur un vrai pod RunPod n'est pas encore vérifié ; je mettrai ce guide à jour dès que ce sera fait.
Les avatars parlants, les vidéos explicatives et les dialogues de jeu ont tous besoin d’une voix off. Qwen3-TTS, de l’équipe Qwen d’Alibaba, est un modèle ouvert de synthèse vocale avec neuf voix intégrées, la conception de voix à partir d’une description écrite et le clonage de voix. J’ai construit un template qui le fait tourner dans ComfyUI, principalement pour produire les voix off de mes vidéos d’avatars.
ComfyUI n’a pas de nodes Qwen3-TTS propres, le template inclut donc un petit pack de nodes qui pilote le paquet officiel qwen-tts de Qwen. Vous obtenez quatre workflows dans la barre latérale, chacun avec des valeurs par défaut fonctionnelles, si bien que le premier essai ne demande aucune saisie. Tout est sur GitHub.
En bref
- Open source : les modèles sont publiés sous Apache-2.0, qui autorise l’usage commercial.
- 9 voix intégrées qui parlent chacune 10 langues.
- Concevez une voix à partir d’une description, ou clonez-en une à partir d’un enregistrement de 3 à 20 secondes.
- Des scripts de n’importe quelle longueur, découpés et réassemblés automatiquement.
- Tourne sur tout GPU de 8 Go ou plus. Environ 13,6 Go de modèles ; prévoyez un volume de 40 Go.
Les 9 voix intégrées
| Voix | Langue d’origine | Caractère |
|---|---|---|
| Ryan | Anglais | Voix masculine dynamique, rythme marqué |
| Aiden | Anglais | Américain ensoleillé, médium clair |
| Vivian | Chinois | Jeune femme lumineuse, un peu mordante |
| Serena | Chinois | Jeune femme chaleureuse et douce |
| Uncle_Fu | Chinois | Homme expérimenté, grave et moelleux |
| Dylan | Chinois (Pékin) | Jeune homme de Pékin |
| Eric | Chinois (Sichuan) | Homme vif de Chengdu, légèrement rauque |
| Ono_Anna | Japonais | Femme enjouée, légère et agile |
| Sohee | Coréen | Femme chaleureuse, riche en émotion |
Chaque voix parle les dix langues prises en charge (anglais, chinois, japonais, coréen, allemand, français, russe, portugais, espagnol et italien), et sonne mieux dans sa langue d’origine. Vous pouvez orienter n’importe laquelle avec une consigne de style.
Le template fournit un pool de voix : un clip de référence de chaque voix intégrée avec sa transcription exacte, 16 clips au total, dans ComfyUI/input/voices/. Écoutez-les dans JupyterLab pour choisir une voix avant de rendre quoi que ce soit.
Les quatre workflows
| Workflow | Modèle | Ce qu’il fait |
|---|---|---|
| 1. Voix intégrée | CustomVoice | L’une des neuf voix lit votre script, dans la langue et le style de votre choix |
| 2. Conception de voix | VoiceDesign | Décrivez une voix (« une narratrice calme et chaleureuse, la trentaine »). Elle prononce un échantillon et l’enregistre dans le pool de voix |
| 3. Clonage de voix | Base | N’importe quelle voix du pool lit tout votre script, cohérente du début à la fin |
| 4. Ajouter votre voix | Aucun | Ajoute votre propre enregistrement et sa transcription au pool de voix |
Les workflows 2, 3 et 4 fonctionnent ensemble via le pool de voix : concevez une voix ou ajoutez votre propre enregistrement, et elle arrive dans le pool ; puis le workflow de clonage lit votre script complet avec cette voix. La voix off terminée est enregistrée en .wav et en .mp3 dans output/voiceover/, et se lit directement sur le node Save.
Des scripts de n’importe quelle longueur
Un seul appel à Qwen3-TTS est plafonné à 2 048 trames de codec, soit environ 2,5 minutes de parole, et les longs appels uniques dérivent en rythme. Le template :
- Découpe le script en parties d’au plus 400 caractères, toujours à une fin de phrase ou de paragraphe.
- Rend chaque partie avec la même voix et la même seed.
- Les assemble avec une pause de 0,25 seconde entre les phrases et de 0,6 seconde après un paragraphe (une ligne vide dans votre script).
Une voix conçue pour un long script : la conception de voix rend chaque partie à partir de la description, la voix peut donc légèrement varier d’une partie à l’autre. La solution, et la voie recommandée par Qwen, est de concevoir un court échantillon avec le workflow 2, puis de le cloner pour tout le script avec le workflow 3.
Votre propre voix : enregistrez de 3 à 20 secondes de parole propre, tapez exactement ce que vous avez dit, et ajoutez les deux avec le workflow 4. Ne clonez que des voix que vous avez le droit d’utiliser.
Matériel et coût
Chacun des trois modèles 1,7B a besoin d’environ 4 Go de VRAM, et un seul est chargé à la fois, donc tout GPU de 8 Go ou plus convient. La parole est générée un jeton à la fois, un GPU plus rapide aide donc moins ici que pour la vidéo.
- Sur mon portable RTX 3080, le pool de voix s’est rendu à environ 5 secondes par seconde de parole. Un GPU de bureau ou de centre de données est plusieurs fois plus rapide.
- Sur RunPod, une RTX A5000 à 0,27 $/h suffit largement. Il n’y a aucune raison de payer une RTX 5090 pour cela.
- Stockage : les trois modèles font environ 13,6 Go. Un volume réseau de 40 Go coûte environ 2,80 $ par mois en stockage standard.
L’exécuter sur RunPod
- Créez un volume réseau de 40 Go. Le template refuse de tourner sans, afin que vos modèles et vos voix survivent d’une session à l’autre.
- Déployez le template sur un GPU de 8 Go ou plus, avec le volume attaché.
- Surveillez les logs au premier démarrage. Vous attendez
Voice pool: 16 clips, les téléchargements de modèles, puisSetup complete! - Ouvrez ComfyUI (port 8188) et choisissez un workflow dans la barre latérale Workflows.
- Utilisez JupyterLab (port 8888) pour écouter le pool de voix et télécharger vos voix off.
Les démarrages suivants sautent tout ce qui est déjà installé. Si les volumes réseau et les pods sont nouveaux pour vous, mon introduction à RunPod en explique les bases.
Note de sécurité : JupyterLab tourne sans identifiant par défaut, donc quiconque connaît l’URL du pod obtient un shell. Pour un travail client, définissez JUPYTER_NO_AUTH=0 et un JUPYTER_PASSWORD au déploiement.
Pour les créateurs de templates
Si vous construisez votre propre template RunPod au lieu d’utiliser celui-ci, voici quelques détails du dépôt qui ont pris le plus de temps :
- L’image de base est
runpod/comfyui:1.4.0-comfyuiv0.35.0-cuda12.8, avec un disque de conteneur de 5 Go et le volume réseau monté sur/workspace. qwen-tts0.1.1 ne s’importe pas avec transformers 5.x, fourni par l’image. Le template épingle transformers 4.57.3 dans l’environnement de ComfyUI et le vérifie à chaque démarrage.- La commande de démarrage vérifie le DNS de GitHub et de Hugging Face, se rabat sur des résolveurs publics si nécessaire et retente le clone jusqu’à dix fois.
Nouveau sur RunPod ? Mon lien de parrainage offre aux nouveaux comptes inscrits avec Google entre 5 et 500 $ de crédit après leurs 10 premiers dollars, et je touche une petite commission.
Crédits : Qwen3-TTS par l’équipe Qwen d’Alibaba, Apache-2.0. Template, nodes et workflows par moi, gratuits sur GitHub.
Questions fréquentes
Qwen3-TTS est-il gratuit pour un usage commercial ?
Les modèles sont publiés sous licence Apache-2.0, qui autorise l'usage commercial. Le clonage est une autre question : ne clonez que des voix que vous avez le droit d'utiliser.
Quelles langues Qwen3-TTS prend-il en charge ?
Anglais, chinois, japonais, coréen, allemand, français, russe, portugais, espagnol et italien. Chaque voix intégrée parle les dix.
Quelle peut être la durée d'une voix off ?
N'importe laquelle. Le template découpe le script aux fins de phrase et de paragraphe, rend chaque partie avec la même voix et la même seed, et les assemble avec des pauses naturelles.
De quel GPU ai-je besoin ?
N'importe quel GPU avec 8 Go de VRAM ou plus. Sur RunPod, une RTX A5000 est largement suffisante.
Puis-je le faire tourner en local plutôt que sur RunPod ?
Oui. Les nodes et workflows ComfyUI sont dans le dépôt GitHub, et ils tournent sur un GPU de portable de 8 Go.
