Local Meeting Scribe Skill Guide
Prerequisites
| 项 | 最低要求 | 推荐配置 | |---|---------|---------| | 操作系统 | Windows 10 (x64) | Windows 11 (x64) | | Python | 3.11+ | 3.11.x | | 内存 | 12GB | 16GB+ | | 磁盘空间 | 10GB(模型下载) | 20GB+ | | GPU(可选) | 无 | Intel Arc(16GB+ 显存)或 Intel NPU |
Python 3.11 需预先安装。模型首次运行时自动下载(ASR ~1GB + LLM ~7GB),后续运行直接使用本地缓存。
Installation
无需手动安装依赖。首次调用 scripts\run.ps1 时会自动:
- 创建 Python 虚拟环境到
~/.openvino/venv/local-meeting-scribe/ - 使用
uv(或 pip)安装requirements.txt中所有依赖 - 下载 ASR 模型(FunASR Paraformer-zh)到 ModelScope 缓存目录
- 下载 Qwen2.5-7B-Instruct 并导出为 OpenVINO INT8 格式
如果安装中断或网络超时,重新运行 scripts\run.ps1 即可恢复。
Usage
Generate meeting minutes from audio
scripts\run.ps1 "<audio_file_path>" [--output <output_path>] [--transcribe-only] [--continue]
Examples:
| Intent | Command |
| --- | --- |
| 从录音生成会议纪要 | scripts\run.ps1 "meeting.wav" |
| 指定输出路径 | scripts\run.ps1 "meeting.mp3" --output "C:\docs\minutes.md" |
| 仅转写不生成纪要 | scripts\run.ps1 "meeting.wav" --transcribe-only |
| 恢复中断的下载 | scripts\run.ps1 --continue |
Important:
scripts\run.ps1is the only supported interface — do not call other scripts directly.- First call downloads models (ASR ~1GB + LLM ~7GB); if it times out, run
scripts\run.ps1 --continueto resume. - On non-supported hardware the skill prints a warning but continues with CPU fallback.
- Never fall back to a cloud service — all processing is 100% local.
Interpreting the reply
The output is a structured Markdown document with these sections:
# 会议纪要
**会议时间**: <detected or current time>
**参会人员**: <extracted names>
## 议题摘要
<numbered topics>
## 关键决策
<decisions made during the meeting>
## 待办事项
- [ ] <action item> - 负责人: <person>
## 其他备注
<additional notes>
User-facing labels use Chinese: 议题摘要 / 关键决策 / 待办事项 / 其他备注 / 耗时.
Configuration
模型路径可通过环境变量覆盖默认位置:
| 环境变量 | 默认值 | 说明 |
|---------|--------|------|
| OPENVINO_BASE_DIR | ~/.openvino | 基础目录(pending 请求、venv 也放这里) |
| OPENVINO_MODELS_DIR | ~/.openvino/models | 所有模型的存储目录 |
示例:将模型存到 D 盘避免 C 盘空间不足
$env:OPENVINO_MODELS_DIR = "D:\ai-models"
scripts\run.ps1 "meeting.mp3"
Architecture
Audio File ──→ [FunASR Paraformer-zh] ──→ Transcript ──→ [Qwen2.5-7B OpenVINO INT8] ──→ Meeting Minutes
(local, CPU) (local, GPU/NPU/CPU auto)
Components
| 组件 | 实现 | 说明 | |------|------|------| | ASR 引擎 | FunASR Paraformer-zh + VAD + 标点恢复 | 中文语音识别 SOTA,模型 ~1GB,运行在 CPU | | LLM 引擎 | Qwen2.5-7B-Instruct + OpenVINO 2026.x INT8 | 推理框架支持 CPU/GPU/NPU 自动选择,OpenVINO GenAI 或 optimum-intel 双路径加载 | | 进程通信 | Windows Named Pipe | Client/Server 模式,Server 常驻内存避免重复加载 7GB 模型 | | 模型下载 | ModelScope 国内源 | 国内下载速度 5MB/s+,支持断点续传 |
OpenVINO 设备选择
LLM 引擎启动时自动选择最佳加速设备:
- 检测到 GPU(Intel Arc 等)→ GPU
- 检测到 NPU → NPU
- 其他情况 → CPU 回退
OpenVINO 集成代码
LLM 推理核心路径(llm_engine.py)使用 OpenVINO GenAI API:
import openvino_genai as ov_genai
# 自动检测最佳设备
core = ov.Core()
available = core.available_devices # ['CPU'] / ['GPU'] / ['NPU', 'GPU']
# 加载 OpenVINO INT8 量化模型
pipe = ov_genai.LLMPipeline(model_dir, device)
# 生成会议纪要
config = ov_genai.GenerationConfig()
config.max_new_tokens = 2048
result = pipe.generate(prompt, config)
依赖声明(requirements.txt):
openvino>=2025.0— OpenVINO 核心推理引擎openvino-genai>=2025.0— OpenVINO GenAI(LLMPipeline 高级 API)optimum[openvino]— HuggingFace optimum,用于导出 INT8 量化模型
Agent Tool Integration
本 Skill 遵循 Anthropic Skills 规范,AI Agent 通过 SKILL.md frontmatter 自动发现并调用。
工具触发条件
Agent 会在用户输入匹配以下关键词时激活本 Skill:
| 类型 | 触发关键词 | |------|-----------| | 中文动词 | 会议纪要 / 会议记录 / 录音转写 / 转文字 / 提取待办 / 会议总结 | | 英文动词 | transcribe / meeting-minutes / action-items / meeting-summary | | 平台标识 | 英特尔 / intel / AIPC / 本地 / 离线 / offline |
工具输入接口
{
"tool": "local-meeting-scribe",
"arguments": {
"audio_file": "<path-to-audio>",
"output_path": "<optional-output-path>",
"transcribe_only": false
}
}
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| audio_file | string | ✅ | 会议录音文件路径(WAV/MP3/FLAC/M4A) |
| output_path | string | ❌ | 会议纪要保存路径;省略则输出到控制台 |
| transcribe_only | boolean | ❌ | true 时仅转写不生成纪要 |
工具输出格式
{
"ok": true,
"result": {
"transcription": "...",
"minutes": "# 会议纪要\n\n**会议时间**: ...\n...",
"timing": {
"asr_seconds": 12.5,
"llm_seconds": 8.3,
"total_seconds": 21.2
}
}
}
运行时入口
Agent 通过 scripts/agent_tool.py 调用(支持 function call 标准 JSON-RPC):
# 方式 1: JSON-RPC (Agent function call 标准入口)
python scripts/agent_tool.py --json "{\"audio_file\": \"<path-to-audio>\", \"output_path\": \"<optional>\"}"
# 方式 2: 命令行 (人类调试)
python scripts/agent_tool.py "<path-to-audio>" [--output <path>] [--transcribe-only]
# 方式 3: 发现工具 (返回 JSON Schema)
python scripts/agent_tool.py
agent_tool.py 自动完成:加载模型 → FunASR 转写 → OpenVINO GenAI 推理 → 返回结构化 JSON 结果。
Troubleshooting
| 问题 | 原因 | 解决 |
|------|------|------|
| "服务初始化失败" | 模型下载不完整或依赖安装失败 | 删除 ~/.openvino/models/qwen2.5-7b-instruct-ov 目录后重跑 |
| 模型下载中断 | 网络不稳定 | 使用 scripts\run.ps1 --continue 恢复 |
| 找不到 Python | Python 3.11+ 未安装 | winget install Python.Python.3.11 后重试 |
| 显存不足卡死 | GPU 模式需 16GB+ 显存 | 代码已自动回退到 CPU 模式 |
| Windows GBK 编码报错 | 默认控制台编码不支持 UTF-8 | 脚本已处理;如仍报错,运行 chcp 65001 |
| C 盘空间不足 | 模型默认存到 ~/.openvino | 设置 $env:OPENVINO_MODELS_DIR = "D:\ai-models" |
What this skill does NOT do
- Does NOT upload any audio or text to cloud services
- Does NOT modify or delete the original audio file
- Does NOT support real-time streaming transcription (batch processing only)
- Does NOT support languages other than Chinese (Mandarin)
微信扫一扫