两个创建面,字段名不同
音色设计(文本描述生成音色)与音色克隆(上传样音)落在同一个注册表,但请求形态不同:assets 面是 JSON,voices 面是 multipart。字段名按模型家族区分——在任何面传 voice_sample 都会得到 400 voice_sample_required,因为样音字段是 audio_url。
curl
# 音色设计(cosyvoice-v3.5-flash)
curl https://modelxing.com/v1/audio/assets \
-H "Authorization: Bearer $NEXTMODEL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "cosyvoice-v3.5-flash",
"voice_prompt": "data:audio/wav;base64,...",
"name": "teacher-01"
}'
# qwen3-tts-vc 克隆:样音走 audio_url
curl https://modelxing.com/v1/audio/assets \
-H "Authorization: Bearer $NEXTMODEL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3-tts-vc-2026-01-22",
"audio_url": "data:audio/wav;base64,...",
"name": "narrator-male"
}'| cosyvoice 音色设计(cosyvoice-v3.5-flash 等) | POST /v1/audio/assets {model, voice_prompt: "data:audio/wav;base64,...", name} |
| qwen3-tts-vc-2026-01-22(克隆) | POST /v1/audio/assets {model, audio_url: "data:audio/wav;base64,..." 或 https 地址, name} |
| cosyvoice 克隆家族 | POST /v1/audio/voices multipart:model + 样音文件 + display_name |
| qwen3-tts-vd(设计) | POST /v1/audio/assets {model, voice_prompt: <文本描述>, ...} |
分页查询你的音色
GET /v1/audio/voices 返回账号下的音色(含克隆与设计)及分页元数据。page_index 从 0 起;page_size 默认 20、上限 100。合成时在 /v1/audio/speech 用返回的 voice id 引用音色。
curl
curl "https://modelxing.com/v1/audio/voices?page_index=0&page_size=50" \
-H "Authorization: Bearer $NEXTMODEL_API_KEY"删除音色
DELETE /v1/audio/voices/{voice_id} 在上游删除音色并释放本地注册行(及其占用的每账号克隆配额)。上游已不存在的音色删除同样成功——陈旧行不能变成删不掉的僵尸。仅音色属主账号可删除;其它账号的 voice id 返回 403。
curl
curl -X DELETE "https://modelxing.com/v1/audio/voices/{voice_id}" \
-H "Authorization: Bearer $NEXTMODEL_API_KEY"注册是计费调用
音色创建是正常计费请求:请求文本会计入该次调用的 token 口径,因此 base64 data URL 样音会按其完整编码长度计入。样音较大时,音色设计流程优先改用 https 样音地址;实际费用以创建响应中的 cost 回显为准。