部署合同

MOSS 统一转写与说话人分离

通过 FunASR AutoModel 或 OpenAI 兼容服务接入 OpenMOSS 发布的第三方 Apache-2.0 模型,一次生成长音频转写、时间戳和说话人标签。

成熟度
社区验证
FunASR
AutoModel adapter@a3a2de0a; third-party model@e8681d68
运行时
Transformers 5.16.1 + vLLM 0.23.1rc1.dev949+g68b4a1d58 / Torch 2.11.0+cu129 / H100 80GB
验证日期
2026-08-29

适用边界

先判断它是否适合你的生产约束

适合

  • 会议、访谈、播客和通话的多人长音频
  • 希望通过同一个模型输出文本、时间戳与说话人编号
  • 已有 NVIDIA GPU,并需要 OpenAI 兼容的音频转写接口

不适合

  • 实时流式字幕或低延迟端点检测
  • CPU、桌面边缘设备或 Windows 原生部署
  • 要求 FunASR 自有模型权重的项目
模型OpenMOSS-Team/MOSS-Transcribe-Diarize (third-party Apache-2.0 model)
硬件nvidia-gpu / kubernetes
操作系统Linux
接口OpenAI-compatible HTTP / vLLM / SGLang Omni / Transformers

运行路径

从安装到已知音频验证

以下命令来自当前验证清单;上线前固定依赖、模型和硬件。

安装

uv venv --python 3.12 .venv-moss && uv pip install --python .venv-moss/bin/python -U 'vllm[audio]' --torch-backend=auto --extra-index-url https://wheels.vllm.ai/68b4a1d582818e67adc903bf1b8fc5a5447da2fa/cu129
HF_HUB_ENABLE_HF_TRANSFER=1 hf download OpenMOSS-Team/MOSS-Transcribe-Diarize --revision e8681d68e7042738ffca8ac8212bc8fcb1131ab8 --local-dir .models/moss-transcribe-diarize

启动

CUDA_VISIBLE_DEVICES=0 .venv-moss/bin/vllm serve OpenMOSS-Team/MOSS-Transcribe-Diarize --revision e8681d68e7042738ffca8ac8212bc8fcb1131ab8 --served-model-name moss-transcribe-diarize --trust-remote-code --host 127.0.0.1 --port 8898

健康检查

curl -fsS http://127.0.0.1:8898/health
curl -fsS http://127.0.0.1:8898/v1/models

Smoke test

发布前必须通过的最小验证

curl -fsS http://127.0.0.1:8898/v1/audio/transcriptions -F file=@runtime/llama.cpp/tests/sample.wav -F model=moss-transcribe-diarize -F response_format=json -F temperature=0 | tee /tmp/moss-transcription.json
python - <<'PY'
import json

with open('/tmp/moss-transcription.json', encoding='utf-8') as stream:
    payload = json.load(stream)
text = payload.get('text', '')
assert text.strip(), payload
assert '[S01]' in text, text
print(text)
PY
python - <<'PY'
from funasr import AutoModel

model = AutoModel(model='OpenMOSS-Team/MOSS-Transcribe-Diarize', backend='vllm', vllm_base_url='http://127.0.0.1:8898/v1', vllm_model='moss-transcribe-diarize', disable_update=True)
result = model.generate('runtime/llama.cpp/tests/sample.wav')[0]
assert result['raw_text'] and result['sentence_info'], result
print(result['text'])
print(result['sentence_info'])
PY

运行与容量

把可运行推进到可运营

运行检查

  • 固定模型 revision、FunASR adapter merge、vLLM nightly commit、CUDA/Torch 与 trust_remote_code 审计结果
  • 用真实会议验证说话人一致性、重叠语音、长静音、时间戳和最大生成长度
  • FunASR AutoModel 保留 raw_text,并统一返回 text、timestamp 和带 spk 的 sentence_info;直接调用 vLLM 时 json 仍是原始 [Sxx] 标记文本

容量变量

  • 音频时长、语言、声道和 VAD 分段分布
  • 并发、队列等待、预热与模型缓存状态
  • 精确硬件、驱动、运行时和线程配置

故障排查

  • 启动前确认 CUDA 12 使用 cu129 nightly 源,CUDA 13 使用上游文档列出的 cu130 源
  • 长音频被截断时提高 max_completion_tokens,并同时监控显存、延迟和输出完整性
  • 直接调用 vLLM 时 json 没有 segments 字段是当前接口边界;使用 FunASR AutoModel 归一化结果,或改用并单独验证 SGLang Omni verbose_json

安全边界

生产入口默认不信任

已知限制

这是 OpenMOSS 的第三方模型,不是 FunASR 模型;“无需外部 VAD”不表示模型内部没有分块或分段。当前 vLLM 路径固定 nightly commit,升级前必须重跑真实多人长音频。

公开基准仅用于复现起点,不替代目标业务负载测试。

证据与反馈

从原始资料核对部署合同