分轨(人声伴奏分离)API

更新于 2026-09-15 · Suno-API 团队

开发者指南: 两轨与十二轨怎么选、轨道查询和 MIDI 导出

接口说明

分轨用于把已有歌曲拆分为人声、伴奏或多轨结果。推荐按以下流程接入:

  1. 如果源音频不是本平台生成的歌曲,可先调用 上传源音频 API。
  2. 调用 POST /api/music/separate 提交分轨任务。
  3. 使用 歌曲查询 API 轮询分轨结果。
  4. 使用下载接口下载每条分轨结果的音频文件。

接口地址: POST /api/music/separate

计费: 收费。stem_mode=two 当前生产价格 1.2 元/次;stem_mode=twelve 为多轨拆分,当前生产价格 3.0 元/次。实际扣费以后台价格配置为准。

等待时间与超时(重要):本接口是同步接口,响应返回时才代表订单已被受理并提交生成。实测多数请求 1–3 秒返回,约 10% 超过 30 秒,最长约 230 秒。请把客户端超时设置为 300 秒以上;未收到响应不等于没有生成,超时后请勿立即重试(会重复下单、重复扣费)。 连接中断可稍后用 GET /api/music/songs 确认。详见新版 API 总览的「等待时间与超时设置」。

认证

参数名 类型 必填 说明
Authorization string 是 Bearer YOUR_API_KEY
Content-Type string 是 application/json

请求参数

参数名 类型 必填 默认值 说明
song_id string 是 - 要分轨的源歌曲 ID
stem_mode string 是 - 分轨模式:two 或 twelve
model string 否 suno-v6 仅用于渠道与日志兼容;分轨使用平台固定模型,传不传都不会改变分轨模型与价格
source_audio_url string 否 - 源音频 URL
source_file_name string 否 - 源音频文件名
source_title string 否 - 源歌曲标题

stem_mode 说明

值 返回条数 说明
two 4 条 两轨分离:人声 + 伴奏。一次提交会出 2 个版本 × 2 轨
twelve 24 条 多轨拆分:2 个版本 × 12 轨,轨道名见下表

分轨说明

分轨是独立的固定能力,不需要填写或选择歌曲生成模型。客户只需提交源歌曲和 stem_mode;服务端会按分轨模式处理。model 字段仅为兼容保留,可以不传。

条数怎么来的:一次提交会产出 2 个版本(同一批素材的两种结果),所以条数 = 2 × 该模式的轨道数:two 是 4 条,twelve 是 24 条。 请以响应里 clips 数组的实际长度为准,不要按固定条数写死循环(个别轨道可能失败,成功的轨道照常返回)。

各模式返回哪些轨道

twelve 模式的 12 条轨道(名称由平台固定给出,顺序可能变化):

# 轨道标题 说明
1 (Vocals) 主唱人声
2 (Backing Vocals) 和声 / 背景人声
3 (Drums) 鼓组
4 (Bass) 贝斯
5 (Guitar) 吉他
6 (Keyboard) 键盘 / 钢琴类
7 (Percussion) 打击乐
8 (Strings) 弦乐
9 (Synth) 合成器
10 (FX) 音效 / 环境声
11 (Brass) 铜管
12 (Woodwinds) 木管

two 模式返回 (Vocals) 与 (Instrumental) 两条轨道,各 2 个版本。 two / twelve 的轨道标题都是固定名(不带来源歌曲名),别指望从标题里看出是哪首歌。

轨道标题不能当唯一键。 两个版本里会出现同名轨道(例如两条 (Vocals)、两条 (Strings)), 而且一次分轨会返回多条轨道。请一律用 song_id 作为标识,song_title 只用于展示; 也不要用数组下标(顺序可能变化)。

请求示例

人声 / 伴奏分离(stem_mode: "two")

curl -X POST https://www.suno-api.io/api/music/separate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "song_id": "source_clip_id",
    "stem_mode": "two",
    "source_audio_url": "https://example.com/source.mp3",
    "source_file_name": "source.mp3",
    "source_title": "Source Song"
  }'

多轨拆分(stem_mode: "twelve")

curl -X POST https://www.suno-api.io/api/music/separate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "song_id": "source_clip_id",
    "stem_mode": "twelve",
    "source_audio_url": "https://example.com/source.mp3"
  }'

响应结果

成功后通常会返回分轨结果数组。每个分轨结果都是一个独立歌曲 clip,需要继续查询直到 status 变为完成状态。

{
  "code": 200,
  "message": "success",
  "data": {
    "clips": [
      {
        "song_id": "stem_clip_id_1",
        "song_title": "(Vocals)",
        "status": "pending",
        "generation_type": "separate",
        "created_at": "2026-06-06T10:00:00Z"
      },
      {
        "song_id": "stem_clip_id_2",
        "song_title": "(Instrumental)",
        "status": "pending",
        "generation_type": "separate",
        "created_at": "2026-06-06T10:00:00Z"
      }
    ]
  }
}

上面只展示了 two 模式其中 2 条,实际会返回 4 条(2 个版本 × {(Vocals)、(Instrumental)}); twelve 模式会返回 24 条。真实条数以 clips 数组长度为准。

客户一般只需要保存 clips[].song_id,后续查询和下载都围绕这些 ID 进行。

批次与版本字段

需要自行归并历史结果时,使用分轨列表接口:

GET /api/music/songs?stem_only=1&source_song_id=<source_song_id>

优先按 stem_batch_id 分组;同一次提交的所有成功、处理中和失败结果共享该值。 如果历史数据的 stem_batch_id 为空,可再用 client_request_id 分组。

字段 说明
stem_batch_id 一次分轨提交的稳定批次键,首选归并字段
client_request_id 请求关联键;列表接口会无损返回,供兼容和排障使用
client_request_index 本次响应中的结果序号,从 0 开始
stem_version_index 版本号:0 = 版本 1,1 = 版本 2
stem_task / stem_type_group_name / title 分轨模式及轨道身份

不要把 created_at 或 client_request_index 当作版本号。V1/V2 必须以 stem_version_index 为准;同一首歌连续发起两次分轨时,两次会有不同的 stem_batch_id。

注意事项

查询分轨结果

提交成功后,使用 clips[].song_id 调用 POST /api/music/query 查询结果。

curl -X POST https://www.suno-api.io/api/music/query \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "song_ids": "stem_clip_id_1,stem_clip_id_2"
  }'

查询完成示例:

[
  {
    "song_id": "stem_clip_id_1",
    "song_title": "(Vocals)",
    "status": "complete",
    "audio_url": "https://...",
    "cover_url": "https://...",
    "duration": 180.5,
    "generation_type": "separate",
    "stem_from_id": "source_clip_id"
  }
]

下载分轨文件

分轨结果完成后,可用下载接口下载单个分轨文件。

接口地址: POST /api/music/download-file

curl -X POST https://www.suno-api.io/api/music/download-file \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "song_id": "stem_clip_id_1",
    "kind": "audio"
  }' \
  --output stem.mp3

kind 支持:

kind 说明
audio / song / music 下载 MP3 音频
cover / image 下载封面
wav 下载 WAV 音频
video / mp4 下载视频

如需打包下载某条分轨结果的相关资源,可调用:

curl -X POST https://www.suno-api.io/api/music/download-all \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "song_id": "stem_clip_id_1"
  }' \
  --output stem-resources.zip

状态说明

状态 说明
pending 已提交,等待处理
queued 排队中
generating / processing 处理中
complete / completed 已完成
error / failed 失败,请查看 error_message

常见错误

HTTP 状态 说明 处理建议
400 参数错误,例如缺少 song_id 或 stem_mode 检查请求参数
401 API Key 无效或未传 检查 Authorization
402 余额不足 充值后重试
409 源歌曲暂时无法处理 检查 song_id 或稍后重试
500/503 服务或平台临时异常 稍后重试或联系技术支持

兼容说明

旧版文档中曾使用 success/task_id/vocals_url/instrumental_url 这类单对象示例。当前新版分轨以 clips[] 歌曲数组为准,每条分轨结果都拥有独立 song_id,后续查询和下载都围绕这些 song_id 进行。

相关接口

下一篇人声去除 API

开始接入

注册后即可在控制台创建 API Key,0.6 元一次固定生成 2 首,下载不限次数。

免费注册 查看完整文档