分块流式人声分离

原始音频字节直接塞进请求体,服务端解出够一个段就开始回传 WAV 字节。首字节约在 8.5 秒后抵达 — 适合长音频、首字节敏感场景、边下载边转写。

POST /v1/audio-isolation/stream 稳定 v1 更新于 2026-04
输入 · 原始字节流 输出 · 边推边写的 WAV
B
POST
/stream
等待字节流
V
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
采样率 output_sample_rate
人声输出
选好音频后点 开始流式分离
⌘ / Ctrl + ↵ 快捷提交
04

请求与响应

请求体是 原始音频字节 — 不是 multipart。Content-Type 应设置为输入容器的 MIME(audio/mpegaudio/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/mpegaudio/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
tokens · 适配 Claude 4.7 & GPT-5

AI 快速集成

已在主流编码 Agent 上测试通过。包含完整接口契约、错误码和示例。粘贴后说 “用我的技术栈实现这个”