ModelsQwenQwen3-TTS
providerQwen /

Qwen3-TTS

7000 DZD/ 1m characters

Qwen3-TTS is a family of open speech models built on a tokenizer Qwen developed themselves — a multi-codebook encoder running at 12 Hz that compresses speech while preserving the parts most systems discard: breath, hesitation, emphasis, and the acoustics of the room. It covers voice cloning from a sample, voice design from a description, style control at fixed timbre, and long-form synthesis. That last capability carries the most convincing number: ten minutes of continuous speech at a 2.36% word error rate in Chinese and 2.81% in English, where most systems drift. Ten languages, dialectal profiles, Apache 2.0.

PublicAudioSpeechMultilingualStreamingApache-2.0
Qwen3-TTS
ArchitectureTransformer
Context Windowspeech

Qwen3-TTS

Text in, speech out. Ten languages, nine preset voices, and ten minutes of continuous synthesis without drifting.


The Tokenizer Is the Foundation

Everything this family does rests on one component Qwen built rather than borrowed.

Qwen3-TTS-Tokenizer-12Hz — a multi-codebook speech encoder operating at 12 Hz.

What it preserves is the point. Qwen describe it as achieving efficient compression and robust representation while fully preserving paralinguistic information and acoustic environmental features.

Paralinguistic information is everything in speech that is not the words: breath, hesitation, emphasis, the small catch before a difficult sentence. Acoustic environment is the room — the reverberation that makes a voice sound like it exists somewhere rather than nowhere.

Most compression-first approaches discard both. The result is speech that is technically correct and audibly synthetic, and no amount of model capacity downstream recovers what the encoder threw away.

Qwen3-TTS architecture

And the architecture skips diffusion. A discrete multi-codebook language-model architecture that bypasses traditional information bottlenecks, enabling high-speed, high-fidelity reconstruction through a lightweight non-DiT path.

Most current high-quality speech synthesis runs a diffusion transformer. This family does not — which is where the speed comes from, and why streaming works.


Nine Preset Voices

This model selects its speaker from a fixed list rather than from a description or a reference recording.

VivianSerenaUncle_Fu
DylanEricRyan
AidenOno_AnnaSohee

The names carry hints. Uncle_Fu, Ono_Anna, and Sohee suggest regional character rather than generic voices — which fits a model documented as covering dialectal profiles alongside its ten languages.

Pick by listening, not by name. Generate one line with each voice and choose. That takes a minute and settles a decision you will otherwise live with for the life of the feature.

If you need a voice that is not on this list, the family has siblings for that: one designs a speaker from a written description, another clones one from a recording. This model is the preset path — nine known voices, immediately available, no reference material required.


Ten Minutes Without Drifting

The result that matters most in production, and the one least often reported.

Continuous ten-minute synthesis:

LanguageWord error rate
Chinese2.36%
English2.81%

Why that is the hard number. Short-clip quality is table stakes. Long-form synthesis is where systems fail — timbre drifts, pacing shifts, pronunciation degrades, and by minute six the voice is recognisably not the voice from minute one.

What it makes possible: audiobooks, long-form narration, extended documentation read aloud, course material — anything where the unit of output is a chapter rather than a sentence.


Benchmark Results

Qwen publish figures across the family's capabilities.

Qwen3-TTS benchmark results

Qwen3-TTS benchmark results, continued

Voice cloning

Multilingual WER, 10 languages1.835%
Speaker similarity0.789

Qwen report it surpassing MiniMax and SeedTTS on speech stability for both Chinese and English cloning on Seed-tts-eval.

Two numbers, two different questions. Word error rate asks whether the words came out right. Speaker similarity asks whether it sounds like the person. A cloning model can win one and lose the other — an accurate reading in the wrong voice, or the right voice mangling the text.

Voice control

Average WER, single-speaker multilingual2.34%
InstructTTS-Eval75.4%

The capability here is maintaining timbre while providing precise style control — the same speaker delivering the same words differently.

Voice design

Outperformed MiniMax-Voice-Design, a closed-source model, on InstructTTS-Eval in both instruction-following and generative expressiveness, while leading other open models significantly.


Four Capabilities, One Foundation

The family covers four distinct problems that are easy to confuse.

CapabilityWhat you supplyWhat you get
Preset voiceA voice nameOne of nine known speakers
Voice cloneA recordingThat speaker
Voice designA descriptionA new speaker
Voice controlA fixed voice + an instructionSame speaker, different delivery

This model is the first row. Nine voices, selected by name, no reference material and no description required.

The distinction that catches people: design invents a timbre, control changes delivery at fixed timbre. If you want a consistent narrator reading angrily then calmly, that is control. If you want a narrator who did not previously exist, that is design.


Specifications

Model IDQwen/Qwen3-TTS
Sizes0.6B and 1.7B
TokenizerQwen3-TTS-Tokenizer-12Hz, multi-codebook
ArchitectureDiscrete multi-codebook LM — non-DiT
Voice selectionPreset list — 9 voices
Languages10, plus dialectal profiles
Long-form10 minutes continuous
StreamingSupported
LicenceApache 2.0
Released22 January 2026
Endpoint/v1/audio/speech
DeveloperQwen Team, Alibaba

Languages: Chinese, English, Japanese, Korean, German, French, Russian, Portuguese, Spanish, Italian.

Plus multiple dialectal voice profiles — which is a separate capability from speaking a language. Regional variety is what makes synthesised speech sound local rather than translated.


Capabilities

CapabilityValue
input_typestext
output_typesaudio
voice_input_typepreset_list
preset_voices9
languages10 plus dialects
long_formSupported — 10 minutes continuous
streamingSupported
endpoint/v1/audio/speech
deterministicNo
requires_promptYes — input text required

Using Qwen3-TTS on DEVUP AI

Endpoint: POST https://api.devupai.com/v1/audio/speech

The response is raw audio bytes, not JSON. Write response.content to a file directly.

Python

PYTHON
import requests

DEVUP_API_KEY = "$DEVUP_API_KEY"
MODEL = "Qwen/Qwen3-TTS"

response = requests.post(
    "https://api.devupai.com/v1/audio/speech",
    headers={
        "Authorization": f"Bearer {DEVUP_API_KEY}",
        "Content-Type": "application/json",
    },
    json={
        "model": MODEL,
        "input": "Hello! This is a text-to-speech example using DEVUP AI.",
    },
)

# Save the returned audio
with open("output.wav", "wb") as f:
    f.write(response.content)

cURL

BASH
curl -X POST "https://api.devupai.com/v1/audio/speech" \
  -H "Authorization: Bearer $DEVUP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "Qwen/Qwen3-TTS",
    "input": "Hello! This is a text-to-speech example using DEVUP AI."
  }' \
  --output output.wav

Auditioning the Voices

Nine voices, one script, one loop. Run this once before choosing.

PYTHON
import requests

DEVUP_API_KEY = "$DEVUP_API_KEY"
MODEL = "Qwen/Qwen3-TTS"

VOICES = [
    "Vivian", "Serena", "Uncle_Fu",
    "Dylan", "Eric", "Ryan",
    "Aiden", "Ono_Anna", "Sohee",
]

SCRIPT = (
    "Your order shipped this morning and should arrive within three working days. "
    "We'll send a tracking link as soon as the carrier scans it."
)

for voice in VOICES:
    response = requests.post(
        "https://api.devupai.com/v1/audio/speech",
        headers={
            "Authorization": f"Bearer {DEVUP_API_KEY}",
            "Content-Type": "application/json",
        },
        json={
            "model": MODEL,
            "input": SCRIPT,
            "voice": voice,
        },
    )
    response.raise_for_status()

    with open(f"audition_{voice}.wav", "wb") as f:
        f.write(response.content)

    print(f"{voice}: {len(response.content):,} bytes")

Use your own copy, not a generic sentence. A voice that sounds right reading a demo line can sound wrong reading your product's actual tone. Nine files, five minutes of listening, and the decision is made on evidence.

Listen on the device your users will use. A voice that is warm through studio headphones can be thin through a phone speaker, and most people are on the phone speaker.


Writing Text for Speech

The script matters more than most people expect, and the habits differ from writing for the page.

Shorter sentences. A sentence with three subordinate clauses is readable and unspeakable. The model will read it; a listener will lose the thread.

Natural contractions. "It's" and "don't" sound human; "it is" and "do not" sound like a document being read aloud, because that is what they are.

Punctuation as breath, not as grammar. A comma tells the model to pause. Use them where a person would breathe rather than where a style guide requires one.

Spell out anything ambiguous. Numbers, abbreviations, units, and dates are read according to rules that may not match your intent. "3/4" and "2026" have more than one correct reading.

Read it aloud yourself first. Anywhere you stumble, the model will too.


Long-Form Work

Where the ten-minute figure becomes a workflow decision.

Synthesise in the longest coherent unit you can. A chapter generated as one request holds consistent pacing and timbre throughout. The same chapter generated as forty separate sentences and concatenated has forty places where the prosody resets.

Break at meaning, not at length. If a piece must be split, split at section boundaries where a listener expects a pause anyway.

Keep the text natural across the seam. A sentence split across two requests produces two sentences with two intonation contours, which is audible.

Use the same voice throughout. Obvious, and worth stating — a voice name passed inconsistently across a batch produces a chapter that changes narrator mid-way.


The Family

Five variants at two sizes, and choosing the wrong one is easy.

VariantWhat it does
BaseFoundation checkpoint
CustomVoiceCustom voice profiles
VoiceDesignCreates a speaker from a description
VoiceCloneReproduces a speaker from a sample
InstructStyle control at fixed timbre

Two sizes: 0.6B and 1.7B. The smaller is for cases where footprint matters more than fidelity — edge deployment, high volume, or anywhere a gigabyte of model is a constraint.


Self-Hosting

Weights are published on both Hugging Face and ModelScope, with the tokenizer as a separate download — it is a distinct component, not bundled into each variant.

Streaming is supported, which matters for interactive use: speech starts before the full text has been processed, so a listener hears the beginning while the end is still generating.

Apache 2.0 covers commercial deployment and fine-tuning alike.


Where It Fits

Long-form narration — audiobooks, courses, documentation read aloud, where the ten-minute result is the relevant one.

Product and support voice, where nine ready voices remove the setup a design or cloning workflow requires.

Multilingual products across ten languages with dialectal profiles.

Interactive voice applications, where streaming keeps latency low.

Localisation, with consistent speaker identity across languages.

Not for a specific person's voice. That is the cloning variant.

Not for a voice outside the nine. That is the design variant.

Not for speech recognition. This family generates speech; transcription is a different model.


Practical Notes

The response is audio bytes — write them directly rather than parsing JSON.

Audition all nine voices with your own copy before choosing.

Write the script for speaking, not for reading.

Spell out numbers, dates, and abbreviations where the reading could go either way.

Synthesise in long coherent units; the model holds up across ten minutes.

Pass the voice name consistently across a batch.

Pick the right variant — preset, design, clone, and control solve different problems.


Limitations

Nine voices. A voice outside the list requires a different model in this family.

Ten languages. Others are outside the documented capability.

Audio output only. Text in, speech out — no transcription and no understanding.

Published word error rates are vendor-reported, measured on Qwen's own test sets. Your text, your languages, and your speaking style are the measurement that matters.

Variants are not interchangeable. Preset selection, cloning, design, and style control are separate models with separate inputs.

Determinism is unverified. Whether a repeat request reproduces identical audio is worth testing rather than assuming — and it decides whether you archive every clip or regenerate on demand.

Apply your own moderation. Synthesised speech that sounds human carries obvious misuse potential, and a preset voice used to impersonate a service is as effective as a cloned one.