Home Blog

How to Use the Qwen Audio 3.1 TTS Plus API

Qwen Audio 3.1 TTS Plus API blog cover

Nov 3, 2026

EmpirioLabs AI

Disclosure: This article was written with AI assistance and reviewed by EmpirioLabs AI.

Qwen Audio 3.1 TTS Plus is available on EmpirioLabs. It is the quality tier of Alibaba's Qwen Audio 3.1 speech synthesis, made for narration, dubbing, audiobooks, and brand voices, with 4 multilingual voices, delivery you direct in plain language, inline tags that change emotion or add a sound mid-sentence, and voice cloning from a short recording. It returns a finished audio file through POST /v1/audio/speech, streams audio as it is generated through POST /v1/audio/speech:stream, and over the Realtime API speaks text while the text is still being written.

Watch the launch film

Every voice in the film is a real Qwen Audio 3.1 TTS Plus output: Xu Nanchuan directed in plain language as a trailer narrator, then Long An Huan with an excited tag, Long An Fengyue in Mandarin, and Long An Lingxin with a laughing tag. The pictures are Qwen Image 2.1 outputs, and the score was generated by ACE-Step on EmpirioLabs. Watch it on YouTube.

Plus or Flash

Qwen Audio 3.1 TTS is the Flash tier, built for low-latency voice interaction, with 19 voices and token billing. TTS Plus puts audio quality, naturalness, and expressive detail first, has its own 4 voices, and bills per character. Both take the same request body, the same delivery direction, and the same streaming and realtime interfaces, so moving between them is a change of model and voice.

Voices

All four voices read Chinese, English, and other languages. longanlingxin_v3.1, longanhuan_v3.1, and longanfengyue_v3.1 are female, and xunanchuan_v3.1 is male. For text that mixes languages, language_hints takes an array of language codes, such as ["en", "zh"], to guide pronunciation.

Your first request

curl https://api.empiriolabs.ai/v1/audio/speech \
  -H "Authorization: Bearer $EMPIRIOLABS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen-audio-3-1-tts-plus",
    "input": "The archive had been sealed for forty years.[whispers] Tonight, someone opened it.",
    "voice": "xunanchuan_v3.1",
    "instruction": "A documentary narrator, low and measured, building quiet suspense",
    "response_format": "mp3",
    "sample_rate": 24000
  }'

The response carries a URL to the generated audio. Output is MP3, WAV, PCM, or Opus at 8,000 to 48,000 Hz. speed, pitch, volume, and seed are adjustable, and pronunciation and replace fix names, acronyms, and brand names.

Directing the delivery

  • Instruction. instruction sets emotion, tone, character, pace, and speaking style for the whole passage, up to 1,000 characters.
  • Delivery tags. A tag such as [excited], [whispers], or [serious] changes the delivery from the point where it appears.
  • Sound tags. A tag such as [laughing] or [sighing] adds a one-time sound. The full list of tags is on the input parameter in the API reference.

Cloning a voice

Set voice to custom, pass voice_audio_url, an https URL to 10 to 20 seconds of clear speech from one speaker, and set voice_consent to true to confirm that you have the speaker's permission. WAV, MP3, M4A, OGG, WEBM, and FLAC are accepted, up to 15 MB.

{
  "model": "qwen-audio-3-1-tts-plus",
  "input": "Welcome back. Here is what changed this week.",
  "voice": "custom",
  "voice_audio_url": "https://example.com/host-sample.wav",
  "voice_consent": true
}

The response includes a voice_id and voice_id_expires_at. Pass the voice_id as voice for the next 7 days, on either speech endpoint or in a realtime session. An account holds up to 10 custom voices on this model at a time.

Streaming and realtime

POST /v1/audio/speech:stream takes the same body and returns Server-Sent Events: audio.chunk events with base64 audio in audio_b64, then audio.done with the URL of the complete file, its duration, and the usage.

Over the Realtime API, open wss://api.empiriolabs.ai/v1/realtime?model=qwen-audio-3-1-tts-plus, send text with input_text_buffer.append in pieces of any size, and play the audio from each response.audio.delta event. session.update sets the voice, instruction, and format, and session.finish speaks the rest and ends the session. The Realtime guide has a complete client.

Operational notes

  • The four voices are this model's own. A Qwen Audio 3.1 TTS voice such as Emily_v3.1 is rejected on Plus with the list of valid ids.
  • A custom voice works on the model that created it. A voice_id cloned on Qwen Audio 3.1 TTS does not work on Plus; clone the recording again with "model": "qwen-audio-3-1-tts-plus".
  • SSML is not supported. Send plain text, with instruction for the overall delivery and inline tags for changes within the text, up to 10,000 characters per request.

Pricing

TTS Plus bills per character of the text you send, and each Chinese character counts as two. A realtime session bills each spoken segment the same way, and creating a custom voice adds no charge. Current rates are on the model page and the pricing page.

Start building

Try Qwen Audio 3.1 TTS Plus in the Playground, where the voice picker and every parameter are live controls, and read the API documentation for the full parameter reference.

Ready to use better endpoints?

Explore our models, or contact us about business inquiries, custom deployments, or anything else.