Agent 集成
把语音识别作为本地基础设施接入 Agent、产品和桌面工作流:OpenAI 兼容 API、MCP 服务、语音输入和字幕生成。
OpenAI 兼容 API 服务
funasr-server 提供 /v1/audio/transcriptions、/v1/models、/health,并在 /docs 提供 Swagger 文档。任何支持 OpenAI audio API 的框架都可以接入。
pip install funasr fastapi uvicorn python-multipart
funasr-server --device cuda --port 8000
# CPU fallback
funasr-server --device cpu --model sensevoice --port 8000
| 模型别名 | 后端 | 适用场景 |
|---|---|---|
sensevoice | iic/SenseVoiceSmall | 高速多语种 ASR,支持语种、情感和事件标签。 |
paraformer | paraformer-zh + VAD + punctuation | 中文生产转写。 |
paraformer-en | paraformer-en + VAD | 英文转写。 |
fun-asr-nano | FunAudioLLM/Fun-ASR-Nano-2512 | 31 语种 LLM-based ASR,支持时间戳。 |
OpenAI SDK 与 curl
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="not-needed")
result = client.audio.transcriptions.create(
model="sensevoice",
file=open("meeting.wav", "rb"),
)
print(result.text)
verbose = client.audio.transcriptions.create(
model="sensevoice",
file=open("meeting.wav", "rb"),
response_format="verbose_json",
)
print(verbose.segments)
curl http://localhost:8000/v1/audio/transcriptions \
-F file=@audio.wav \
-F model=sensevoice \
-F response_format=verbose_json
Dify、n8n 与工作流引擎
OpenAI API 中文快速上手见 README_zh.md。低代码工具如果通过 HTTP 节点或 webhook worker 调用语音 API,请参考 工作流配方。其中覆盖 multipart 上传配置、Dify custom tool、n8n binary file 字段、音频 URL worker、超时设置和生产防护。Node.js、TypeScript 或 Next.js 服务可从 JavaScript/TypeScript 配方 开始。需要图形界面 smoke test 时,可导入 Postman 集合;需要在 Windows、Linux 或 macOS 上做命令行检查时,可运行 Python 烟测脚本;需要浏览器上传和麦克风检查时,可启动 Gradio 演示;跨团队共享服务前,请先看 安全与网关指南;按 schema 导入时可使用 OpenAPI 规范。
打开工作流配方 · JS/TS 配方 · Python 烟测脚本 · Gradio 演示 · 安全指南 · 打开 Postman 集合 · OpenAPI 规范
MCP 服务
MCP 服务为 Claude Code、Claude Desktop、Cursor、Windsurf 和其他 MCP 客户端提供本地 transcribe_audio 工具。
pip install funasr
python examples/mcp_server/funasr_mcp.py
{
"mcpServers": {
"funasr": {
"command": "python",
"args": ["/path/to/examples/mcp_server/funasr_mcp.py"],
"env": {"FUNASR_DEVICE": "cuda"}
}
}
}
| 变量 | 默认值 | 说明 |
|---|---|---|
FUNASR_DEVICE | cpu | cuda, cpu, or mps. |
FUNASR_MODEL | iic/SenseVoiceSmall | MCP 工具使用的 ASR 模型。 |
Desktop 语音输入
语音输入示例会从麦克风录音,把音频发送到 funasr-server,再把识别结果粘贴到当前光标位置。
pip install funasr sounddevice numpy pyperclip openai pynput
funasr-server --device cuda
cd examples/voice_input
python funasr_input.py --server http://localhost:8000/v1 --model sensevoice
| 平台 | 录音 | 粘贴 |
|---|---|---|
| macOS | Yes | AppleScript |
| Linux | Yes | xdotool |
| Windows | Yes | 必要时手动 Ctrl+V |
字幕生成
字幕示例可以把音频或视频文件转成 SRT/VTT,并可选择加入说话人标签。
cd examples/subtitle
python generate_subtitle.py video.mp4
python generate_subtitle.py meeting.wav --spk
python generate_subtitle.py podcast.mp3 --format vtt
python generate_subtitle.py audio.wav --device cpu
| 选项 | 默认值 | 说明 |
|---|---|---|
--format | srt | srt or vtt. |
--model | iic/SenseVoiceSmall | ASR 模型。 |
--spk | off | 添加说话人标签。 |
--lang | auto | 语种提示。 |