Alibaba
Qwen Audio 3.0 TTS
qwen-audio-3.0-tts-flash
Alibaba Tongyi's managed multilingual speech synthesis series, with two tiers—low-latency Flash and high-quality Plus—supporting natural language instructions to control emotion and expressive style
Try qwen-audio-3.0-tts-flash
Input
Output
Pricing
qwen-audio-3.0-tts-flash per 1,000 characters
| Unit Price | $0.030 |
|---|
Positioning Overview
qwen-audio-3.0-tts-flash is a text-to-speech model in the Qwen Audio 3.0 TTS series aimed at real-time interaction, invoked through the unified HiAPI.ai interface. It synthesizes input text into natural speech, supports prompts in 16 languages including Chinese, English, Japanese, and Korean, and allows emotion and expressive style to be adjusted via natural-language instructions. It is suited to developers building voice assistants, conversational applications, customer-service announcements, and multilingual dubbing, especially real-time scenarios that are sensitive to first-packet latency and need a balance between response speed and audio quality. The maximum text length per task is 20,000 Unicode code points.
Key Highlights
- Low-latency tier for real-time interaction — Flash is oriented toward real-time response, with first-packet latency in the 300-millisecond range, suitable for synchronous dialogue and voice announcement pipelines.
- Instruction-driven control of emotion and expressive style — An optional instruction field can describe tone and delivery, reducing post-processing of the audio.
- Broad multilingual synthesis coverage — Supports prompts in 16 languages, so a single model can serve multilingual content without switching models by language.
- Selectable output format and sample rate — Supports pcm, wav, mp3, and opus output, with sample rates from 8000 to 48000 Hz selectable for the playback device.
Capabilities
Multilingual text-to-speech: Given text and a voice, speech can be synthesized; language_hints can specify the target language, so one integration covers multilingual content production.
Fine-grained speech parameter adjustment: Speed and pitch can both be adjusted in the 0.5x to 2x range, and volume from 0 to 100, making it easy to fit different playback devices and content pacing.
Output format and sample rate control: Output can be selected as mp3, wav, pcm, or opus, with sample rates from 8000 to 48000 Hz; for opus, a bitrate from 6 to 510 kbps can also be specified.
Instruction and seed control: The instruction field describes the synthesis style, and seed can fix the random seed, making it easy to reproduce the same synthesis result and to run stable regression tests.
Long-text synthesis in a single task: A single task accepts up to 20,000 Unicode code points of text, so long passages need not be split on the caller side first.
Use Cases
- Real-time voice assistant developers: dialogue reply text — Synthesize conversational-system replies into speech in real time and feed them directly into the announcement stage of a voice assistant or conversational application.
- Customer service and call centers: announcement script text — Convert standard scripts and notification content into speech in batches for outbound calls, IVR prompts, and ticket-status announcements.
- Online education and audiobooks: course manuscripts — Synthesize courseware and lecture scripts into audio with adjustable speed for course dubbing and audiobook production.
- Multilingual content teams: multilingual copy — Synthesize different language versions of the same copy according to language hints, for product localization and multilingual video dubbing.
Limitations and Selection Advice
This model is in the Flash tier and prioritizes response speed; its voice naturalness and fidelity are below the Plus variant in the same series, so scenarios with high requirements for final audio quality should use Plus instead. Only four system voices are available, and designing a voice from a text description is not supported; voice cloning capability is outside this model's parameter scope. Synthesis is billed by output characters, with CJK characters counted as two characters, so usage should be estimated for long-text batch generation. Self-hosted deployment or open-source weights are outside this model's scope.
Create a generation task
https://api.hiapi.ai/v1/tasks Headers
AuthorizationstringRequiredAccount API key. Required on every request. Example: Bearer YOUR_HIAPI_API_KEY. Get your API key
Content-TypestringOptionalThe request body is always parsed as JSON; when sent, only application/json (optionally with charset) is accepted — any other value returns 415. Example: application/json.
Idempotency-KeystringOptionalIdempotency key, up to 255 bytes. Retries with the same key from the same account create the task only once; replays return the original taskId.
On network timeouts or client retries, the same key creates the task only once — no double charges (scope: the API key's account). Use a business-unique identifier as the key (e.g. "order-42"); replays return the original taskId, and keys expire 24 hours after the first request. See the Unified Async API overview for the full scenario matrix.
Body
modelstringRequiredCurrent fixed value: qwen-audio-3.0-tts-flash
routestringOptionalCurrent fixed value: default
inputobjectRequired
Business parameters for qwen-audio-3.0-tts-flash and route default — see the parameter table below.
ratenumberOptionalDefault: 1min 0.5max 2Speech rate multiplier; the default is 1, which means normal speech rate. Values greater than 1 speed it up, and values less than 1 slow it down.
seedintegerOptionalDefault: 0min 0max 65535Random seed for deterministic synthesis; the default is 0. The same seed and input make the synthesis result reproducible.
textstringRequiredminLength 1maxLength 20000The text to be synthesized into speech. hiAPI accepts at most 20,000 Unicode code points per task; for Alibaba billing, CJK ideographs count as two characters and other characters count as one character.
pitchnumberOptionalDefault: 1min 0.5max 2Pitch multiplier; the default is 1, which means the original pitch. Larger values raise the pitch, and smaller values lower it.
voicestringRequiredDefault: "longanhuan_v3.6"Specifies a system voice supported by the Flash tier; the default is longanhuan_v3.6.
longanhuan_v3.6longjielidou_v3.6loongeva_v3.6loongjohnformatstringOptionalDefault: "mp3"The container format of the output audio or raw PCM format; the default is mp3.
pcmwavmp3opusvolumeintegerOptionalDefault: 50min 0max 100Output volume, ranging from 0 to 100; the default is 50.
bit_rateintegerOptionalDefault: 32min 6max 510Bitrate for Opus encoding, in kbps; the default is 32. This parameter takes effect only when format is opus.
instructionstringOptionalminLength 1An optional synthesis style instruction used to attach additional synthesis control requirements; if not provided, synthesis is performed in the default manner.
sample_rateintegerOptionalDefault: 22050The sample rate of the output audio, in Hz; the default is 22050.
80001600022050240004410048000language_hintsarrayOptionalminItems 1maxItems 1An optional array of language hints; Qwen processes only the first element in the array.
Array [ string ]
callbackobjectOptional
Terminal-state notification config. When omitted, no callback is delivered — poll the task yourself. See the callback note below.
Provide callback.url when creating a task and HiAPI POSTs to your service once the task reaches a terminal state — no polling needed. The callback payload mirrors the task detail structure; signature verification, delivery retries and idempotency are documented on the Unified Async API overview page.
urlstringRequiredRequired when callback is present. A POST is sent to this URL once the task reaches a terminal state; must be a valid http(s) URL.
whenstringOptionalDefault: "final"Only final is supported today — notified on both success and fail.
finalstoragestringOptionalDefault: "temp"Artifact storage tier: temp (default, retained about 7 days) or persistent (long-term, billed by size). Insufficient balance or exceeding the storage cap silently downgrades to temp; the effective tier is shown in the task detail response.
temppersistentRequest examples
# Submit an async task; returns a taskId immediately (no waiting for generation)
curl -X POST "https://api.hiapi.ai/v1/tasks" \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-audio-3.0-tts-flash",
"input": {
"rate": 1,
"seed": 0,
"text": "…",
"pitch": 1,
"voice": "longanhuan_v3.6",
"format": "mp3",
"volume": 50,
"bit_rate": 32,
"sample_rate": 22050
}
}' const res = await fetch("https://api.hiapi.ai/v1/tasks", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.HIAPI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "qwen-audio-3.0-tts-flash",
input: {
"rate": 1,
"seed": 0,
"text": "…",
"pitch": 1,
"voice": "longanhuan_v3.6",
"format": "mp3",
"volume": 50,
"bit_rate": 32,
"sample_rate": 22050
}
}),
});
const task = await res.json();
// { code: 200, message: "success", data: { taskId } } import os, requests
res = requests.post(
"https://api.hiapi.ai/v1/tasks",
headers={"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"},
json={
"model": "qwen-audio-3.0-tts-flash",
"input": {
"rate": 1,
"seed": 0,
"text": "…",
"pitch": 1,
"voice": "longanhuan_v3.6",
"format": "mp3",
"volume": 50,
"bit_rate": 32,
"sample_rate": 22050
}
},
)
print(res.json()) # { code, message, data: { taskId } } 200 OK
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR"
}
} 400 Bad Request
{
"code": 400,
"message": "invalid request",
"data": null,
"error_code": "INVALID_REQUEST"
} Get task detail
https://api.hiapi.ai/v1/tasks/:id Response fields
taskIdstringRequiredTask ID, always prefixed with tk-hiapi-.
modelstringRequiredResolved full model name. Tasks submitted with the route parameter return base@route (e.g. gpt-image-2/text-to-image@ext); otherwise identical to the name passed at creation.
routestringOptionalPresent only when the task was submitted with an explicit route parameter; echoes the submitted value.
statusstringRequiredTask status.
queued Queued, not started yet.
handling Being processed.
archiving Processing finished, artifacts being prepared.
success Terminal: completed, artifacts available (output returned).
fail Terminal: failed (error returned).
After submission, check status: success and fail are terminal, everything else is non-terminal. Poll every 1–3 seconds until terminal. On success, download artifacts from output[].url and transfer them before expireAt; pass storage: "persistent" at creation time when long-term retention is needed.
creatednumberRequiredTask creation time (Unix seconds).
completednumberRequiredUnix seconds when the task reached a terminal state; fixed to 0 while not terminal.
outputarrayOptional
Present only when status == success. Artifact list — always an array; a single task may return multiple types at once (e.g. video + first_frame).
Array [ object ]
Array items
urlstringRequiredArtifact URL, directly downloadable.
typestringRequiredCurrent possible values: video, image, audio, first_frame, last_frame, thumbnail; more may be added later.
expireAtnumberRequiredUnix seconds until which the artifact remains accessible; download or transfer before it expires.
errorobjectOptional
Present only when status == fail.
codestringRequiredBusiness error code.
messagestringRequiredError description.
Response examples
Success
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR",
"model": "happyhorse-1-0",
"status": "success",
"created": 1777282033,
"completed": 1777282099,
"output": [
{
"url": "https://cdn.hiapi.ai/tasks/.../video.mp4",
"type": "video",
"expireAt": 1777886899
}
]
}
} Processing (non-terminal)
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "archiving",
"created": 1777282033,
"completed": 0
}
} Failed
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "fail",
"created": 1777282033,
"completed": 1777282099,
"error": {
"code": "TASK_FAILED",
"message": "task failed"
}
}
} Articles
View all articles →Related Models
View all models →Same Type
-
Mirelo SFX 2.0 Mirelo AI $0.021 /second -
MiniMax Music 3 MiniMax $0.0026 /second -
Mureka 9.5 Mureka $0.322 per request -
Lyria 3.5 Google $0.090 /song -
Gemini 3.1 Flash TTS Google -- -
MiniMax Music 2.6 MiniMax $0.210 /song -
Lyria 3 Pro Google $0.140 /song -
ElevenLabs ElevenLabs $0.0029 /second -
MiniMax Music 1.5 MiniMax $0.070 /song
Same Provider
-
HappyHorse 1.1 Alibaba $0.160 /second -
Wan 2.7 Video Alibaba $0.100 /second -
Qwen Image 2.1 Alibaba $0.020 /image -
Qwen Image 3.0 Alibaba $0.036 /image -
Qwen Image 2.0 Alibaba $0.042 /image -
HappyHorse 1.0 Alibaba $0.168 /second -
Wan 2.6 Flash Alibaba $0.043 /second -
Wan 2.7 Image Alibaba $0.035 /image -
Wan 3.0 Video Alibaba $0.040 /second -
Z-Image Alibaba $0.008 /image