模型选择指南
第一次选择模型、评估是否从 Whisper 或云端 ASR 迁移,或者准备通过 OpenAI 兼容 API 暴露模型别名时,可以先看这份指南。
默认快速路径
如果还不确定,先从 SenseVoice-Small 开始。它适合 demo、私有 API、多语种转写、带说话人信息的会议转写和 Agent 语音输入。
from funasr import AutoModel
model = AutoModel(
model="iic/SenseVoiceSmall",
vad_model="fsmn-vad",
spk_model="cam++",
device="cuda", # 便携 smoke test 可改为 "cpu"
)
result = model.generate(input="meeting.wav")
决策表
| 需求 | 优先尝试 | 原因 | 下一步文档 |
|---|---|---|---|
| 快速多语种私有转写 | SenseVoice-Small | 兼顾 ASR、情感标签、音频事件标签和 CPU 可用性。 | 教程 |
| 中文生产 ASR | Paraformer-Large | 成熟中文 ASR 路径,可组合 VAD 和标点。 | 教程 |
| API 示例中的英文路由 | paraformer-en | 适合在 OpenAI 风格客户端里验证较轻量英文路径。 | OpenAI API |
| LLM-based ASR 或 31 语种实验 | Fun-ASR-Nano | LLM-based 模型路径;解码吞吐敏感时配合 vLLM。 | vLLM 指南 |
| 实时字幕或客服流式音频 | Runtime WebSocket 服务 | 面向长连接流式会话和中间结果。 | 实时示例 |
| 从 Whisper/云端 ASR 迁移 | 先用 SenseVoice-Small | 先建立强基线,再做模型专项调优。 | 迁移指南 |
OpenAI 兼容 API 别名
examples/openai_api 服务提供短别名,应用团队不需要了解具体模型仓库 ID。
| Alias | 底层路径 | 适合场景 |
|---|---|---|
sensevoice | iic/SenseVoiceSmall | 默认私有语音 API,多语种 ASR、事件标签和 CPU/GPU 行为较均衡。 |
paraformer | paraformer-zh | 中文生产流量优先尝试。 |
paraformer-en | paraformer-en | OpenAI 风格客户端里的英文轻量路由。 |
fun-asr-nano | FunAudioLLM/Fun-ASR-Nano-2512 | 评估 LLM-based ASR、31 语种覆盖或 vLLM 加速。 |
curl http://localhost:8000/v1/models
python examples/openai_api/smoke_test.py --base-url http://localhost:8000 --model sensevoice
按工作负载选择运行路径
| 工作负载 | 运行路径 | 说明 |
|---|---|---|
| Notebook 或一次性评估 | Python AutoModel | 验证安装、模型下载和输出结构的最短路径。 |
| 内部 HTTP 服务 | OpenAI 兼容 API | 复用 OpenAI 风格客户端、Dify、n8n、LangChain、AutoGen 和 HTTP 节点。 |
| 可复现本地容器 demo | Docker Compose API | CPU-first smoke test;使用 CUDA 前先适配镜像。 |
| 集群内私有服务 | Kubernetes API 模板 | 私有 ClusterIP、持久化模型缓存、健康检查和 port-forward smoke test。 |
| 实时音频 | Runtime WebSocket 服务 | 用真实音频验证分块、VAD、断句、重连和客户端背压。 |
| LLM-based ASR 吞吐 | Fun-ASR-Nano 的 vLLM 路径 | vLLM 加速自回归解码;不适用于非自回归 Paraformer。 |
选择部署方式时可以参考 部署选型表。
上线前先 benchmark
- 准备 20-50 条音频,覆盖短音频、长会议、静音、噪声、多人重叠、领域词汇和目标语言。
- 记录模型名、模型版本、FunASR 版本、设备、CPU/GPU 型号、CUDA/PyTorch 版本、运行路径、batch size,以及是否排除 warmup/模型下载时间。
- 使用已有 WER/CER 流程或人工审阅,不要只看转写文本是否“读起来还行”。
- 同时记录延迟、吞吐、内存、失败样例和上传大小限制。
- 保留至少一个公开样例用于 smoke test,也保留至少一个真实私有样本用于部署验证。