← 返回信息流
GitHub 热榜GitHub Trending · 周·1 天前

FunASR:工业级语音识别工具包

原标题:modelscope/FunASR
Python16,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 主要解决以下痛点:

  1. 多任务集成复杂:用户无需分别部署和维护 VAD、ASR、标点预测和说话人分离模型,FunASR 通过 AutoModel 统一调用,实现“一次调用,多项输出”。
  2. 长音频处理困难:针对长录音文件,FunASR 内置动态 VAD 和分段策略,自动处理静音分割,避免长音频直接输入导致的显存溢出或识别精度下降。
  3. 多语言与方言支持不足:许多开源模型仅支持英语或标准普通话。FunASR 支持 50+ 种语言及多种中文方言,解决了跨区域、多语种场景下的适配问题。
  4. 部署成本高:通过提供 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 按量计费的团队。

快速上手指南:

  1. 环境安装

    pip install torch torchaudio
    pip install funasr
    
  2. 基础使用示例: 以下代码展示了如何使用 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.
    
  3. 高性能部署: 若需最高精度及多语言支持,可使用 Fun-ASR-Nano:

    model = AutoModel(model="FunAudioLLM/Fun-ASR-Nano-2512", vad_model="fsmn-vad", device="cuda")
    result = model.generate(input="meeting.wav")
    
  4. API 服务部署: 一行命令启动 OpenAI 兼容服务:

    funasr-server --device cuda
    # 服务将运行在 localhost:8000
    

对于不想本地配置环境的用户,官方提供了 Colab 快速启动链接,可直接在浏览器中上传音频进行测试。

查看原文 →github.com