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

在日常工作中,你是否遇到过会议录音转文字效率低、客服语音质检成本高、短视频字幕制作繁琐等问题?作为一款工业级语音识别工具包,FunASR(Fundamental End-to-End Speech Recognition Toolkit)提供了从语音到文本的全链路解决方案。本文将带你快速掌握模型推理、训练微调的完整流程,无需复杂编程即可搭建专属语音识别系统。

核心功能与架构概览

FunASR集成了语音识别(ASR)、语音端点检测(VAD)、标点恢复、说话人验证等多元能力,其模块化架构支持灵活组合与部署。代表性的Paraformer模型通过非自回归解码实现了高精度与高效率的平衡,而SenseVoice模型则进一步扩展了多语言识别、情感分析等高级功能。

FunASR架构

技术特性:

  • 全流程支持:覆盖从音频输入到文本输出的完整链路
  • 工业级模型:基于40万小时以上数据训练的预模型库
  • 轻量化部署:支持ONNX导出与多端推理(Python/C++/Android)
  • 灵活扩展:提供丰富API与示例代码,支持二次开发

官方文档:docs/tutorial/README_zh.md
模型仓库:model_zoo/

环境准备与快速安装

系统要求

  • Python ≥ 3.8
  • PyTorch ≥ 1.13
  • 可选:CUDA 11.6+(GPU加速)

安装步骤

通过pip快速安装:

pip3 install -U funasr
# 如需工业模型支持(可选)
pip3 install -U modelscope huggingface_hub

或从源码安装最新版本:

git clone https://gitcode.com/GitHub_Trending/fun/FunASR && cd FunASR
pip3 install -e ./

验证安装:

import funasr
print(funasr.__version__)  # 应输出当前版本号

模型推理实战

命令行一键识别

针对单个音频文件:

funasr ++model=paraformer-zh ++vad_model="fsmn-vad" ++punc_model="ct-punc" ++input=test.wav

批量处理音频列表(需准备wav.scp文件):

funasr ++model=paraformer-zh ++input=audio_list.scp ++output_dir=./results

Python API进阶应用

1. 基础语音识别(非实时)
from funasr import AutoModel

model = AutoModel(model="paraformer-zh", 
                 vad_model="fsmn-vad", 
                 punc_model="ct-punc")
# 处理本地文件
result = model.generate(input="test.wav", hotword="魔搭")
print(result[0]["text"])
2. 实时流式识别
from funasr import AutoModel
import soundfile as sf

# 流式模型初始化
model = AutoModel(model="paraformer-zh-streaming")
speech, sample_rate = sf.read("stream_test.wav")

# 600ms分片处理
chunk_stride = 960  # 16000Hz * 0.06s
cache = {}
for i in range(0, len(speech), chunk_stride):
    chunk = speech[i:i+chunk_stride]
    is_final = i + chunk_stride >= len(speech)
    res = model.generate(input=chunk, cache=cache, is_final=is_final)
    if res[0]["text"]:
        print(f"实时结果: {res[0]['text']}")
3. 多能力组合应用
# 情感识别示例
model = AutoModel(model="emotion2vec_plus_large")
result = model.generate("emotion_test.wav", granularity="utterance")
print(f"情感分析结果: {result[0]['emotion']}")

# 标点恢复示例
model = AutoModel(model="ct-punc")
result = model.generate("那今天的会就到这里吧 happy new year 明年见")
print(f"标点恢复结果: {result[0]['text']}")

核心API文档:funasr/auto/
示例代码库:examples/industrial_data_pretraining/

模型训练与微调

数据准备

FunASR支持JSONL格式数据集,可通过工具从wav.scp与text.txt生成:

# 生成训练集JSONL
scp2jsonl ++scp_file_list='["data/list/train_wav.scp", "data/list/train_text.txt"]' \
          ++data_type_list='["source", "target"]' \
          ++jsonl_file_out="data/list/train.jsonl"

数据格式要求:

  • train_wav.scp:音频文件路径列表
  • train_text.txt:文本标注内容
  • 支持本地文件与HTTP URL

快速微调流程

以Paraformer模型为例,执行微调脚本:

cd examples/industrial_data_pretraining/paraformer
bash finetune.sh

关键参数配置:

# 训练脚本核心参数
funasr/bin/train.py \
  ++model="paraformer-zh" \
  ++train_data_set_list="data/list/train.jsonl" \
  ++valid_data_set_list="data/list/val.jsonl" \
  ++dataset_conf.batch_size=20000 \
  ++train_conf.max_epoch=50 \
  ++output_dir="./outputs"

多GPU训练配置:

export CUDA_VISIBLE_DEVICES="0,1"
torchrun --nnodes 1 --nproc_per_node 2 ../../../funasr/bin/train.py ${train_args}

训练监控:

tensorboard --logdir ./outputs/log/tensorboard

训练脚本模板:examples/industrial_data_pretraining/paraformer/finetune.sh
数据处理工具:funasr/datasets/

模型部署与优化

ONNX导出

from funasr import AutoModel
model = AutoModel(model="paraformer-zh")
model.export(quantize=True, output_dir="./onnx_model")

ONNX推理示例:

from funasr_onnx import Paraformer
model = Paraformer("./onnx_model", quantize=True)
result = model("test.wav")

服务化部署

FunASR提供多种部署方案,推荐使用Docker快速启动:

# 启动中文离线文件转写服务
docker run -p 10095:10095 -it registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-cpu-zh

部署文档:runtime/readme_cn.md
服务配置工具:runtime/deploy_tools/

常见问题与最佳实践

性能优化指南

  • 长音频处理:启用VAD分割(vad_model="fsmn-vad"
  • 内存控制:调整batch_size_s参数(默认300秒)
  • 精度提升:使用N-gram语言模型(lm_model="ngram"

典型错误排查

  • 模型下载失败:检查网络代理或手动下载模型文件
  • 推理速度慢:确认已安装对应硬件加速库(如CUDA)
  • 训练发散:降低学习率或检查数据格式

社区支持

如遇技术问题,可通过以下渠道获取支持:

  • GitHub Issues:提交详细错误信息与复现步骤
  • 钉钉交流群:扫描下方二维码加入
  • 模型仓库:ModelScope

钉钉交流群

总结与展望

通过本文介绍,你已掌握FunASR的核心功能应用,从快速推理到模型训练的完整流程。无论是企业级语音质检系统,还是个人项目的语音交互模块,FunASR都能提供高效可靠的技术支撑。

未来版本将重点优化多模态交互与低资源语言支持,欢迎通过贡献指南参与项目共建。立即下载体验,开启语音技术应用新可能!

模型下载地址:model_zoo/
完整教程:README_zh.md

【免费下载链接】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 垂直技术社区,欢迎活跃、内容共建。

更多推荐