Qwen Audio 3.1 TTS API

Real-time speech synthesis with 19 voices, delivery direction in plain language, inline emotion and sound tags, and audio streamed over SSE or WebSocket.

Alibaba CloudAudio GenerationReleased Sep 23, 2026SingaporeProprietary EndpointNew

About Qwen Audio 3.1 TTS

Real-time speech synthesis with 19 voices, delivery direction in plain language, inline emotion and sound tags, and audio streamed over SSE or WebSocket.

Choose one of 19 voices with voice. Direct the delivery with instruction and with inline tags inside the text. Speed and pitch change the rendered length without changing billed tokens.

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

text to speechmultilingualexpressive prosodyemotion controlvoice tagslow latencystreamingrealtime

Qwen Audio 3.1 TTS specs

Model ID
qwen-audio-3-1-tts
Author
Alibaba Cloud
Category
Audio Generation
Released
Sep 23, 2026
Max output
60,000 tokens
Input
Text
Output
Audio
Region
Singapore
Endpoints
POST/v1/audio/speechPOST/v1/audio/speech:streamWEBSOCKET/v1/realtime
Alternate model IDs
qwen-audio-3.1-ttsqwen-audio-3.1-tts-flashalibaba/qwen-audio-3-1-tts

Qwen Audio 3.1 TTS 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
Input
per 1M prompt tokens
$0.46
Output
per 1M generated tokens
$3.74
Compare on the full pricing page

How to call the Qwen Audio 3.1 TTS API

Qwen Audio 3.1 TTS 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. 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",
    "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", "input": "Welcome to EmpirioLabs."},
)
with open("speech.mp3", "wb") as f:
    f.write(response.content)
Full Qwen Audio 3.1 TTS API reference

Qwen Audio 3.1 TTS API parameters

Request parameters supported by the Qwen Audio 3.1 TTS 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...
voiceenumEmily_v3.1Emily_v3.1, Luna_v3.1, Eric_v3.1, Luca_v3.1, Abby_v3.1, Annie...Voice preset. The 15 English voices read English, and the 4 multilingual voices read Chinese, English, and other languages. Every voice id ends in _v3.1, for example...
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.
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.
replaceobject--Literal text substitutions applied before synthesis, for example {"EmpirioLabs": "Empirio Labs"}. Useful for brand names and abbreviations.
enable_markdown_filterbooleanfalse-Strip Markdown syntax such as asterisks and underscores before synthesis so formatting characters are not read aloud.

Good to know

Voices

  • 19 voices: 15 English voices and 4 multilingual voices. Emily, Luna, Eric, and Luca have British accents. Abby, Annie, Ava, Beth, Betty, Cally, Cindy, Donna, Andy, Brian, and David have American accents. The multilingual voices longanhuan_v3.1, longanlingxin_v3.1, longanfengyue_v3.1, and xunanchuan_v3.1 read Chinese, English, and other languages.
  • Every voice id ends in _v3.1, for example Emily_v3.1.

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 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

  • Input tokens are the text, and output tokens are the generated audio at 12.5 tokens per second.
  • Speed and pitch change the length of the rendered audio but not the billed tokens. An instruction that slows the delivery adds output tokens.

Qwen Audio 3.1 TTS API: common questions

How much does the Qwen Audio 3.1 TTS API cost?

On EmpirioLabs, Qwen Audio 3.1 TTS is billed pay as you go: Input $0.46 per 1M prompt tokens; Output $3.74 per 1M generated tokens. The live rate card on this page always matches what the API charges.

Which endpoint does Qwen Audio 3.1 TTS use?

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

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

Open the EmpirioLabs playground and press Start session to try it in your browser. Qwen Audio 3.1 TTS 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, then stream audio in both directions.

How do I get a Qwen Audio 3.1 TTS 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.