Text-to-Speech with a Voice You Describe in Words
Qwen3-TTS VoiceDesign turns text into speech in a voice you describe in plain English — "a warm young American woman, upbeat" — instead of picking from a fixed preset list. Runs on CNAPS infrastructure; no API key required. Built by Alibaba's Qwen team. Apache 2.0.
What it does
Qwen3 Voice Design turns written text into spoken audio and lets you design the voice with a short description — age, gender, accent, tone, energy. Write the script, describe the speaker, and the node returns a voiceover in that voice.
The voice description is written in English, but the spoken language follows the script: describe "a calm middle-aged male narrator" and feed it Korean text, and you get Korean speech in that voice.
It is the voice-design sibling of Audio Models - Text to Speech (Qwen3), which picks from named narrator presets. Use Voice Design when no preset fits the persona you need.
Problem it solves
- The right voice without a casting call — Describe the speaker you want instead of searching a preset list
- Brand and character voices — Give a product explainer, mascot, or game character a distinct persona
- Consistent narrators across a series — Reuse the same description to keep a recognizable voice from video to video
- Korean and English voiceover — One English description works for scripts in either language
- Brand-name pronunciation — Respell words the voice misreads (e.g.,
cnaps.ai=see-naps dot A I) - Publish-ready level — Built-in loudness normalization so the voiceover sits at a consistent level
- No API key or per-minute cost — Runs on CNAPS infrastructure
Input/Output
Input
- Text (required) — the script to speak, in Korean or English
- Voice Description (optional) — a voice description from an upstream text node. When connected, it overrides the Voice description setting — useful when an LLM or another text node writes the description
Parameters (main view)
Option | What it does |
Voice description | Describe the voice in English, up to 500 characters — age, gender, accent, tone, pace. Default: a warm, friendly young adult woman. Write it in English even for Korean scripts: the model follows English descriptions more reliably (the same voice described in Korean came out quieter and slower). The spoken language comes from the script and the language hint, not the description. Empty uses a fixed neutral adult voice; ignored when the Voice Description port is connected |
Speaking speed | 0.5–2.0, default 1.0 (as generated). The audio is re-timed after synthesis with pitch kept, so 1.1 means exactly 10% faster. Values outside the range are clamped |
Advanced Options
Option | Values · what it does |
Spoken language hint | Auto (default) / Korean / English. Auto follows the language of the text. Force Korean or English if mixed-language input is pronounced in the wrong language |
Respell words | Fix words the voice misreads. Format: written=spoken, separated by ; or new lines — e.g., cnaps.ai=see-naps dot A I; cnaps=see-naps. Matching is case-insensitive and whole-word (cnaps never fires inside cnapsule); Korean particles may follow directly (cnaps.ai에서 still matches). Longer written forms win over shorter ones. Max 50 rules / 2,000 characters; a rule without = or with an empty side fails the run. Rules apply only to the text sent to the voice model |
Loudness normalization | off / -14 LUFS / -16 LUFS (default) / -20 LUFS. Applied after synthesis and the speed change (single-pass loudnorm, true peak -1.5 dBTP). -14 is loud (social/streaming), -16 the usual voiceover level, -20 quieter, leaving headroom for music; off keeps the level as generated. The default is -16 because VoiceDesign output level varies with the voice description |
Output
- Sound — the synthesized voiceover audio (WAV)
How to Use
- Connect a Text Input with your script to the required text port.
- Type a voice description in English — start short: "a calm middle-aged male narrator, clear and warm."
- Keep speaking speed at 1.0 for the first run.
- Connect the output to Sound Output and run. Listen, then refine the description one detail at a time.
- If a brand name or acronym is misread, add it under Respell words in Advanced Options.
Example Workflow
Voice description: "a warm young American woman, upbeat"
Script: "Meet CNAPS Studio — build AI workflows by connecting blocks, no code required."
Respell words: CNAPS=see-naps
Flow: Text Input → Text to Speech (Qwen3 Voice Design) → Sound Output
For a talking-head video, send the audio to LatentSync 1.6; for a full soundtrack, mix it under music with Audio Replace / Mix.
Use Case Tips
- Describe the person, not the script — "an energetic young male sports announcer" works better than "say this excitedly."
- Keep the description stable — Reuse the exact same wording across a series for a consistent narrator.
- Korean scripts — Still write the description in English; set the language hint to Korean if short or mixed text is read in English.
- Pacing — 0.9–0.95 for explainers and accessibility; 1.05–1.15 for short-form social clips.
- Final mix — Use -20 LUFS when the voice will sit under music; if you run Audio Finish on the finished video, the default is fine.
- Captions with respelled words — Generate captions from the original script, not the respelled text: feed the same script to the Speech Recognition (Whisper) Script port.
Choosing a TTS model
What you need | Use |
A custom voice described in words, no API key | Text to Speech (Qwen3 Voice Design) |
A quick, consistent narrator from named presets, no API key | Text to Speech (Qwen3) |
Expressive LLM-based voices with Flash / Pro tiers | Text to Speech (Gemini) — requires a Google / Gemini API key |
Model Source
- CNAPS model page: Qwen3-TTS-VoiceDesign
- Hugging Face: Qwen/Qwen3-TTS-12Hz-1.7B-VoiceDesign
- GitHub: QwenLM/Qwen3-TTS
- Demo: Qwen3-TTS Space
- Paper: Qwen3-TTS Technical Report
- License: Apache 2.0
Compliance & Provenance
Item | Detail |
Provider | Alibaba (Qwen) — open weights |
Provider type | Specialized |
License | Apache 2.0 |
EU AI Act risk class | Limited Risk |
Art. 50 transparency | Required — outputs are marked. See AI Policy §2. |
Region availability | Available globally |
Training data summary | Pending — provider has not yet published per Art. 53(d) |
For more on how we classify models and mark outputs, see our AI Policy.
Run it now
Try it in the Talking Presenter Ad recipe, or open CNAPS Studio, find Text to Speech (Qwen3 Voice Design) in the Component panel, and start with the example workflow above.