Model CenterGlobalAiOpc
MiniMax speech synthesis
Pricing
Sign in using the page header to view your account prices and available options.
Turn text into speech using a system voice or a voice_id returned by voice cloning.
Submit a request to receive 1 task ID(s), then query them to get your results.
Quick start
- Replace
<API_KEY>in the example with your API key, edit the content and send the request. - Save every ID in
task_idsand query each one every 3–5 seconds. - When
statusiscompleted, use the returned file URL to access your result.
Endpoint
http
POST https://zcbservice.aizfw.cn/kyyReactApiServer/v2/model-center/tasks
Authentication
Get KeyAn API key is required. Use these headers when submitting a request, replacing
<API_KEY> with your key.http
Authorization: Bearer <API_KEY>
Content-Type: application/json
First-use fee
The one-time voice cloning fee is reserved on first use and confirmed when the service accepts the generation request. Later generation or delivery failure does not refund this fee. A confirmed rejection refunds the unconfirmed fee; an unknown acceptance result remains pending verification.
The one-time fee and generation fee are settled separately. After the one-time fee is confirmed, reusing the same resource incurs only generation charges. A different unpaid resource incurs its own one-time fee. Wait for the original first-use request to be confirmed before submitting another.
Character billing
Prices are quoted per 10,000 billable characters. Generation cost = billable characters ÷ 10,000 × unit price. Common Chinese characters count as 2; other UTF-16 code units count as 1. For example, “你好abc” counts as 7. Any first-use fee is charged separately from the character rate.
Request parameters
Send these parameters in the JSON request body. Always include required fields; provide the remaining fields for your chosen creation mode.
modelstringrequiredUse this model name.
Values and limits: minimax-tts
textstringrequiredThe text to read aloud.
Values and limits: At least 1 characters; Up to 9999 characters; Pattern: \S
voice_settingobjectrequiredVoice and reading settings. Start with voice_id.
voice_setting.volnumberVolume. Higher values are louder.
Values and limits: At most 10; Greater than 0; Documented default (not inserted by the platform): 1
voice_setting.pitchintegerPitch. Zero keeps the original pitch.
Values and limits: Range: -12–12; Documented default (not inserted by the platform): 0
voice_setting.speednumberReading speed. Higher values are faster.
Values and limits: Range: 0.5–2; Documented default (not inserted by the platform): 1
voice_setting.emotionstringSpeaking emotion. Omit for natural delivery.
Values and limits: Allowed values: "happy"; "sad"; "angry"; "fearful"; "disgusted"; "surprised"; "calm"; "fluent"; "whisper"
voice_setting.voice_idstringRequired when the object is provided
Use an available system voice ID or the voice_id returned by voice cloning. Cloned voices belong to the account that created them.
Values and limits: At least 1 characters; Pattern: \S
voice_setting.latex_readboolean控制是否朗读 latex 公式,默认为 false 需注意: - 仅支持中文,开启该参数后,
应表示为
language_boost 参数会被设置为 Chinese - 请求中的公式需要在公式的首尾加上 $$ - 请求中公式若有 "\",需转义成 "\\". 示例:一元二次方程根的基本公式
应表示为 $$x = \\frac{-b \\pm \\sqrt{b^2 - 4ac}}{2a}$$Values and limits: Documented default (not inserted by the platform): false
voice_setting.text_normalizationboolean废弃参数,请使用请求体一级参数
text_normalization_mode:本参数为 true 等价于 text_normalization_mode=basic;为 false 或不传等价于不传 text_normalization_mode。两者同时传入时以 text_normalization_mode 为准 是否启用中文、英语文本规范化,开启后可提升数字阅读场景的性能,但会略微增加延迟,默认值为 falseValues and limits: Documented default (not inserted by the platform): false
language_booststringReading language; auto detects it automatically.
Values and limits: Allowed values: "Chinese"; "Chinese,Yue"; "English"; "Arabic"; "Russian"; "Spanish"; "French"; "Portuguese"; "German"; "Turkish"; "Dutch"; "Ukrainian"; "Vietnamese"; "Indonesian"; "Japanese"; "Italian"; "Korean"; "Thai"; "Polish"; "Romanian"; "Greek"; "Czech"; "Finnish"; "Hindi"; "Bulgarian"; "Danish"; "Hebrew"; "Malay"; "Persian"; "Slovak"; "Swedish"; "Croatian"; "Filipino"; "Hungarian"; "Norwegian"; "Slovenian"; "Catalan"; "Nynorsk"; "Tamil"; "Afrikaans"; "auto"
upstream_modelstringrequiredSpeech model version. Use one of the allowed values below.
Values and limits: Allowed values: "speech-2.8-hd"; "speech-2.8-turbo"; "speech-2.6-hd"; "speech-2.6-turbo"; "speech-02-hd"; "speech-02-turbo"; "speech-01-hd"; "speech-01-turbo"
text_normalization_modestring文本归一化模式。
basic 使用快速的规则归一化;quality 采用 LLM + 规则的混合方案,归一化质量更高,但会增加一定延迟。详见文本归一化。 注意: - quality 目前仅对非流式请求(stream=false)生效,且仅支持 speech-2.8-hd、speech-2.8-turbo、speech-2.6-hd、speech-2.6-turbo;流式请求或其他模型传入 quality 时按 basic 处理,不会报错 - 传入本参数后,voice_setting.text_normalization 不再生效;不传时沿用 voice_setting.text_normalization 的设置(默认关闭)Values and limits: Allowed values: "basic"; "quality"
Request examples
Choose a creation mode to view its request body. Full cURL, Python and JavaScript examples are available in the code panel. Install
requests for Python; JavaScript examples can run with Node.js 18+.JSON
{
"model": "minimax-tts",
"text": "你好,这是同步语音合成示例。",
"voice_setting": {
"voice_id": "male-qn-qingse"
},
"upstream_model": "speech-2.8-hd"
}
Submission response
HTTP 202 means your request is queued. Generation takes time; query the tasks to retrieve your results.
| Field | Description |
|---|---|
| task_ids | All task IDs for this request. Save and query each one to retrieve every result. |
| id | The first task ID. |
| status | queued means the task is waiting to start. |
| error | Error message, or null when no error occurred. |
Query results
http
GET https://zcbservice.aizfw.cn/kyyReactApiServer/v2/model-center/tasks/{task_id}
task_idstringrequiredReplace
{task_id} in the URL with one ID from the submission response task_ids, using the same API key. Query every task separately and retain all task IDs.Task status
| status | Meaning | What to do |
|---|---|---|
| queued | Queued | Query again in 3–5 seconds. |
| processing | Processing generation or file delivery | Query again in 3–5 seconds. |
| completed | Completed | Read the returned result fields and use the media URLs for playback or download. |
| failed | Generation failed | Read error for the cause and refund_status for refund progress. |
| delivery_exception | Generated, but the file is unavailable | Stop polling and contact support. Do not submit again. |
| manual_required | The task requires review | Stop polling, keep the task ID and contact support. Do not submit again. |
Completed response example
JSON
{
"id": "mcp_00000000000000000000000000000001",
"model": "minimax-tts",
"object": "audio",
"created": 1792022400,
"status": "completed",
"amount": 0.25,
"billing_status": "deducted",
"refund_status": "none",
"usage_characters": 0,
"audio_url": "https://storage.example.com/audio.bin",
"error": null
}
Example URLs and credits are illustrative. Actual charges follow your account pricing and task record. Generated files are available when status is completed.
Response fields
| Field | Description |
|---|---|
| id | The task ID being queried. |
| model | The model used for generation. |
| object | Result type, such as audio or video. |
| created | Task creation time as a Unix timestamp in seconds. |
| status | Task status; completed means the result is ready. |
| amount / billing_status / refund_status | Credits consumed, charge status and refund status for this task. |
| error | Error message; null on success. |
| error_code | Platform error code, returned when an error occurs. |
| Media URL field | Description |
|---|---|
| audio_url | Audio playback or download URL; returned on completion |
Result fields
| Field | Type | Required | Description |
|---|---|---|---|
| usage_characters | integer | No | Character count reported for this synthesis. See amount for the actual charge. |
Media URLs refer to platform-stored files and can be used for playback or download. Optional URLs are omitted when unavailable.
Billing and troubleshooting
Each task is charged separately. Check refund_status for refund progress after a failed generation.
- Submission timeout: check whether the original request succeeded before submitting again to avoid duplicate generation and charges. If you have a task ID, query that task.
- Temporary query error: retry the query with the same task ID; do not create a new generation.
- delivery_exception: the generation charge is retained. Contact support to restore file access.
