• 用另一种风格重新演绎已有歌曲,异步任务
  • 保留原曲结构,换掉演唱与编曲风格
  • 用 task_id 加 audio_index 引用源曲
POST/v1/music/generations/coverSong

认证

string必填

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

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

请求时在请求头中添加:

Authorization: Bearer YOUR_OAIRoute_KEY

引用源曲

string必填

生成源音轨那次任务的标识。缺失或无法解析源音轨时,提交阶段直接返回 400。

integer可选

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

模式推断规则

custom 不传时会按内容自动推断,规则如下:

情况推断结果
有 prompttrue
无 prompt 但有 gpt_descriptionfalse
都没有,但有 tags 或 titletrue
传了 tags自动按 true 处理

custom: false 时如果没给 gpt_description,提交阶段就返回 400 且不扣费。灵感模式下这个字段是条件必填的。

请求参数

string可选

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

string可选

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

string可选

自定义模型标识,与 version、persona_id 互斥。

boolean可选

true 为自定义模式,用 prompt 作歌词;false 为灵感模式,用 gpt_description。不传时按上表推断。

string可选

歌词内容,仅在 custom: true 时生效。灵感模式下被忽略。

string可选

灵感提示词,custom: false 时必填。

string可选

歌曲标题,仅 custom: true 时生效。

string可选

目标风格标签,通常逗号分隔。仅 custom: true 时生效。传入后系统自动按 custom: true 处理。

string可选

需要排除的风格,仅 custom: true 时生效。

number可选

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

number可选

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

number可选

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

string可选

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

string可选

Persona 风格标识,仅 custom: true 时生效,与 custom_model_id 互斥。

integer可选

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

string可选

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

boolean可选

启用 Max 模式,默认 false。要求自定义模式,按普通售价的 2 倍计费。

string可选

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

响应

integer

响应状态码,成功为 200。

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

提交成功为 submitted。

string

任务唯一标识,用于轮询 GET /v1/music/tasks/{task_id}。

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

怎么描述目标风格

tags 传的是目标风格,不是原曲风格。写的时候按「乐器 + 人声 + 氛围」三层组合:

acoustic guitar, female vocal, intimate, slow

比只写一个 folk 效果好得多。乐器定骨架,人声定呈现,氛围定情绪。

错误

HTTPtype说明
400invalid_request_error请求参数无效,或 custom: false 时缺 gpt_description
401authentication_error身份验证失败
402payment_required账户余额不足
429rate_limit_error请求过于频繁

更多状态码与重试建议见错误码与限流,常见报错的排查步骤见常见问题。

使用示例

提交一个任务并拿到 task_id:

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