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
模型别名后端适用场景
sensevoiceiic/SenseVoiceSmall高速多语种 ASR,支持语种、情感和事件标签。
paraformerparaformer-zh + VAD + punctuation中文生产转写。
paraformer-enparaformer-en + VAD英文转写。
fun-asr-nanoFunAudioLLM/Fun-ASR-Nano-251231 语种 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_DEVICEcpucuda, cpu, or mps.
FUNASR_MODELiic/SenseVoiceSmallMCP 工具使用的 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
平台录音粘贴
macOSYesAppleScript
LinuxYesxdotool
WindowsYes必要时手动 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
选项默认值说明
--formatsrtsrt or vtt.
--modeliic/SenseVoiceSmallASR 模型。
--spkoff添加说话人标签。
--langauto语种提示。