FunASR 语音转文字 本 skill 提供本地语音识别服务,将音频或视频文件转换为结构化的 Markdown 文档。 功能概述 支持多种音视频格式(mp4、mov、mp3、wav、m4a、flac 等) 自动生成时间戳 支持说话人分离(diarization) 输出 Markdown 格式,便于阅读和编辑 使用流程 首次使用:安装依赖和下载模型 运行安装脚本完成环境配置: python scripts/setup.py 安装脚本会自动: 检查 Python 版本(需要 >= 3.8) 安装依赖包(FastAPI、Uvicorn、FunASR、PyTorch) 下载 ASR 模型到 ~/.cache/modelscope/hub/models/ 验证安装状态: python scripts/setup.py --verify 启动转录服务 python scripts/server.py 服务默认运行在 http://127.0.0.1:8765 智能特性: 自动启动 :首次请求时自动加载模型 空闲关闭 :默认 10 分钟无活动后自动关闭以节约资源 可配置超时 :使用 --idle-timeout 参数自定义空闲超时时间(秒) 服务生命周期: 启动后进入空闲监控状态 接收到请求时自动加载模型并执行转录 每次请求都会重置空闲计时器 连续 10 分钟无请求时自动关闭 下次请求时重新启动 重要提示: ⚠️ 请勿手动关闭服务 - 转录完成后让服务继续运行,它会自动在 10 分钟无活动后关闭 这样可以连续转录多个文件,无需重复启动服务 如需立即关闭服务,按 Ctrl+C 或等待 10 分钟空闲超时 示例 :自定义 30 分钟空闲超时 python scripts/server.py --idle-timeout 1800 执行转录 使用客户端脚本转录文件:
转录单个文件
python scripts/transcribe.py /path/to/audio.mp3
指定输出路径
python scripts/transcribe.py /path/to/video.mp4 -o transcript.md
启用说话人分离
python scripts/transcribe.py /path/to/meeting.m4a --diarize
批量转录目录
python scripts/transcribe.py /path/to/media_folder/ AI 智能总结(Claude Code 环境) 转录完成后,可以生成 AI 智能总结,充分利用 Claude Code 的原生 AI 能力。 工作流程: 执行转录后,脚本会自动准备总结提示词 将提示词发送给 Claude AI 生成结构化总结 将 Claude 返回的 JSON 结果粘贴回脚本 自动将总结注入到 Markdown 文件 使用方法:
转录单个文件(会自动提示是否生成总结)
python scripts/transcribe.py /path/to/audio.mp3
启用说话人分离并生成总结
python scripts/transcribe.py /path/to/meeting.m4a
--diarize
--summary
总结内容结构:
全文总结
- 400+ 字,包含背景、问题、关键事实
发言人总结
- 每个发言人的观点、态度和贡献
重点内容
- 6-10 条核心要点
关键词
- 5-8 个关键术语
提示词特点:
专门针对中文口语化对话优化
保留发言人上下文和对话流程
结构化 JSON 输出便于解析和格式化
详细文档请查看:
自动转录 + 获取总结提示词
python scripts/auto_transcribe.py /path/to/audio.aac
自动转录 + 说话人分离
python scripts/auto_transcribe.py /path/to/audio.aac --diarize
只获取总结提示词,不生成总结
- python scripts/auto_transcribe.py /path/to/audio.aac --prompt-only
- 方式二:HTTP API 调用
- 1. 转录音频
- curl
- -X
- POST http://127.0.0.1:8765/transcribe
- \
- -H
- "Content-Type: application/json"
- \
- -d
- '{"file_path": "/path/to/audio.aac"}'
- 2. 获取总结提示词
- curl
- -X
- POST http://127.0.0.1:8765/summary
- \
- -H
- "Content-Type: application/json"
- \
- -d
- '{"md_path": "/path/to/audio.md"}'
- 响应示例:
- {
- "success"
- :
- true
- ,
- "output_path"
- :
- "/path/to/audio.md"
- ,
- "summary_prompt"
- :
- "你是一位擅长处理口语化中文对话..."
- ,
- "text_preview"
- :
- "转录文本前500字..."
- }
- 3. 注入 AI 总结
- 在 Agent(OpenClaw)中生成总结后,调用:
- curl
- -X
- POST http://127.0.0.1:8765/inject_summary
- \
- -H
- "Content-Type: application/json"
- \
- -d
- '{
- "md_path": "/path/to/audio.md",
- "summary_content": "## AI 摘要\n\n### 全文总结\n...\n\n### 重点内容\n- ...\n\n### 关键词\n..."
- }'
- 完整流程示例(OpenClaw)
- 用户:转录这个音频
- ↓
- Agent:
- 1. curl -X POST /transcribe -d '{"file_path": "xxx.aac"}'
- 2. curl -X POST /summary -d '{"md_path": "xxx.md"}'
- 3. 用模型生成总结
- 4. curl -X POST /inject_summary -d '{"md_path": "xxx.md", "summary_content": "..."}'
- ↓
- 用户:收到带总结的 Markdown 文件
- API 端点汇总
- 端点
- 方法
- 功能
- /health
- GET
- 健康检查
- /transcribe
- POST
- 转录音频/视频
- /batch_transcribe
- POST
- 批量转录目录
- /summary
- POST
- 生成 AI 总结提示词
- /inject_summary
- POST
- 将总结注入 Markdown 文件
- 环境检测
- server.py
- 会自动检测运行环境:
- OpenClaw
-
- 检测
- OPENCLAW_SERVICE_MARKER=openclaw
- 环境变量
- Claude Code
- 检测 CLAUDE_API_KEY 或 ANTHROPIC_API_KEY 环境变量 配置文件 文件 说明 assets/models.json ASR 模型配置清单 assets/requirements.txt Python 依赖清单 输出格式 转录结果保存为 Markdown 文件,包含: 标题 - 文件名(无转录时间戳) 转录内容 - 格式: 发言人N HH:MM:SS 换行 内容 AI 摘要 (可选)- 包含全文总结、发言人总结、重点内容、关键词 示例格式:
转录:filename.mp4
转录内容 发言人1 00:00:01 这是第一句话的内容。 发言人2 00:00:05 这是第二句话的内容。 模型信息 模型存储在 ModelScope 默认缓存目录 ~/.cache/modelscope/hub/models/ : ASR 主模型 (Paraformer) - 867MB VAD 模型 - 4MB 标点模型 - 283MB 说话人分离模型 - 28MB 故障排除 服务启动失败时,运行验证命令检查安装状态: python scripts/setup.py --verify 重新下载模型: python scripts/setup.py --skip-deps