MOSS-Transcribe-Diarize
FunASR 接入 OpenMOSS 发布的 Apache-2.0 第三方模型 OpenMOSS-Team/MOSS-Transcribe-Diarize。它一次生成长音频转写、时间戳和 S01、S02 等匿名说话人标签,不需要外挂 VAD 或说话人流水线。
输出契约
| 字段 | 含义 |
|---|---|
text | 移除 MOSS 控制标记后的可读转写。 |
timestamp | 毫秒级 segment 起止时间。 |
sentence_info | 包含 start、end、text 与匿名 spk 的统一分段。 |
raw_text | 保留供审计的原始带标记生成。 |
FunASR OpenAI 兼容服务
python -m pip install "transformers>=5.6,<6" fastapi uvicorn python-multipart
funasr-server --model moss-transcribe-diarize --device cuda:0 --port 8000
curl -fsS http://127.0.0.1:8000/v1/audio/transcriptions \
-F file=@meeting.wav \
-F model=moss-transcribe-diarize \
-F response_format=verbose_json响应保留模型原生匿名 speaker segments。即使通用客户端传入 spk=true,服务也不会为 MOSS 启动第二套说话人模型。
部署路径
| 路径 | 适合场景 | 契约 |
|---|---|---|
| FunASR 服务 | 自托管 HF GPU 接口、Docker Compose 或 Kubernetes。 | verbose_json 返回 speaker segments。 |
| vLLM | 已有 vLLM 调度和原生音频接口。 | diarized_json,可由 FunASR AutoModel 统一。 |
| SGLang Omni | 使用其原生 MOSS pipeline。 | verbose_json,FunASR 校验说话人前缀后统一。 |
| LocalAI / moss-transcribe.cpp | 第三方 GGUF CPU 或桌面边缘路径。 | 独立 C++ 实现,必须单独验证输出。 |
| FunClip | 生成带说话人的 SRT 与片段。 | 消费统一 sentence_info。 |
真实服务 smoke
在一张 H100 80GB、Transformers 5.16.0.dev0、Torch 2.11.0+cu130 和模型 revision e8681d68 上,真实 FunASR HTTP 接口处理仓库 6.0 秒样例后返回 HTTP 200、duration=6.0 和一个非空、时间单调、标记为 S01 的 segment。这只证明服务契约,不代表准确率、吞吐、并发或容量。
生产边界
- MOSS 由 OpenMOSS 发布和维护;FunASR 负责适配器与部署契约。
- HF 路径使用
trust_remote_code,必须固定并审计模型 revision。 - MOSS 是离线长音频模型,不接入实时 WebSocket 服务。
- 说话人标签是匿名聚类标签,不是已知人物身份或声纹认证。
- 需要全局说话人连续性时,不要在外部用 VAD 切碎会议音频。