分块流式人声分离
原始音频字节直接塞进请求体,服务端解出够一个段就开始回传 WAV 字节。首字节约在 8.5 秒后抵达 — 适合长音频、首字节敏感场景、边下载边转写。
POST
/v1/audio-isolation/stream
稳定
v1
更新于 2026-04
输入 · 原始字节流
输出 · 边推边写的 WAV
POST
/stream
等待字节流
01
限制与约束
受制于流式契约,输出格式只能是 WAV。其余参数与 sync 接口对齐。
单段时长
60分钟
超过 60 分钟时流会被干净截断,不会报错。
输入格式
WAV · MP3 · FLAC
以及 OGG · AAC · M4A · Opus · WebM。
输出格式
WAV only
流式 WAV 头使用
0xFFFFFFFF sentinel 长度。输出采样率
16 · 24 · 48kHz
由查询参数
output_sample_rate 指定,默认 16000。02
性能指标
待补充 — 会在生产硬件上给出首字节延迟、稳态吞吐、长音频下的显存占用。
首字节延迟
—
P50 / P95(测试中)
稳态吞吐
—
持续推理音频倍率(测试中)
冷启动
—
模型加载时间(测试中)
资源占用
—
RAM / VRAM(测试中)
03
在线体验
选一个音频文件后,浏览器把整个文件 body 直接 POST 到 /v1/audio-isolation/stream。服务端返回的是流式 WAV,页面会在首字节落地时点亮时钟,在结束时播放完整人声。
实时 · POST /v1/audio-isolation/stream
输入音频
点击上传 / 拖拽音频
wav · mp3 · flac · m4a · opus · webm
示例:
clean-speech
quiet-speech
speech-2
采样率
人声输出
选好音频后点 开始流式分离
⌘ / Ctrl + ↵ 快捷提交
04
请求与响应
请求体是 原始音频字节 — 不是 multipart。Content-Type 应设置为输入容器的 MIME(audio/mpeg、audio/wav 等)。响应体是 Transfer-Encoding: chunked 的 WAV 字节流,首字节时服务端写出 WAV 头,随后每个 committed 段落追加到 body。
请求参数(查询串)
| 字段 | 类型 | 要求 | 说明 |
|---|---|---|---|
| output_sample_rate | int | 可选 | 输出采样率,取值 16000 / 24000 / 48000,默认 16000。 |
| output_format | string | 可选 | v1 仅支持 wav。传其他值返回 bad_request。 |
请求体
| 内容 | 类型 | 说明 |
|---|---|---|
| raw bytes | octet-stream | 任意标准音频容器的原始字节。Content-Type 设为容器 MIME(如 audio/mpeg、audio/wav)。不是 multipart。 |
响应
200 OK · chunkedWAV bytes
HTTP/1.1 200 OK Content-Type: audio/wav Transfer-Encoding: chunked x-request-id: req_01HX9KMAR... <RIFF header with 0xFFFFFFFF sentinel sizes> // 44 字节,先到 <PCM int16 LE payload, chunk 1> // 随模型 committed <PCM int16 LE payload, chunk 2> ... <stream closes naturally when input is exhausted>
调用示例
05
错误码
首字节落地前出现的错误走标准 JSON 信封,HTTP 状态码与 sync 对齐。首字节之后的失败只会静默截断响应 — 客户端应把提前结束视作失败并日志里记下 x-request-id。
06
AI 集成 — 一键复制提示词
把提示词粘进 Claude / Cursor / ChatGPT,一分钟内写出能边下载边处理的客户端。
AI-READY PROMPT
用 AI 快速集成
已在主流编码 Agent 上测试通过。包含完整接口契约、错误码和示例。粘贴后说 “用我的技术栈实现这个”。