适用边界
先判断它是否适合你的生产约束
适合
- 会议、访谈、播客和通话的多人长音频
- 希望通过同一个模型输出文本、时间戳与说话人编号
- 已有 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
安全边界
生产入口默认不信任
- 把服务绑定内网,由网关完成认证、TLS、限流及音频大小/时长限制
- 固定并审计 trust_remote_code 对应的模型 revision,不执行浮动 main 代码
- 隔离模型缓存、上传临时目录和生成日志,按数据保留策略清理原始音频
已知限制
这是 OpenMOSS 的第三方模型,不是 FunASR 模型;“无需外部 VAD”不表示模型内部没有分块或分段。当前 vLLM 路径固定 nightly commit,升级前必须重跑真实多人长音频。
公开基准仅用于复现起点,不替代目标业务负载测试。
证据与反馈