Appearance
Suno MIDI
根据歌曲 ID 获取 MIDI 音符数据。该接口可用于绘制钢琴卷帘、旋律分析、音高/节奏可视化,或将歌曲旋律导入编曲工具继续编辑。
接口地址
http
POST /suno/midi请求参数
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
audio_id | string | 是 | - | 需要获取 MIDI 数据的歌曲 ID |
async_mode | boolean | 否 | false | 是否使用异步模式。为 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.state | MIDI 任务状态,常见值如 complete。未完成时以实际上游返回为准 |
data.instruments | 乐器音轨列表 |
data.instruments[].name | 乐器或音轨名称,例如 Voice Oohs |
data.instruments[].notes | 当前音轨下的音符列表 |
data.instruments[].notes[].pitch | MIDI 音高编号,中央 C 为 60 |
data.instruments[].notes[].start | 音符开始时间,单位为秒 |
data.instruments[].notes[].end | 音符结束时间,单位为秒 |
data.instruments[].notes[].velocity | 音符力度,通常为 0 到 1 的小数 |
说明:
start和end均为音频时间轴上的秒数,可直接与播放器进度、歌词时间轴或波形数据对齐。- 同一响应中可能包含多个
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:midi | 0.02 |