
导读
中文语音识别的开源方案越来越多,但它们不在同一个层面上——有的是模型,有的是工具包,有的是部署运行时。直接把它们摊在一张表里比"谁更好",容易越看越糊涂。本文把 6 个中文语音识别模型和 2 个配套工具拆开来看,在统一基准上比精度、速度和功能,帮你理清它们的关系,找到适合自己场景的组合方案。
中文语音识别的开源生态可以分为三层:
模型层——做识别的:
模型 | 出品方 | 发布时间 | 一句话定位 |
|---|---|---|---|
Paraformer | 达摩院 | 2022 年 | FunASR 最早的自研模型,集成最成熟,有流式版本 |
SenseVoice-Small | 通义实验室 | 2024/07 | 不只听你说了什么,还能识别情绪和周围声音 |
Fun-ASR-Nano | 通义实验室 | 2025/12 | 数千万小时数据训练,支持流式转录、7 种方言、26 种口音 |
FireRedASR | 小红书 | 2025/01(v2: 2026/02) | 中文识别精度公开基准第一 |
Qwen3-ASR | 阿里云 Qwen 团队 | 2026/01 | 22 种中文方言,提供独立安装包 qwen-asr |
Moonshine | Useful Sensors | 2024/10 | 最小(27M)最轻,为端侧而生 |
注:Moonshine 是美国 Useful Sensors 公司开发的端侧 ASR 模型,中文精度有限(CER ~36%),但模型仅 27M 参数,是目前最轻量的端侧选择,本文将其纳入对比供端侧部署场景参考。
工具包层——管理和组合模型的:
AutoModel接口,可以将语音活动检测(VAD)、ASR、标点恢复、说话人分离串联成流水线。Paraformer、SenseVoice、Fun-ASR-Nano 都可以通过它调用。部署运行时(Runtime)层——把模型跑在设备上的:
模型本身只是一个权重文件,不能自己运行。你需要一个程序来加载模型、接收音频、执行计算、输出文字——这就是运行时(Runtime)。服务端部署通常用 FunASR 的 Docker 服务或 vLLM;端侧部署(手机、嵌入式设备)则主要靠:
值得注意的是,很多时候是组合使用的。比如"用 SenseVoice 模型 + 通过 FunASR 接口调用 + 用 sherpa-onnx 部署到手机上"。下面先比模型,再讲怎么用、怎么部署。
以下数据来自 FireRedASR2S 仓库的对比表,所有模型在相同测试集上由同一方测试,数据口径统一:
测试集 | FireRedASR2-LLM | FireRedASR2-AED | Qwen3-ASR-1.7B | Fun-ASR |
|---|---|---|---|---|
AISHELL-1 | 0.64 | 0.57 | 1.48 | 1.64 |
AISHELL-2 | 2.15 | 2.51 | 2.71 | 2.38 |
WenetSpeech net | 4.44 | 4.57 | 4.97 | 6.85 |
WenetSpeech meeting | 4.32 | 4.53 | 5.88 | 5.78 |
普通话平均 | 2.89 | 3.05 | 3.76 | 4.16 |
数据来源:FireRedASR2S 仓库(同一方测试,数据口径统一)。原始对比表还包含 Doubao-ASR(非开源),本文未纳入。表中"Fun-ASR"为 Fun-ASR(7.7B),该模型未开源,开源版本为 Fun-ASR-Nano(800M)。
几个关键信息:
以下模型不在上面的统一对比表中,数据来自各自的官方来源,口径可能不完全一致:
模型 | AISHELL-1 CER | 来源 | 备注 |
|---|---|---|---|
Paraformer-zh(220M) | 1.95% | FunASR 论文 | FireRedASR v1 对比表中为 1.68%,差异可能源于测试条件不同 |
SenseVoice-Small(234M) | ~3.0% | SenseVoice 仓库(柱状图近似值) | — |
Whisper-Large-v3(1550M) | 5.14% | FireRedASR v1 对比表 | WenetSpeech meeting 场景 CER 达 18.87%,中文场景与国产方案差距明显 |
Moonshine Tiny(27M) | 36.1% | Moonshine 论文(CommonVoice 17 测试集) | 中文训练数据仅 69.8 小时,无 AISHELL 数据 |
Moonshine Tiny 的 CER 36.1% 与其他方案差距很大,主要原因是中文训练数据量不足——69.8 小时 vs 其他方案的万到千万小时级别。它的优势不在精度,而在端侧部署能力。Whisper-Large-v3 在中文场景下精度也明显弱于国产方案,但端侧生态成熟(whisper.cpp,47.5k Star),常作为参照基线。
同样来自 FireRedASR2S 仓库对比表:
测试集 | FireRedASR2-LLM | FireRedASR2-AED | Qwen3-ASR-1.7B | Fun-ASR |
|---|---|---|---|---|
KeSpeech(方言综合) | 3.08 | 3.60 | 5.10 | 5.36 |
粤语(短) | 5.14 | 5.15 | 5.82 | 7.34 |
四川话(易) | 10.90 | 10.60 | 11.99 | 12.46 |
上海话(日常) | 24.94 | 24.18 | 23.93 | 12.55 |
歌词(opencpop) | 1.12 | 1.17 | 2.57 | 3.05 |
方言平均(19 个测试集) | 11.55 | 11.67 | 11.85 | 12.76 |
注:表中"Fun-ASR"为 Fun-ASR(7.7B),该模型未开源,开源版本为 Fun-ASR-Nano(800M)。方言对比表中无 Fun-ASR-Nano 的数据。歌词(opencpop)为基准测试中的通用测试集,所有模型均参与测试,不代表该模型具备专门的歌词识别功能。
方言场景下,不同方言的优劣排序不同——上海话场景 Fun-ASR(7.7B)反而最好(12.55%),歌词识别 FireRedASR 优势明显(1.12%)。没有一个模型在所有方言上全面领先。
模型 | 参数量 | 推理速度 |
|---|---|---|
Moonshine Tiny | 27M | 中文 Tiny 版本未公开(参考:Medium 245M 在 MacBook Pro 上 107ms、RPi5 上 802ms) |
Paraformer-zh | 220M | RTF 0.0251(V100 GPU,batch=1)。RTF 即实时因子(Real-Time Factor),< 1 表示比实时快 |
SenseVoice-Small | 234M | 处理 10 秒音频仅需 70ms,比 Whisper-Large 快 15 倍 |
Qwen3-ASR-0.6B | 600M | RTF 0.00923(单并发) |
Fun-ASR-Nano | 800M | 未公开 |
FireRedASR-AED | 1.1B | 未公开(TensorRT-LLM 在 H20 GPU 上 12.7 倍加速) |
Qwen3-ASR-1.7B | 1700M | RTF 0.01482(单并发) |
FireRedASR-LLM | 8.3B | 未公开 |
注:各模型的速度数据测试环境不同,不能严格横向比较。SenseVoice-Small 的 70ms 测试设备未在仓库中标明。
以下为各模型自身的能力(不含工具包加持):
功能 | Paraformer | SenseVoice-Small | Fun-ASR-Nano | FireRedASR v2 | Qwen3-ASR | Moonshine |
|---|---|---|---|---|---|---|
中文语音识别 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
流式识别 | ✓ | ✗ | ✓ | ✗ | ✓ | ✓ |
情感识别 | ✗ | ✓ | ✗ | ✗ | ✗ | ✗ |
音频事件检测 | ✗ | ✓ | ✗ | ✗ | ✗ | ✗ |
语种识别 | ✗ | ✓ | ✗ | ✓ | ✓ | ✗ |
时间戳 | ✓ | ✓ | ✗ | ✓ | ✓ | ✗ |
歌词识别 | ✗ | ✗ | ✓ | ✓ | ✗ | ✗ |
标点恢复 | ✗ | ✓ | ✗ | ✓ | ✗ | ✗ |
Paraformer、SenseVoice-Small、Fun-ASR-Nano 三个模型都可以通过 FunASR 工具包搭配以下模块使用:VAD(fsmn-vad)、标点恢复(ct-punc)、说话人分离(cam++)、热词定制、情感识别(emotion2vec)。部分模块与模型自身能力重叠时可按需选用。FireRedASR v2 自带 VAD、标点、语种识别的一体化方案。Qwen3-ASR 和 Moonshine 是独立接口,不通过 FunASR 调用。
一句话概括各模型的功能特色:
模型 | 需要 GPU | 端侧部署方案 |
|---|---|---|
Moonshine Tiny(27M) | 否 | 自带 C++ + OnnxRuntime(iOS/Android/RPi/IoT) |
SenseVoice-Small(234M) | 否 | SenseVoice.cpp(GGML,3/4/5/8 位量化)+ sherpa-onnx |
Paraformer-zh(220M) | 否 | sherpa-onnx(iOS/Android/鸿蒙/RPi/RISC-V/WebAssembly) |
Qwen3-ASR-0.6B | 未明确 | 未提及端侧方案 |
Fun-ASR-Nano(800M) | 未明确 | 支持 ONNX 导出 |
FireRedASR(1.1B/8.3B) | 是 | 无端侧方案 |
Qwen3-ASR-1.7B | 未明确 | 未提及端侧方案 |
端侧场景下,Moonshine、SenseVoice-Small、Paraformer 以及 Whisper(通过 whisper.cpp)是目前有明确部署方案的选择。Whisper 是 OpenAI 开源的多语言语音识别模型,中文不是其主场(精度见第二章对比表),但端侧生态成熟(whisper.cpp,47.5k Star),本文将其作为参照列入端侧部署对比,不作为中文场景的推荐方案。
方案 | 支持的模型 | 平台 | 编程语言 |
|---|---|---|---|
sherpa-onnx | Paraformer、SenseVoice 等 | iOS/Android/鸿蒙/RPi/RISC-V/WebAssembly/RK3588/华为昇腾 | C++/Python/Java/Swift/Kotlin/C#/Go/Rust/Dart 等 12 种 |
whisper.cpp | Whisper(tiny 到 large-v3 全系列) | Mac/iOS/Android/Linux/Windows/RPi/WebAssembly | C/C++(社区绑定:Rust/Go/Java/Python/Swift/.NET 等) |
SenseVoice.cpp | SenseVoice | 支持 GGML 的平台 | C/C++ |
Moonshine | Moonshine | iOS/Android/macOS/Linux/RPi/IoT | C++/Python |
sherpa-onnx是中文 ASR 端侧部署覆盖平台最广的方案,集成了 Paraformer 系列(多个变体)、SenseVoice 等中文模型,完全离线运行,不需要网络连接。whisper.cpp(47.5k Star)是 Whisper 模型的端侧部署方案,纯 C/C++ 实现无依赖,支持量化(q5/q8),Apple Silicon 特别优化。
模型 | 方言覆盖 |
|---|---|
Qwen3-ASR | 22 种中文方言(安徽、东北、福建、甘肃、贵州、河北、河南、湖北、湖南、江西、宁夏、山东、陕西、山西、四川、天津、云南、浙江、粤语港/广、吴语、闽南语) |
FireRedASR v2 | 20+ 种(粤语港/广、四川、上海、吴语、闽南语、安徽、福建、甘肃、贵州、河北、河南、湖北、湖南、江西、辽宁、宁夏、陕西、山西、山东、天津、云南等) |
Fun-ASR-Nano | 7 种方言(吴、粤、闽、客家、赣、湘、晋)+ 26 种地方口音 |
SenseVoice-Small | 粤语 |
Paraformer-zh | 普通话为主 |
Moonshine Tiny | 未提及方言支持 |
如果方言识别是核心需求,Qwen3-ASR 和 FireRedASR v2 是目前覆盖最全的两个选择。
安装一行搞定:
pip3 install -U funasrFunASR 的核心价值是统一接口和模型组合。以下示例将 Fun-ASR-Nano + VAD 串联:
from funasr import AutoModel
model = AutoModel(
model="FunAudioLLM/Fun-ASR-Nano-2512",
vad_model="fsmn-vad",
vad_kwargs={"max_single_segment_time": 30000},
device="cuda:0",
)
res = model.generate(input=[wav_path], cache={}, batch_size_s=0)
text = res[0]["text"]切换模型只需更改 model参数,比如换成 SenseVoice 同时获得情感识别能力:
model = AutoModel(
model="iic/SenseVoiceSmall",
vad_model="fsmn-vad",
vad_kwargs={"max_single_segment_time": 30000},
device="cuda:0",
)
res = model.generate(input="audio.mp3", cache={}, language="auto", use_itn=True)还可以加入标点恢复和说话人分离:
model = AutoModel(
model="paraformer-zh",
vad_model="fsmn-vad",
punc_model="ct-punc",
spk_model="cam++",
)pip install -U qwen-asrQwen3-ASR 不使用 FunASR,有自己独立的接口和调用方式。
git clone https://github.com/FireRedTeam/FireRedASR.git
pip install -r requirements.txt需要 GPU,音频须转为 16kHz 单声道 WAV,AED 模型单次最长处理 60 秒音频。
pip install moonshine-voice自带端侧运行时,不依赖其他工具包。
如果部署在服务器上(云端/机房),不需要 sherpa-onnx 这类端侧运行时,各方案都有自己的服务端部署方式:
模型/项目 | 代码许可 | 模型许可 | 能商用吗 |
|---|---|---|---|
FireRedASR | Apache 2.0 | Apache 2.0 | 完全可商用 |
Qwen3-ASR | Apache 2.0 | Apache 2.0 | 完全可商用 |
Fun-ASR-Nano | Apache 2.0 | Apache 2.0 | 完全可商用 |
SenseVoice | Apache 2.0 | Apache 2.0 | 完全可商用 |
FunASR 工具包 | MIT | Model License Agreement | 可商用(需遵守模型协议) |
Paraformer | MIT | Model License Agreement | 可商用(需遵守模型协议) |
sherpa-onnx | Apache 2.0 | 各模型各自许可 | 视集成的模型而定 |
whisper.cpp | MIT | MIT(Whisper 模型) | 完全可商用 |
Moonshine(英文) | MIT | MIT | 完全可商用 |
Moonshine(中文) | MIT | Moonshine Community License | 年收入 < $1M 可商用,否则需授权 |
注意:Moonshine 的中文模型不是 MIT 许可,年收入超过 100 万美元的企业需要单独获取商业授权。
大多数中文识别场景通过 FunASR 调用 Paraformer、SenseVoice 或 Fun-ASR-Nano,搭配 VAD + 标点恢复,上手最简单。pip install funasr,三行代码跑通。
对精度要求极高FireRedASR,中文公开基准第一(LLM 版本普通话平均 CER 2.89%,AED 版本 3.05%)。但需要 GPU,且音频有时长限制。
需要识别方言Qwen3-ASR(22 种中文方言)或 FireRedASR v2(20+ 种)覆盖最全。Fun-ASR-Nano 支持 7 种方言和 26 种口音。
需要情感识别或音频事件检测SenseVoice-Small,一个模型同时完成 ASR + 情感 + 事件检测,且推理速度极快(70ms 处理 10 秒音频)。
需要部署到手机或嵌入式设备中文精度优先选 SenseVoice-Small 或 Paraformer,通过 sherpa-onnx 部署,平台覆盖最广。如果已有 Whisper 的使用经验,whisper.cpp 也是成熟的端侧方案(47.5k Star),中文精度弱于国产模型但生态最大。如果对模型大小极度敏感(< 30M),Moonshine Tiny 是唯一选择,但中文精度有限。
需要实时/流式转录Paraformer-streaming(通过 FunASR)、Fun-ASR-Nano(通过 FunASR)、Qwen3-ASR 或 Moonshine,均原生支持流式识别。
不知道选什么从 FunASR 开始。pip install funasr,通过 AutoModel接口可以快速试用 Paraformer、SenseVoice、Fun-ASR-Nano 等模型,社区最大,上手门槛最低。
相关仓库:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。