返回顶部
m

meeting-summary会议纪要生成

会议录音 → 结构化纪要。支持 Step ASR 转写、pyannote 说话人分割、声纹实名匹配、LLM 纪要生成,以及长录音 chunk 化增量处理。

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 2.3.0
安全检测
已通过
225
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

meeting-summary

会议纪要技能

将会议录音处理成可交付的结构化纪要

触发条件:用户发送录音文件(mp3/wav/ogg/opus/m4a/flac)、说总结会议/会议纪要/帮我总结录音、说注册声纹/记住我的声音、说谁在说话/识别说话人、要求先快速出纪要再补精度、要求参考历史纪要风格。

依赖:StepFun API Key(申请)、ffmpeg、Python (numpy, scipy, soundfile, onnxruntime)、可选 pyannote.audio(独立 venv + PyTorch + HF 账号)。详见 {baseDir}/references/setup-guide.md。



路由与执行方式

  • - 模型:强制使用 anthropic/claude-opus-4-6(P0.5 优先级,不受默认模型影响)
  • 执行方式:main 收到录音后 spawn subagent 处理,不占主 session
  • spawn 时传入:音频路径、用户 open_id、输出路径
  • subagent 完成后 auto-announce 结果给 main → main 转发给用户
  • 说话人确认仍由 main 完成:subagent 输出说话人列表后,main 问用户确认,再决定是否用 --speaker-map 重跑

⚡ 快速参考:收到录音后做什么

这是整个 skill 最重要的部分。严格按顺序执行,不要跳步。

步骤 0:spawn subagent(model: claude-opus-4-6)
步骤 1:环境检查(≤3 条命令,不通过就停)
步骤 2:跑主脚本(1 条命令)
步骤 3:检查输出(读 JSON 的 speakers + summary)
步骤 4:[回传 main] 说话人确认(≥2人时必须问用户)
步骤 5:交付纪要(展示 summary 字段的结构化内容)

步骤 1:环境检查

运行以下命令,全部通过才继续。任何一项失败 → 告诉用户缺什么 → 停止。

bash

检查 ffmpeg


which ffmpeg

检查 StepFun API Key

test -f ~/.stepfunapikey && echo OK || echo MISSING

检查 pyannote venv(可选,不影响基础流程)

PYANNOTEPYTHON=${MEETINGSUMMARYPYANNOTEPYTHON:-$HOME/.venv-pyannote/bin/python} test -f $PYANNOTE_PYTHON && echo pyannote: OK || echo pyannote: NOT AVAILABLE (will use energy-vad fallback)

禁止事项

  • - ❌ 不要尝试安装 pyannote、torch、numpy 或任何依赖
  • ❌ 不要创建 venv
  • ❌ 不要降级/升级包版本
  • ❌ 不要修改脚本代码
  • ❌ 不要修改环境变量

如果 pyannote 不可用,直接使用 energy-vad 降级路径,脚本已内置降级逻辑。

步骤 2:跑主脚本

只用这一条命令。不要拆步骤、不要手动调中间脚本。

bash
cd {baseDir} && \
MEETINGSUMMARYPYANNOTEPYTHON=${MEETINGSUMMARYPYANNOTEPYTHON:-$HOME/.venv-pyannote/bin/python} \
HFTOKEN=$(cat ~/.huggingfacetoken 2>/dev/null || echo ) \
python3 scripts/meeting-summarize.py \
--audio /path/to/recording.m4a \
--out /tmp/meeting-summary.json \
--minutes-out /tmp/meeting-summary.md

可选参数(已知信息直接传入,不让模型猜):

  • - --num-speakers N:已知参会人数
  • --speaker-map /path/to/map.json:已知人名映射
  • --max-new-chunks 2:快速模式(CPU 慢机器用)

超时设置:timeout: 600(10 分钟),yieldMs: 300000(5 分钟后台化)

步骤 3:检查输出

bash
python3 -c
import json
with open(/tmp/meeting-summary.json) as f:
data = json.load(f)

说话人信息


for s in data.get(speakers, []):
print(f{s.get(\displayname\, s.get(\speaker\))}: source={s.get(\source\)}, segments={s.get(\segmentcount\)})
print()

纪要概要


summary = data.get(summary, {})
print(参会人:, summary.get(participants, []))
print(概要:, summary.get(overview, []))

步骤 4:说话人确认(强制)

规则:如果检测到 ≥2 个有效说话人(排除 segment_count ≤ 2 的噪声片段),必须先问用户确认身份。

即使声纹匹配给出了名字(source=voiceprint),仍然要确认。声纹可能匹配错误。

模板

检测到 X 位说话人:

  • - SpeakerA(YY 段发言)
  • SpeakerB(ZZ 段发言)

请告诉我每位说话人对应谁?

用户确认后,可以:

  • - 方案 A:用 --speaker-map 重跑(更准确)
  • 方案 B:直接在最终输出中替换名字(更快)

绝对禁止:不要猜测说话人身份映射,不要根据上下文推断谁可能是谁。

步骤 5:交付纪要

从 JSON 的 summary 字段提取结构化内容,按以下格式组织:

会议纪要:[标题]

参会人:[确认后的名字] 时长:XX 分 XX 秒

概要

[overview]

关键要点

  1. 1. ...

关键决定

  • - ...

行动项

  • - [姓名]:[任务]([截止时间])

风险与待定事项

  • - ⚠️ ...

不要

  • - 不要展示 summarymarkdown 字段的原文(它是脚本生成的单段落摘要,太简略)
  • 不要把 JSON 原样甩给用户
  • 不要忽略 risksoropenitems



环境变量参考


变量默认值说明
MEETINGSUMMARYPYANNOTEPYTHON~/.venv-pyannote/bin/pythonpyannote venv 的 Python 路径
HFTOKEN
空 | Hugging Face token(pyannote gated model 需要) |
| STEPFUNAPIKEY | 从 ~/.stepfunapikey 读取 | StepFun API Key |
| MEETINGSUMMARYLLM_MODEL | step-3.5-flash | LLM 模型名 |
| MEETINGSUMMARYLLM_URL | https://api.stepfun.com/v1/chat/completions | LLM API 地址 |
| MEETINGSUMMARYWORKSPACE | ~/.openclaw/workspace | 工作区根目录 |


声纹管理

bash

注册声纹(建议 3-10 秒、清晰、单人语音)


python3 {baseDir}/scripts/voiceprint-manager.py enroll --name 张三 --audio /path/to/voice.wav

识别说话人

python3 {baseDir}/scripts/voiceprint-manager.py identify --audio /path/to/audio.wav --json

查看已注册声纹

python3 {baseDir}/scripts/voiceprint-manager.py list

删除声纹

python3 {baseDir}/scripts/voiceprint-manager.py delete --name 张三

错误处理决策树

脚本执行失败?
├── ffmpeg 不存在 → 告诉用户安装 ffmpeg → 停止
├── StepFun API Key 缺失 → 告诉用户配置 → 停止
├── pyannote 加载失败 → 正常!脚本会自动降级到 energy-vad → 继续
├── ASR 超时 → 文件可能太大,建议用 --transcript-only 或分段 → 重试
├── LLM 调用失败 → 检查 StepFun API Key 余额 → 告诉用户
└── 其他 Python 错误 → 贴完整 traceback 告诉用户 → 停止

核心原则:不要尝试修复环境问题。 告诉用户哪里坏了,让用户或专门的安装流程去修。



缓存机制

缓存目录:{baseDir}/../../cache/meeting-summary/(即 ~/.openclaw/workspace/cache/meeting-summary/)

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 meeting-summary-1776198722 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 meeting-summary-1776198722 技能

通过命令行安装

skillhub install meeting-summary-1776198722

下载

⬇ 下载 meeting-summary v2.3.0(免费)

文件大小: 38.93 KB | 发布时间: 2026-4-17 15:20

v2.3.0 最新 2026-4-17 15:20
v2.3.0: 稳定版发布,SKILL.md 防呆化,强制说话人确认,环境修复禁令

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部