歌手风格
从你的歌里提取歌手的声音和唱腔,或上传自己的清唱,生成专属歌手;之后写歌时直接选用
模型信息
| 模型编码 | music-persona(请求里的 model 字段) |
|---|---|
| 能力类型 | 音乐与音效,产出音色 |
| 调用方式 | 异步任务:提交后立即返回任务编号,完成后查询或接收 Webhook 回调 |
| 最长处理时间 | 20 分钟,超时按失败处理并全额退回点数(任务 error.code 为 timeout) |
| 适用场景 | 歌手、专属声音、唱腔 |
计费说明
当前显示原价。登录秒做账号后刷新本页,会员看到会员价,渠道看到所属等级价。
| 规格 | 计价单位 | 原价(点) | 约合人民币 |
|---|---|---|---|
从哪里来 从我的歌曲提取mode=song | 每次 | 52 | ¥0.52 |
从哪里来 用我的声音mode=voice | 每次 | 40 | ¥0.40 |
- 每次调用按固定数量计费。
- 不同规格单价不同,规格由参数 mode 决定。
- 提交时按报价冻结,成功后按报价扣点;失败、超时、取消全额退回。
- 约合人民币按 1 元 = 100 点折算。适用价格规则见计费与点数。
接口地址
POSThttps://api.miaozuo.cn/v1/tasks
提交后用 GET https://api.miaozuo.cn/v1/tasks/{id} 查询结果,或通过 Webhook 接收回调。任务接口的通用说明见任务查询。
请求参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 固定为 music-persona |
input | object | 是 | 模型参数,见下表(也接受字段名 params) |
webhook_url | string | 否 | 任务结束时回调的 HTTPS 地址 |
metadata | object | 否 | 自定义键值,原样回显;最多 16 个键,值为不超过 512 字的字符串 |
input 参数
| 字段 | 类型 | 必填 | 取值范围 | 默认值 | 说明 |
|---|---|---|---|---|---|
mode | string | 是 | "song"(从我的歌曲提取)、"voice"(用我的声音) | "song" | 从哪里来 参与计价 |
name | string | 是 | 1 ~ 20 个字符 | — | 歌手名称 |
song | string(文件地址) | 否 | 音频地址 | — | 选择作品。选择一首人声清晰的歌曲。仅当 mode(从哪里来)为 "song" 时有效 |
start | number | 否 | 0 ~ 600 秒 | — | 人声片段开始。选一段 10–30 秒、人声清晰的片段;不填则自动选取。仅当 mode(从哪里来)为 "song" 时有效 |
end | number | 否 | 0 ~ 600 秒 | — | 人声片段结束。仅当 mode(从哪里来)为 "song" 时有效 |
audio | string(文件地址) | 否 | 音频地址,单个不超过 50MB | — | 声音样本。10 秒到 4 分钟的单人清唱或说话录音,mp3 / wav,避免背景音乐和噪音。仅当 mode(从哪里来)为 "voice" 时有效 |
description | string | 否 | 最多 100 个字符 | — | 描述(可选) |
组合规则
- 请选择一首作品
- 请上传声音样本
未定义的字段会被忽略,数字字符串会自动转成数字,缺省的字段按默认值补齐。文件类参数请先用 文件上传拿到秒做地址,也可以直接传可公开访问的 HTTPS 地址。
请求示例
curl https://api.miaozuo.cn/v1/tasks \
-H "Authorization: Bearer $MIAOZUO_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order-20261009-0001" \
-d '{
"model": "music-persona",
"input": {
"mode": "song",
"name": "清亮女声 · 小满",
"song": "https://api.miaozuo.cn/upload/202610/3b1f6c0e9d2a4b7c8e5f1a2b3c4d5e6f.mp3"
},
"metadata": {
"order_id": "1001"
}
}'返回示例
受理成功返回 HTTP 200 和任务对象,状态为 queued,所需点数已冻结(示例数值按原价估算):
提交返回
{
"id": "T261009170328CGM0GT",
"object": "task",
"model": "music-persona",
"status": "queued",
"created_at": "2026-10-09T17:03:28+08:00",
"started_at": null,
"finished_at": null,
"input": {
"mode": "song",
"name": "清亮女声 · 小满",
"song": "https://api.miaozuo.cn/upload/202610/3b1f6c0e9d2a4b7c8e5f1a2b3c4d5e6f.mp3"
},
"points": {
"frozen": "52.000",
"charged": "0.000",
"refunded": "0.000"
},
"output": null,
"error": null,
"metadata": {
"order_id": "1001"
}
}完成后查询任务(或 Webhook 回调的 data):
GET /v1/tasks/{id}(成功)
{
"id": "T261009170328CGM0GT",
"object": "task",
"model": "music-persona",
"status": "succeeded",
"created_at": "2026-10-09T17:03:28+08:00",
"started_at": "2026-10-09T17:03:29+08:00",
"finished_at": "2026-10-09T17:03:52+08:00",
"input": {
"mode": "song",
"name": "清亮女声 · 小满",
"song": "https://api.miaozuo.cn/upload/202610/3b1f6c0e9d2a4b7c8e5f1a2b3c4d5e6f.mp3"
},
"points": {
"frozen": "52.000",
"charged": "52.000",
"refunded": "0.000"
},
"output": {
"files": [],
"voice_id": "voice_8fK2qX9mZ3pL"
},
"error": null,
"metadata": {
"order_id": "1001"
}
}返回字段
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 任务编号,形如 T261009170328CGM0GT |
status | string | queued / processing / succeeded / failed / canceled |
input | object | 校验并补齐默认值后的参数 |
points | object | 冻结、实扣、退回点数 |
output.voice_id | string | 秒做音色编号,可直接填进配音、数字人等模型的 voice 参数 |
error | object | 失败原因 code、message;成功时为 null |
完整字段见任务对象。
错误码
调用这个模型时常见的错误(都不扣点)。完整列表与任务失败原因见错误码。
| HTTP | error.code | 说明 |
|---|---|---|
| 402 | insufficient_points | 点数(含授信额度)不足;不冻结、不开始生成 |
| 402 | key_quota_exceeded | Key 的额度已用完(额度可按日 / 周 / 月自动重置) |
| 403 | permission_denied | 该 Key 的可调模型不包含这个模型 |
| 404 | model_unavailable | 模型不存在、已下架、未对开放 API 开放,或对你的渠道等级不可见 |
| 422 | invalid_params | 参数错误:缺少必填字段、类型或取值超出范围(details 里逐字段说明) |
| 422 | content_rejected | 提示词或参考素材未通过内容安全审核;不扣点 |
| 429 | rate_limited | 每分钟请求数超过 Key 的限速,响应头带 Retry-After(秒) |
| 429 | concurrency_limited | 进行中的任务与文本调用数超过 Key 或账户的并发上限 |
在线测试
在开放平台的在线测试页选择这个模型直接调用,不用写代码;测试按正常价格扣点。未登录会先进入登录页。