FunASR 是阿里达摩院(ModelScope 团队)开源的工业级语音识别工具包——比 Whisper 快 13 倍、CPU 也能跑、50+ 语言、说话人分离 + 情感识别 + 流式识别开箱即用,还提供 OpenAI 兼容 API 和 MCP Server。
你手里有一段录音、一堆会议文件、一批客服电话,或者想给 AI Agent 接一个语音输入——市面上有几个选择,但都有明显短板:
| 方案 | 痛点 |
|---|---|
| Whisper | CPU 几乎跑不动、需要额外的 pyannote 才能分离说话人 |
| 云端 ASR(OpenAI / Azure / 阿里云) | 贵($0.006/分钟起)、数据出域、定制能力弱 |
| 自己训练模型 | 数据 + 算力 + 算法三重门槛 |
FunASR 做的事:把工业级的语音识别能力(速度、多语言、说话人、情感、流式)全部开源、CPU 也能跑、API 兼容——一句话,能用、好用、用得起。
测试集:184 条长音频,共 192 分钟。来源:官方 Benchmark 报告
| 模型 | GPU 速度 | CPU 速度 | 对比 Whisper-large-v3 |
|---|---|---|---|
| SenseVoice-Small | 170 倍实时 | 17 倍实时 | 快 13 倍 |
| Paraformer-Large | 120 倍实时 | 15 倍实时 | 快 9 倍 |
| Fun-ASR-Nano | 17 倍实时 | 3.6 倍实时 | 快 1.3 倍 |
| Whisper-large-v3-turbo | 46 倍实时 | 不可用 | 快 3.4 倍 |
| Whisper-large-v3 | 13 倍实时 | 不可用 | 基准 |
最炸裂的一行:FunASR 在 CPU 上的速度,比 Whisper 在 GPU 上还快。
| 能力 | FunASR | Whisper | 云端 API |
|---|---|---|---|
| 速度 | 170x 实时 | 13x 实时 | ~1x 实时 |
| 说话人识别 | 内置 | 需 pyannote | 额外付费 |
| 情感识别 | 开心/悲伤/愤怒 | 不支持 | 不支持 |
| 语言数 | 50+ | 57 | 因服务而异 |
| 流式识别 | 支持 WebSocket | 不支持 | 支持 |
| vLLM 加速 | 2-3 倍加速 | 不支持 | N/A |
| 私有部署 | MIT 协议 | MIT 协议 | 仅云端 |
| 费用 | 免费 | 免费 | $0.006/分钟起 |
| CPU 可用 | 17x 实时 | 太慢 | N/A |
来源:README 对比表原文
FunASR 不是单一模型,而是一个模型家族 + 工具链。从 README 的 Model Zoo 可以看到:
| 模型 | 任务 | 语言 | 参数量 | 定位 |
|---|---|---|---|---|
| Fun-ASR-Nano | 识别 + 时间戳 | 31 种语言(含中文方言) | 800M | LLM-based ASR,精度最高 |
| SenseVoice-Small | 识别 + 情感 + 音频事件 | 中/英/日/韩/粤 | 234M | 官方推荐首选——小、快、准 |
| Paraformer-zh | 识别 + 时间戳 | 中/英 | 220M | 中文生产级主力 |
| Paraformer-zh-streaming | 流式识别 | 中/英 | 220M | 实时转写 |
| Qwen3-ASR | 识别 | 52 种语言自动检测 | 1.7B | 最新 Qwen3 系列 |
| GLM-ASR-Nano | 识别 | 17 种语言 | 1.5B | 智谱系列 |
| ct-punc | 标点恢复 | 中/英 | 290M | 标点专用 |
| fsmn-vad | 语音检测(VAD) | 中/英 | 0.4M | 极小,VAD 专用 |
| cam++ | 说话人分离 | — | 7.2M | 说话人识别 |
| emotion2vec+large | 情感识别 | — | 300M | 开心/悲伤/愤怒分类 |
怎么选?官方建议(来自 model_selection.md):
不知道选谁?用 SenseVoice-Small。
- 多语言转写(默认)→ SenseVoice-Small
- 中文生产环境高精度 → Paraformer-Large
- 31 种语言 + LLM-based → Fun-ASR-Nano + vLLM
- 直播字幕 / 实时转写 → Paraformer-zh-streaming + runtime
- 大批量离线处理 → SenseVoice-Small 或 Paraformer-Large
安装:
pip install torch torchaudio
pip install funasr
一段 4 行 Python 代码就能跑起来:
from funasr import AutoModel
model = AutoModel(model="iic/SenseVoiceSmall", vad_model="fsmn-vad", spk_model="cam++", device="cuda")
result = model.generate(input="meeting.wav")
输出——带说话人标签、时间戳和标点的结构化文本:
[00:00.4 → 00:03.8] 说话人0: 我们今天讨论一下 Q3 的计划。
[00:04.2 → 00:07.1] 说话人1: 好的,我有三个要点。
[00:07.5 → 00:12.3] 说话人0: 请讲,我们还有 30 分钟。
一个模型、一次调用——VAD 分段、语音识别、标点恢复、说话人分离全部自动完成。
不需要写 Python 也能用:
# 最简用法:转写音频
funasr audio.wav
# JSON 输出(适合 AI Agent 调用)
funasr audio.wav --output-format json
# 生成 SRT 字幕
funasr audio.wav --output-format srt --output-dir ./subs
# 说话人分离 + 时间戳
funasr audio.wav --spk --timestamps -f json
# 指定模型和语言
funasr audio.wav --model paraformer --language zh
# 批量转写
funasr *.wav --output-format srt --output-dir ./output
可用模型:sensevoice(默认)、paraformer、paraformer-en、fun-asr-nano
一行命令启动服务:
pip install funasr fastapi uvicorn python-multipart
funasr-server --model sensevoice --device cuda
# → POST /v1/audio/transcriptions,地址 localhost:8000
调用方式跟 OpenAI 官方 API 完全一样:
curl \
-F file=@sample.wav \
-F model=sensevoice \
-F response_format=verbose_json
好处:
FunASR 提供官方 MCP Server,能让 Claude / Cursor / 其他 MCP 兼容 Agent 把语音转文字当一个本地工具调用:
官方提供两个集成路径:MCP Server 示例(examples/mcp_server/)和 OpenAI API 示例(examples/openai_api/)
典型场景:
- Agent 收到一段用户语音消息 → 调用 FunASR 转文字 → Agent 继续处理
- 直播字幕 Agent:实时把麦克风音频转成文字
- 会议纪要 Agent:批量转写会议录音 + 自动总结
这一节是本文的重点之一——给你真实可用的配置参考,不夸大、不虚标。
Python ≥ 3.8,一行
pip install funasr就能用。
- 只想跑起来看效果:任何现代电脑(CPU 即可,笔记本都行)
- 本地小批量转写(每天几小时音频):任何现代 CPU,SenseVoice-Small 17 倍实时
- 中等流量生产环境(每天 < 100 小时音频):1 张消费级 GPU(RTX 4090 / A10 级别),16GB VRAM
- 大吞吐 / 实时字幕 / Agent 语音输入:8GB+ VRAM GPU + vLLM 加速(CUDA ≥ 11.8)
- CPU 不可用的例外:Whisper-large-v3 在 CPU 上几乎跑不动——但 FunASR 的同等精度模型在 CPU 上能跑 17 倍实时
Python:≥ 3.8(来源:README Installation 章节)
核心依赖:
pip install torch torchaudio
pip install funasr
vLLM 加速路径额外依赖(vllm_guide.md):
pip install funasr>=1.3.0
pip install vllm>=0.12.0
pip install safetensors tiktoken websockets regex fastapi uvicorn python-multipart
OpenAI 兼容 API 服务额外依赖:
pip install funasr fastapi uvicorn python-multipart
来源:docs/vllm_guide.md(官方明确写出来的硬件需求):
| 部署场景 | 最低配置 | 推荐配置 |
|---|---|---|
| vLLM 加速 + LLM-based ASR(Fun-ASR-Nano) | GPU ≥ 8 GB VRAM,CUDA ≥ 11.8 | GPU 16 GB+ VRAM |
| SenseVoice-Small 推理 | 任何现代 CPU | 任何现代 GPU |
| Paraformer-Large 推理 | 任何现代 CPU | 任何现代 GPU |
| FunASR 官方 Runtime Docker 镜像 | CPU / GPU 都有对应镜像 | — |
官方原话:
Hardware: GPU ≥ 8 GB VRAM, CUDA ≥ 11.8. 16 GB+ recommended.
| 模型 | 参数量 | 推理内存占用 | 适合硬件 |
|---|---|---|---|
| fsmn-vad | 0.4M | 极小 | CPU 即可 |
| cam++(说话人) | 7.2M | 极小 | CPU 即可 |
| Paraformer-zh | 220M | ~1-2 GB | 任何现代设备 |
| SenseVoice-Small | 234M | ~1-2 GB | 任何现代设备 |
| ct-punc(标点) | 290M | ~1-2 GB | CPU 即可 |
| emotion2vec+large | 300M | ~1-2 GB | 任何现代设备 |
| Fun-ASR-Nano | 800M | ~3-4 GB | 8GB+ VRAM 推荐 |
| Qwen3-ASR | 1.7B | ~6-8 GB | 16GB+ VRAM 推荐 |
| GLM-ASR-Nano | 1.5B | ~5-7 GB | 12GB+ VRAM 推荐 |
| Whisper-large-v3 | 1550M | ~5-6 GB | 10GB+ VRAM 推荐 |
注:内存占用是按官方 PyTorch 推理估算的常见值,实际可能因 batch size、序列长度、动态 VAD 设置等有波动。
来源:docs/deployment_matrix.md
| 部署路径 | 适合场景 | 起步方式 |
|---|---|---|
| Colab Notebook | 浏览器跑体验 / 分享 demo | funasr_quickstart.ipynb |
| Python API | 笔记本 / 离线任务 / 首次模型评估 | from funasr import AutoModel |
| OpenAI 兼容 API | 私有语音 API、Agent、Dify/LangChain/AutoGen 客户端 | funasr-server --model sensevoice --device cuda |
| Docker Compose API | 可复现的本地服务 / 内部小服务 | examples/openai_api/docker-compose.yml |
| Kubernetes API | 集群内部服务 | examples/openai_api/kubernetes/(默认 CPU,要 CUDA 需自配镜像) |
| Runtime WebSocket 服务 | 直播字幕、会议、呼叫中心流 | runtime/readme.md |
| vLLM 加速 | Fun-ASR-Nano 高吞吐 | vllm_guide.md |
| MCP Server | Claude / Cursor / 桌面 Agent 语音工具 | examples/mcp_server/(参考路径) |
| Triton Runtime | 专业级高性能推理服务(已有 Triton 经验的团队) | runtime/triton_gpu/README.md |
官方 Deployment Matrix 文档 给的路径是:
生产环境 checklist(官方 Deployment Matrix 推荐):
如果你的需求是:
一个真实数字(来自 vllm_guide.md benchmark):
184 个文件、11,541 秒(约 3.2 小时)音频,单卡 GPU 上 vLLM batch 模式跑 Fun-ASR-Nano,RTFx = 340——意味着 1 小时音频约 10.6 秒转完。
Q:FunASR 是中国人做的吗?能用中文吗?
A:是阿里达摩院 ModelScope 团队主导的。中文是 FunASR 的强项母语——Paraformer-Large 在中文生产环境用了很多年,SenseVoice-Small 234M 参数在中英日韩粤上效果都不错。31 种语言支持里包含多种中文方言。
Q:跟 Whisper 怎么选?
A:官方 migration_from_whisper.md 的建议是:
- 想纯离线 / 私有化 → FunASR(CPU 也能跑、不用 GPU 也能 17x 实时)
- 想多语言 + 说话人 + 情感 → FunASR 一行代码全搞定
- 想翻译(音频 → 另一种语言的文字) → Whisper(FunASR 不做翻译)
- 想生态丰富 / Python 社区支持多 → Whisper 略胜
Q:能在 Mac(M1/M2/M3)上跑吗?
A:能。device="cpu" 或 device="mps"(PyTorch Apple Silicon)。SenseVoice-Small / Paraformer 在 Mac 上推理速度通常比 Linux + 同档 CPU 快(Metal 加速)。
Q:怎么从 Whisper 迁移?
A:官方提供了 migration guide + migration benchmark 示例。建议步骤:
1. 选 20-50 个代表性音频文件
2. 同样的输入分别跑 Whisper 和 FunASR
3. 记录转写质量(WER/CER)、延迟、显存/内存、费用
4. 用 OpenAI 兼容 API 跑一遍烟囱测试
5. 灰度切换
Q:商业项目能直接用吗?
A:能。MIT 协议——允许商用、修改、闭源分发。不用付授权费。
Q:能在浏览器里跑吗?
A:有 Gradio demo,可以在自己服务器上搭 Web UI。但纯浏览器内运行(如 WebAssembly)不在官方支持范围——模型太大。
Q:模型文件从哪里下载?
A:ModelScope(国内,下载快)和 HuggingFace(国外)。README 的 Model Zoo 表里每行都给了两个链接:
FunASR 给中文 AI 生态贡献了一个真正工业级、开源、可商用的语音识别底座。这件事对中国开发者的实际意义是:
对个人开发者的实际意义:
- 会议纪要、播客转字幕、客服质检、Agent 语音输入——这些需求 FunASR 几乎都能 4 行代码搞定
- 不需要懂 PyTorch、不需要懂模型部署——pip install funasr 就能用
- 真要部署服务,从 Colab → 本地 → Docker → K8s 都有官方模板
对企业的实际意义:
- 替代云端 ASR 的 TCO(总拥有成本)在中等流量以上显著更低
- 数据合规自带——私有化部署是 MIT 协议明确允许的
- 多个模型可选(Paraformer / SenseVoice / Fun-ASR-Nano / Qwen3-ASR / GLM-ASR-Nano)——按场景选最合适的
你用过 FunASR / Whisper / 云端 ASR 哪个?什么场景下用?转写效果怎么样?评论区聊聊。
💬 评论区