从音频生成 MIDI
本页由 ModelFold 文档站根据上游官方 OpenAPI 文档同步生成。接口路径、参数、示例与官方保持一致;品牌与 API 域名已替换为 ModelFold。
接口
POST /jobs/createTask
完整 URL: https://ai.modelfold.online/v1/jobs/createTask
鉴权:所有请求都需要
Authorization: Bearer <API_KEY>请求头。
文档已更新
若你此前已完成对接,仍可前往旧版文档查看:旧版地址 (https://ai.modelfold.online/docs/)
将分离后的音轨转换为 MIDI 格式,为每个乐器提供详细的音符信息。
使用指南
- 将分离后的音轨转换为包含音高、时间和力度信息的结构化 MIDI 数据
- 需要已完成的人声分离任务 ID(来自人声分离 API)
- 为检测到的多个乐器生成 MIDI 音符数据,包括鼓、贝斯、吉他、键盘等
- 适用于音乐转谱、记谱、混音或教育分析
- 在清晰、分离良好且乐器部分明确的音轨上效果最佳
前置条件
必须先完成人声分离
您必须首先使用 人声与乐器分离 API,然后才能生成 MIDI。
TIP
本接口免费。
参数说明
| 参数名称 | 类型 | 是否必需 | 说明 |
|---|---|---|---|
task_id | string | 必填 | 已完成的人声分离任务 ID |
callBackUrl | string | 必填 | 接收 MIDI 生成完成通知的回调 URL |
audio_id | string | 可选 | 分离回调中 vocal_removal_info.origin_data[].id 的某一轨 id;不传则对全部音轨生成 MIDI。 |
开发者注意事项
- 请设置 callBackUrl 接收音符数据。事后获取音符请用 GET /api/v1/midi/record-info?taskId=…。
- 每个音符包含:
pitch(MIDI 音符编号)、start(秒)、end(秒)、velocity(0-1) - 不是所有乐器都会被检测到 - 取决于音频内容
- 轮询 GET /api/v1/jobs/recordInfo 时 resultJson.resultObject 只有概要字段;音符数据在回调(data.instruments[].notes[])或 /api/v1/midi/record-info 中获取。
请求参数
请求体 (application/json)
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 模型名称 示例:ai-music-api/generate-midi-from-audio。 |
callBackUrl | string | 否 | 接收生成任务完成更新的 URL。可选但建议在生产环境中使用。 - 当生成完成时,系统将向此 URL POST 任务状态和结果 - 回调包含生成的 URL 和任务信息 - 您的回调端点应接受包含结果的 JSON 负载的 POST 请求 - 或者,使用获取任务详情端点轮询任务状态 - 为确保回调安全性,请参阅 Webhook 校验指南 了解签名验证实现方法 示例: https://example.callback。 |
input | object | 是 | 生成任务的输入参数 |
input.task_id | string | 是 | 已完成的人声分离任务 ID。这应该是从人声与乐器分离端点返回的 task_id。 示例:5c79****be8e。 |
input.audio_id | string | 否 | 分离回调中 vocal_removal_info.origin_data[].id 的某一轨 id;不传则对全部音轨生成 MIDI。 示例:8ca376e7-******-08aaf2c6dd27。 |
请求示例
bash
curl -X POST "https://ai.modelfold.online/v1/jobs/createTask" \
-H "Authorization: Bearer $MODELFOLD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "ai-music-api/generate-midi-from-audio",
"callBackUrl": "https://example.callback",
"input": {
"task_id": "5c79****be8e",
"audio_id": "8ca376e7-******-08aaf2c6dd27"
}
}'json
{
"model": "ai-music-api/generate-midi-from-audio",
"callBackUrl": "https://example.callback",
"input": {
"task_id": "5c79****be8e",
"audio_id": "8ca376e7-******-08aaf2c6dd27"
}
}响应
200 — MIDI 生成任务创建成功
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
code | integer | 否 | 请求状态码。请求失败时 HTTP 状态仍为 200,请始终以本字段判断:200 表示成功,其他值均表示失败,原因见 msg。常见值:401 API key 无效或缺失;402 积分不足;429 超出频率限制;422 或 500 请求未能处理(请先查看 msg、检查参数,再决定是否重试)。 示例:200。 |
msg | string | 否 | 响应消息 示例:success。 |
data | object | 否 | 包含任务信息的响应数据 |
data.taskId | string | 否 | MIDI 生成任务的唯一标识符。使用此 ID 查询任务状态或接收回调结果。 示例:5c79****be8e。 |
json
{
"code": 200,
"msg": "success",
"data": {
"taskId": "5c79****be8e"
}
}