Dev Spec v2 · ← 返回文档首页

03 接口规格

前缀 /api/snd/v1。匿名可用的接口通过 X-Anon-Id 识别;其余接口需要登录。

1. 上传

方法 路径 说明
POST /uploads {"filename","size","content_type","role":"vocal|backing|original|reference|cover_image"} → 分片上传地址(16MB 一片)
POST /uploads/{id}/complete 合并并运行 probe → 时长、格式、响度

限制:唱歌模式音频 ≤ 10 分钟、≤ 200MB;说话模式 ≤ 3 小时(音频)/ 2 小时(视频)。

2. 作品

方法 路径 说明
POST /works 创建作品(见下)→ 自动开始处理;额度不足返回 QUOTA_EXCEEDED 和升级链接
GET /works/{id} 状态、进度(按步骤)、结果(前后对比试听链接、视频预览、指标)
PATCH /works/{id} 修改参数(曲风、强度、歌词、视频模板)→ 从受影响的步骤开始重新渲染,不重复扣额度
POST /works/{id}/export {"formats":["mp3","wav","video","stems","vocal_safe"]} → 按权益和伴奏来源校验;原曲伴奏作品请求 mp3/wav/video/stems 返回 EXPORT_NOT_ALLOWED_FOR_SOURCE,只允许 vocal_safe;返回下载链接
POST /works/{id}/lyrics 粘贴歌词 → 重新对齐
DELETE /works/{id} 删除作品及文件
// POST /works(唱歌模式)
{
  "mode": "sing",
  "sources": {"vocal": "upl_...", "original": "upl_..."},       // 或 "backing": "upl_..."
  "params": {
    "genre": "pop", "tune_strength": 0.7, "keep_vibrato": true,
    "reference": "original", "timing": false,
    "master_reference": null, "video_template": "cover_blur",
    "title": "...", "artist_display": "..."
  },
  "consent": {"text_version": "2026-09-v1", "own_voice": true, "backing_rights": "original"}
}
  • own_voice:确认人声是用户本人的声音(必填)
  • backing_rights:上传伴奏时必填:"licensed"(确认有权使用,勾选存证);上传原曲时为 "original",系统据此把作品标为 original_separated,只能导出发布安全版人声

3. 工具箱

方法 路径 说明
POST /tools/pitch-score {"vocal":"upl_...","original":"upl_..."} 或 {"vocal":"upl_...","key":"C major"} → 任务 ID
POST /tools/separate {"source":"upl_...","stems":2}
POST /tools/transpose {"source":"upl_...","semitones":-2,"tempo":1.0}
POST /tools/key-bpm {"source":"upl_..."}
GET /tools/runs/{id} 结果 + 分享图链接
POST /tools/runs/{id}/to-work 用同样的文件直接创建修音作品(登录后)

4. 说话模式

与唱歌模式共用 /works,mode="talk";参数见 05 文档:

{"mode":"talk","sources":{"main":"upl_..."},"params":{"edit_level":"standard","loudness":"podcast",
 "subtitles":{"enabled":true,"language":"en","translate_to":null,"burn_in":true,"style":"clean_white"},
 "keep_words":["like"],"speakers":{"S1":"Amy"}}}

用户编辑器接口:

方法 路径 说明
GET /works/{id}/workspace 转写、剪辑表、波形、代理音频
PUT /works/{id}/edl 保存剪辑表新版本(带 base_version,冲突返回 409)→ 自动重新渲染

5. 订阅

由底座 core.billing 处理;本产品只读取 core.entitlements。前端通过 GET /me/entitlements 显示额度和权益。

6. 后台 /api/snd/admin/v1

路径 说明
/presets 曲风预设的版本管理(改动后必须先跑回归)
/regression 回归测试结果
/stats/daily 作品数、成功率、耗时、免费转付费、水印回流、工具使用、成本
/exceptions 异常(通常只有反复失败的作品)