中文语音识别该用谁?6 个开源模型 + 2 个配套工具,一文理清

0 阅读11分钟

导读

中文语音识别的开源方案越来越多,但它们不在同一个层面上——有的是模型,有的是工具包,有的是部署运行时。直接把它们摊在一张表里比"谁更好",容易越看越糊涂。本文把 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/0122 种中文方言,提供独立安装包 qwen-asr
MoonshineUseful Sensors2024/10最小(27M)最轻,为端侧而生

注:Moonshine 是美国 Useful Sensors 公司开发的端侧 ASR 模型,中文精度有限(CER ~36%),但模型仅 27M 参数,是目前最轻量的端侧选择,本文将其纳入对比供端侧部署场景参考。

工具包层——管理和组合模型的:

  • FunASR(达摩院,15.2k Star):统一的 AutoModel接口,可以将语音活动检测(VAD)、ASR、标点恢复、说话人分离串联成流水线。Paraformer、SenseVoice、Fun-ASR-Nano 都可以通过它调用。

部署运行时(Runtime)层——把模型跑在设备上的:

模型本身只是一个权重文件,不能自己运行。你需要一个程序来加载模型、接收音频、执行计算、输出文字——这就是运行时(Runtime)。服务端部署通常用 FunASR 的 Docker 服务或 vLLM;端侧部署(手机、嵌入式设备)则主要靠:

  • sherpa-onnx(Next-gen Kaldi,10.8k Star):把 Paraformer、SenseVoice 等模型部署到手机、树莓派、鸿蒙设备上,支持 12 种编程语言,完全离线运行。

值得注意的是,很多时候是组合使用的。比如"用 SenseVoice 模型 + 通过 FunASR 接口调用 + 用 sherpa-onnx 部署到手机上"。下面先比模型,再讲怎么用、怎么部署。


二、精度对比:数据说话

统一基准对比(CER%,越低越好)

以下数据来自 FireRedASR2S 仓库的对比表,所有模型在相同测试集上由同一方测试,数据口径统一:

测试集FireRedASR2-LLMFireRedASR2-AEDQwen3-ASR-1.7BFun-ASR
AISHELL-10.640.571.481.64
AISHELL-22.152.512.712.38
WenetSpeech net4.444.574.976.85
WenetSpeech meeting4.324.535.885.78
普通话平均2.893.053.764.16

数据来源:FireRedASR2S 仓库(同一方测试,数据口径统一)。原始对比表还包含 Doubao-ASR(非开源),本文未纳入。表中"Fun-ASR"为 Fun-ASR(7.7B),该模型未开源,开源版本为 Fun-ASR-Nano(800M)。

几个关键信息:

  • FireRedASR 在所有普通话测试集上都排第一,AISHELL-1 上 AED 版本 CER 仅 0.57%
  • Qwen3-ASR(3.76%)和 Fun-ASR-Nano(约 4.55%,开源)水平接近

其他模型的精度参考

以下模型不在上面的统一对比表中,数据来自各自的官方来源,口径可能不完全一致:

模型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),常作为参照基线。

方言对比(CER%,越低越好)

同样来自 FireRedASR2S 仓库对比表:

测试集FireRedASR2-LLMFireRedASR2-AEDQwen3-ASR-1.7BFun-ASR
KeSpeech(方言综合)3.083.605.105.36
粤语(短)5.145.155.827.34
四川话(易)10.9010.6011.9912.46
上海话(日常)24.9424.1823.9312.55
歌词(opencpop)1.121.172.573.05
方言平均(19 个测试集)11.5511.6711.8512.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 Tiny27M中文 Tiny 版本未公开(参考:Medium 245M 在 MacBook Pro 上 107ms、RPi5 上 802ms)
Paraformer-zh220MRTF 0.0251(V100 GPU,batch=1)。RTF 即实时因子(Real-Time Factor),< 1 表示比实时快
SenseVoice-Small234M处理 10 秒音频仅需 70ms,比 Whisper-Large 快 15 倍
Qwen3-ASR-0.6B600MRTF 0.00923(单并发)
Fun-ASR-Nano800M未公开
FireRedASR-AED1.1B未公开(TensorRT-LLM 在 H20 GPU 上 12.7 倍加速)
Qwen3-ASR-1.7B1700MRTF 0.01482(单并发)
FireRedASR-LLM8.3B未公开

注:各模型的速度数据测试环境不同,不能严格横向比较。SenseVoice-Small 的 70ms 测试设备未在仓库中标明。


四、功能对比:谁能做什么?

以下为各模型自身的能力(不含工具包加持):

功能ParaformerSenseVoice-SmallFun-ASR-NanoFireRedASR v2Qwen3-ASRMoonshine
中文语音识别
流式识别
情感识别
音频事件检测
语种识别
时间戳
歌词识别
标点恢复

Paraformer、SenseVoice-Small、Fun-ASR-Nano 三个模型都可以通过 FunASR 工具包搭配以下模块使用:VAD(fsmn-vad)、标点恢复(ct-punc)、说话人分离(cam++)、热词定制、情感识别(emotion2vec)。部分模块与模型自身能力重叠时可按需选用。FireRedASR v2 自带 VAD、标点、语种识别的一体化方案。Qwen3-ASR 和 Moonshine 是独立接口,不通过 FunASR 调用。

一句话概括各模型的功能特色:

  • SenseVoice-Small:独家的情感识别 + 音频事件检测,一个模型同时输出,支持时间戳
  • FireRedASR v2:精度最高,且自带 VAD、标点、语种识别、时间戳的一体化方案
  • Paraformer:最早发布(2022 年),自身支持流式识别和时间戳,FunASR 生态中集成最成熟
  • Fun-ASR-Nano:支持流式转录和歌词识别,通过 FunASR 可搭配 VAD、标点等模块
  • Qwen3-ASR:支持流式识别、时间戳和语种识别
  • Moonshine:参数最小(27M),支持流式识别,为端侧而生

五、端侧部署:谁能跑在设备上?

模型需要 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-onnxParaformer、SenseVoice 等iOS/Android/鸿蒙/RPi/RISC-V/WebAssembly/RK3588/华为昇腾C++/Python/Java/Swift/Kotlin/C#/Go/Rust/Dart 等 12 种
whisper.cppWhisper(tiny 到 large-v3 全系列)Mac/iOS/Android/Linux/Windows/RPi/WebAssemblyC/C++(社区绑定:Rust/Go/Java/Python/Swift/.NET 等)
SenseVoice.cppSenseVoice支持 GGML 的平台C/C++
MoonshineMoonshineiOS/Android/macOS/Linux/RPi/IoTC++/Python

sherpa-onnx是中文 ASR 端侧部署覆盖平台最广的方案,集成了 Paraformer 系列(多个变体)、SenseVoice 等中文模型,完全离线运行,不需要网络连接。whisper.cpp(47.5k Star)是 Whisper 模型的端侧部署方案,纯 C/C++ 实现无依赖,支持量化(q5/q8),Apple Silicon 特别优化。


六、方言支持

模型方言覆盖
Qwen3-ASR22 种中文方言(安徽、东北、福建、甘肃、贵州、河北、河南、湖北、湖南、江西、宁夏、山东、陕西、山西、四川、天津、云南、浙江、粤语港/广、吴语、闽南语)
FireRedASR v220+ 种(粤语港/广、四川、上海、吴语、闽南语、安徽、福建、甘肃、贵州、河北、河南、湖北、湖南、江西、辽宁、宁夏、陕西、山西、山东、天津、云南等)
Fun-ASR-Nano7 种方言(吴、粤、闽、客家、赣、湘、晋)+ 26 种地方口音
SenseVoice-Small粤语
Paraformer-zh普通话为主
Moonshine Tiny未提及方言支持

如果方言识别是核心需求,Qwen3-ASR 和 FireRedASR v2 是目前覆盖最全的两个选择。


七、上手使用:从代码开始

FunASR 工具包(Paraformer / SenseVoice / Fun-ASR-Nano 通用)

安装一行搞定:

pip3 install -U funasr

FunASR 的核心价值是统一接口和模型组合。以下示例将 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++",
)

Qwen3-ASR(独立接口)

pip install -U qwen-asr

Qwen3-ASR 不使用 FunASR,有自己独立的接口和调用方式。

FireRedASR(独立接口)

git clone https://github.com/FireRedTeam/FireRedASR.git
pip install -r requirements.txt

需要 GPU,音频须转为 16kHz 单声道 WAV,AED 模型单次最长处理 60 秒音频。

Moonshine(独立接口)

pip install moonshine-voice

自带端侧运行时,不依赖其他工具包。


八、服务端部署

如果部署在服务器上(云端/机房),不需要 sherpa-onnx 这类端侧运行时,各方案都有自己的服务端部署方式:

  • FunASR Docker 服务:提供离线文件转录和实时流式转录两种服务,支持 CPU 和 GPU。GPU 离线服务单线程 RTF 0.0076,多线程加速比 1200+。
  • FireRedASR:支持 TensorRT-LLM 和 vLLM 推理加速,AISHELL-1 上相比 PyTorch 基线加速 12.7 倍(H20 GPU)。
  • Qwen3-ASR:支持 vLLM 后端,0.6B 模型 128 并发下 Online 模式吞吐量约 2000 秒/秒,1.7B 模型 Offline 模式约 980 秒/秒。

九、许可证:能商用吗?

模型/项目代码许可模型许可能商用吗
FireRedASRApache 2.0Apache 2.0完全可商用
Qwen3-ASRApache 2.0Apache 2.0完全可商用
Fun-ASR-NanoApache 2.0Apache 2.0完全可商用
SenseVoiceApache 2.0Apache 2.0完全可商用
FunASR 工具包MITModel License Agreement可商用(需遵守模型协议)
ParaformerMITModel License Agreement可商用(需遵守模型协议)
sherpa-onnxApache 2.0各模型各自许可视集成的模型而定
whisper.cppMITMIT(Whisper 模型)完全可商用
Moonshine(英文)MITMIT完全可商用
Moonshine(中文)MITMoonshine 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 等模型,社区最大,上手门槛最低。


相关仓库