Skip to content

Khlann/lecture-note

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

课堂笔记整理工具

一个用于自动整理课堂录音笔记的智能工具,支持文件分类、AI总结和翻译功能。

✨ 功能特性

基础功能

  • 自动解析录音文件名中的时间信息
  • 根据课程时间表自动匹配课程
  • 按课程分类整理文件(txt和wav文件)
  • 自动创建规范的目录结构
  • 以append形式添加文件,不覆盖原有文件
  • 自动清理源目录

AI功能

  • 智能课程总结生成(使用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

🚀 快速开始

1. 安装依赖

pip install -r requirements.txt

2. 配置个人信息

2.1 配置API密钥

编辑 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,这个价格便宜所以用了这个。

2.2 配置文件路径

编辑 src/config/config.py 文件,修改源文件路径和目标路径:

# 路径配置 - 请根据您的实际路径修改
SOURCE_PATH = Path("/path/to/your/downloads")  # 修改为您的下载目录
TARGET_PATH = Path("/path/to/your/lecture_notes")  # 修改为您的笔记存储目录

2.3 配置课程时间表

编辑 src/config/config.py 文件中的 COURSE_SCHEDULE 字典,根据您的实际课程安排修改:

COURSE_SCHEDULE = {
    "课程名称1": {
        "day": "周一",
        "time": "09:00-11:00",
        "description": "课程描述"
    },
    "课程名称2": {
        "day": "周三", 
        "time": "14:00-16:00",
        "description": "课程描述"
    }
    # 添加更多课程...
}

3. 运行程序

# 运行主程序
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
│           └── ...
└── ...

🔧 配置说明

基础配置 (src/config/config.py)

  • 源文件路径: 修改 SOURCE_PATH 为您的下载目录
  • 目标路径: 修改 TARGET_PATH 为您的笔记存储目录
  • 课程时间表: 修改 COURSE_SCHEDULE 字典配置您的课程安排

AI配置 (src/config/ai_config.json)

  • API端点: 修改 base_url 为您的API服务地址
  • API密钥: 修改 api_key 为您的有效密钥
  • 模型: 默认 gpt-4o,可根据需要调整
  • 最大Token: 默认 4000,可根据需要调整
  • 分块大小: 默认 8000字符,处理长文本时使用
  • 分块重叠: 默认 200字符,确保内容连续性

🎯 使用方法

1. 整理课堂笔记

python main.py
# 选择 "1. 基础文件整理"

2. AI处理课程

python main.py
# 选择 "2. AI处理课程"

3. 直接运行特定功能

# 直接运行基础整理
python -c "from src.core.main import main; main()"

# 直接运行AI处理
python -c "from src.ai.ai_processor import main; main()"

🔄 工作流程

基础整理流程

  1. 扫描源目录中的录音文件夹
  2. 解析文件名中的时间信息
  3. 根据时间和星期匹配对应课程
  4. 创建课程目录结构
  5. 移动txt和wav文件到对应目录
  6. 清理源目录

AI处理流程

  1. 收集课程目录下所有txt文件内容
  2. 将多个txt文件内容按逻辑顺序拼接
  3. 将长文本分割为适合AI处理的块
  4. 使用GPT-4o生成结构化课程总结
  5. 将英文内容翻译为中文
  6. 按时间区分保存结果文件
  7. 记录处理状态,支持断点续存

🛠️ 高级功能

断点续存

  • 网络中断后重新运行程序即可继续处理
  • 自动检测未完成的处理会话
  • 支持失败任务的重试机制

按时间区分子文件

  • 每次课程生成独立的总结和翻译文件
  • 文件名包含课程日期,便于管理
  • 支持同一课程多次上课的不同处理

自定义配置

修改课程时间表

  1. 打开 src/config/config.py 文件
  2. 找到 COURSE_SCHEDULE 字典
  3. 按照以下格式添加或修改课程:
"课程名称": {
    "day": "星期X",        # 周一、周二、周三、周四、周五、周六、周日
    "time": "HH:MM-HH:MM", # 时间格式,如 "09:00-11:00"
    "description": "课程描述"
}

调整AI模型参数

  1. 打开 src/config/ai_config.json 文件
  2. 修改相关参数:
    • max_tokens: 单次请求的最大token数
    • temperature: 生成文本的随机性 (0.0-1.0)
    • chunk_size: 文本分块大小
    • chunk_overlap: 分块重叠字符数

自定义Prompt模板

  1. 打开 src/config/ai_config.json 文件
  2. 修改 prompts 部分:
    • summary: 总结生成的提示词
    • translate: 翻译的提示词

⚠️ 注意事项

  1. 确保源目录存在且包含录音文件
  2. 程序会移动文件,请确保重要文件已备份
  3. 需要有效的OpenAI API密钥
  4. 建议在网络稳定的环境下运行AI处理

🔍 故障排除

常见问题

  1. API连接失败: 检查API密钥和网络连接
  2. 文件匹配失败: 检查录音文件夹名称格式
  3. 权限错误: 确保对目录有读写权限

调试方法

  • 查看程序日志输出
  • 检查配置文件设置
  • 确认文件路径正确

📄 许可证

本项目仅供个人学习使用。


版本: 1.0.0
最后更新: 2025-09-04

About

智能课堂笔记整理工具 - 支持文件分类、AI总结和翻译功能

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages