歌曲编辑
不用重写整首:重写某一段、给清唱加伴奏、给伴奏配人声,或在指定段落加采样
模型信息
| 模型编码 | music-edit(请求里的 model 字段) |
|---|---|
| 能力类型 | 音乐与音效,产出音频 |
| 调用方式 | 异步任务:提交后立即返回任务编号,完成后查询或接收 Webhook 回调 |
| 最长处理时间 | 20 分钟,超时按失败处理并全额退回点数(任务 error.code 为 timeout) |
| 适用场景 | 改歌、加伴奏、加人声、采样 |
计费说明
当前显示原价。登录秒做账号后刷新本页,会员看到会员价,渠道看到所属等级价。
| 规格 | 计价单位 | 原价(点) | 约合人民币 |
|---|---|---|---|
编辑方式 添加伴奏mode=accompany | 每次 | 130 | ¥1.30 |
编辑方式 重写片段mode=replace | 每次 | 180 | ¥1.80 |
编辑方式 添加采样mode=samples | 每次 | 130 | ¥1.30 |
编辑方式 添加人声mode=vocals | 每次 | 130 | ¥1.30 |
- 每次调用按固定数量计费。
- 不同规格单价不同,规格由参数 mode 决定。
- 提交时按报价冻结,成功后按报价扣点;失败、超时、取消全额退回。
- 约合人民币按 1 元 = 100 点折算。适用价格规则见计费与点数。
接口地址
POSThttps://api.miaozuo.cn/v1/tasks
提交后用 GET https://api.miaozuo.cn/v1/tasks/{id} 查询结果,或通过 Webhook 接收回调。任务接口的通用说明见任务查询。
请求参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 固定为 music-edit |
input | object | 是 | 模型参数,见下表(也接受字段名 params) |
webhook_url | string | 否 | 任务结束时回调的 HTTPS 地址 |
metadata | object | 否 | 自定义键值,原样回显;最多 16 个键,值为不超过 512 字的字符串 |
input 参数
| 字段 | 类型 | 必填 | 取值范围 | 默认值 | 说明 |
|---|---|---|---|---|---|
mode | string | 是 | "replace"(重写片段)、"accompany"(添加伴奏)、"vocals"(添加人声)、"samples"(添加采样) | "replace" | 编辑方式 参与计价 |
song | string(文件地址) | 是 | 音频地址 | — | 选择作品。选择要编辑的歌曲 |
start | number | 否 | 0 ~ 600 秒 | — | 开始时间。从第几秒开始;添加伴奏、人声、采样不填则从头开始 |
end | number | 否 | 0 ~ 600 秒 | — | 结束时间。到第几秒结束;添加伴奏、人声、采样不填则到结尾 |
lyrics | string | 否 | 最多 3000 个字符 | — | 这一段的歌词(可选)。仅当 mode(编辑方式)为 "replace" / "vocals" 时有效 |
style | string | 否 | 最多 200 个字符 | — | 风格描述(可选) |
vocal | string | 否 | "any"(不限)、"female"(女声)、"male"(男声) | "any" | 人声偏好。仅当 mode(编辑方式)为 "vocals" 时有效 |
组合规则
- 重写片段需要填写开始和结束时间
未定义的字段会被忽略,数字字符串会自动转成数字,缺省的字段按默认值补齐。文件类参数请先用 文件上传拿到秒做地址,也可以直接传可公开访问的 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-edit",
"input": {
"mode": "replace",
"song": "https://api.miaozuo.cn/upload/202610/3b1f6c0e9d2a4b7c8e5f1a2b3c4d5e6f.mp3",
"start": 0,
"end": 0
},
"metadata": {
"order_id": "1001"
}
}'返回示例
受理成功返回 HTTP 200 和任务对象,状态为 queued,所需点数已冻结(示例数值按原价估算):
提交返回
{
"id": "T261009170328CGM0GT",
"object": "task",
"model": "music-edit",
"status": "queued",
"created_at": "2026-10-09T17:03:28+08:00",
"started_at": null,
"finished_at": null,
"input": {
"mode": "replace",
"song": "https://api.miaozuo.cn/upload/202610/3b1f6c0e9d2a4b7c8e5f1a2b3c4d5e6f.mp3",
"start": 0,
"end": 0
},
"points": {
"frozen": "180.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-edit",
"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": "replace",
"song": "https://api.miaozuo.cn/upload/202610/3b1f6c0e9d2a4b7c8e5f1a2b3c4d5e6f.mp3",
"start": 0,
"end": 0
},
"points": {
"frozen": "180.000",
"charged": "180.000",
"refunded": "0.000"
},
"output": {
"files": [
{
"url": "https://api.miaozuo.cn/ai/202610/3b1f6c0e9d2a4b7c8e5f1a2b3c4d5e6f.mp3",
"type": "audio",
"mime_type": "audio/mpeg",
"size": 482304,
"width": null,
"height": null,
"duration": 30,
"cover_url": null,
"expires_at": "2026-11-08T17:03:32+08:00"
}
]
},
"error": null,
"metadata": {
"order_id": "1001"
}
}返回字段
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 任务编号,形如 T261009170328CGM0GT |
status | string | queued / processing / succeeded / failed / canceled |
input | object | 校验并补齐默认值后的参数 |
points | object | 冻结、实扣、退回点数 |
output.files[].url | string | 结果文件地址(秒做存储,文件名为随机串) |
output.files[].type | string | 文件类型,此模型为 audio |
output.files[].mime_type | string | MIME 类型 |
output.files[].duration | number | 时长(秒) |
output.files[].expires_at | string | 文件到期时间,到期后删除,请及时转存 |
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 或账户的并发上限 |
在线测试
在开放平台的在线测试页选择这个模型直接调用,不用写代码;测试按正常价格扣点。未登录会先进入登录页。