{"id":"c2e349df-67a8-48f4-bcf3-9196bd9f7e10","slug":"gaocrypto123-meeting-minutes","kind":"skill","name":"meeting-minutes","summary":"会议纪要不该靠猜。每条决策、每个行动项都能点回原话出处，找不到依据就老实写「待确认」。","owner":"gaocrypto123","repoUrl":"https://github.com/gaocrypto123/meeting-minutes","license":"MIT","licenseTier":"permissive","trust":"community","stars":1,"match":null,"fewStars":true,"format":"skill","createdAt":"2026-09-19T07:19:18.000Z","addedAt":"2026-10-21T10:26:00.401Z","logoUrl":"https://avatars.githubusercontent.com/u/204130241?u=9c876298e9117191409fa367994b560dd6fd52d7&v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["productivity","design-media"],"tags":["chinese","llm","meeting-minutes","meeting-notes","productivity","speaker-diarization","speech-to-text","whisper"],"runtime":"binary","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-27T20:12:08.138Z","sample":false,"url":"https://conduits.dev/tools/gaocrypto123-meeting-minutes","language":"Python","transports":["stdio"],"install":{},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# meeting-minutes · 会议纪要技能\r\n\r\n把一场会议的**录音 / 转写稿 / 文字记录**，变成可以直接发出去、而且每条结论都能被机器验证的会议纪要。\r\n\r\n> 会议纪要不该靠猜。每条决策、每个行动项都能点回原话出处，找不到依据就老实写「待确认」。\r\n\r\n![License](https://img.shields.io/badge/license-MIT-blue)\r\n![Python](https://img.shields.io/badge/python-3.9%2B-blue)\r\n![Privacy](https://img.shields.io/badge/privacy-audio%20stays%20local-green)\r\n\r\n---\r\n\r\n## 目录\r\n\r\n- [v3 更新了什么](#v3-更新了什么)\r\n- [三步装上](#三步装上)\r\n- [开工确认单：先问，再动](#开工确认单先问再动)\r\n- [转写这件事：三条路](#转写这件事三条路)\r\n- [六个阶段](#六个阶段)\r\n- [说话人分离：责任人不再是「待确认」](#说话人分离责任人不再是待确认)\r\n- [出处可验证：锚点对账](#出处可验证锚点对账)\r\n- [常见问题](#常见问题)\r\n\r\n---\r\n\r\n## v3 更新了什么\r\n\r\nv3 = **v2（准确度）** + **v1（兜底能力）**。两版各有所长，也各有一个致命短板，合并后互相补上。\r\n\r\n### v2 解决了「转得准」，但假设录音一定能转\r\n\r\n| v2 带来的能力 | 解决什么问题 |\r\n|---|---|\r\n| **说话人分离**（sherpa-onnx，本地 CPU） | 谁在说话分得清，责任人不再是清一色「待确认」 |\r\n| **出处锚点机器校验** `verify_refs.py` | 把每条结论的时间戳拿去和转写稿 JSON 对账，**编造的时间戳会被机器抓出来** |\r\n| **术语表纠错** | 专有名词总被听错（PVT→PPT、SKU→Skill），一次配置永久生效 |\r\n| **独立虚拟环境 + 可彻底卸载** | 不污染系统 Python；删掉一个文件夹就恢复原样 |\r\n| **三层目录**（原文 / 纪要 / 过程） | 原文只读、纪要派生，改纪要不会污染原文 |\r\n| **HTML 交付物** | 双击可看，带目录，`[时:分:秒]` 可点回原文 |\r\n| **开工确认单** | 先问再动，杜绝 AI 自作主张先跑一轮 |\r\n| **采访访谈模板** | 第五套章节骨架 |\r\n\r\n### v1 解决了「转不了也走得下去」—— v2 缺的正是这个\r\n\r\nv2 的整个流程建立在「录音能转写」这个前提上。**一旦装不上、下不动，流程就死了**，AI 只能换着花样重试，一轮十分钟。\r\n\r\n| v1 补回的能力 | 解决什么问题 |\r\n|---|---|\r\n| **转写三条路**（甲/乙/丙分档） | 有文字稿就直接跳过转写；转不了就转人工供稿 |\r\n| **doctor 路线结论 A / B / C** | 10 秒体检直接给结论，用结论取代试错；退出码 3 = 立刻转路 3 |\r\n| **人工补录模板** `make_manual_template.py` | 实在拿不到稿子时，生成模板边听边填，不是死路 |\r\n| **三条死规矩** | 转写最多试一次；禁止蹭在线转写网站；不许说「我再试试别的办法」 |\r\n\r\n### 融合后的取舍\r\n\r\n- **主干用 v2** —— 工程化程度更高（配置化、模块化、独立环境、可卸载）。\r\n- **判档逻辑注入 v2 的 `doctor.py`** —— 保留 v2 的八项体检，末尾追加路线结论。\r\n- **保留 v1 的人工补录模板**，并把 v2 的三层目录路径（`原文/`）写进文档。\r\n- **PPT 改成按需生成** —— v1 默认出 Word + PPT，v2 实测发现多数场景只要 Word，默认不做能省一半时间。\r\n\r\n---\r\n\r\n## 三步装上\r\n\r\n### 1. 放文件\r\n\r\n把 `meeting-minutes` 文件夹复制到你的技能目录：\r\n\r\n| 环境 | 路径 |\r\n|---|---|\r\n| WorkBuddy（Windows） | `C:\\Users\\<你的用户名>\\.workbuddy\\skills\\` |\r\n| WorkBuddy（macOS / Linux） | `~/.workbuddy/skills/` |\r\n| Claude Code | `~/.claude/skills/` 或 `项目/.claude/skills/` |\r\n\r\n```\r\nmeeting-minutes/             ← 技能本体，整个拷到技能目录即可\r\n├── SKILL.md                 ← 主流程（先读第一条规则）\r\n├── README.md                ← 这个目录是什么、人看的文档在哪\r\n├── config.json              ← 配置（不含绝对路径，换电脑能用）\r\n├── 术语表.txt                ← 听错词纠错表\r\n├── references/              ← 五套章节模板 / 证据与质检规范 / 版式规范\r\n└── scripts/                 ← 15 个脚本，速查表见 scripts/README.md\r\n\r\ndocs/                        ← 给人看的：说明书 / 安装说明 / 单文件版\r\n```\r\n\r\n技能本体里只有 AI 要读的文件；`docs/` 是给人看的，不用拷进技能目录。\r\n\r\n### 2. 装环境（重资产，一次就行）\r\n\r\n```powershell\r\npython scripts/bootstrap.py --install --models small --with-diarization\r\n```\r\n\r\n依赖与模型装进**一个**文件夹（默认 `%USERPROFILE%\\.meeting-minutes`，可 `--home D:\\AIModels` 改到别的盘）。\r\n不写注册表、不改 PATH、不碰系统 Python —— **想彻底删掉就把那个文件夹整个删掉**。\r\n\r\n装完随时可查：`python scripts/doctor.py`\r\n\r\n### 3. 说一句话就能用\r\n\r\n```\r\n用 meeting-minutes 技能，把这段录音整理成会议纪要\r\n```\r\n\r\n---\r\n\r\n## 开工确认单：先问，再动\r\n\r\n收到材料的第一个动作是发这张单子，**然后等回答**。在用户回答之前禁止跑任何脚本\r\n（不许试跑、不许探测时长、不许检查音质）。\r\n\r\n```\r\n1. 材料：录音文件 / 已有文字稿\r\n2. 会议类型：内部工作会 / 决策评审会 / 跨部门对接会 / 外部沟通会 / 采访访谈\r\n3. 参会人：姓名 + 角色 + 是否发言\r\n4. 说话人数：几人（不知道就填「不知道」）\r\n5. 交付形态：Word 纪要 / 图文摘要 / PPT（PPT 按需）\r\n6. 无关段落：寒暄、吃饭、闲聊 → 保留并标记 / 直接剔除\r\n7. 术语表：有没有经常被听错的词\r\n```\r\n\r\n第 1 项的答案决定 Phase 1 走哪条路。\r\n\r\n---\r\n\r\n## 转写这件事：三条路\r\n\r\n**转写不是必经步骤，只是拿稿方式之一。**\r\n\r\n```mermaid\r\nflowchart LR\r\n    A[你的材料] --> B{有文字稿?}\r\n    B -- 有 --> R1[路 1 直接用<br/>跳过转写]\r\n    B -- 只有录音 --> C{跑 doctor.py 体检}\r\n    C -- 路径 A/B --> R2[路 2 本地离线转写<br/>含说话人分离]\r\n    C -- 路径 C --> R3[路 3 人工供稿<br/>会议平台导出]\r\n    R1 --> M[切段提炼 · 原文即弃]\r\n    R2 --> M\r\n    R3 --> M\r\n    M --> Q[出稿 + 挂时间戳锚点]\r\n    Q --> QC{六项质检 + 锚点对账}\r\n    QC -- FAIL --> Q\r\n    QC -- PASS --> D[Word / HTML / 图文摘要 / 待确认清单]\r\n```\r\n\r\n| 档位 | 材料 | 走哪条路 |\r\n|---|---|---|\r\n| **甲** | 已有文字稿 | **路 1** —— 规范成 `[时:分:秒] 发言人N：…`，跳过转写 |\r\n| **乙** | 录音，体检判定可转 | **路 2** —— 本地离线转写 |\r\n| **丙** | 录音，体检判定本机不行 | **路 3** —— 转人工供稿，立即停止尝试 |\r\n\r\n### 路 3 的三条拿稿通道\r\n\r\n判定 C 之后**不要重试**，按推荐顺序任选一条：\r\n\r\n1. **会议平台自带纪要** —— 腾讯会议 / 飞书妙记 / 钉钉闪记，录完导出即可，比本地转写更准\r\n2. **手机录音机自带转写** —— iPhone 备忘录、小米 / 华为 / OPPO 录音机多有「转文字」\r\n3. **剪映 / 讯飞听见 / 网易见外** —— 导入音频导出字幕，多数有免费额度\r\n\r\n实在拿不到，生成模板边听边填：\r\n\r\n```powershell\r\npython scripts/make_manual_template.py \"<音频>\" --out \"<工作目录>/原文/转写稿.md\"\r\n```\r\n\r\n### 三条死规矩\r\n\r\n| # | 规矩 | 为什么 |\r\n|---|---|---|\r\n| T1 | 转写最多试一次：一次体检 + 一次安装，失败立刻转路 3 | 换花样重试每轮十分钟级，成功率极低 |\r\n| T2 | 禁止用浏览器自动化蹭在线转写网站 | 要登录/验证码/付费，成功率接近零 |\r\n| T3 | 不许说「我再试试别的办法」 | 说了就是没决策，要么给结论要么转路 3 |\r\n\r\n---\r\n\r\n## 六个阶段\r\n\r\n| 阶段 | 干什么 | 你参与吗 |\r\n|---|---|---|\r\n| Phase 0 | 开工确认单 + 建三层目录 | **要你填** |\r\n| Phase 1 | 先判档 → 三条路选一条 | 不用 |\r\n| Phase 2 | 按议题切段、逐段提炼、原文即弃 | 不用 |\r\n| Phase 3 | 去重、套模板、挂时间戳锚点、出稿 | 不用 |\r\n| Phase 4 | 六项质检 + 锚点对账 | 不用 |\r\n| Phase 5 | 出 Word / HTML / 图文摘要，PPT 按需 | 选交付形态 |\r\n\r\n```\r\n<会议名>_<日期>/\r\n├── 原文/  转写稿.md（人看）、.json（机器校验用）、.html（带锚点）\r\n├── 纪要/  会议纪要.md/.docx/.html、图文摘要、待确认清单、出处校验报告\r\n└── 过程/  开工确认单、节点记录、要点稿、质检报告\r\n```\r\n\r\n---\r\n\r\n## 说话人分离：责任人不再是「待确认」\r\n\r\n用 `sherpa-onnx` + pyannote 分割模型 + 3D-Speaker 声纹模型，**纯 CPU、本地离线**。\r\n\r\n```powershell\r\npython scripts/diarize.py \"<音频>\" --speakers 3\r\n```\r\n\r\n实测数据（本机 CPU，i7 级）：\r\n\r\n| 项目 | 数值 |\r\n|---|---|\r\n| 处理速度 | 60 秒音频约 30–60 秒 |\r\n| 分割模型 | 5.7 MiB |\r\n| 声纹模型（中文） | 37.8 MiB |\r\n| 聚类效果 | 自动判断会分出 4 个；**指定人数后收敛到实际人数** |\r\n\r\n三点必须说清楚：\r\n\r\n- 编号是**声纹聚类结果，不等于真实身份**，跨会议不通用。\r\n- **填人数能显著改善效果** —— 自动判断容易把同一人的不同语气分成多个。\r\n- 远场、多人抢话的录音会有 10–20% 的句子判错边界。判不准的进待确认清单，**不硬猜**。\r\n\r\n---\r\n\r\n## 出处可验证：锚点对账\r\n\r\n`verify_refs.py` 把纪要里每条结论的时间戳，逐个拿去和 `原文/转写稿.json` 的真实发言区间对账（容差 2 秒）：\r\n\r\n```powershell\r\npython scripts/verify_refs.py \"<工作目录>\"\r\n```\r\n\r\n输出示例：`锚点 29/29 有效；0 条要点有问题`\r\n\r\n这是「可复核」从口号变成事实的关键一步 —— **编造时间戳会被机器抓出来**。\r\n也正因如此，修复质检失败时只允许两个动作：标注「待确认」，或删除该条目。\r\n\r\n---\r\n\r\n## 常见问题\r\n\r\n**Q：本机装不上 / 连不下模型怎么办？**\r\n跑 `doctor.py` 看路线结论。判定 C 就转人工供稿（三条通道见上）。别死磕本地转写，会议平台自带纪要往往更快更准。\r\n\r\n**Q：我已经有文字稿了？**\r\n不用转写。材料选「已有文字稿」直接跳过整个环节。人工速记和平台导出通常比离线转写更准。\r\n\r\n**Q：转写要联网吗？会上传录音吗？**\r\n不联网、不上传，全程本地。只有**首次安装**需要下载依赖和模型。\r\n\r\n**Q：为什么责任人还是「待确认」？**\r\n两个可能：没装说话人分离模型（体检会提示），或说话人编号没能映射成真名 —— 需要你在确认单里给姓名表。\r\n\r\n**Q：专有名词总被听错怎么办？**\r\n编辑 `术语表.txt`，每行一条 `错的写法 = 正确写法`（如 `PVT = PPT`）。私密词条写进 `术语表.local.txt`，那个文件不随包发布。\r\n\r\n**Q：质检 FAIL 了怎么办？**\r\n只有两个合法动作：标注「待确认」，或删除该条目。**禁止编造时间戳** —— 那正是锚点校验要防的事。\r\n\r\n**Q：想彻底卸载？**\r\n删掉 `bootstrap.py` 建的那个文件夹（默认 `%USERPROFILE%\\.meeting-minutes`）即可，电脑恢复原样。\r\n\r\n---\r\n\r\n## 文档\r\n\r\n- [`说明书.md`](docs/说明书.md) —— 面向使用者的完整说明\r\n- [`安装说明.md`](docs/安装说明.md) —— 安装步骤与「没有网络怎么办」\r\n- [`单文件版-可直接粘贴给AI.md`](docs/单文件版-可直接粘贴给AI.md) —— 不想装技能？整份复制粘进对话即可\r\n\r\n## License\r\n\r\nMIT\r\n"}