([English](./README.md)|简体中文|[日本語](./README_ja.md)|[한국어](./README_ko.md))
面向离线、流式与边缘部署的工业级语音识别工具箱。
ASR · VAD · 标点 · 说话人 pipeline · 情感与音频事件模型 · OpenAI 兼容服务
快速开始 · Colab · 性能评测 · 模型选择 · 迁移指南 · 场景速览 · 社区集成 · 部署选型 · 部署中心 · 排障 FAQ · 模型列表 · Agent 集成 · 文档 · 贡献
--- ## 快速开始 [](https://colab.research.google.com/github/modelscope/FunASR/blob/main/examples/colab/funasr_quickstart.ipynb) 不想先配置本地环境?可以打开 [Colab 快速体验](./examples/colab/README_zh.md) 在浏览器里转写公开样例或上传自己的音频。 ```bash pip install torch torchaudio pip install funasr ``` 如果要运行 GPU quickstart,请先按 [pytorch.org](https://pytorch.org/get-started/locally/) 选择与你的 NVIDIA driver 匹配的 PyTorch / torchaudio CUDA wheel,再安装 FunASR。 安装后先确认 GPU 可见: ```bash python - <<'PY' import torch print(torch.cuda.is_available()) PY ``` 只有这里输出 `True` 时才使用 `device="cuda"`;否则请先使用 `device="cpu"`,或重新安装匹配 CUDA 的 PyTorch wheel。 ```python from funasr import AutoModel from funasr.utils.postprocess_utils import rich_transcription_postprocess model = AutoModel(model="iic/SenseVoiceSmall", vad_model="fsmn-vad", spk_model="cam++", device="cuda") result = model.generate(input="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_zh.wav") # AutoModel pipeline 返回带说话人 id 和时间戳的 VAD 分段: for seg in result[0]["sentence_info"]: print(f"[{seg['start']/1000:.1f}s] 说话人{seg['spk']}: {rich_transcription_postprocess(seg['sentence'])}") ``` **输出** — 带说话人标签、时间戳和标点的结构化文本: ``` [0.6s] 说话人0: 欢迎大家来体验达摩院推出的语音识别模型 ``` 这是一次 `AutoModel` pipeline 调用,实际组合了 SenseVoiceSmall、FSMN-VAD 和 CAM++ 三个独立模型;说话人分离由 CAM++ 提供,并非 SenseVoiceSmall checkpoint 的内置输出。 SenseVoice 论文见 [arXiv:2407.04051](https://arxiv.org/abs/2407.04051), 模型见 [Hugging Face checkpoint](https://huggingface.co/FunAudioLLM/SenseVoiceSmall), 边缘部署可用 [GGUF checkpoint](https://huggingface.co/FunAudioLLM/SenseVoiceSmall-GGUF)。 ### LLM 语音识别:Fun-ASR-Nano Fun-ASR-Nano 是基于 SenseVoice 编码器 + Qwen3-0.6B 解码器的 LLM-ASR, 支持中文、英语、日语,以及 7 种中文方言和 26 种地域口音: ```python from funasr import AutoModel model = AutoModel(model="FunAudioLLM/Fun-ASR-Nano-2512", vad_model="fsmn-vad", device="cuda") result = model.generate(input="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_zh.wav") ``` 需要 31 语种时,请改用独立的 [Fun-ASR-MLT-Nano-2512](https://huggingface.co/FunAudioLLM/Fun-ASR-MLT-Nano-2512) checkpoint。Nano 与 MLT-Nano 的语言范围不同,使用时请按 checkpoint 选择。 使用 vLLM 做高吞吐批处理: ```python from funasr.auto.auto_model_vllm import AutoModelVLLM model = AutoModelVLLM(model="FunAudioLLM/Fun-ASR-Nano-2512", tensor_parallel_size=1) results = model.generate(["audio1.wav", "audio2.wav"], language="auto") ``` > **部署为 API 服务:** `funasr-server --device cuda` → 本地 OpenAI 兼容接口 localhost:8000 > > **接入 AI Agent:** [MCP 服务](examples/mcp_server/) 支持 Claude/Cursor · [OpenAI API](examples/openai_api/README_zh.md) 支持 LangChain/Dify/AutoGen ### 为什么选 FunASR? Whisper 是单个模型,**FunASR 是一个工具箱**——按场景挑模型: **Fun-ASR-Nano**(中/英/日及中文方言,需 GPU)、 **Fun-ASR-MLT-Nano**(31 语种)、**SenseVoiceSmall**(五语种 ASR, 并返回情感与音频事件标签)、**Paraformer**(低延迟流式)。下表展示的是 工具箱级能力,并标明由哪个模型或 pipeline 提供: | | FunASR(工具箱) | Whisper | 云端 API | |---|---|---|---| | 最高速度 | **340 倍实时**(Fun-ASR-Nano + vLLM) | 13 倍实时 | ~1 倍实时 | | 说话人识别 | ✅ 由 VAD + CAM++ pipeline 提供 | ❌ 需要 pyannote | ✅ 额外付费 | | 情感识别 | ✅ 由 SenseVoice 提供 | ❌ | ❌ | | 语言数 | 取决于 checkpoint(例如 Qwen3-ASR 52、MLT-Nano 31、Nano 中/英/日) | 57 | 因服务而异 | | 流式识别 | ✅ WebSocket(Paraformer) | ❌ | ✅ | | CPU 可用 | ✅ 17 倍实时(SenseVoice) | ❌ 太慢 | 不适用 | | 私有部署 | ✅ 支持(工具箱 MIT;模型协议各异) | ✅ MIT 开源 | ❌ 仅云端 | | 费用 | 免费 | 免费 | ¥0.04/分钟起 | 第一次试用 FunASR?可以先跑 [Colab 快速体验](./examples/colab/README_zh.md),再配置本地环境。还不确定先用哪个模型?先看 [模型选择指南](./docs/model_selection_zh.md)。计划从 Whisper 或云端 ASR 切换?请按 [迁移指南](./docs/migration_from_whisper_zh.md) 和 [评测示例](./examples/migration/) 用代表性音频评测、映射功能并安全上线。 --- ## 性能评测 > 184 条长音频(共 192 分钟)。[完整报告 →](https://modelscope.github.io/FunASR/zh/benchmark.html) | 模型 | 中文 CER ↓ | GPU 速度 | CPU 速度 | 对比 Whisper-large-v3 | |------|------|----------|----------|---------------------| | **Fun-ASR-Nano**(vLLM) | **8.20%** | **340 倍**实时 | — | 🚀 **快 26 倍** | | **SenseVoice-Small** | **7.81%** | **170 倍**实时 | **17 倍**实时 | 🚀 **快 13 倍** | | **Paraformer-Large** | 10.18% | **120 倍**实时 | **15 倍**实时 | 🚀 **快 9 倍** | | Whisper-large-v3-turbo | 21.71% | 46 倍实时 | ❌ | 快 3.4 倍 | | Whisper-large-v3 | 20.02% | 13 倍实时 | ❌ | 基准 | > **一句话:** FunASR 在 CPU 上的速度,比 Whisper 在 GPU 上还快。 --- ## 最新动态 - 2026/07/31:**v1.4.0 已发布到 PyPI** — `AutoModel` 现在会在下载模型前拒绝常见的 `vda_model` 误拼写并明确提示使用 `vad_model`,避免依赖 VAD 的分段、说话人处理和 `sentence_info` 被静默关闭。GitHub 源码发布同时更新 legacy WebSocket 文件运行时:客户端会等待明确的输入结束确认,服务端先刷新待处理的 offline、online 与 2pass 音频,并把收尾失败返回给客户端。Python 包安装命令:`python -m pip install -U "funasr==1.4.0"`。[发布页 →](https://github.com/modelscope/FunASR/releases/tag/v1.4.0) - 2026/07/27:**v1.3.30 已发布到 PyPI** — WAV、MP3、FLAC、OGG、MP4/M4A 和 WebM 等容器格式的音频字节现在会通过对应编解码器解码,不再被误当作原始 PCM。OpenAI 兼容响应会保留说话人标签,标点不匹配时仍保留 VAD 分句时间,受信任的浏览器客户端可按需启用 CORS,vLLM 的 VAD 分段上限为 30 秒。GitHub 发布页还同时提供覆盖九种桌面和服务器目标的当前 llama.cpp 预编译运行包。安装命令:`python -m pip install -U "funasr==1.3.30"`。[发布页 →](https://github.com/modelscope/FunASR/releases/tag/v1.3.30) - 2026/07/24:**v1.3.29 热修复已发布到 PyPI** — SenseVoice 长音频在没有词级时间戳和标点模型时,现在会通过 `sentence_info` 返回每个 VAD 语音片段。字幕客户端可直接获得识别文本及真实的毫秒级起止时间,不再退化为零时长或覆盖整段媒体的单条字幕。安装命令:`python -m pip install -U "funasr==1.3.29"`。[发布页 →](https://github.com/modelscope/FunASR/releases/tag/v1.3.29) - 2026/07/24:**v1.3.28 热修复已发布到 PyPI** — 实时 WebSocket 在 VAD 锁句结果退化为短前缀、重复幻觉或解码异常时,会保留连续且完整覆盖当前语音段的干净 partial;短音频 STOP、VAD 收尾和说话人结束现在统一走可靠的完成路径。SenseVoice 字幕分句也会正确对齐富标签、标点与词/BPE 时间戳,不再把中文压成一个字幕块,也不会破坏英文原文。安装命令:`python -m pip install -U "funasr==1.3.28"`。[发布页 →](https://github.com/modelscope/FunASR/releases/tag/v1.3.28) - 2026/07/24:**v1.3.27 已发布到 PyPI** — OpenAI 兼容服务现在会在 `verbose_json` 中返回 SenseVoice 检测到的语言,并在 vLLM 降级后复用已缓存的 Fun-ASR-Nano `AutoModel`。当 vLLM/VAD 初始化及其 fallback 均失败时,不会残留半初始化的 engine 状态,后续请求可以重试。安装命令:`python -m pip install -U "funasr==1.3.27"`。[发布页 →](https://github.com/modelscope/FunASR/releases/tag/v1.3.27) - 2026/07/23:**llama.cpp runtime v0.1.9** — 新增独立的 Windows Vulkan 包 `funasr-llamacpp-windows-x64-vulkan.zip`,支持在安装当前 AMD、Intel 或 NVIDIA Vulkan 驱动的 Windows 机器上运行 SenseVoiceSmall;Linux Vulkan、Windows CUDA、CPU/AVX2、Linux arm64 和 macOS arm64 包继续提供。[发布页 →](https://github.com/modelscope/FunASR/releases/tag/runtime-llamacpp-v0.1.9) - 2026/07/23:**v1.3.26 已发布到 PyPI** — `funasr-server --model fun-asr-nano --hub ms` 现在会在默认 Fun-ASR-Nano 的 vLLM 路径和 AutoModel fallback 路径中都尊重 ModelScope hub 选择,避免用户指定 ModelScope 时仍误走 Hugging Face 下载。安装命令:`python -m pip install -U "funasr==1.3.26"`。[发布页 →](https://github.com/modelscope/FunASR/releases/tag/v1.3.26) - 2026/07/23:**v1.3.25 已发布到 PyPI** — 实时 WebSocket 服务新增 `POSTPROCESS_HOTWORDS:错词=>正确词` 与 `--postprocess-hotword-file`,可在 final 文本阶段做确定性热词纠正,避免把固定错词修正误用成模型层 `HOTWORDS:` 解码偏置;源码目录下的实时服务入口也可直接运行。安装命令:`python -m pip install -U "funasr==1.3.25"`。[发布页 →](https://github.com/modelscope/FunASR/releases/tag/v1.3.25) - 2026/07/23:**v1.3.24 已发布到 PyPI** — OpenAI 兼容服务现在支持自定义模型路径和 hub 选择,llama.cpp/GGUF 文档补充 HTTP 转写 wrapper 与 Linux Vulkan 包,公开文档链接也已刷新,便于新用户顺利上手。安装命令:`python -m pip install -U "funasr==1.3.24"`。[发布页 →](https://github.com/modelscope/FunASR/releases/tag/v1.3.24) - 2026/07/19:**v1.3.22 已发布到 PyPI** — `funasr-server` 现在会为 SenseVoice/Paraformer fallback 的纯文本结果补齐 OpenAI 兼容 `verbose_json.segments`,避免字幕类客户端在 `text` 已有内容时仍拿到空 `segments` 数组。安装命令:`python -m pip install -U "funasr==1.3.22"`。[发布页 →](https://github.com/modelscope/FunASR/releases/tag/v1.3.22) - 2026/07/19:**v1.3.21 已发布到 PyPI** — 修复全新环境里先安装 `funasr`、尚未选择平台对应 PyTorch 版本时的首次导入阻塞。现在 `import funasr` 和 `funasr.__version__` 不再因为缺少 torch 失败;真正访问 `AutoModel` 时仍会要求安装 PyTorch,并给出明确安装提示。安装命令:`python -m pip install -U "funasr==1.3.21"`。[发布页 →](https://github.com/modelscope/FunASR/releases/tag/v1.3.21) - 2026/07/19:**v1.3.20 已发布到 PyPI** — PyPI 项目页和安装引导已同步到当前 FunASR 文档、社区集成列表,以及 Fun-ASR-Nano 部署路径中带引号的 `python -m pip install -U "funasr>=1.3.19"` 命令。本版本是文档/打包元数据同步,运行时代码与 v1.3.19 保持一致。安装命令:`python -m pip install -U "funasr==1.3.20"`。[发布页 →](https://github.com/modelscope/FunASR/releases/tag/v1.3.20) - 2026/07/19:**v1.3.19 已发布到 PyPI** — 实时 WebSocket 长会话排障文档已随包发布。启动服务时加上 `--enable-spk --log-session-stats-interval 30`,如果仍遇到断连或内存增长,请在 issue 中附上输出的 `Session stats:` 日志。安装命令:`python -m pip install -U "funasr==1.3.19"`。[长会话诊断 →](docs/vllm_guide_zh.md#长会话诊断) · [发布页 →](https://github.com/modelscope/FunASR/releases/tag/v1.3.19) - 2026/07/19:**v1.3.18 已发布到 PyPI** — CLI 的 SRT/TSV 字幕输出现在会请求句级时间戳,并在需要时加载标点模型;`funasr audio.wav --output-format srt --output-dir ./subs` 会输出分句字幕,不再退化成一个全文字幕块。安装命令:`python -m pip install -U "funasr==1.3.18"`。[发布页 →](https://github.com/modelscope/FunASR/releases/tag/v1.3.18) - 2026/07/18:**v1.3.16 已发布到 PyPI** — Fun-ASR-Nano 实时服务新增客户端分句模式。一个 WebSocket 会话可连续发送 PCM,并用 `COMMIT` 提交每个句子;无需加载服务端 VAD,短句可正常结束,多轮时间戳保持递增。执行 `pip install --upgrade funasr` 后,可用 `funasr-realtime-server --endpoint-mode client` 启动。[使用文档 →](examples/industrial_data_pretraining/fun_asr_nano/docs/realtime_demo.md) - 2026/07/22:**llama.cpp runtime v0.1.8** — 新增 Linux Vulkan 预编译包 `funasr-llamacpp-linux-x64-vulkan.tar.gz`,可在支持 Vulkan driver/ICD 的 Linux GPU 上运行 `llama-funasr-sensevoice ... --backend vulkan`;CPU、AVX2、macOS arm64、Windows CPU/AVX2、Windows CUDA 包继续保留。[发布页 →](https://github.com/modelscope/FunASR/releases/tag/runtime-llamacpp-v0.1.8) - 2026/07/18:**llama.cpp runtime v0.1.7** — 新增 SenseVoiceSmall 的 Windows CUDA 预编译包 `funasr-llamacpp-windows-x64-cuda.zip`,并保留 Linux / macOS / Windows CPU 包。下载 GGUF 模型后,可在支持的 NVIDIA GPU 上运行 `llama-funasr-sensevoice ... --backend cuda`。[发布页 →](https://github.com/modelscope/FunASR/releases/tag/runtime-llamacpp-v0.1.7) - 2026/05/24:**vLLM 推理引擎** — Fun-ASR-Nano 解码加速 2-3 倍。支持流式 WebSocket 服务(VAD + 说话人分离 + 热词)。[文档 →](docs/vllm_guide_zh.md) · [实时 WS 调优 →](docs/vllm_guide_zh.md#67-生产并发与多进程部署) · [API 稳定性清单 →](docs/vllm_guide_zh.md#生产-api-稳定性清单) - 2026/05/24:**动态 VAD** — 自适应静音阈值(默认开启),短句不切碎、长句自动切分。[详情 →](docs/vllm_guide_zh.md#7-动态-vad) - 2026/05/24:**v1.3.3** — `funasr-server` 命令行工具、OpenAI 兼容 API、MCP 服务。`pip install --upgrade funasr` - 2026/05/20:新增 Qwen3-ASR (0.6B/1.7B),52 种语言自动检测。[使用方法](examples/industrial_data_pretraining/qwen3_asr) - 2026/05/20:新增 GLM-ASR-Nano (1.5B),17 种语言,方言优化。[使用方法](examples/industrial_data_pretraining/glm_asr) - 2026/05/19:Fun-ASR-Nano 和 SenseVoice 可与 VAD、CAM++ 组合为说话人分离 pipeline。 - 2025/12/15:[Fun-ASR-Nano-2512](https://github.com/QwenAudio/Fun-ASR) 上线,支持中/英/日及中文方言。