Skip to navigation

Qwen Audio 3.1 TTS Plus

Qwen Audio 3.1 TTS Plus
Alibaba Cloud · Audio Generation
POST /v1/audio/speech

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

At a glance

FieldValue
Model idqwen-audio-3-1-tts-plus
Model release date2026-10-21
Input modalitiesText
Output modalitiesAudio
Context window-
Weight precision-
RegionSingapore
Featurestext_to_speech, multilingual, expressive_prosody, emotion_control, voice_tags, streaming, realtime, voice_cloning
Native inferenceNo
NewYes
Supported endpointsPOST /v1/audio/speech, POST /v1/audio/speech:stream, WEBSOCKET /v1/realtime
Alternate model idsqwen-audio-3.1-tts-plus, alibaba/qwen-audio-3-1-tts-plus

Pricing

ChargeSpecRate
Synthesisper 10,000 characters$0.60

Example 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": "Hello from EmpirioLabs."}'

Parameters

ParameterTypeRequiredDefaultDescription
inputstringyes-Text 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 shouting], [trembling], [angry], [excited], [sarcastic], [curious], [like dracula], [bored], [tired], [scornful], [shouting], [asmr], [panicked], [mischievously], [empathetic], [whispers], [reluctantly], [crying], [serious], [very slowly], [very fast]. These add a one-time sound at that point: [gasp], [sighing], [clears throat], [giggles], [laughing], [cough], [snorts]. · Max: 10000
voiceenumno"longanlingxin_v3.1"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_url once voice_consent is true, and the response’s voice_id then works here for 7 days. · Allowed: longanlingxin_v3.1, longanhuan_v3.1, longanfengyue_v3.1, xunanchuan_v3.1, custom
voice_audio_urlstringno-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). Record it in a quiet room, without music or other voices.
voice_consentbooleannofalsevoice=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_formatenumno"mp3"Audio 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 WebSocket the default is pcm and wav is not available. · Allowed: mp3, wav, pcm, opus
sample_rateenumno24000Output sample rate in Hz. 24000 suits speech playback, and 48000 gives broadcast-quality output at a larger file size. · Allowed: 8000, 12000, 16000, 22050, 24000, 44100, 48000
speednumberno1Speaking rate multiplier. 0.5 is half speed and 2.0 is double speed. · Range: 0.5 – 2.0
pitchnumberno1Pitch 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 to keep the original duration. · Range: 0.5 – 2.0
volumeintegerno50Output loudness, where 50 is the reference level. · Range: 0 – 100
instructionstringno-Natural-language direction for delivery, up to 1,000 characters. Controls emotion, tone, character, pace, and speaking style, for example ‘Speak quickly in an excited, upbeat tone’ or ‘Read slowly like a late-night radio host’. · Max: 1000
language_hintsarrayno-Language codes that bias pronunciation for mixed-language text, for example [“zh”, “en”]. Leave unset to let the model detect the language. · Allowed: zh, en, fr, de, ja, ko, ru, pt, th, id, vi, es, it, ms, fil, ar
seedintegerno0Sampling seed. Reuse a seed with identical input and settings for a repeatable render. · Range: 0 – 65535
bit_rateintegerno32000Encoder bitrate in bps. Applies to the opus format only, and is ignored for mp3, wav, and pcm. · Range: 6000 – 510000
pronunciationobjectno-Pronunciation overrides keyed by the written form, for example {“重要”: “zhong4 yao4”}. Use it to fix names, acronyms, and homographs.
replaceobjectno-Literal text substitutions applied before synthesis, for example {“EmpirioLabs”: “Empirio Labs”}. Useful for brand names and abbreviations.
enable_markdown_filterbooleannofalseStrip Markdown syntax such as asterisks and underscores before synthesis so formatting characters are not read aloud.

Notes

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. Creating a custom voice 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.

Machine-readable schema: GET https://api.empiriolabs.ai/v1/models/qwen-audio-3-1-tts-plus.