← 返回
未分类

Call-Transcript-Todo

通话录音转写与会议纪要生成。当用户发送音频文件(mp3/m4a/mp4/wav/ogg/amr等)时自动触发,完成语音转文字、生成飞书文档(含实录/纪要/待办)、提取待办事项。 当用户说"帮我转录"、"处理一下这个录音"、"听一下这个"、"语音转文字"、"通话录音整理"、"录音纪要"、"这是个录音文件"、"tra...
通话录音转写与会议纪要生成。当用户发送音频文件(mp3/m4a/mp4/wav/ogg/amr等)时自动触发,完成语音转文字、生成飞书文档(含实录/纪要/待办)、提取待办事项。 当用户说"帮我转录"、"处理一下这个录音"、"听一下这个"、"语音转文字"、"通话录音整理"、"录音纪要"、"这是个录音文件"、"tra...
daaishu
未分类 clawhub v1.1.0 1 版本 100000 Key: 无需
★ 0
Stars
📥 333
下载
💾 0
安装
1
版本
#latest

概述

通话录音转写

核心流程:转录音频 → 整理实录与纪要 → 提取待办 → 输出结果。


Step 1: 环境准备与转录

1.1 安装依赖

首次使用时安装(后续跳过):

pip install faster-whisper --break-system-packages 2>/dev/null || pip install faster-whisper

> --break-system-packages 用于容器/沙箱环境。如果环境不允许,回退到不带此参数的安装。

1.2 音频转录

from faster_whisper import WhisperModel
import os

audio_path = '<音频文件路径>'

# 根据文件大小选择模型:< 5MB 用 small,否则用 medium
file_size_mb = os.path.getsize(audio_path) / (1024 * 1024)
model_size = 'small' if file_size_mb < 5 else 'medium'

try:
    model = WhisperModel(model_size, device='cpu', compute_type='int8')
    segments, info = model.transcribe(audio_path, language='zh')
    transcript = [seg.text for seg in segments]
    full_text = '\n'.join(transcript)
except Exception as e:
    # 转录失败时,告知用户具体原因并停止后续流程
    print(f"转录失败:{e}")
    # 常见原因:音频格式不支持、文件损坏、内存不足
    # 向用户说明错误并建议:检查文件格式、尝试转换为 mp3/wav 后重试
    raise

支持的音频格式:mp3, m4a, wav, ogg, amr, mp4, flac, webm

模型选择参考

  • small(~500MB):电话录音、短对话,速度快
  • medium(~1.5GB):会议录音、多人讨论、口音较重,准确率更高
  • 如果用户明确要求高精度,使用 medium

1.3 文件名信息提取

从文件名中尽量提取元数据:

文件名模式提取内容
--------------------------------------------------
XX_20260323.m4a来源:XX,日期:2026-03-23
Record_20260323_143022.mp3日期:2026-03-23 14:30
CallRecord_+8613912345678.m4a来源:+8613912345678
其他用文件名原文作为来源

Step 2: 整理实录与生成纪要

拿到转录原文后,做三层加工:

2.1 整理实录

将转录原文整理为可读的对话实录:

  • 根据语义和上下文判断说话人,标记为 [对方姓名/身份]
  • 合并同一说话人的连续短句
  • 修正明显的语音识别错误(专有名词、人名、机构名)
  • 格式:每段以 我:XX: 开头

2.2 生成纪要

用连贯段落概括通话内容(3-5 句话),包含:

  • 通话背景:谁和谁、什么事由
  • 主要讨论内容和关键结论
  • 后续安排和跟进事项

纪要简洁精炼,不用列表格式。

2.3 提取待办

从通话内容中识别具体的待办事项:

  • 明确承诺要做的事
  • 约定的时间节点或截止日期
  • 需要跟进或确认的事项

如果没有明确的待办事项,标注"本次通话未提取到明确的待办事项。"


Step 3: 输出结果

根据环境配置选择输出方式。优先检测飞书凭证,有则输出飞书文档,无则输出本地文件。

3.1 输出内容模板

无论哪种输出方式,内容结构统一:

# 通话录音转写

**来源**:[从文件名提取,或标注"未知"]
**时间**:[YYYY-MM-DD HH:MM,无法提取则标注"未知"]
**时长**:[MM:SS,从转录 info 中获取]

---

## 实录

**我:** [说话内容]

**XX:** [说话内容]

...

---

## 纪要

[连贯段落,3-5句话]

---

## 待办

[待办事项,或"本次通话未提取到明确的待办事项。"]

3.2 飞书文档输出(需要凭证)

检测到 FEISHU_APP_IDFEISHU_APP_SECRET 环境变量时:

feishu_doc action=write

使用上述模板内容创建飞书文档,markdown 标题会自动转换为飞书文档标题格式。

不要用 update_block,必须用 action=write

输出失败时降级为本地文件输出(见 3.3)。

3.3 本地文件输出(默认/降级)

未配置飞书凭证,或飞书输出失败时:

将内容保存为 Markdown 文件,文件名格式:通话纪要_[来源]_[日期].md

# 示例路径
output/通话纪要_XX_20260323.md

Step 4: 发送结果与待办确认

4.1 发送结果

飞书输出成功时

📄 [飞书文档链接]

待办事项:
1. [待办内容]
2. [待办内容]

确认计入工作待办?(是/否/修改)

本地文件输出时

📄 已保存:通话纪要_XX_20260323.md

待办事项:
1. [待办内容]
2. [待办内容]

确认计入工作待办?(是/否/修改)

无待办时,只发文档/文件链接,附注"本次通话未提取到明确的待办事项。",不需要确认。

4.2 待办确认与写入

用户确认后才将待办写入 memory/todo.md(相对于当前工作目录):

  • "是" / "确认" / "OK" → 追加写入 todo.md,回复"已计入工作待办"
  • "否" / "不要" → 不写入,回复"已忽略"
  • 用户给出修改内容 → 按修改调整后再次确认

todo.md 格式

## [日期]

- [ ] [待办内容](来源:[通话来源])

未收到确认前,不写入 todo.md。


错误处理

场景处理方式
-------------------------------------------------------
音频格式不支持告知用户,建议转换为 mp3/wav 后重试
转录结果为空或乱码提示音频质量可能不足,建议换 medium 模型重试
faster-whisper 安装失败提示用户检查 Python 环境和网络连接
飞书文档创建失败自动降级为本地 Markdown 文件输出,告知用户
模型下载超时提示首次使用需下载模型(small ~500MB),建议在网络稳定时重试

版本历史

共 1 个版本

  • v1.1.0 当前
    2026-05-07 13:44 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

office-efficiency

Excel / XLSX

ivangdavila
创建、检查和编辑 Microsoft Excel 工作簿及 XLSX 文件,支持可靠的公式、日期、类型、格式、重算及模板保留功能。
★ 391 📥 148,254
office-efficiency

Nano Pdf

steipete
使用nano-pdf CLI通过自然语言指令编辑PDF
★ 280 📥 117,067
office-efficiency

Gog

steipete
Google Workspace 命令行工具,支持 Gmail、日历、云端硬盘、通讯录、表格和文档。
★ 934 📥 187,468