中文语音识别(普通话)Python 实战:用 FunASR 又快又准
中文语音识别一直是通用模型的难点——OpenAI Whisper 在中文上的字错率(CER)约 20%,同音字、口语、专名经常出错。FunASR(通义实验室开源)专为中文打造,在标准中文测试集上 CER 远低于 Whisper。默认推荐旗舰 Fun-ASR-Nano(LLM-ASR),CPU 场景用 SenseVoice / Paraformer。下面是实战上手,代码均为真实实测。
3 行代码做中文识别(旗舰 Fun-ASR-Nano,实测输出)
pip install funasr from funasr import AutoModel model = AutoModel(model="FunAudioLLM/Fun-ASR-Nano-2512", disable_update=True, device="cuda") res = model.generate(input="audio.wav") print(res[0]["text"]) # 欢迎大家来体验达摩院推出的语音识别模型。
Fun-ASR-Nano 是基于 LLM 的旗舰识别模型(SenseVoice 编码器 + Qwen3 解码),31 语种,上下文/难例/专名更鲁棒,是中文识别的默认推荐。大规模可用 vLLM 加速(约 340× 实时),见 Fun-ASR-Nano 指南。
选对中文模型(按场景)
| 你的情况 | 选 | 中文 CER |
|---|---|---|
| 有 GPU / 要最强 | ⭐ Fun-ASR-Nano | 8.06% |
| CPU / 边缘 / 要最快 | SenseVoice | 7.81% |
| CPU + 纯中文 + 时间戳/热词 | Paraformer | 10.18% |
三者 CER 都远好于 Whisper(~20%)。完整选型见 FunASR 模型选型指南。CPU 场景的两个轻量选择:
# SenseVoice —— CPU 首选,非自回归极快,多语种+情感 from funasr import AutoModel from funasr.utils.postprocess_utils import rich_transcription_postprocess model = AutoModel(model="iic/SenseVoiceSmall", disable_update=True) res = model.generate(input="audio.wav", language="auto", use_itn=True) print(rich_transcription_postprocess(res[0]["text"])) # 欢迎大家来体验达摩院推出的语音识别模型。 # Paraformer —— 纯中文 + 字级时间戳 + 热词 model = AutoModel(model="paraformer-zh", vad_model="fsmn-vad", punc_model="ct-punc") res = model.generate(input="audio.wav", batch_size_s=300) print(res[0]["text"]) # 欢迎大家来体验达摩院推出的语音识别模型。 # res[0]["timestamp"] -> [[880, 1120], [1120, 1360], ...] 每个字的起止毫秒
为什么中文识别选 FunASR(而不是 Whisper)
| 中文测试集 CER(越低越好) | 错字率 |
|---|---|
| FunASR · Fun-ASR-Nano(旗舰) | 8.06% |
| FunASR · SenseVoice | 7.81% |
| FunASR · Paraformer | 10.18% |
| Whisper-large-v3 | 20.02% |
除了更准,FunASR 对中文还内置一整套实用能力:逆文本归一化(ITN)("一千二百"→"1200")、标点恢复、热词/专名定制、字级时间戳、说话人分离。完整对比见 FunASR vs Whisper benchmark 和 vs faster-whisper(中文/粤语)。
常见进阶(都是一行接上)
- 长音频自动分段:加
vad_model="fsmn-vad"。见 转写超长音频 和 VAD/去静音。 - 加标点:加
punc_model="ct-punc"。 - 热词(专名/人名):用 SeACo-Paraformer 传
hotword。 - 谁在何时说:加说话人模型,见 说话人分离。
- 粤语:SenseVoice 原生支持,见 粤语语音识别。
命令行 / 服务化
# 命令行转写,可出 srt / json,带说话人 funasr audio.wav --model paraformer-zh -f srt --spk # OpenAI 兼容的转写服务(默认旗舰 fun-asr-nano) funasr-server --device cuda
见 命令行转写 和 自托管替代云 API。
FunASR 是中文语音识别的开源首选(MIT,可商用)——旗舰 Fun-ASR-Nano + SenseVoice + Paraformer。觉得有用就点个 Star 支持一下 👇
也欢迎 Star:FunASR · SenseVoice · FunClip
相关文章
- FunASR vs Whisper 实测对比
- SenseVoice 部署指南
- Fun-ASR-Nano 使用指南
- 说话人分离:谁在何时说话
- 情感与语种检测
- 实时流式语音识别
- 转写超长音频(1小时一次搞定)
- 命令行转写(文本/JSON/SRT)
- 自托管 OpenAI Whisper API 替代
- 自动生成字幕(SRT / VTT)
- Python 语音转文字教程
- FunASR 跑进 llama.cpp(whisper.cpp 替代)
- FunASR vs faster-whisper(中文/粤语)
- 轻量语音识别(CPU 250MB)
- 自托管替代 Deepgram/AssemblyAI
- 选哪个 FunASR 模型
- 粤语语音识别(SenseVoice 原生粤语)
- 日语语音识别(SenseVoice 转写+标点+情感)
- Python 语音活动检测(VAD)
- 自托管替代 Google/AWS/Azure 云语音 API