Audio Meeting Minutes

API key required
Other

熠小听 — 会议录音自动转文字 + AI总结 + 生成会议纪要HTML。 将会议录音文件拖入指定文件夹,自动转录为文字,智能提取会议要点, 输出专业格式的会议纪要HTML文档。 Trigger: 熠小听、录音豆、会议录音、会议纪要、录音转文字、音频转文字、语音转文本.

Install

openclaw skills install audio-meeting-minutes

熠小听 · 会议纪要自动化

将录音放入文件夹 → 语音识别 → WorkBuddy AI 提炼纪要 → HTML 文档。

核心能力

环节技术方案速度
语音识别阿里云 NLS 云端识别~1分钟/20分钟音频
AI 总结WorkBuddy 内置 AI(无需额外 Key)即时
HTML 输出Jinja2 模板,企业级排版即时

支持格式

mp3 / m4a / wav / ogg / flac / aac / wma / opus / webm


首次使用(对话引导)

当用户触发本技能时,需要收集以下信息,缺一不可。用自然对话方式逐一确认,不要一次丢出所有问题。

第 1 步:确认录音文件夹

"你的录音文件放在哪个文件夹?我会监听这个文件夹,有新录音自动处理。"

第 2 步:确认阿里云 NLS 凭证

阿里云智能语音交互需要两个凭据,缺一不可:

"需要阿里云智能语音的两个凭证:

① NLS AppKey
   获取链接:https://nls-portal.console.aliyun.com/applist
   步骤:进入页面 → 点击「创建项目」→ 填写项目名称 → 创建成功后
         复制页面显示的 AppKey

② NLS AccessToken
   获取链接:https://nls-portal.console.aliyun.com/applist
   步骤:点击已有项目名称进入详情 → 顶部标签栏选择「AccessToken」
         → 点击「获取AccessToken」→ 复制显示的 Token 字符串
          ⚠️ 24 小时失效,长期使用需换成 AccessKey(AK ID + Secret)

把两个凭证发给我即可。"

收齐全部信息后

告诉用户:「配置已齐全,现在把录音放进文件夹,说一句『熠小听』我就开始处理。」


工作流(Agent 执行)

Step 1:语音转文字

cd {skill_dir}/scripts
set NLS_APPKEY=<用户提供的AppKey>
set NLS_TOKEN=<用户提供的AccessToken>
set LYD_NAS_DIR=<录音文件夹路径>
python process_nas.py

脚本会:

  1. 扫描录音文件夹(排除「会议纪要输出」子文件夹)
  2. ffmpeg 转 PCM 16kHz mono → 按 ≤1.8MB 切块
  3. 逐块上传阿里云 NLS 接口(串行)
  4. 合并结果 → 保存 transcript.txt
  5. 输出 JSON 结果(包含 transcript_path)

Step 2:AI 智能总结

读取 transcript.txt 全文,基于内容手工提炼:

总结原则:

  • 提炼而非摘抄 — 不复制原文,用书面语重新表述
  • 区分讨论过程和最终结论 — 只记录结论,不复述过程
  • 行动项格式:动词开头 + 负责人 + 优先级
  • 决策格式:决策内容 + 决策依据

输出格式(用于 report.py 渲染):

summary = {
    "meeting_title": "精准标题(15字以内)",
    "meeting_type": "技术分享/项目决策/工作汇报/头脑风暴/复盘总结",
    "meeting_summary": "3-4句书面语概括背景、核心议题和主要结论",
    "key_conclusions": ["重要结论句子..."],
    "decisions": [
        {"content": "已确认决策", "rationale": "决策依据"}
    ],
    "action_items": [
        {"task": "具体行动(动词开头)", "owner": "负责人", "deadline": "截止时间", "priority": "高/中/低"}
    ],
    "participants": ["参会人"],
    "agenda_items": [
        {"title": "议题名称", "key_points": ["核心观点"], "outcome": "最终结论"}
    ],
    "risks_and_concerns": ["风险或待确认事项"],
    "next_steps": ["具体下一步计划"],
    "follow_up_required": ["需跟进事项"]
}

Step 3:生成 HTML

from report import render_html
render_html(summary=summary, transcript={"text": full_text, "segments": [], "language": "zh",
           "duration_seconds": duration}, audio_filename=audio_name, output_path=html_path)

Step 4:写回 NAS

用 PowerShell UNC 路径将 HTML 写入录音文件夹下的 会议纪要输出\ 子文件夹:

Copy-Item "本地html路径" "\\192.168.1.219\品...\会议纪要输出\文件名.html"

HTML 模板规范

企业级排版(report.py 内置):

  • 深蓝商务风,文档头 + 目录导航 + 编号章节
  • 决策卡片(左侧蓝边 + 决策依据)
  • 行动表格(编号/任务/负责人/截止/优先级)
  • 议题折叠块(要点列表 + 绿色结论条)
  • 风险跟进区(橙色警告条)
  • 可折叠完整转写记录
  • 移动端适配 + 打印样式

关键参数

参数默认值说明
NLS 块大小1.8 MB接口限制 2MB,1.8MB ≈ 57秒音频
音频采样16kHz mono PCMffmpeg 转换参数
请求间隔0.3sNLS 串行间隔,避免限流

文件说明

文件用途
scripts/process_nas.py语音转文字:扫描→切块→NLS→保存 transcript
scripts/report.pyHTML 模板 + render_html() 渲染函数
scripts/summarize.py(保留备用)AI 总结函数,如需外部 API

常见问题

Q: 不配任何 API Key 能用吗? A: 只需要阿里云 NLS 的 AppKey + Token(语音识别),AI 总结由 WorkBuddy 内置完成,无需额外 Key。

Q: NLS Token 失效了怎么办? A: 到控制台重新获取,或让我帮你改成 AccessKey 动态刷新模式(永久有效)。

Q: 长录音处理慢? A: NLS 云端识别,1 小时音频约 2-3 分钟。

Q: 输出在哪? A: 录音文件夹下的 会议纪要输出\ 子文件夹,HTML 格式。