FunASR语音识别实战拆解:从流水线到落地部署

发布时间:2026/9/7 4:47:53
FunASR语音识别实战拆解:从流水线到落地部署 FunASR语音识别实战拆解从流水线到落地部署【免费下载链接】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/FunASR90 分钟的会议录音丢到群里整理纪要往往要耗掉一下午——多人抢话、没有标点连谁说了什么都分不清。FunASR 是达摩院开源的语音识别工具包能把这样一段录音直接变成带时间戳、说话人编号和标点的结构化文本实时流式场景也有现成的 WebSocket 服务可用。项目定位与能力速览FunASR 是覆盖训练、推理、部署全链路的语音处理工具箱核心思路是按场景挑模型而不是绑定单一识别模型ASR 识别Paraformer、SenseVoice、Fun-ASR-Nano 等模型可选CPU 上最快 17 倍实时VAD 端点检测FSMN-VAD 仅 0.4M 参数从长录音里自动裁出语音片段标点预测CT-Transformer 为识别结果自动补标点说话人分离CAM 区分多人对话中谁在说服务化OpenAI 兼容 API、WebSocket 流式、gRPC、llama.cpp 边缘二进制核心机制拆解离线识别流水线怎么串起来的长音频直接喂声学模型又慢又容易乱FunASR 把识别拆成五级流水线逐级收窄问题FSMN-VAD 端点检测逐帧扫描音频裁出有人说话的片段——相当于先把有效片段剪出来再逐段翻译Paraformer 声学模型把每段语音转成文本特征Wfst 解码器叠加 ngram 语言模型与用户热词Fst-hotword修正歧义、提升专有名词命中率CT-Transformer 标点预测恢复句读ITN 逆文本正则化把三千八百四十四还原成3844各级之间用消息队列串接可插拔纯识别场景可以砍掉标点级只需热词时只保留解码器一级。多人同时发言怎么区分谁说了什么这就是说话人归属 ASRspeaker-attributed ASR目标是一次输出谁、在什么时候、说了什么。关键在双编码器协作声学编码器AsrEncoder把语音特征转成语义表示并走 ASR 解码器生成文本说话人编码器SpeakerEncoder对同一片段并行抽取声纹特征交给说话人解码器预测编号。VAD 分段提供何时CAM 声纹嵌入提供是谁两路结果按时间轴对齐。上下文和热词在解码环节怎么用Fun-ASR-Nano 的 V2 架构把三类上下文注入解码Audio Context前段声学上下文经 Audio Adaptor 接入编码器、CTC Predicting ContextCTC 预预测上下文、User Hotword用户热词。热词走 RAG 检索从用户词表里按当前内容自动挑出最可能用到的词注入解码专有名词和领域术语的识别率因此明显提升。最小可用路径环境要求Python ≥ 3.8PyTorch ≥ 1.13 torchaudio。pip install torch torchaudio pip install funasr最简调用一行组合识别 VAD 说话人分离三个模型from funasr import AutoModel model AutoModel(modeliic/SenseVoiceSmall, vad_modelfsmn-vad, spk_modelcam, devicecpu) result model.generate(inputmeeting.wav) for seg in result[0][sentence_info]: print(f[{seg[start]/1000:.1f}s] 说话人{seg[spk]}: {seg[sentence]})预期输出是带说话人编号和时间戳的 VAD 分段形如[0.6s] 说话人0: 欢迎大家来体验达摩院推出的语音识别模型需要标点时在构造参数里补一个punc_modelct-punc即可。落地场景拆解场景一会议录音转写业务问题长会议录音需要谁说了什么的结构化纪要解决路径AutoModel 组合 fsmn-vad 识别模型 cam长音频自动分段、归属说话人关键配置点长音频建议vad_kwargs{max_single_segment_time: 30000}限制单段时长避免超长段内存抖动场景二实时客服与语音助手业务问题用户还在说就要出文本端到端延迟要压住解决路径paraformer-zh-streaming按 600ms 一块喂音频用 cache 保持跨块上下文关键配置点chunk_size[0, 10, 5]控制块长与回看窗口生产环境接runtime/websocket/的 WebSocket 服务客户端与服务解耦场景三私有化 OpenAI 兼容 API业务问题现有 LangChain/Dify 工作流已用 OpenAI 接口不想改代码接 ASR解决路径funasr-server --model sensevoice --device cuda在 localhost:8000 直接暴露 POST /v1/audio/transcriptions关键配置点examples/openai_api/内有 Docker 镜像与 Kubernetes 模板无 Python 的边缘环境改用runtime/llama.cpp/的 GGUF 二进制内置 FSMN-VAD版本演进与生态最近的演进集中在 LLM-ASR 路线Fun-ASR-NanoSenseVoice 编码器 Qwen3-0.6B 解码器在 vLLM 下做到 340 倍实时比 Whisper-large-v3 快 26 倍1.4.13 版本收紧了 NumPy 依赖修复 ABI 兼容同时引入 MOSS-Transcribe-Diarize一次调用完成转写、时间戳与匿名说话人标注。生态侧支持 Libtorch / ONNX / TensorRT 三种导出格式runtime/覆盖 Docker、gRPC、Java/Go/Android/iOS 客户端外加 OpenAI 兼容 API 与 MCP 服务可直接接入 AI Agent 工作流。FunASR 把识别、端点检测、标点、说话人归属从一堆零散脚本收敛成一条可按需裁剪的流水线离生产部署最近的入口就在仓库里示例代码看 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),仅供参考