
导读
语音识别(ASR)是人工智能落地最广泛的方向之一,但学术界的前沿模型与工业界的实际部署之间一直存在距离。
阿里达摩院开源的 FunASR,正是为弥合这一差距而生。它提供基于大规模工业语料训练的预训练模型,支持训练、微调和服务部署,覆盖语音识别、语音活动检测、标点恢复、说话人分离、情感识别等任务。项目自 2023 年开源以来持续更新,除自研的 Paraformer 系列外,还集成了通义实验室的 Fun-ASR-Nano(支持中文 7 种方言和 26 种地方口音)、SenseVoice 等外部模型,目前在 GitHub 上已获得 15.2k Star。本文将从项目定位、模型体系、使用方式和服务部署几个方面,对 FunASR 做一个全面的介绍。

图片来源于原论文
FunASR(Fundamental ASR)是一个基于 PyTorch 的端到端语音识别工具包,由阿里达摩院语音实验室开发并开源。项目的核心目标有两个:
FunASR 的核心价值在于工具包能力——统一的 AutoModel 接口、灵活的模型组合、一键服务部署。它不仅提供自研模型(Paraformer 系列),还集成了来自其他团队的模型(如通义实验室的 SenseVoice 和 Fun-ASR-Nano、OpenAI 的 Whisper、阿里云的 Qwen-Audio 等),让开发者用几行代码,就能完成从"一段音频"到"一段带标点、带时间戳、带说话人标签的文字"的全过程。
FunASR 的模型库覆盖了语音处理的多个环节。需要说明的是,FunASR 作为工具包,既包含达摩院自研的模型,也集成了其他团队的模型,以下按来源分类列出:

图片来源于原论文
模型名称 | 语言 | 参数量 | 特点 |
|---|---|---|---|
Paraformer-zh | 中文 | 220M | 6 万小时中文数据训练,支持时间戳,非流式 |
Paraformer-zh-streaming | 中文 | 220M | Paraformer 的流式版本 |
Paraformer-en | 英文 | 220M | 5 万小时英文数据训练,非流式 |
Conformer-en | 英文 | 220M | 5 万小时英文数据训练,非流式 |
Paraformer 是 FunASR 的自研核心模型,发表于 INTERSPEECH 2022/2023。它是一个单步非自回归(NAR)模型,相比自回归模型实现了 12 倍推理加速。在 AISHELL test 上 CER 为 1.95%。需要注意的是,随着领域的快速发展,Paraformer 在中文识别精度上已不是最新 SOTA(如 FireRedASR 在 AISHELL-1 上 CER 已达 0.57%),但 FunASR 的优势在于工具包层面的模型组合和部署能力。
模型名称 | 来源 | 语言 | 参数量 | 特点 |
|---|---|---|---|---|
Fun-ASR-Nano | 通义实验室 | 中/英/日 | 800M | 数千万小时数据训练,支持 7 种方言、26 种口音,支持歌词与说唱识别 |
SenseVoiceSmall | 通义实验室 | 中/粤/英/日/韩 | 234M | 40 万+小时数据,同时支持语种识别、情感识别、音频事件检测,非自回归端到端架构,处理 10 秒音频仅需 70ms |
Whisper-large-v3 | OpenAI | 多语言 | 1550M | 多语言语音识别,带时间戳 |
Whisper-large-v3-turbo | OpenAI | 多语言 | 809M | 多语言语音识别,带时间戳 |
Qwen-Audio | 阿里云 Qwen 团队 | 多语言 | 8B | 音频-文本多模态(预训练) |
Qwen-Audio-Chat | 阿里云 Qwen 团队 | 多语言 | 8B | 音频-文本多模态(对话) |
这些模型由各自团队开发和维护,FunASR 通过统一的 AutoModel 接口将它们集成在一起,用户切换模型只需更改 model 参数。
模型名称 | 任务 | 参数量 | 说明 |
|---|---|---|---|
fsmn-vad | 语音活动检测 | 0.4M | 检测音频中的有效语音段,输出起止时间(毫秒) |
ct-punc | 标点恢复 | 290M | 1 亿条样本训练,为识别文本自动添加标点 |
fsmn-kws | 关键词检测 | 0.7M | 支持流式关键词检测 |
fa-zh | 时间戳预测 | 38M | 对已有文本进行精确时间对齐 |
cam++ | 说话人验证/分离 | 7.2M | 用于区分不同说话人 |
emotion2vec+large | 情感识别 | 300M | 4 万小时数据训练,识别语音中的情感 |
值得注意的是,这些模型可以灵活组合使用。比如将 VAD + Fun-ASR-Nano + 标点恢复串联,就可以实现"长音频 → 分段识别 → 带标点文本"的完整流水线。这种模型组合能力是 FunASR 作为工具包的核心优势。
FunASR 的安装非常简单,要求 Python ≥ 3.8、PyTorch ≥ 1.13:
pip3 install -U funasrFunASR 提供了统一的 AutoModel 接口,通过切换模型名称和组合不同模块即可完成各类语音任务。
最快捷的方式是直接用命令行,一行命令即可完成 VAD 分段 + 语音识别 + 标点恢复:
funasr ++model=paraformer-zh ++vad_model="fsmn-vad" ++punc_model="ct-punc" ++input=asr_example_zh.wav支持单个音频文件或 Kaldi 风格的 wav.scp 文件列表。
以下示例使用 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"]SenseVoiceSmall 的调用方式类似,通过 language="auto" 自动检测语种,use_itn=True 启用标点和反向文本规范化:
from funasr import AutoModel
from funasr.utils.postprocess_utils import rich_transcription_postprocess
model = AutoModel(
model="iic/SenseVoiceSmall",
vad_model="fsmn-vad",
vad_kwargs={"max_single_segment_time": 30000},
device="cuda:0",
)
res = model.generate(
input=f"{model.model_path}/example/en.mp3",
cache={},
language="auto",
use_itn=True,
batch_size_s=60,
merge_vad=True,
merge_length_s=15,
)
text = rich_transcription_postprocess(res[0]["text"])两个示例使用的都是 FunASR 统一的 AutoModel 接口,切换模型只需更改 model 参数。主仓库 README 中还提供了流式识别、VAD、标点恢复、时间戳预测、情感识别等完整的代码示例,详见项目仓库。
FunASR 不只是一个研究工具,它提供了面向生产的服务部署方案:
funasr-export ++model=paraformer ++quantize=false ++device=cpu围绕 FunASR 的模型,社区贡献了多种部署方案:
FunASR 的定位介于纯学术框架和商业 API 之间,它的价值在于开源、可控、可定制。具体来说:
AutoModel 接口构建定制化的语音处理流水线。从 2023 年至今,FunASR 保持着稳定的更新节奏,从自研的 Paraformer 到集成通义实验室的 SenseVoice 和 Fun-ASR-Nano,工具包的模型覆盖和部署能力持续扩展。
相关仓库:
论文:Zhifu Gao, Zerui Li, Jiaming Wang, et al. "FunASR: A Fundamental End-to-End Speech Recognition Toolkit." INTERSPEECH 2023.
许可证:代码采用 MIT License;模型使用需遵守 Model License Agreement。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。