Model CenterGlobalAiOpc

MiniMax speech synthesis

POST/kyyReactApiServer/v2/model-center/tasks

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

  1. Replace <API_KEY> in the example with your API key, edit the content and send the request.
  2. Save every ID in task_ids and query each one every 3–5 seconds.
  3. When status is completed, use the returned file URL to access your result.

Endpoint

http
POST https://zcbservice.aizfw.cn/kyyReactApiServer/v2/model-center/tasks

Authentication

Get Key
An 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.
modelstringrequired
Use this model name.
Values and limits: minimax-tts
textstringrequired
The text to read aloud.
Values and limits: At least 1 characters; Up to 9999 characters; Pattern: \S
voice_settingobjectrequired
Voice and reading settings. Start with voice_id.
voice_setting.volnumber
Volume. Higher values are louder.
Values and limits: At most 10; Greater than 0; Documented default (not inserted by the platform): 1
voice_setting.pitchinteger
Pitch. Zero keeps the original pitch.
Values and limits: Range: -12–12; Documented default (not inserted by the platform): 0
voice_setting.speednumber
Reading speed. Higher values are faster.
Values and limits: Range: 0.5–2; Documented default (not inserted by the platform): 1
voice_setting.emotionstring
Speaking emotion. Omit for natural delivery.
Values and limits: Allowed values: "happy"; "sad"; "angry"; "fearful"; "disgusted"; "surprised"; "calm"; "fluent"; "whisper"
voice_setting.voice_idstring
Required 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 - 请求中的公式需要在公式的首尾加上 $$ - 请求中公式若有 "\",需转义成 "\\". 示例:一元二次方程根的基本公式 The quadratic formula 应表示为 $$x = \\frac&#123;-b \\pm \\sqrt&#123;b^2 - 4ac&#125;&#125;&#123;2a&#125;$$
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 为准 是否启用中文、英语文本规范化,开启后可提升数字阅读场景的性能,但会略微增加延迟,默认值为 false
Values and limits: Documented default (not inserted by the platform): false
language_booststring
Reading 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_modelstringrequired
Speech 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.
FieldDescription
task_idsAll task IDs for this request. Save and query each one to retrieve every result.
idThe first task ID.
statusqueued means the task is waiting to start.
errorError message, or null when no error occurred.

Query results

http
GET https://zcbservice.aizfw.cn/kyyReactApiServer/v2/model-center/tasks/{task_id}
task_idstringrequired
Replace {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

statusMeaningWhat to do
queuedQueuedQuery again in 3–5 seconds.
processingProcessing generation or file deliveryQuery again in 3–5 seconds.
completedCompletedRead the returned result fields and use the media URLs for playback or download.
failedGeneration failedRead error for the cause and refund_status for refund progress.
delivery_exceptionGenerated, but the file is unavailableStop polling and contact support. Do not submit again.
manual_requiredThe task requires reviewStop 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

FieldDescription
idThe task ID being queried.
modelThe model used for generation.
objectResult type, such as audio or video.
createdTask creation time as a Unix timestamp in seconds.
statusTask status; completed means the result is ready.
amount / billing_status / refund_statusCredits consumed, charge status and refund status for this task.
errorError message; null on success.
error_codePlatform error code, returned when an error occurs.
Media URL fieldDescription
audio_urlAudio playback or download URL; returned on completion

Result fields

FieldTypeRequiredDescription
usage_charactersintegerNoCharacter 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.