快速上手指南

三分钟掌握 FunASR 的三种核心用法:文件转写、实时识别、API 服务部署。所有代码可直接复制运行。

Python 3.8+ GPU 8GB+(可选,CPU 也能用) Linux / macOS / Windows

0
安装

一条命令安装所有依赖。GPU 用户安装 vllm 可获得 16 倍加速。

# 基础安装(CPU / GPU 均可)
$ pip install funasr

# 完整安装(含 API 服务 + vLLM 加速,推荐 GPU 用户)
$ pip install funasr vllm fastapi uvicorn python-multipart
提示 如果你只需要做一次文件转写,安装 funasr 即可。如果需要部署 API 服务或追求极致速度,建议完整安装。

1
离线文件转写

上传音频文件,获得完整转录文本。支持 50+ 语言,自动包含情感检测和音频事件识别。

from funasr import AutoModel

# SenseVoice: 50+ 语言,情感检测,音频事件识别
model = AutoModel(model="iic/SenseVoiceSmall", vad_model="fsmn-vad")
result = model.generate(input="meeting.wav")
print(result[0]["text"])
输出结果 今天我们讨论三个议题。好的,第一个是关于 Q3 计划。请开始吧,我们有半小时。
# 批量处理多个文件
results = model.generate(input=["file1.wav", "file2.mp3", "file3.flac"])
for r in results:
    print(r["text"])
支持的音频格式 WAV、MP3、FLAC、AAC、OGG、MP4 视频——几乎所有常见音频和视频格式都可以直接处理,无需手动转码。

2
实时流式识别

麦克风或音频流输入,边说边出结果。适合实时字幕、直播转写、语音助手。

from funasr import AutoModel

# Paraformer 流式模型
model = AutoModel(model="paraformer-zh-streaming", vad_model="fsmn-vad")

# 流式推理:chunk_size = [5, 10, 5] 表示 600ms 前瞻
chunk_size = [5, 10, 5]
cache = {}

# 模拟流式输入(实际使用时替换为麦克风采集)
import soundfile as sf
speech, sr = sf.read("meeting.wav")
chunk_stride = chunk_size[1] * 960 # 每个 chunk 的采样点数

for i in range(0, len(speech), chunk_stride):
    chunk = speech[i:i+chunk_stride]
    is_final = (i + chunk_stride >= len(speech))
    result = model.generate(
        input=chunk, cache=cache,
        is_final=is_final, chunk_size=chunk_size
    )
    print(result[0]["text"], end="", flush=True)
实时输出(逐步更新) 今天我们讨论...三个议题。好的,第一个是...关于 Q3 计划。
WebSocket 实时服务 如果需要浏览器端实时识别,FunASR 提供完整的 WebSocket 服务方案。参见 GitHub 仓库 中的 examples/ 目录获取 WebSocket 服务端和浏览器客户端代码。

3
OpenAI 兼容 API 服务

一行命令部署 OpenAI 兼容的语音识别 API。LangChain、Dify、Coze 等 AI 框架可零改动对接。

# 安装并启动服务
$ pip install funasr vllm fastapi uvicorn python-multipart
$ funasr-server --device cuda

# 服务启动后,端口默认为 8899
# 方式一:curl 调用
$ curl -X POST http://localhost:8899/v1/audio/transcriptions \
    -F "file=@audio.wav" \
    -F "model=iic/SenseVoiceSmall"
# 方式二:OpenAI Python SDK(与 Whisper API 完全相同)
from openai import OpenAI

client = OpenAI(base_url="http://localhost:8899/v1", api_key="x")
result = client.audio.transcriptions.create(
    model="fun-asr-nano",
    file=open("audio.wav", "rb"),
    response_format="verbose_json"
)
print(result.text)
返回 JSON {"text": "今天我们讨论三个议题。", "segments": [{"start": 1.7, "end": 5.5, "text": "今天我们讨论三个议题。"}], "duration": 12.1}

+
MCP 服务:AI 助手集成

启用 MCP 协议后,Claude、Cursor、Windsurf 等 AI 助手可直接调用 FunASR 进行语音识别。

# 启动带 MCP 支持的服务
$ funasr-server --device cuda --enable-mcp

# 现在 AI 助手可以通过 MCP 协议调用语音识别能力
# 适用于 Claude Desktop、Cursor、Windsurf 等工具
什么是 MCP? MCP (Model Context Protocol) 是 AI 助手调用外部工具的标准协议。启用后,你的 AI 编程助手可以直接"听懂"音频文件,实现语音驱动的开发工作流。

下一步

深入了解 FunASR 的更多能力