【快速入门】30分钟上手FunASR语音识别:从模型部署到训练全攻略

【免费下载链接】FunASR A Fundamental End-to-End Speech Recognition Toolkit and Open Source SOTA Pretrained Models, Supporting Speech Recognition, Voice Activity Detection, Text Post-processing etc. 【免费下载链接】FunASR 项目地址: https://gitcode.com/GitHub_Trending/fun/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
  • 完全开源:所有模型权重和推理代码均开放,支持商业用途(模型协议

FunASR架构图

图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:

模型微调:定制你的语音识别系统

数据准备

需准备音频文件列表(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")

常见问题与性能优化

推理速度优化

  1. 动态批处理:设置batch_size_s=60(总音频时长60秒)
  2. 线程配置:CPU环境设置ncpu=4(根据CPU核心数调整)
  3. 模型量化:导出ONNX时启用INT8量化,可降低40%推理耗时

精度提升技巧

  1. 热词优化:通过hotword参数添加领域热词
    model.generate(input="test.wav", hotword="FunASR,语音识别")
    
  2. 语言模型:集成Ngram语言模型
    model = AutoModel(model="paraformer-zh", lm_model="ngram")
    
  3. 数据增强:训练时添加噪声、语速扰动

社区资源与交流

如果在使用过程中遇到问题,欢迎提交Issue或参与社区讨论。FunASR团队会定期更新模型和工具链,持续优化识别效果和部署体验。

总结与展望

本文介绍了FunASR从环境搭建到模型微调的全流程,包括:

  1. 3分钟快速安装与模型获取
  2. 3行代码实现语音识别
  3. 3种部署方案(Docker/Web/移动端)
  4. 模型微调全流程

FunASR后续将重点优化多语言识别和低资源场景性能,计划推出语音翻译、情感识别等新功能。欢迎关注项目更新,一起构建开源语音生态!

如果你觉得本文有帮助,请点赞+收藏+关注,下期将带来《FunASR热词定制与实时转写实战》

【免费下载链接】FunASR A Fundamental End-to-End Speech Recognition Toolkit and Open Source SOTA Pretrained Models, Supporting Speech Recognition, Voice Activity Detection, Text Post-processing etc. 【免费下载链接】FunASR 项目地址: https://gitcode.com/GitHub_Trending/fun/FunASR

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐