FunASR 新手完整指南:5 分钟跑通达摩院开源语音识别全套流程
【免费下载链接】FunASROpen-source speech recognition toolkit for training, inference, streaming ASR, VAD, punctuation, speaker diarization pipelines, and OpenAI-compatible/MCP serving.项目地址: https://gitcode.com/GitHub_Trending/fun/FunASR
FunASR 是阿里达摩院开源的端到端语音识别工具包,把 ASR、语音活动检测(VAD)、标点恢复、说话人验证、声音事件检测这些环节收进同一套接口。你不需要自己拼流程:给它一个音频文件,它还能顺带返回时间戳、说话人标签和标点。下面按"能做什么 → 怎么工作 → 怎么跑起来"的顺序带你过一遍,最后给你能直接复制的命令和代码。
一个项目定位:语音处理工具箱
先回答"它适合谁"。如果你是算法工程师,可以拿它训练和微调自己的声学模型,examples/ 目录里按数据集分好了各模型的训练脚本;如果你是应用开发者,直接调用推理接口或把模型包装成服务就够了。
它一次调用能编排的能力有五块:
- 语音识别:主力模型 Paraformer,负责把语音转成文字
- 语音活动检测:FSMN-VAD 找出音频里真正有人说话的时段
- 标点恢复:CT-Transformer 给转写文本补上标点
- 说话人验证:Xvector 提取声纹特征,判断"谁在说"
- 声音事件检测:SOND 模型捕捉特定声音事件
从总览图能看出它的分工:模型库(Paraformer、FSMN-VAD、Xvector 等预训练模型)喂给核心库做训练与推理,训练完的模型经导出模块转成 Libtorch、ONNX 或 TensorRT 格式,再由运行时部署、服务层以 gRPC、websocket、Triton 三种方式对外提供推理。换句话说,研究者调模型、工程师接服务,各走各的路,互不干扰。
能力拆解:三个你最可能在用的场景
场景一:离线整段转写
丢一段长录音进去,它一口气完成识别、切分、加标点,返回带时间戳的整段文本。这是最基础也最常用的用法,后面"快速上手"部分会实际跑一次。
场景二:多人会议,要分清谁说了什么
多人场景里有个容易混淆的区分:
- 多说话人 ASR:把不同人的语音先切成独立片段
- 说话人归属 ASR:给每句转写直接标注说话人身份
FunASR 用一个端到端模型同时覆盖这两件事:声学编码器(AsrEncoder)出语义表示,说话人编码器(SpeakerEncoder)出声纹表示,AsrDecoder 逐 token 生成文字,SpeakerDecoder 再配合余弦相似度注意力,把每句话贴到正确的说话人头上。
场景三:行业黑话、专有名词总认错
新版 FunASR 针对这点引入了三类上下文机制:
- 音频上下文(Audio Context):结合前后音频片段提升识别准确度
- CTC 预测上下文:给 CTC 解码提供先验信息
- 用户热词:你自定义一份热词表,领域词识别率立刻上来
更关键的是RAG-user hotword:解码前先从你的词库里检索出与当前内容相关的热词再注入解码过程,热词是"动态"生效的,而不是把整张表一股脑塞给模型。
它是怎么跑起来的:一个音频文件的完整旅程
把上面零散的架构、原理、流程串成一条线。你调用接口传入一个音频文件后,内部大致经历五步:
- 消息队列接收音频
- FSMN-VAD切出有语音的片段,去掉静音
- Paraformer声学模型把语音片段转成文本特征
- WFST 解码器结合 Ngram/Token/Lex 语言模型和 FST 热词约束,产出初稿
- CT-Transformer补标点,最后经ITN(逆文本正则化)输出规范文本
训练和调优走同一条主线的另一侧:核心库里 asr_trainer.py / asr_infer.py 这类脚本负责训练与推理,export_model.py 负责把模型导出成 Libtorch、ONNX、TensorRT 格式。部署时 runtime 层提供跨平台支持,服务层则以 gRPC、websocket、Triton 三种方式把能力端出去——这也是仓库里 runtime/ 目录分 Android、iOS、ONNX、gRPC 等子目录的原因。
FunASR 安装步骤与 Paraformer 模型调用示例
环境要求(推荐 Linux,Mac/Windows 也支持):
- Python 3.7 及以上
- PyTorch 1.11 及以上;没有 GPU 用 CPU 版即可
安装(完整说明见 docs/ 下的安装文档):
git clone https://gitcode.com/GitHub_Trending/fun/FunASR cd FunASR pip install -r requirements.txt最小示例:加载 Paraformer 中文模型,对本地音频跑一次离线转写:
from funasr import AutoModel model = AutoModel(model="paraformer-zh") result = model(audio_in="test.wav") print(result)有 GPU 的话,给 AutoModel 加device="cuda"即可。想换 VAD、说话人等模型组合,或想调流式识别,去 examples/ 翻各模型的脚本最快。
真实用在哪儿:三个落地案例
客服质检。某电商客服团队以前靠人工抽听录音做质检,覆盖不了全量。接入 FunASR 后,通话自动转写成文本再交给 NLP 环节做质检和问答,质检覆盖率从抽样变成全量,效率上来了。
会议记录。产品组用多说话人能力处理例会录音:不用自己先分轨,转写结果直接带说话人标签,结构化纪要自动生成,记录员从"边听边打字"变成"校对"。
语音助手与实时字幕。助手指令理解和在线字幕生成都依赖低延迟、高准确的 ASR,FunASR 的流式能力正好补这个位——同样的识别精度,实时场景下也能撑住。
写在最后
FunASR 把预训练模型、训练脚本、模型导出、跨平台运行时和 OpenAI 兼容服务装进了一个仓库,新手三步就能跑通第一句转写。下一步:打开 examples/ 找一个离你业务最近的模型目录,照着脚本跑一遍,再看 docs/ 补细节。
【免费下载链接】FunASROpen-source speech recognition toolkit for training, inference, streaming ASR, VAD, punctuation, speaker diarization pipelines, and OpenAI-compatible/MCP serving.项目地址: https://gitcode.com/GitHub_Trending/fun/FunASR
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考