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.
instructionsets 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 theinputparameter 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.1is rejected on Plus with the list of valid ids. - A custom voice works on the model that created it. A
voice_idcloned 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
instructionfor 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.




