FunASR:工业级语音识别工具包
原标题:modelscope/FunASR
Python★ 16,926 stars+544 本周
速览
FunASR 是一款工业级语音识别工具包,支持 50 多种语言,具备 170 倍实时处理速度。其核心功能涵盖说话人分离、情感检测及流式识别,并提供 OpenAI 兼容 API,适用于大规模语音数据处理场景。
AI 深度解读
这是什么
FunASR 是由 ModelScope(魔搭社区)开源的一款工业级语音识别(ASR)工具包,主语言为 Python。该项目在 GitHub 上已获得超过 16,900 颗星,是目前全球范围内最活跃的开源语音处理项目之一。
FunASR 的核心定位是提供“端到端”的语音处理能力,不仅包含基础的语音转文字(ASR),还集成了语音活动检测(VAD)、说话人分离(Speaker Diarization)、情感识别(Emotion Detection)以及标点恢复等功能。它支持流式与非流式推理,兼容多种主流模型架构,并提供 OpenAI 兼容的 API 接口,旨在降低企业级语音应用的开发门槛。
解决的问题
传统语音处理链路通常由多个独立模块拼接而成(如 VAD + ASR + Punctuation + Diarization),导致延迟高、维护复杂且集成困难。FunASR 主要解决以下痛点:
- 多任务集成复杂:用户无需分别部署和维护 VAD、ASR、标点预测和说话人分离模型,FunASR 通过
AutoModel统一调用,实现“一次调用,多项输出”。 - 长音频处理困难:针对长录音文件,FunASR 内置动态 VAD 和分段策略,自动处理静音分割,避免长音频直接输入导致的显存溢出或识别精度下降。
- 多语言与方言支持不足:许多开源模型仅支持英语或标准普通话。FunASR 支持 50+ 种语言及多种中文方言,解决了跨区域、多语种场景下的适配问题。
- 部署成本高:通过提供 Docker 镜像、Kubernetes 模板以及 vLLM 加速引擎,FunASR 简化了从本地测试到云端大规模部署的流程,降低了算力成本。
核心功能
- 多模型统一接口:通过
funasr.AutoModel封装,用户可无缝切换不同后端模型(如 SenseVoice, Paraformer, Qwen3-ASR, GLM-ASR-Nano 等)。 - 全链路语音处理:
- ASR 识别:高精度文字转录。
- VAD(语音活动检测):自动检测语音起止点,支持动态阈值调整。
- Speaker Diarization(说话人分离):自动区分不同说话人,输出 Speaker 0, Speaker 1 等标签。
- Punctuation(标点恢复):自动为转录文本添加标点符号。
- Emotion Detection(情感识别):识别语音中的情绪状态。
- 流式与非流式推理:支持实时流式输入(Streaming),适用于会议记录、实时字幕等低延迟场景;同时也支持批量处理(Batch Processing)。
- OpenAI 兼容 API:内置
funasr-server,一键启动符合 OpenAI/v1/audio/transcriptions标准的 API 服务,便于与 LangChain、Dify、AutoGen 等 AI 框架集成。 - 多语言支持:涵盖 31+ 种主要语言及多种中文方言,具备自动语言检测能力。
亮点 / 与同类相比
- 性能优势:官方基准测试显示,FunASR 在特定配置下比 Whisper 快 170 倍。更重要的是,FunASR 模型在 CPU 上的运行速度甚至快于 Whisper 在 GPU 上的速度,显著降低了硬件依赖和部署成本。
- LLM 增强识别:最新推出的 Fun-ASR-Nano 结合了 SenseVoice 编码器与 Qwen3-0.6B 解码器,利用大语言模型的能力提升长尾词汇和上下文理解的准确率,支持 52 种语言。
- vLLM 加速集成:通过集成 vLLM 推理引擎,Fun-ASR-Nano 的 LLM 解码速度提升 2-3 倍,并支持高并发批量处理。
- 动态 VAD 技术:2026 年 5 月更新的动态 VAD 功能,可根据语音内容自适应调整静音阈值,短句子保持完整,长段落自动分割,提升了长音频处理的鲁棒性。
- 生态兼容性:提供 MCP Server 支持,可直接接入 Claude、Cursor 等 AI 助手;同时提供完整的 Python、JavaScript/TypeScript 客户端示例及 Postman 集合,便于快速集成。
适合谁用 / 上手
适合人群:
- AI 应用开发者:需要快速集成语音转文字、说话人分离功能到 Chatbot、会议助手或内容审核系统中。
- 数据科学家:需要处理多语种、多方言音频数据,进行语音情感分析或说话人追踪的研究人员。
- 企业 IT 运维:希望部署低成本、高性能本地化语音服务,避免依赖云端 API 按量计费的团队。
快速上手指南:
-
环境安装:
pip install torch torchaudio pip install funasr -
基础使用示例: 以下代码展示了如何使用 SenseVoice 模型进行包含说话人分离、时间戳和标点的端到端识别:
from funasr import AutoModel # 加载模型:SenseVoice 用于识别,fsmn-vad 用于语音检测,cam++ 用于说话人分离 model = AutoModel( model="iic/SenseVoiceSmall", vad_model="fsmn-vad", spk_model="cam++", device="cuda" ) # 生成结果 result = model.generate(input="meeting.wav") # 输出示例: # [00:00.4 → 00:03.8] Speaker 0: Let's discuss the Q3 plan. # [00:04.2 → 00:07.1] Speaker 1: Sounds good. I have three points. -
高性能部署: 若需最高精度及多语言支持,可使用 Fun-ASR-Nano:
model = AutoModel(model="FunAudioLLM/Fun-ASR-Nano-2512", vad_model="fsmn-vad", device="cuda") result = model.generate(input="meeting.wav") -
API 服务部署: 一行命令启动 OpenAI 兼容服务:
funasr-server --device cuda # 服务将运行在 localhost:8000
对于不想本地配置环境的用户,官方提供了 Colab 快速启动链接,可直接在浏览器中上传音频进行测试。
查看原文 →github.com
