Skip to content

Suno MIDI

根据歌曲 ID 获取 MIDI 音符数据。该接口可用于绘制钢琴卷帘、旋律分析、音高/节奏可视化,或将歌曲旋律导入编曲工具继续编辑。

接口地址

http
POST /suno/midi

请求参数

参数类型必填默认值说明
audio_idstring-需要获取 MIDI 数据的歌曲 ID
async_modebooleanfalse是否使用异步模式。为 true 时服务端会使用内部回调地址转发给上游

请求示例

json
{
  "audio_id": "222fbe29-6bdb-4344-8f50-d9131304b86b",
  "async_mode": false
}

Python 示例

python
import requests

url = "https://api.yoy-ai.com/suno/midi"

headers = {
    "X-API-Key": "YOUR_API_KEY",
    "Content-Type": "application/json",
}

payload = {
    "audio_id": "222fbe29-6bdb-4344-8f50-d9131304b86b",
    "async_mode": False,
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)

响应说明

响应为上游结果透传,常见字段如下:

字段说明
success请求是否成功
task_id任务 ID
trace_id请求追踪 ID,排查问题时可一并提供
data.stateMIDI 任务状态,常见值如 complete。未完成时以实际上游返回为准
data.instruments乐器音轨列表
data.instruments[].name乐器或音轨名称,例如 Voice Oohs
data.instruments[].notes当前音轨下的音符列表
data.instruments[].notes[].pitchMIDI 音高编号,中央 C 为 60
data.instruments[].notes[].start音符开始时间,单位为秒
data.instruments[].notes[].end音符结束时间,单位为秒
data.instruments[].notes[].velocity音符力度,通常为 0 到 1 的小数

说明:

  • startend 均为音频时间轴上的秒数,可直接与播放器进度、歌词时间轴或波形数据对齐。
  • 同一响应中可能包含多个 instruments,即使 name 相同,也应按独立音轨处理。
  • 音符可能存在重叠,展示钢琴卷帘或统计旋律时不要假设同一音轨内音符一定首尾相接。

响应示例

json
{
  "success": true,
  "task_id": "f3f81b39-a87a-49ca-af03-0ca73469ce8e",
  "trace_id": "7147c2fa-e7d6-45e5-8ae6-3192af52d556",
  "data": {
    "state": "complete",
    "instruments": [
      {
        "name": "Voice Oohs",
        "notes": [
          {
            "pitch": 64,
            "start": 0.828125,
            "end": 1.0260416666666667,
            "velocity": 1
          },
          {
            "pitch": 62,
            "start": 1.6197916666666667,
            "end": 1.8177083333333333,
            "velocity": 1
          },
          {
            "pitch": 65,
            "start": 1.8177083333333333,
            "end": 2.2135416666666665,
            "velocity": 1
          }
        ]
      }
    ]
  }
}

扣费说明

功能扣费产品参考积分
MIDI 查询music:midi0.02