通话录音转写与会议纪要生成。当用户发送音频文件(mp3/m4a/mp4/wav/ogg/amr等)时自动触发,完成语音转文字、生成飞书文档(含实录/纪要/待办)、提取待办事项。 当用户说"帮我转录"、"处理一下这个录音"、"听一下这个"、"语音转文字"、"通话录音整理"、"录音纪要"、"这是个录音文件"、"tra...
通话录音转写是一项面向实际任务的技能,主要用于核心流程:转录音频 → 整理实录与纪要 → 提取待办 → 输出结果;Step 1: 环境准备与转录;
如果环境不允许,回退到不带此参数的安装;1.2 音频转录;支持的音频格式 :mp3, m4a, wav, ogg, amr, mp4, flac, webm。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
核心流程:转录音频 → 整理实录与纪要 → 提取待办 → 输出结果。
首次使用时安装(后续跳过):
pip install faster-whisper --break-system-packages 2>/dev/null || pip install faster-whisper
--break-system-packages用于容器/沙箱环境。如果环境不允许,回退到不带此参数的安装。
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从文件名中尽量提取元数据:
| 文件名模式 | 提取内容 |
|---|---|
XX_20260323.m4a |
来源:XX,日期:2026-03-23 |
Record_20260323_143022.mp3 |
日期:2026-03-23 14:30 |
CallRecord_+8613912345678.m4a |
来源:+8613912345678 |
| 其他 | 用文件名原文作为来源 |
拿到转录原文后,做三层加工:
将转录原文整理为可读的对话实录:
我 和 [对方姓名/身份]**我:** 或 **XX:** 开头用连贯段落概括通话内容(3-5 句话),包含:
纪要简洁精炼,不用列表格式。
从通话内容中识别具体的待办事项:
如果没有明确的待办事项,标注"本次通话未提取到明确的待办事项。"
根据环境配置选择输出方式。优先检测飞书凭证,有则输出飞书文档,无则输出本地文件。
无论哪种输出方式,内容结构统一:
# 通话录音转写 **来源**:[从文件名提取,或标注"未知"] **时间**:[YYYY-MM-DD HH:MM,无法提取则标注"未知"] **时长**:[MM:SS,从转录 info 中获取] --- ## 实录 **我:** [说话内容] **XX:** [说话内容] ... --- ## 纪要 [连贯段落,3-5句话] --- ## 待办 [待办事项,或"本次通话未提取到明确的待办事项。"]
检测到 FEISHU_APP_ID 和 FEISHU_APP_SECRET 环境变量时:
feishu_doc action=write
使用上述模板内容创建飞书文档,markdown 标题会自动转换为飞书文档标题格式。
不要用 update_block,必须用 action=write。
输出失败时降级为本地文件输出(见 3.3)。
未配置飞书凭证,或飞书输出失败时:
将内容保存为 Markdown 文件,文件名格式:通话纪要_[来源]_[日期].md
# 示例路径 output/通话纪要_XX_20260323.md
飞书输出成功时:
📄 [飞书文档链接] 待办事项: 1. [待办内容] 2. [待办内容] 确认计入工作待办?(是/否/修改)
本地文件输出时:
📄 已保存:通话纪要_XX_20260323.md 待办事项: 1. [待办内容] 2. [待办内容] 确认计入工作待办?(是/否/修改)
无待办时,只发文档/文件链接,附注"本次通话未提取到明确的待办事项。",不需要确认。
用户确认后才将待办写入 memory/todo.md(相对于当前工作目录):
todo.md 格式:
## [日期] - [ ] [待办内容](来源:[通话来源])
未收到确认前,不写入 todo.md。
| 场景 | 处理方式 |
|---|---|
| 音频格式不支持 | 告知用户,建议转换为 mp3/wav 后重试 |
| 转录结果为空或乱码 | 提示音频质量可能不足,建议换 medium 模型重试 |
| faster-whisper 安装失败 | 提示用户检查 Python 环境和网络连接 |
| 飞书文档创建失败 | 自动降级为本地 Markdown 文件输出,告知用户 |
| 模型下载超时 | 提示首次使用需下载模型(small ~500MB),建议在网络稳定时重试 |
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.3万人学习
共49课时 | 82.7万人学习
最新文章