• 在已有歌曲的指定时间点之后续写,异步任务
  • 用 continue_at 精确控制接续位置
  • 与「生成音乐」共享大部分参数
POST/v1/music/generations/extend

认证

string必填

所有接口均使用 Bearer Token 进行认证。

获取 API Key:访问控制台 创建。

请求时在请求头中添加:

Authorization: Bearer YOUR_OAIRoute_KEY

引用源音轨

string必填

产出源音轨那次任务的 task_id。缺失或无法定位源音轨时,提交阶段即返回 400。

integer可选

指定源任务结果 data.result.music[] 中的第几首,默认 1。一次生成一般产出两首。

number必填

从源音轨的第几秒开始接续。取值不小于 1,且小于源音轨实际时长,可用小数。

引用源音轨只需 task_id 与 audio_index,不需要额外记录任何 id。上界取决于源音频多长,所以先查一次源任务的 duration 再决定 continue_at。

请求参数

string可选

音频模型,默认 suno,当前只有这一个取值。

string可选

公共模型版本,取值 v6(默认)、v6-wild、v6-mini。使用 custom_model_id 时不要传本字段。

string可选

创建模型任务返回的完整 UUID。与 version、persona_id 三者互斥,只能取其一。

boolean可选

默认 true。为 true 时按 prompt 歌词续写;只有显式传 false 才改用 gpt_description 引导方向。

string可选

续写用的歌词,custom 为 true 时生效。

string可选

灵感描述,仅在显式传入 custom: false 时生效。

string可选

标题,仅 custom 为 true 时生效。

string可选

风格标签,仅 custom 为 true 时生效。注意本端点叫 tags,「生成音乐」那边叫 style。

string可选

需要排除的风格标签,仅 custom 为 true 时生效。

string可选

人声性别,取值 Male 或 Female。两种模式都生效。

number可选

风格权重,取值 0.00 到 1.00。超出范围在提交阶段返回 400。仅 custom 为 true 时生效。

number可选

创意度权重,取值 0.00 到 1.00。兼容旧字段名 weirdness_constraint,新请求建议用 weirdness。

number可选

音频权重,取值 0.00 到 1.00。仅 custom 为 true 时生效。

boolean可选

为 true 时对输入歌词做二次创作。仅 custom 为 true 时生效。

string可选

Persona 风格 ID。仅 custom 为 true 时生效,且与 custom_model_id 互斥。

integer可选

目标生成时长,取值 10 到 360 秒。仅 custom 为 true 时可用,实际时长以结果为准。

string可选

风格变化程度,取值 off、normal、high、extra、max。可省略。

boolean可选

启用 Max 模式,默认 false。要求 custom: true,按普通售价的 2 倍计费。

string可选

输出音频格式,取值 mp3、m4a、wav。

响应

integer

响应状态码,成功为 200。

data[] 的元素字段 · 2 项
string

提交成功为 submitted。

string

任务唯一标识,用于轮询。

轮询时 status 取值 pending、processing、completed、failed,progress 是 0 到 100 的整数但不保证按固定节点推进。完成后从 data.result.music[] 取 audio_url。失败时 data.error.message 给出原因,并自动退回预扣额度。

与生成音乐的区别

项目生成音乐续写延长
风格字段styletags
时长字段durationduration_s
创意度字段weirdness_constraintweirdness(兼容旧名)
custom 默认值falsetrue
必需引用无task_id 加 continue_at

字段名不一致是这套接口最容易出错的地方。照抄生成音乐的请求体过来,style 和 duration 都不会生效。

错误码

错误响应的格式、状态码与重试建议见错误码与限流,常见报错的排查步骤见常见问题。

使用示例

提交一个任务并拿到 task_id:

提交成功只表示任务已受理。真正的产物要拿返回的 task_id 去任务查询接口轮询,status 变成 completed 之后才有结果。