【快速入门】30分钟上手FunASR语音识别:从模型部署到训练全攻略
你还在为语音转文字 accuracy 低、部署复杂而烦恼吗?FunASR作为阿里巴巴开源的工业级语音识别工具包,提供了从离线文件转写到实时语音听写的全链路解决方案。本文将带你零基础掌握模型获取、推理部署、微调训练的核心流程,让你30分钟内搭建起自己的语音识别系统。## 为什么选择FunASR?FunASR(Fundamental End-to-End Speech Recognition ...
【快速入门】30分钟上手FunASR语音识别:从模型部署到训练全攻略
你还在为语音转文字 accuracy 低、部署复杂而烦恼吗?FunASR作为阿里巴巴开源的工业级语音识别工具包,提供了从离线文件转写到实时语音听写的全链路解决方案。本文将带你零基础掌握模型获取、推理部署、微调训练的核心流程,让你30分钟内搭建起自己的语音识别系统。
为什么选择FunASR?
FunASR(Fundamental End-to-End Speech Recognition Toolkit)是一款集语音识别(ASR)、语音端点检测(VAD)、标点恢复等功能于一体的开源工具包。其核心优势在于:
- 工业级精度:基于6万小时中文数据训练的Paraformer模型,字错率(CER)低至5.7%
- 全场景支持:覆盖离线文件转写、实时语音听写、多语言识别等20+应用场景
- 高效部署:提供Docker一键部署方案,CPU单路RTF(实时率)可达0.0076
- 完全开源:所有模型权重和推理代码均开放,支持商业用途(模型协议)
图1:FunASR技术架构概览,包含前端处理、模型推理和后处理全链路
环境准备与模型获取
快速安装
FunASR支持Python 3.8+环境,通过pip可一键安装:
pip3 install -U funasr modelscope huggingface_hub
如需从源码安装(推荐开发者):
git clone https://gitcode.com/GitHub_Trending/fun/FunASR && cd FunASR
pip3 install -e ./
模型仓库
FunASR在ModelScope和HuggingFace开源了20+预训练模型,涵盖中、英、多语言场景:
| 模型名称 | 任务类型 | 参数量 | 获取地址 |
|---|---|---|---|
| SenseVoiceSmall | 多语言语音理解 | 330M | ModelScope |
| paraformer-zh | 中文离线识别 | 220M | HuggingFace |
| paraformer-zh-streaming | 中文实时识别 | 220M | ModelScope |
| whisper-large-v3 | 多语言识别 | 1550M | ModelScope |
表1:FunASR核心模型列表,完整模型参见模型仓库
3行代码实现语音识别
基础用法
使用AutoModel接口可快速调用预训练模型:
from funasr import AutoModel
model = AutoModel(model="paraformer-zh", vad_model="fsmn-vad", punc_model="ct-punc")
res = model.generate(input="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/vad_example.wav")
print(res)
输出结果包含文本内容和时间戳:
[{"text": "欢迎使用FunASR语音识别工具包", "timestamp": [[0, 1000], [1000, 2000]]}]
批量处理
对大量音频文件,可通过wav.scp列表进行批量推理:
# 准备wav.scp文件(格式:音频ID 路径)
with open("wav.scp", "w") as f:
f.write("audio1 /path/to/audio1.wav\naudio2 /path/to/audio2.wav")
# 批量推理
model.generate(input="wav.scp", output_dir="./results")
结果将保存至./results目录,包含每个音频的识别文本和时间戳。
服务部署:3种方案任选
Docker一键部署
FunASR提供预构建Docker镜像,支持CPU/GPU环境:
# 中文离线文件转写服务(CPU版)
docker run -p 10095:10095 -it registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr-runtime-sdk-cpu-zh:0.4.5
# 中文实时语音听写服务(CPU版)
docker run -p 10096:10096 -it registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr-runtime-sdk-online-cpu-zh:0.1.10
服务启动后可通过HTTP API调用:
import requests
url = "http://localhost:10095/recognition/file"
files = {"file": open("test.wav", "rb")}
response = requests.post(url, files=files)
print(response.json())
详细部署文档参见服务部署指南
本地Web界面
FunASR提供HTML5可视化界面,支持麦克风实时录音和文件上传:
cd runtime/html5 && python h5Server.py
访问 http://localhost:8080 即可使用Web界面:
Web界面截图
图2:FunASR Web演示界面,支持实时录音和文件上传识别
移动端部署
针对嵌入式场景,FunASR提供Android/iOS SDK:
- Android示例:runtime/android
- iOS示例:runtime/ios
模型微调:定制你的语音识别系统
数据准备
需准备音频文件列表(wav.scp)和文本标注(text.txt):
# train_wav.scp格式(音频ID 路径)
audio1 /data/audio1.wav
audio2 /data/audio2.wav
# train_text.txt格式(音频ID 文本)
audio1 今天天气真好
audio2 欢迎使用FunASR
通过工具转换为训练所需的jsonl格式:
scp2jsonl ++scp_file_list='["data/list/train_wav.scp", "data/list/train_text.txt"]' ++jsonl_file_out="data/list/train.jsonl"
微调训练
以Paraformer模型为例,使用单GPU微调:
cd examples/industrial_data_pretraining/paraformer
bash finetune.sh --model_dir "damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch" --train_data "data/list/train.jsonl" --output_dir "./outputs"
关键参数说明:
batch_size:批处理大小(默认20000 token)max_epoch:训练轮数(默认50)lr:学习率(默认0.0002)use_fp16:是否开启混合精度训练(默认False)
训练过程可通过TensorBoard监控:
tensorboard --logdir ./outputs/log/tensorboard
模型导出与优化
微调后的模型可导出为ONNX格式,提升推理速度:
from funasr import AutoModel
model = AutoModel(model="./outputs")
model.export(quantize=True) # 量化为INT8精度
ONNX模型推理示例:
from funasr_onnx import Paraformer
model = Paraformer(model_dir="./export", quantize=True)
result = model("test.wav")
常见问题与性能优化
推理速度优化
- 动态批处理:设置
batch_size_s=60(总音频时长60秒) - 线程配置:CPU环境设置
ncpu=4(根据CPU核心数调整) - 模型量化:导出ONNX时启用INT8量化,可降低40%推理耗时
精度提升技巧
- 热词优化:通过
hotword参数添加领域热词model.generate(input="test.wav", hotword="FunASR,语音识别") - 语言模型:集成Ngram语言模型
model = AutoModel(model="paraformer-zh", lm_model="ngram") - 数据增强:训练时添加噪声、语速扰动
社区资源与交流
- 官方文档:docs/tutorial
- 示例代码:examples/
- 钉钉交流群:

如果在使用过程中遇到问题,欢迎提交Issue或参与社区讨论。FunASR团队会定期更新模型和工具链,持续优化识别效果和部署体验。
总结与展望
本文介绍了FunASR从环境搭建到模型微调的全流程,包括:
- 3分钟快速安装与模型获取
- 3行代码实现语音识别
- 3种部署方案(Docker/Web/移动端)
- 模型微调全流程
FunASR后续将重点优化多语言识别和低资源场景性能,计划推出语音翻译、情感识别等新功能。欢迎关注项目更新,一起构建开源语音生态!
如果你觉得本文有帮助,请点赞+收藏+关注,下期将带来《FunASR热词定制与实时转写实战》
更多推荐


所有评论(0)