FunASR 跑进 llama.cpp:中文语音识别的 whisper.cpp 替代品(CPU、零 Python、下载即用)
whisper.cpp 是端侧语音识别的事实标准——单个自包含二进制、CPU 就能跑、零依赖。但 Whisper 在中文上偏弱。现在 FunASR 有了 llama.cpp / GGUF 运行时:一样的"下载即用"体验,**单个静态二进制、零 Python、内置 VAD、吃任意音频**,而且在中文 CPU 上比 whisper.cpp 准约 2.7 倍。
3 步跑通(全部实测)
# 1. 下预编译二进制(linux-x64 / linux-arm64 / macos-arm64 / windows-x64)
wget https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.1.1/funasr-llamacpp-linux-x64.tar.gz
tar xzf funasr-llamacpp-linux-x64.tar.gz
# 2. 一条命令下模型(无需 torch / funasr 环境)
bash download-funasr-model.sh sensevoice
# 3. 转写 —— 直接打印文字
./llama-funasr-sensevoice -m funasr-gguf/sensevoice-small-f16.gguf \
--vad funasr-gguf/fsmn-vad.gguf -a audio.wav
# -> 开放时间早上九点至下午五点
没有 Python、没有编译、没有依赖地狱——下二进制、下模型、跑,出中文文字。和 whisper.cpp 一模一样的手感。
你能得到什么
| 模型 | 特点 | 速度(CPU) |
|---|---|---|
| SenseVoice | 多语种 + 语种/情感/事件标签 | ~20× 实时 |
| Paraformer | 非自回归,最快 | ~22× 实时 |
| Fun-ASR-Nano | LLM-ASR,最准 | LLM 解码 |
- 内置 FSMN-VAD:长音频自动分段(`--vad fsmn-vad.gguf`),裸二进制即达参考精度,无需 Python 前端
- 任意音频:wav / mp3 / flac、任意采样率/声道,二进制内部重采样
- 4 平台预编译:Linux x64/arm64、macOS arm64、Windows x64(Release);其它平台一条 CMake 命令自构建
中文 CPU 上 vs whisper.cpp
184 段中文音频、同机 CPU 8 线程、字符级 CER(越低越准):
| 系统 | CER ↓ | 体积 |
|---|---|---|
| FunASR SenseVoice | 8.01 % | 449 MB |
| FunASR Paraformer | 9.85 % | 401 MB |
| FunASR Fun-ASR-Nano | 8.30 % | enc + Qwen3-0.6B |
| whisper.cpp base | 31.33 % | 142 MB |
| whisper.cpp small | 22.12 % | 466 MB |
| whisper.cpp large-v3-turbo | 23.15 % | 1.6 GB |
同体积下(SenseVoice 449 MB ≈ whisper small 466 MB),FunASR 的 CER 低约 2.7 倍,而且更快。完整方法学见仓库 BENCHMARKS.md。
为什么中文上能赢
① 训练数据:SenseVoice / Paraformer / Fun-ASR-Nano 主要在大规模中文上训练,Whisper 是通用多语种模型、中文只占一小片;② 架构:Paraformer 非自回归(CIF 一次前向)、SenseVoice 编码器 + CTC(一次前向),比 Whisper 的自回归(逐 token)更快。
模型 GGUF
预转 GGUF 在 Hugging Face:SenseVoiceSmall-GGUF · Paraformer-GGUF · Fun-ASR-Nano-GGUF · fsmn-vad-GGUF。`download-funasr-model.sh` 会自动拉。
FunASR 全家桶开源——ASR / VAD / 标点 / 说话人 / 情感事件 / LLM-ASR / 现在还有 llama.cpp 端侧运行时。觉得有用点个 Star 👇
也欢迎 Star:SenseVoice · Fun-ASR · FunClip