Qwen Audio 3.1 TTS Plus API

Speech synthesis for narration and dubbing, with 4 multilingual voices, plain-language delivery direction, inline emotion tags, and voice cloning.

Alibaba CloudAudio GenerationReleased Oct 21, 2026SingaporeProprietary EndpointNew

About Qwen Audio 3.1 TTS Plus

Speech synthesis for narration and dubbing, with 4 multilingual voices, plain-language delivery direction, inline emotion tags, and voice cloning.

Choose one of 4 voices with voice. Direct the delivery with instruction and with inline tags inside the text. Set voice to custom with voice_audio_url and voice_consent to clone a voice.

Also known as Qwen Audio TTS Plus, Qwen Audio TTS, Alibaba Cloud Qwen Audio 3.1 TTS Plus

text to speechmultilingualexpressive prosodyemotion controlvoice tagsstreamingrealtimevoice cloning

Qwen Audio 3.1 TTS Plus specs

Model ID
qwen-audio-3-1-tts-plus
Author
Alibaba Cloud
Category
Audio Generation
Released
Oct 21, 2026
Input
Text
Output
Audio
Region
Singapore
Endpoints
POST/v1/audio/speechPOST/v1/audio/speech:streamWEBSOCKET/v1/realtimeGET/v1/voices
Alternate model IDs
qwen-audio-3.1-tts-plusalibaba/qwen-audio-3-1-tts-plus

Qwen Audio 3.1 TTS Plus API pricing

Live pay-as-you-go rates from the EmpirioLabs catalog. You are billed only for what you use, with no monthly minimum.

Type
Spec
Rate
Synthesis
per 10,000 characters
$0.60
Compare on the full pricing page

How to call the Qwen Audio 3.1 TTS Plus API

Qwen Audio 3.1 TTS Plus serves speech through POST /v1/audio/speech and returns playable audio. Send the text to speak as input with the model id qwen-audio-3-1-tts-plus. Get an API key from the EmpirioLabs dashboard.

cURL
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": "Welcome to EmpirioLabs. Your build just finished."
  }' \
  --output speech.mp3
Python
import requests

response = requests.post(
    "https://api.empiriolabs.ai/v1/audio/speech",
    headers={"Authorization": "Bearer YOUR_EMPIRIOLABS_API_KEY"},
    json={"model": "qwen-audio-3-1-tts-plus", "input": "Welcome to EmpirioLabs."},
)
with open("speech.mp3", "wb") as f:
    f.write(response.content)
Full Qwen Audio 3.1 TTS Plus API reference

Qwen Audio 3.1 TTS Plus API parameters

Request parameters supported by the Qwen Audio 3.1 TTS Plus API on EmpirioLabs. Defaults apply when a field is omitted.

ParameterTypeDefaultRange / valuesDescription
inputstring-max 10000Text to synthesize, up to 10,000 characters per request. These inline tags change the delivery from the point where they appear: [sad], [amazed], [deep and loud...
voiceenumlonganlingxin_v3.1longanlingxin_v3.1, longanhuan_v3.1, longanfengyue_v3.1, xuna...Voice preset. The 4 voices read Chinese, English, and other languages. Every voice id ends in _v3.1, for example longanlingxin_v3.1. custom clones a voice from...
voice_audio_urlstring--voice=custom only: an https URL to a 10 to 20 second recording of clear speech from one speaker, the voice to clone (WAV, MP3, M4A, OGG, WEBM or FLAC, up to 15 MB)....
voice_consentbooleanfalse-voice=custom only: true confirms that you have the speaker's permission to create a synthetic copy of their voice. A custom voice is created only when this is true.
response_formatenummp3mp3, wav, pcm, opusAudio container. mp3 and opus are compressed, wav is uncompressed PCM in a RIFF header, and pcm is headerless raw samples for chunked playback. On the realtime...
sample_rateenum240008000, 12000, 16000, 22050, 24000, 44100, 48000Output sample rate in Hz. 24000 suits speech playback, and 48000 gives broadcast-quality output at a larger file size.
speednumber10.5 to 2Speaking rate multiplier. 0.5 is half speed and 2.0 is double speed.
pitchnumber10.5 to 2Pitch multiplier. Values below 1.0 lower the voice and values above raise it. Pitch also shifts the pace of the rendered audio, so pair it with speed when you want...
volumeinteger500 to 100Output loudness, where 50 is the reference level.
instructionstring-max 1000Natural-language direction for delivery, up to 1,000 characters. Controls emotion, tone, character, pace, and speaking style, for example 'Speak quickly in an...
language_hintsarray-zh, en, fr, de, ja, ko, ru, pt, th, id, vi, es, it, ms, fil, arLanguage codes that bias pronunciation for mixed-language text, for example ["zh", "en"]. Leave unset to let the model detect the language.
seedinteger00 to 65535Sampling seed. Reuse a seed with identical input and settings for a repeatable render.
bit_rateinteger320006000 to 510000Encoder bitrate in bps. Applies to the opus format only, and is ignored for mp3, wav, and pcm.
pronunciationobject--Pronunciation overrides keyed by the written form, for example {"重要": "zhong4 yao4"}. Use it to fix names, acronyms, and homographs.
2 more parameters in the docs

Good to know

Voices

  • 4 voices that read Chinese, English, and other languages: longanlingxin_v3.1, longanhuan_v3.1, and longanfengyue_v3.1 are female, and xunanchuan_v3.1 is male.
  • Every voice id ends in _v3.1, for example longanlingxin_v3.1.

Custom voices

  • 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 to clone their voice.
  • WAV, MP3, M4A, OGG, WEBM and FLAC are accepted, up to 15 MB. Record in a quiet room, without music or other voices.
  • The response includes voice_id and voice_id_expires_at. Pass the voice_id as voice to reuse the voice for 7 days, on POST /v1/audio/speech, POST /v1/audio/speech:stream or the realtime socket, where session.update takes the same fields and session.updated returns the voice_id. Only the account that created it can use it, on this model only.
  • Each account can hold 10 custom voices on this model at a time.
  • GET /v1/voices?model=qwen-audio-3-1-tts-plus lists the model's voices, including your custom voices with their ids. Add type=custom to list custom voices alone.
  • DELETE /v1/voices/{voice_id}?model=qwen-audio-3-1-tts-plus deletes a custom voice, which frees its place at once.
  • In the Playground, set Voice to Custom to use a saved voice again, copy its id, or delete it.
  • Creating, listing and deleting custom voices adds no charge.

Delivery direction

  • instruction sets emotion, tone, character, pace, and speaking style in natural language, up to 1,000 characters.
  • Inline tags inside the text change the delivery from that point, for example [excited] or [whispers], or add a one-time sound such as [laughing] or [sighing]. The full list of tags is on the input parameter.
  • SSML input is not supported.

Input limits

  • Up to 10,000 characters per request.
  • language_hints biases pronunciation for mixed-language text.

Output

  • MP3, WAV, PCM, or Opus at 8,000 to 48,000 Hz.
  • POST /v1/audio/speech:stream sends audio chunks while the speech is generated.

Realtime

  • WEBSOCKET /v1/realtime?model=qwen-audio-3-1-tts-plus takes text while it is still being written and returns audio as it is generated. Send input_text_buffer.append events, then input_text_buffer.commit, or session.finish to end the session.
  • Audio arrives in response.audio.delta events: 16-bit PCM at 24,000 Hz by default, or MP3 or Opus. Set the voice, instruction, format and other options with session.update; a change applies from the next segment.
  • Text is spoken in segments that end at sentence boundaries, and each segment ends with a response.done event carrying its usage.

Billing

  • Billed per character of the input text. A Chinese character counts as two characters, and inline tags count as characters. The instruction is not billed.
  • On the realtime socket each segment is billed for its own characters.

Qwen Audio 3.1 TTS Plus API: common questions

How much does the Qwen Audio 3.1 TTS Plus API cost?

On EmpirioLabs, Qwen Audio 3.1 TTS Plus is billed pay as you go: Synthesis $0.60 per 10,000 characters. The live rate card on this page always matches what the API charges.

Which endpoint does Qwen Audio 3.1 TTS Plus use?

Qwen Audio 3.1 TTS Plus is served through POST /v1/audio/speech on api.empiriolabs.ai with standard bearer-token authentication.

Can I try Qwen Audio 3.1 TTS Plus in the browser before integrating?

Open the EmpirioLabs playground and press Start session to try it in your browser. Qwen Audio 3.1 TTS Plus runs over a WebSocket rather than a request and response, so to build with it start from the realtime voice quickstart. Connect from your server with your EmpirioLabs API key and the model id qwen-audio-3-1-tts-plus, then stream audio in both directions.

How do I get a Qwen Audio 3.1 TTS Plus API key?

Create an EmpirioLabs account, then generate a key under API Keys in the dashboard. Billing is pay-as-you-go credits, so you only pay for the requests you make.

Ready to use better endpoints?

Check out our pricing or reach out if you want your own model deployed on our stack.