返回 Skill 列表
extension
分类: AI Agent 能力无需 API Key

local-meeting-scribe

本地会议纪要自动生成:导入会议录音,语音转写后用 OpenVINO 加速的 Qwen2.5 智能提取议题、决策、待办事项。 Use this skill when the user asks to transcribe meeting audio, generate meeting minutes, extract action items, or summarize a meeting recording. 触发词: 会议纪要 / 会议记录 / 录音转写 / 转文字 / 提取待办 / 会议总结 / transcribe / meeting-minutes / action-items / meeting-summary

person作者: fuxinxinhubgithub

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 时会自动:

  1. 创建 Python 虚拟环境到 ~/.openvino/venv/local-meeting-scribe/
  2. 使用 uv(或 pip)安装 requirements.txt 中所有依赖
  3. 下载 ASR 模型(FunASR Paraformer-zh)到 ModelScope 缓存目录
  4. 下载 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.ps1 is 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 --continue to 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 引擎启动时自动选择最佳加速设备:

  1. 检测到 GPU(Intel Arc 等)→ GPU
  2. 检测到 NPU → NPU
  3. 其他情况 → 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)