一个用于自动整理课堂录音笔记的智能工具,支持文件分类、AI总结和翻译功能。
- 自动解析录音文件名中的时间信息
- 根据课程时间表自动匹配课程
- 按课程分类整理文件(txt和wav文件)
- 自动创建规范的目录结构
- 以append形式添加文件,不覆盖原有文件
- 自动清理源目录
- 智能课程总结生成(使用GPT-4o)
- 英文内容自动翻译为中文
- 长文本分块处理(支持3小时课程)
- 多文件内容智能拼接
- 按时间区分子文件(支持多次课程)
- 断点续存功能(网络中断后继续处理)
- 可自定义Prompt模板
lecture_note/
├── main.py # 主入口文件
├── requirements.txt # 依赖管理
├── README.md # 项目说明
├── src/ # 源代码目录
│ ├── core/ # 核心功能模块
│ │ ├── main.py # 文件整理主程序
│ │ ├── processing_manager.py # 处理状态管理器
│ │ └── utils.py # 工具函数
│ ├── ai/ # AI功能模块
│ │ ├── ai_agent.py # AI代理核心模块
│ │ └── ai_processor.py # AI处理器
│ └── config/ # 配置模块
│ ├── config.py # 基础配置文件
│ ├── ai_config.py # AI配置管理
│ └── ai_config.json # AI配置文件
└── processing_status/ # 处理状态目录
└── processing_status.json
pip install -r requirements.txt
编辑 src/config/ai_config.json
文件,设置您的OpenAI API密钥:
{
"api": {
"api_key": "YOUR_API_KEY_HERE",
"base_url": "https://your-api-endpoint.com/v1",
"model": "gpt-4o"
}
}
注意base_url我用的不是官方的api,这个价格便宜所以用了这个。
编辑 src/config/config.py
文件,修改源文件路径和目标路径:
# 路径配置 - 请根据您的实际路径修改
SOURCE_PATH = Path("/path/to/your/downloads") # 修改为您的下载目录
TARGET_PATH = Path("/path/to/your/lecture_notes") # 修改为您的笔记存储目录
编辑 src/config/config.py
文件中的 COURSE_SCHEDULE
字典,根据您的实际课程安排修改:
COURSE_SCHEDULE = {
"课程名称1": {
"day": "周一",
"time": "09:00-11:00",
"description": "课程描述"
},
"课程名称2": {
"day": "周三",
"time": "14:00-16:00",
"description": "课程描述"
}
# 添加更多课程...
}
# 运行主程序
python main.py
# 或直接运行特定功能
python -c "from src.core.main import main; main()" # 基础整理
python -c "from src.ai.ai_processor import main; main()" # AI处理
课程名称 | 时间 | 星期 |
---|---|---|
CS101 Introduction to Computer Science | 09:00-11:00 | 周一 |
MATH201 Linear Algebra | 14:00-16:00 | 周一 |
PHYS301 Quantum Physics | 10:00-12:00 | 周三 |
ENG401 Advanced English | 15:00-17:00 | 周五 |
ART501 Digital Design | 19:00-21:00 | 周五 |
注意: 以上为示例课程表,请根据您的实际课程安排修改
src/config/config.py
中的COURSE_SCHEDULE
配置。
/path/to/your/downloads/
├── 2025_09_04_10_25_内录_会议模式_录音_1/
│ ├── 2025_09_04_10_25_内录_会议模式_录音_1.txt
│ └── 2025_09_04_10_25_内录_会议模式_录音_1.wav
└── ...
/path/to/your/lecture_notes/
├── CS101 Introduction to Computer Science/
│ ├── CS101 Introduction to Computer Science_2025_01_09_summary.md
│ ├── CS101 Introduction to Computer Science_2025_01_09_translation.md
│ ├── CS101 Introduction to Computer Science_2025_01_16_summary.md
│ ├── CS101 Introduction to Computer Science_2025_01_16_translation.md
│ ├── CS101 Introduction to Computer Science_processing_status.json
│ └── raw_data/
│ ├── txt/
│ │ ├── 2025_01_09_10_25_内录_会议模式_录音_1.txt
│ │ └── ...
│ └── wav/
│ ├── 2025_01_09_10_25_内录_会议模式_录音_1.wav
│ └── ...
└── ...
- 源文件路径: 修改
SOURCE_PATH
为您的下载目录 - 目标路径: 修改
TARGET_PATH
为您的笔记存储目录 - 课程时间表: 修改
COURSE_SCHEDULE
字典配置您的课程安排
- API端点: 修改
base_url
为您的API服务地址 - API密钥: 修改
api_key
为您的有效密钥 - 模型: 默认
gpt-4o
,可根据需要调整 - 最大Token: 默认
4000
,可根据需要调整 - 分块大小: 默认
8000
字符,处理长文本时使用 - 分块重叠: 默认
200
字符,确保内容连续性
python main.py
# 选择 "1. 基础文件整理"
python main.py
# 选择 "2. AI处理课程"
# 直接运行基础整理
python -c "from src.core.main import main; main()"
# 直接运行AI处理
python -c "from src.ai.ai_processor import main; main()"
- 扫描源目录中的录音文件夹
- 解析文件名中的时间信息
- 根据时间和星期匹配对应课程
- 创建课程目录结构
- 移动txt和wav文件到对应目录
- 清理源目录
- 收集课程目录下所有txt文件内容
- 将多个txt文件内容按逻辑顺序拼接
- 将长文本分割为适合AI处理的块
- 使用GPT-4o生成结构化课程总结
- 将英文内容翻译为中文
- 按时间区分保存结果文件
- 记录处理状态,支持断点续存
- 网络中断后重新运行程序即可继续处理
- 自动检测未完成的处理会话
- 支持失败任务的重试机制
- 每次课程生成独立的总结和翻译文件
- 文件名包含课程日期,便于管理
- 支持同一课程多次上课的不同处理
- 打开
src/config/config.py
文件 - 找到
COURSE_SCHEDULE
字典 - 按照以下格式添加或修改课程:
"课程名称": {
"day": "星期X", # 周一、周二、周三、周四、周五、周六、周日
"time": "HH:MM-HH:MM", # 时间格式,如 "09:00-11:00"
"description": "课程描述"
}
- 打开
src/config/ai_config.json
文件 - 修改相关参数:
max_tokens
: 单次请求的最大token数temperature
: 生成文本的随机性 (0.0-1.0)chunk_size
: 文本分块大小chunk_overlap
: 分块重叠字符数
- 打开
src/config/ai_config.json
文件 - 修改
prompts
部分:summary
: 总结生成的提示词translate
: 翻译的提示词
- 确保源目录存在且包含录音文件
- 程序会移动文件,请确保重要文件已备份
- 需要有效的OpenAI API密钥
- 建议在网络稳定的环境下运行AI处理
- API连接失败: 检查API密钥和网络连接
- 文件匹配失败: 检查录音文件夹名称格式
- 权限错误: 确保对目录有读写权限
- 查看程序日志输出
- 检查配置文件设置
- 确认文件路径正确
本项目仅供个人学习使用。
版本: 1.0.0
最后更新: 2025-09-04