
Qwen-Audio-3.0-TTS API: Pricing & Voice Controls
Qwen-Audio-3.0-TTS bills per million input characters with a 4,096-char cap. Compare Flash vs Plus tiers, set voice, language, and speed, and test error codes.
If you plan to use Qwen-Audio-3.0-TTS, two numbers matter first: price per 1,000,000 input characters and the 4,096-character limit per request. I’d make my setup choice based on that, then lock in voice, language, speed, response_format, and instruct for steady output.
Here’s the short version:
- Billing is character-based, and only text in the
inputfield counts. - Both Flash and Plus are billed per 1,000,000 characters.
- A sample rate in the article uses $15.00 per 1M characters.
- Each request is capped at 4,096 characters.
- You can control output with:
voicefor speaker choicelanguagefor pronunciationspeedfrom 0.5 to 2.0response_formatlikemp3,wav,opus, orpcminstructfor tone, mood, and delivery
- The model includes 9 preset speakers and supports 10 languages.
- Flash fits low-latency, high-volume work.
- Plus fits narration, brand voice, and longer-form audio.
A few numbers show how low the spend can start. At $15.00 per 1,000,000 characters, 500 characters x 30,000 requests comes out to about $0.225/month in the article’s example math. That means your main job is less about raw price and more about keeping voice settings steady across use cases.
I’d read this guide as a setup checklist: estimate cost, pick a speaker, set baseline controls, test error codes like 413 and 429, then ship.

Qwen-Audio-3.0-TTS Pricing And Billing

Qwen-Audio-3.0-TTS is billed by input text characters[1].
How Pricing Units Work
Both model tiers - Flash and Plus - are billed per 1,000,000 characters of input text. Only the text inside the input field is billed[1]. Each request can include up to 4,096 characters[1].
Flash works well for low-latency, high-volume jobs. Plus is a better fit for narration and branded voice work.
How To Estimate Your Monthly Cost
The math is pretty simple: take your average characters per request, multiply that by your monthly request volume, divide by 1,000,000, then multiply by the per-million rate.
Using an example price of $15.00 per 1M characters, here’s what that can look like:
| Use Case | Avg. Characters/Request | Monthly Requests | Est. Monthly Cost |
|---|---|---|---|
| Chat assistant | 500 | 30,000 | ~$0.225 |
| Customer support | 1,200 | 30,000 | ~$0.54 |
| Video narration | 10,000 | 30,000 | ~$4.50 |
Short responses usually cost very little. Longer narration adds up faster.
How APIMart Billing Works Across Multi-Model Projects

If your workflow uses more than one model, measure each one by its own billing unit.
In APIMart projects that mix audio, text, image, or video, track each model on its own. For TTS, track characters. For text models, track tokens. For image models, track calls. For video models, track seconds.
With cost defined, the next step is choosing the voice controls that shape the output.
Voice Controls In Qwen-Audio-3.0-TTS
Now that pricing is clear, the next step is shaping the voice.
Qwen-Audio-3.0-TTS splits voice control into two parts. Structured parameters handle the core setup, while instruct handles style. If you want repeatable output, lean on the structured fields. If you want tone or emotion to shift, use instruct.
Speaker, Language, And Output Format
The API comes with 9 predefined speaker profiles, each with its own timbre and voice style [2]. For English-language apps, Ryan and Aiden are the best picks for English-language content. If you're building for more than one market, the language parameter accepts values such as English, Chinese, or Auto for automatic detection across 10 supported languages [2].
| Speaker | Voice Description | Native Language |
|---|---|---|
| Ryan | Dynamic male, strong rhythmic drive | English |
| Aiden | Sunny American male, clear midrange | English |
| Vivian | Bright, slightly edgy young female | Chinese |
| Serena | Warm, gentle young female | Chinese |
| Uncle_Fu | Seasoned male, low mellow timbre | Chinese |
| Dylan | Youthful male, Beijing dialect | Chinese |
| Eric | Lively male, Sichuan dialect | Chinese |
| Ono_Anna | Playful female, light nimble timbre | Japanese |
| Sohee | Warm female, rich emotion | Korean |
A simple rule works well here: match the speaker to the target language. For en-US content, Ryan or Aiden usually makes the most sense [2].
For output, you can choose mp3, wav, opus, or pcm. Standard formats like MP3 and WAV work well across modern browsers and media tools [1][2].
Tone, Speed, And Emotion
The speed parameter takes a numeric range from 0.5 to 2.0, with 1.0 as the default [2]. The documented controls in this area are speed and instruct, which affect emotion, timbre, prosody, and tone [2].
| Control | Request Field | Expected Values / Range | Audio Effect | Best-Fit Use Case |
|---|---|---|---|---|
| Speaker | speaker | Vivian, Ryan, Aiden, etc. | Sets the base timbre and native accent | Branded characters, localized content |
| Language | language | English, Chinese, Auto, etc. | Determines pronunciation and locale | Multilingual apps |
| Speed | speed | 0.5–2.0 (default: 1.0) | Changes the rate of speech | Educational content, fast disclaimers |
| Emotion/Tone | instruct | Very happy, Angry, Calm, Incredulous | Shifts prosody and emotional delivery | Marketing, game characters, support |
| Format | response_format | wav, mp3, pcm, opus | Affects file size and compatibility | Browser playback and media tools |
One detail is worth watching: if instruct asks for excited delivery, the pacing can speed up even when speed: 1.0 stays unchanged [2]. So if the read feels faster than expected, the style prompt may be the reason.
Structured Parameters Versus Prompt Instructions
It helps to think of the explicit fields - speaker, language, speed, and response_format - as your production baseline. They set the core voice identity for each request. Then instruct sits on top of that base layer and shapes how the voice performs [2].
Use structured parameters when you need stable production output. Use instruct when you want variation. In practice, more descriptive prompts tend to produce more nuanced results than one-word instructions [2].
These defaults map straight into the request body in the next section.
How To Send Qwen-Audio-3.0-TTS Requests Through APIMart
Send POST requests to https://api.apimart.ai/v1/audio/speech and pass your Bearer token in the Authorization header [1].
Basic Request Structure
The main fields are model, input, voice, language, response_format, speed, and instruct [1][2]. Also, keep input under 4,096 characters.
This request puts the pricing factor and the voice settings into one body:
{
"model": "YOUR_QWEN_MODEL_ID",
"input": "Welcome to our platform. We are excited to have you here.",
"voice": "Aiden",
"language": "English",
"instruct": "Warm and welcoming tone",
"response_format": "mp3",
"speed": 1.0
}
Put simply, these fields tell the API what to say, how to say it, and which format to return.
For a quick cURL test, use:
curl --request POST \
--url https://api.apimart.ai/v1/audio/speech \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"model": "YOUR_QWEN_MODEL_ID",
"input": "Your order has been confirmed and will ship shortly.",
"voice": "Serena",
"language": "English",
"response_format": "opus"
}' \
--output confirmation.opus
This saves the audio response straight to confirmation.opus [1].
Recommended Settings For Common Scenarios
Once you know the request shape, picking settings gets a lot easier. The table below maps common use cases to a good starting preset.
| Scenario | Suggested Tier | voice | Speed | Instruct Prompt | Cost Sensitivity |
|---|---|---|---|---|---|
| Customer Support | Flash (0.6B) | Serena | 1.1 | Helpful | High |
| App Onboarding | Plus (1.7B) | Aiden | 1.0 | Warm and welcoming | Medium |
| Educational Narration | Plus (1.7B) | Uncle_Fu | 0.9 | Authoritative and measured | Medium |
| Ad Creative | Plus (1.7B) | Vivian | 1.0 | Energetic and dynamic | Low |
| Product Video Voiceover | Plus (1.7B) | Ryan | 1.0 | Professional and clear | Low |
If you need multilingual output, set language to match your script. The model supports 10 major languages: Chinese, English, Japanese, Korean, German, French, Russian, Portuguese, Spanish, and Italian [2].
Rate Limits, Errors, And Production Checks
Before you move into production, test a few failure cases on purpose. It’s one of those small steps that can save a lot of pain later.
| Error Code | Meaning | Recommended Action |
|---|---|---|
| 400 | Invalid parameters | Check JSON structure and accepted values |
| 401 | Missing or invalid API key | Verify your Bearer token |
| 402 | Insufficient account balance | Recharge your APIMart account |
| 413 | Input exceeds 4,096 characters | Split text into smaller segments |
| 429 | Rate limit exceeded | Retry with exponential backoff |
| 500/502 | Server or gateway error | Wait briefly, then retry |
A 400 usually means something in the request body is off. A 413 is more straightforward: your text is too long, so break it into smaller chunks. And if you hit 429, back off and retry instead of hammering the endpoint.
Choosing The Right Setup And Next Steps
A Simple Decision Framework
Now that pricing and voice controls are set, use this last filter to match the model to the work you need done.
Choose based on budget, voice control, and use case.
| Priority | Best Fit | Recommended Tier |
|---|---|---|
| Low latency and high volume | Live assistants, IVR, real-time translation | Flash |
| High-volume cost efficiency | Bulk localization, high-volume customer support | Flash |
| Expressive branded narration | Branded narration, long-form audio, character voices | Plus |
If you're doing long-form narration, stick with one speaker from start to finish. Keep instruct tight, plain, and repeatable. That usually gives you steadier output and fewer surprises.
For simpler setups, keep it even cleaner: pick one speaker and change only the instruct field when needed.
Key Points To Take Into Implementation
Once you pick a tier, set things up around the scenario you'll run most often. That keeps your launch plan grounded in actual usage, not edge cases.
- Set usage alerts before launch.
- Verify each scenario with its own speaker, speed, and
instructprompt. - Test output with native U.S. listeners before launch.
- APIMart lets you switch tiers without changing the core integration pattern.
Also, test how your system handles 402, 429, and 502 before launch.
FAQs
How do I split long text over 4,096 characters?
Break the text into chunks of 4,096 characters or less and send each chunk to the API on its own.
Try to split at natural stopping points, like the end of a sentence or paragraph. After that, combine the returned audio files into one final track.
Which voice settings should I lock for consistent output?
For steady long-form output, use the VoiceDesign model to set up a clear persona and reference clip. Then create a reusable prompt with create_voice_clone_prompt and pass that voice_clone_prompt into generate_voice_clone.
It also helps to lock generation settings like top_p so the voice doesn't drift over time. And before you launch, do a dry run to catch issues early.
When should I choose Flash instead of Plus?
Choose Flash (0.6B) when speed and low latency matter most. It’s built for high-concurrency use cases like real-time virtual assistants, live translation, and customer support, where fast response times are critical.
Choose Plus (1.7B) when quality and precision matter more than speed. It delivers better prosody, a broader emotional range, and higher accuracy for audiobooks, professional voiceovers, and branded media.
Choose the model you want in the model marketplace
Try chat, image and video models in the APIMart model marketplace, and experience model capabilities quickly with one unified API.