OpenClaw+GLM-4.7-Flash会议纪要:语音转文字与要点提取

1. 为什么需要自动化会议纪要

每次开完会最头疼的就是整理会议纪要。作为团队里经常主持会议的人,我经历过太多这样的场景:会后花半小时听录音回放,手动记录关键讨论点,再整理成结构化文档发给参会者。更痛苦的是,当连续多场会议叠加时,很容易混淆不同会议的行动项。

直到上个月在技术社区看到OpenClaw+GLM的组合方案,才意识到这个痛点完全可以用自动化解决。经过三周的实践迭代,现在我的会议纪要处理时间从原来的30分钟缩短到3分钟,准确率反而更高。这篇文章就分享我的完整落地过程。

2. 技术方案选型与准备

2.1 为什么选择GLM-4.7-Flash

在测试了多个开源模型后,GLM-4.7-Flash在中文会议场景的表现最让我惊喜。相比通用大模型,它的优势非常明显:

  • 语音转写准确率高:对专业术语和口语化表达的识别优于其他同体量模型
  • 上下文理解强:能准确捕捉"我们下周二前要完成API联调"这类含时间点的行动项
  • 响应速度快:处理1小时录音仅需2-3分钟(本地RTX 4090环境)

2.2 OpenClaw的核心价值

单纯用GLM模型只能完成转写,而OpenClaw带来了完整的自动化工作流:

  1. 自动文件处理:监控指定文件夹,新录音自动触发处理流程
  2. 多步骤编排:串联语音转写、文本清洗、要点提取、格式生成等环节
  3. 结果自动归档:按日期和会议主题分类存储纪要文档
  4. 多渠道通知:处理完成后通过飞书/邮件自动发送给参会者

3. 具体实现步骤

3.1 环境部署

首先通过ollama部署GLM-4.7-Flash模型服务:

ollama pull glm-4.7-flash
ollama run glm-4.7-flash --port 11434

然后安装OpenClaw并配置模型连接:

curl -fsSL https://openclaw.ai/install.sh | bash
openclaw onboard --mode Advanced

在配置向导中选择"Custom Provider",填入模型地址:

Base URL: http://localhost:11434/v1
API Key: [留空]
Model ID: glm-4.7-flash

3.2 开发会议纪要Skill

OpenClaw允许通过JavaScript编写自定义Skill。核心逻辑如下:

// 监控录音文件夹
fs.watch('/Users/me/MeetingRecords', (event, filename) => {
  if (filename.endsWith('.m4a')) {
    processRecording(filename)
  }
})

async function processRecording(file) {
  // 语音转写
  const transcript = await glmApi.audioToText(file) 
  
  // 要点提取
  const summary = await glmApi.chatCompletion({
    model: 'glm-4.7-flash',
    messages: [{
      role: 'user',
      content: `提取会议核心内容:\n${transcript}\n
      要求:1.分议题总结 2.标注决策点 3.列出行动项(责任人+截止时间)`
    }]
  })

  // 生成Markdown
  const markdown = `# ${getMeetingTitle(file)}\n\n${summary}`
  saveToNotion(markdown) // 自动存入Notion知识库
  sendFeishuNotification() // 飞书通知参会者
}

3.3 实际效果验证

用真实会议录音测试,GLM-4.7-Flash展现出惊人的理解能力:

原始录音片段
"前端这边联调进度有点delay啊,老王说因为第三方支付接口文档有问题,这样吧,小李你明天上午先帮他们看看,最迟周三下班前我们要走完测试流程"

自动提取结果
行动项

  • [负责人] 小李
  • [任务] 协助排查第三方支付接口文档问题
  • [截止时间] 周三18:00
  • [关联事项] 支付模块联调测试

这种精准的要素提取,已经超过大多数人工记录的完整度。

4. 遇到的坑与解决方案

4.1 时间戳识别问题

初期发现模型会把"下周三"识别为绝对日期(如2024-03-13),导致行动项时间错误。通过修改prompt解决:

- 标注行动项截止时间
+ 标注行动项相对时间(如"下周三"),保持原始表述不转换

4.2 多人发言区分

当会议录音存在多人交叉发言时,转写文本会丢失说话人信息。我们的解决方案是:

  1. 会前要求参会者在飞书日程中签到
  2. 根据声纹特征匹配签到人员
  3. 在文本中插入[发言人:姓名]标记

4.3 敏感信息过滤

财务数据等敏感内容需要特殊处理。现在我们的流程中增加了过滤层:

// 在保存前检查敏感词
const hasSensitiveInfo = await glmApi.classification({
  text: summary,
  labels: ['财务数据', '客户信息', '薪资待遇']
})
if (hasSensitiveInfo) {
  await humanReview(summary) // 触发人工审核
}

5. 给实践者的建议

经过一个月的生产环境使用,这套方案已经处理了47场会议录音,准确率稳定在85%以上。如果想复现这个方案,我的建议是:

  1. 从小场景开始:先处理15分钟以内的常规会议,再扩展至长时技术讨论
  2. 建立反馈闭环:让参会者标注AI纪要的错误点,持续优化prompt
  3. 保留人工出口:设置!review关键词,当会议中出现该词时自动转人工
  4. 注意数据安全:敏感会议建议使用本地部署的全套方案

现在我的工作流已经完全离不开这个助手。上周五的跨部门需求评审会,当天下午就输出了包含23个行动项的详细纪要,这在以前至少要耗费我两个小时的工作量。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐