models

Qwen: Qwen-Audio-3.0-TTS Plus

Markdown · JSON

Qwen: Qwen-Audio-3.0-TTS Plus

Qwen-Audio-3.0-TTS-Plus is Qwen’s text-to-speech model focused on detailed, natural and expressive audio for narration, audiobooks and dubbing. It supports model-specific preset or cloned voices, streaming output, and instructions or tags to shape delivery.

About the model

This description covers the model’s capabilities. Available in Ailoot inputs, outputs and options are listed for the selected method below.

Qwen-Audio-3.0-TTS-Plus converts written text into expressive speech, with the Plus edition focused on synthesis quality, naturalness and detailed vocal delivery. Qwen names content creation, audiobooks, film and video dubbing and professional speech production as its main applications. The model’s updated profile describes broader low-resource-language and Chinese-dialect support, improved dialect authenticity, and stronger control of emotion, tone, character, speaking rate, volume and style. The producer also reports improved clarity, resolution and robustness under noisy or reverberant acoustic conditions.

Plus is the quality-focused edition of this text-to-speech family; Flash is separately positioned for real-time interaction. Prepare a narration as a spoken script, with the intended audience, pace and emotional direction identified. For an audiobook passage, an illustrative brief might use clear articulation, a measured pace and restrained warmth; for a video voice-over, it might ask for a serious opening followed by a more energetic explanation. These are delivery choices for supplied words. The model is a speech synthesiser rather than a transcription service or a generator of a complete visual scene.

The official system voices for Plus include Long An Ling Xin, described as warm and empathetic, and Long An Lu Feng, described as bright and cheerful. Both are listed for Mandarin and English. The producer also supplies more than 500 base voices for this edition, with previews to assess before choosing one. It recommends system voices for more consistent synthesis. Select a voice from the exact Plus list and match the script language to that voice’s supported languages; a voice from Flash is not interchangeable merely because it belongs to the same broader family.

The model supports sample-based voice cloning. Its documented cloned-voice languages include Chinese, English, Japanese, Korean, Russian, French, German, Portuguese, Thai, Indonesian, Vietnamese, Spanish, Italian, Malay, Filipino and Arabic. Chinese variants include Mandarin, Cantonese, Chongqing, Northeastern, Gansu, Guizhou, Zhejiang, Hebei, Henan, Hubei, Hunan, Jiangxi, Ningbo, Ningxia, Qingdao, Shaanxi, Shanxi, Shandong, Shanghainese, Sichuan and Yunnan, with dialects controlled through instructions. The producer’s model table distinguishes cloning from voice creation from a text description: cloning is supported for Plus, while that separate voice-design mode is not.

A suitable cloning reference is clear speech at normal speed, without music, background noise, competing speakers or singing. The producer recommends 10–20 seconds and permits up to 60 seconds, in a file no larger than 10 MB. Reference formats are 16-bit WAV, MP3 and M4A, with a minimum 16 kHz sample rate. At least five seconds of continuous clear speech is required, and remaining pauses should be no longer than two seconds. For stereo, only the first channel is processed. The created voice identifier is bound to Plus and used for synthesis when ready; reproducing the same reference through Flash requires a separately created Flash voice.

Natural-language instructions can shape the tone, pace, emotion and timbre of both system and cloned voices. Use concrete audible descriptions instead of a vague request for a good voice. Inline emotion tags can set a style within the script, and rich-language tags can insert a vocal effect at a chosen point. For example, [serious] changes the following delivery, while [sighing] inserts a sigh without changing the surrounding emotional style. Control tags apply until the next control tag or automatic sentence segmentation. This tag-based feature is documented for unidirectional streaming only, so it has a different scope from instructions used with bidirectional text input.

The producer’s output options are PCM, WAV, MP3 and Opus, at listed sample rates of 8,000, 16,000, 22,050, 24,000, 44,100 and 48,000 Hz. MP3 and 22,050 Hz are the documented defaults. Volume can be set from 0 to 100, and rate and pitch from 0.5 to 2.0; MP3 and Opus additionally allow a bitrate from 6 to 510 kbps. Choose the representation needed for playback or editing, then keep those settings consistent across the sections of a longer piece. Streaming output includes audio frames and sentence metadata, with word timestamps available for eligible voices, including cloned voices.

The documented WebSocket text-input flow allows 20,000 characters per message and 200,000 characters cumulatively, and requires a submission interval no greater than 23 seconds. It can receive a complete script or ordered text segments and finish when the input is complete. The producer also documents cancelling the current synthesis turn. These are limits and behaviours of that protocol, not a universal generated-duration cap. For a long narration, organise the script into coherent sections and retain their order and text alongside the resulting audio so the piece can be assembled and reviewed consistently.

For pronunciation, the producer provides target-language hints, pinyin annotations and text replacements to address unwanted readings of digits, abbreviations, symbols or words. SSML is a separate markup mode with eligibility constraints: the Qwen documentation supports it for cloned voices in non-streaming or unidirectional-streaming calls, with only one text submission when enabled. It does not establish SSML for every system voice or for bidirectional streaming. A practical Plus workflow starts with a compatible voice and a finished script, then adds precise delivery and pronunciation choices for the passage being narrated.

Ailoot Ultra · Text to speech POST /v1/audio/speech qwen/qwen-audio-3.0-tts-plus

qwen/qwen-audio-3.0-tts-plus

Alibaba /qwen/qwen-audio-3.0-tts-plus

Overview

Qwen-Audio-3.0-TTS-Plus is Qwen’s text-to-speech model focused on detailed, natural and expressive audio for narration, audiobooks and dubbing. It supports model-specific preset or cloned voices, streaming output, and instructions or tags to shape delivery.

Accepted inputs
Text
Results
Audio

Available in Ailoot · inputs & methods

Ailoot Ultra · Text to speech POST /v1/audio/speech
Input types
text
Output types
audio
Output format
mp3
FieldTypeRequirementValues & limitsDefault
FieldmodelTypestringRequirementRequiredValues & limits
qwen/qwen-audio-3.0-tts-plus
Default—
FieldinputTypestringRequirementRequiredValues & limits
Minimum length: 1
Unit: Unicode characters
Default—
FieldvoiceTypestringRequirementRequiredValues & limits
longanlingxin, longanlufeng
Default—
Fieldresponse_formatTypestringRequirementRequiredValues & limits
mp3
Default—
Input material combinations

text_to_speech · Required: input

Method parameters and lifecycle
ParameterContract
Parametercontent_typeContractapplication/json
ParameterrequiredContractmodel, input, voice, response_format
Parametervoice_idsContractlonganlingxin, longanlufeng
Parameterresponse_formatContractmp3
Parametermax_input_charactersContractnull
Parameterother_optionsContractfalse
ParameterinputContractexact UTF-8 text; Unicode character count without normalization
Parametermaterial_typesContracttext

Lifecycle: synchronous_result_then_owned_library

GET /v1/media/tasks/{task_id} · actual returned task_id or media library record

GET /v1/media/assets/{asset_id}/content

GET /v1/media/assets

GET /v1/media/assets/{asset_id}

Select exact voice from this model profile.

Input characters and audio seconds are different meters.

Pricing

Tariff references do not add request options. Supported parameters are listed for the selected method.

Fast mode
Not specified When fast mode is selected
Flex mode
Not specified When flex mode is selected
Maximum reasoning effort
Not specified When maximum reasoning effort uses the default adjustment

Ailoot rates

Prices by configuration

Match each charge to the conditions shown. Use one rate for each set of alternative configurations.

ConfigurationRate scheduleBillable quantityBilling unitCharge
ConfigurationBase token ratesRate scheduleBase rateBillable quantity—Billing unit—Charge
Input · Input tokens — / 1K tokens
Output · Output tokens — / 1K tokens
Input · Cache read — / 1K tokens
Input · Cache write — / 1K tokens
Input · Cache write, 1 hour — / 1K tokens
ConfigurationUltraRate schedule—Billable quantityEach Unicode code point counts as one character, including Han characters.Billing unitper 1000 input characterCharge
Input · input character $0.04 per 1000 input character

Reference tariff details

Model-level reference schedules do not change method selection, quotes or charges. Active charges use the selected Ailoot method rates.

Qwen: Qwen-Audio-3.0-TTS Plus

Prices by configuration

ConfigurationBilling conditionsCharge
ConfigurationQwen: Qwen-Audio-3.0-TTS Plus · Default configurationBilling conditionsDefault configurationCharge
Input · Input characters $0.00004 per input character

Ailoot reserves an estimated amount before a request. After the result, it settles the final charge from measured usage. Streaming settlement uses the final usage record. How reservation and settlement work →

Example requests

Ailoot Ultra · Text to speech

curl
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_VOICE_ID:?Choose an accepted voice ID from this exact model profile}"
export AILOOT_VOICE_ID
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "qwen/qwen-audio-3.0-tts-plus", "input": "Good afternoon! This is a short voice take."}')
voice=os.environ["AILOOT_VOICE_ID"]
allowed=json.loads('["longanlingxin", "longanlufeng"]')
if voice not in allowed: raise SystemExit("Choose an accepted voice ID from this exact model profile")
p["voice"]=voice
p["response_format"]="mp3"
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o speech.mp3

Receive and save results

Ailoot Ultra · Text to speech

mp3

  • GET /v1/media/tasks/{task_id}
  • GET /v1/media/assets/{asset_id}/content
  • GET /v1/media/assets
  • GET /v1/media/assets/{asset_id}
Other content reads
Media libraryTask statusAsset details
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o media-assets.json
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}"
export AILOOT_MEDIA_TASK_ID
resource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_MEDIA_TASK_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/media/tasks/$resource_id" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o media-task.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("media-task.json").read_text())))
PY_RESULT
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}"
export AILOOT_ASSET_ID
resource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_ASSET_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/media/assets/$resource_id" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o media-asset.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("media-asset.json").read_text())))
PY_RESULT
Keep all completed results

Keep every complete returned response, file and content part.

Keep the complete binary result and headers. If JSON/multiple outputs are returned, retain every data item and fetch each actual signed asset URL.

If the original response needs checking

Retain original operation_id/X-Client-Request-ID for reconciliation without resubmission; no dedicated audio poll route.

Response fields
FieldType
Fieldbinary audioTypebytes
Fieldresponse headersTypeheaders
Errors and next steps
ResponseConditionNext step
Response400 · invalid_request_errorConditionInvalid required fields, material representation or parameter valueNext stepCorrect the indicated fields before a new creation request.
Responseserver_errorConditionThe returned response says the operation or result requires a checkNext stepKeep the original returned operation/task ID, request headers and response; continue supported reads of that original operation. Do not resubmit the creation request.

Aliases

Model aliases

Ailoot Ultra qwen/qwen-audio-3.0-tts-plus

Method path aliases

Use the method paths shown above.

Related caller IDs

qwen/qwen-audio-3.0-tts-plus

FAQ · Qwen: Qwen-Audio-3.0-TTS Plus
What inputs and results are available?

POST /v1/audio/speech · qwen/qwen-audio-3.0-tts-plus: text → audio

Which fields does the request use?

POST /v1/audio/speech · qwen/qwen-audio-3.0-tts-plus: model, input, voice, response_format

More details

Connect Ailoot to Claude Code, OpenCode, Hermes or your own app.

The company and its project portfolio

The company and its project portfolio: millions of customers; monthly sales in the billions.

Buy tokens at a discount.

Subscription discounts for regular use. Promo codes offer up to 50% off token purchases.

Subscription
Choose a discounted plan for your regular requests.
Promo code: up to 50% off
Enter your code at checkout. The price updates to reflect the current promotion.
Spending in your history
The model, tokens and amount are recorded for each request.

Choose a subscription · View model prices

Connect the API to a product you sell.

Use Ailoot in SaaS, apps and bots under its official service offer and licence agreement. Request a reseller licence for resale.

Commercial application
Add text, image, video and audio generation to paid features in your service.
Reseller licence
Send a description of your project and how you provide access. Request written terms for use and resale.
Documents on the website
The service offer, licence agreement and data processing policy are available before you connect.

Request a reseller licence · Service offer and licence agreement