智能会议纪要助手,基于本地 Whisper 离线转写,提供:
飞书用户快速开始:详见 FEISHU_QUICK_START.md
pip install -r requirements.txt
关于 Whisper 模型:
base 和 small 模型large-v3 模型(最高准确率,约 3GB)在首次使用时自动下载large-v3 模型~/.cache/whisper/(Linux/Mac)或 C:\Users\<用户名>\.cache\whisper\(Windows)# 语音转文字(推荐直接输出转写文本文件)
# 小模型(推荐日常使用,速度和准确率平衡)
python scripts/transcribe_audio.py demo.m4a --model small
# 大模型(最高准确率,需要 GPU)
python scripts/transcribe_audio.py demo.m4a --model large-v3
# 基础模型(快速测试)
python scripts/transcribe_audio.py demo.m4a --model base
# 生成结构化纪要
python scripts/generate_notes.py transcript.txt --output notes.json
# Windows PowerShell 下如需附带会议信息,建议改用 JSON 文件
python scripts/generate_notes.py transcript.txt --meeting-info-file meeting-info.json --output notes.json
# 导出 Word(内置模板)
python scripts/export_word.py notes.json --template simple --output notes.docx
# 导出 Word(templates.py 管理的模板,如"周会")
python scripts/export_word.py notes.json --template 周会 --output weekly-notes.docx
# 导出 PDF
python scripts/export_pdf.py notes.json --output notes.pdf
# 查看历史会议
python scripts/storage.py list --limit 10
generate_notes.py 默认调用 OpenAI 兼容接口。在 ~/.workbuddy/meeting-notes-config.json 中配置:
{
"llm_base_url": "https://api.openai.com/v1",
"llm_api_key": "sk-your-key-here",
"llm_model": "gpt-4o-mini"
}
国内兼容接口示例(通义千问、DeepSeek、智谱等):
{
"llm_base_url": "https://api.deepseek.com/v1",
"llm_api_key": "sk-your-deepseek-key",
"llm_model": "deepseek-chat"
}
也可以用环境变量覆盖:OPENAI_API_BASE / OPENAI_API_KEY / LLM_MODEL
若无 API Key,使用 --no-llm 参数回退到规则解析(内容较少):
python scripts/generate_notes.py transcript.txt --no-llm --output notes.json
首次发送邮件前,可先运行 SMTP 配置向导:
python scripts/send_email.py --config
也可指定自定义配置文件路径(联调推荐):
python scripts/send_email.py --config --config-path smoke-test/email-config.json
配置会写入 ~/.workbuddy/meeting-notes-config.json 的 email 字段,并保留已有的 LLM 配置。
~/.workbuddy/meeting-notes-config.json~/.workbuddy/meeting_notes.db~/.workbuddy/meeting_channels.db~/.workbuddy/meeting_notes_templates/storage.py / channels.py / meeting_analytics.py 已支持 --db-dir 参数,也兼容环境变量 WORKBUDDY_HOME。
python scripts/storage.py --db-dir smoke-test/real-audio/home/.workbuddy list --limit 10
python scripts/channels.py --db-dir smoke-test/real-audio/home/.workbuddy meetings 1
python scripts/meeting_analytics.py --db-dir smoke-test/real-audio/home/.workbuddy --period week
transcribe_audio.py:语音转文字generate_notes.py:生成结构化纪要 JSONexport_word.py:导出 Word 文档export_pdf.py:导出 PDF 文档(Windows 自动优先 reportlab / fpdf2)publish_feishu.py:生成飞书文档 / 群聊 / 任务所需载荷send_email.py:发送会议纪要邮件(支持 --config SMTP 配置向导)storage.py:历史会议保存、搜索、列表、删除(支持 --db-dir)templates.py:模板管理channels.py:频道分组管理(支持 --db-dir、update 修改描述/颜色)meeting_analytics.py:会议频率与关键词分析(支持 --db-dir)sentiment_analysis.py:情绪分析(繁简转换 + 口语友好分句 + 逐句聚合)ai_skills.py:销售 / 招聘 / 技术评审 / 金融交流等场景提取export_bitable.py:导出飞书多维表格 JSON(支持 --field-lang zh/en 字段名切换)template_guide.md:Word 模板占位符与结构说明python scripts/export_word.py notes.json --template professional --output notes.docx
python scripts/export_word.py notes.json --template 技术评审 --output tech-review.docx
python scripts/export_word.py notes.json --template custom --template-path my-template.docx --output custom-notes.docx
python scripts/export_bitable.py notes.json --format json --field-lang zh
python scripts/export_bitable.py notes.json --format records --field-lang en
python scripts/send_email.py --config
python scripts/send_email.py notes.json --to demo@example.com -a notes.docx
python scripts/meeting_analytics.py --period week --limit 50
python scripts/sentiment_analysis.py transcript.txt
python scripts/channels.py create 产品例会 --description 产品周会
python scripts/channels.py update 1 --description 重点客户复盘频道 --color "#FF6B6B"
python scripts/channels.py add 12 1
python scripts/channels.py meetings 1
用户:帮我整理会议纪要
AI:请提供会议录音或相关文档(音频 / 链接)
用户:[上传录音]
AI:好的,已识别语音。现在生成会议纪要...
用户:https://xxx.feishu.cn/doc/xxx
AI:好的,已读取会议内容。正在生成结构化纪要...
用户:把这份纪要导出 Word 再发飞书
AI:先生成结构化纪要,再输出 Word,并给出飞书发布内容
详细隐私声明:PRIVACY.md
详细免责声明:DISCLAIMER.md
本工具采用 MIT 许可证,详见:LICENSE
requirements.txt| 模型 | 大小 | 准确率 | 速度 | 推荐场景 |
|---|---|---|---|---|
| ------ | ------ | -------- | ------ | ---------- |
| tiny | ~39MB | 最低(~80%) | 最快(<1分钟/10分钟音频) | 快速测试、简单对话 |
| base | ~140MB | 较低(~85%) | 快(<2分钟/10分钟音频) | 日常使用 |
| small | ~460MB | 高(~90%) | 中等(~5分钟/10分钟音频) | 推荐日常使用,准确率足够,速度快 |
| large-v3 | ~2.88GB | 最高(~95%) | 慢(~15分钟/10分钟音频,GPU 可加速) | 专业需求、重要会议,需要 GPU 支持 |
使用建议:
small 模型(已包含在安装包中)large-v3 模型(最高准确率)large-v3 或 small,避免使用 tiny 和 base| 模型 | 转写时间 | 字符数 | 金融术语识别率 | 适用性 |
|---|---|---|---|---|
| ------ | --------- | -------- | -------------- | -------- |
| base | ~2 分钟 | 13,966 | 4.2%(2/48) | ❌ 不推荐 |
| small | ~5 分钟 | 13,966 | 64.6%(31/48) | ✅ 推荐 |
| large-v3 | 59 分钟(GPU) | 13,743 | 70.8%(34/48) | ✅ 专业推荐 |
结论:
imageio-ffmpeg 提供的 ffmpeg。transcribe_audio.py 已支持 --model 与 --output,适合直接串联"音频 -> 转写文本 -> 纪要",且默认会做繁体转简体后处理。--meeting-info JSON 字符串容易受引用影响,建议优先使用 --meeting-info-file。sentiment_analysis.py 已改为繁简转换 + 口语友好分句 + 逐句聚合,会先按换行/标点切分,再对超长口语段按长度阈值拆分,避免把整段长文本当成一句导致误判。ai_skills.py 已支持金融场景自动识别,适合证券 / 理财 / 量化 / 机构交流录音;--text 与 --json(如 notes.json)两类输入都会先做结构化文本归一,再执行场景识别与字段提取。storage.py / channels.py / meeting_analytics.py 可通过 --db-dir 指向同一隔离数据目录,避免联调时读到不同数据库。export_word.py / export_pdf.py / publish_feishu.py / export_bitable.py 已兼容 generate_notes.py 产出的 content / assignee / deadline 字段,也兼容字符串形式的 action_items。export_word.py 已同时支持两类模板:1)templates.py 管理的 JSON 模板(--template <模板名>);2)用户自带 .docx 占位符模板(--template custom --template-path <模板文件>),其中 {{action_items}} 会输出三列表格,详细占位符见 references/template_guide.md。export_pdf.py 在 Windows 下会默认按 reportlab -> fpdf2 -> html 的顺序自动导出,避免先尝试 weasyprint 时反复撞系统动态库缺失;非 Windows 仍会优先尝试 weasyprint。export_pdf.py 才会继续回退输出 HTML 预览文件。export_bitable.py 已支持 --field-lang zh/en;中文模式会输出 会议标题 / 时间 / 参会人 等字段,便于直接导入飞书多维表格。storage.py / channels.py / meeting_analytics.py 可通过 --db-dir 指向同一隔离数据目录,避免联调时读到不同数据库。export_word.py / export_pdf.py / publish_feishu.py / export_bitable.py 已兼容 generate_notes.py 产出的 content / assignee / deadline 字段,也兼容字符串形式的 action_items。export_word.py 已同时支持两类模板:1)templates.py 管理的 JSON 模板(--template <模板名>);2)用户自带 .docx 占位符模板(--template custom --template-path <模板文件>),其中 {{action_items}} 会输出三列表格,详细占位符见 references/template_guide.md。export_pdf.py 在 Windows 下会默认按 reportlab -> fpdf2 -> html 的顺序自动导出,避免先尝试 weasyprint 时反复撞系统动态库缺失;非 Windows 仍会优先尝试 weasyprint。export_pdf.py 才会继续回退输出 HTML 预览文件。export_bitable.py 已支持 --field-lang zh/en;中文模式会输出 会议标题 / 时间 / 参会人 等字段,便于直接导入飞书多维表格。查看当前配置:cat ~/.workbuddy/meeting-notes-config.json
修改配置:说 "修改会议纪要配置"
重置配置:说 "重置会议纪要配置"
共 1 个版本