智能课程知识萃取与认知辅助工作台
一款面向大学生的课程学习辅助工具,自动从课程录播视频中提取PPT内容,并借助AI技术提供个性化的知识讲解与练习生成服务。
在大学学习过程中,学生常常面临以下困境:
- 课件获取困难:学校回放平台仅提供视频播放权限,教师不公开分享原版课件,只能通过反复暂停视频手动截图
- 课后复习低效:面对信息密集的专业课PPT,缺乏有效的自学指导和知识梳理工具
- 学习资料分散:课件、笔记、习题散落各处,难以形成系统化的学习体系
SlideNote 正是为解决这些问题而生。
提供课程录播视频URL或上传本地视频文件,系统自动完成:
- 智能抽帧:基于内容感知策略,精准识别PPT画面切换的关键帧
- 自动去重:通过图像相似度算法过滤动画效果、鼠标移动等产生的冗余画面
- PDF合成:将有效帧按时间顺序合成为高清PDF文档(分辨率≥300dpi)
支持自定义去重阈值,适应不同课程的PPT切换频率。
采用「学期 → 课程 → 课时」三级目录结构,与实际学习节奏保持一致:
- 自由创建学期标签和课程文件夹
- 提取的PPT自动归档至对应课程目录
- 每个课时下自动分类管理:课件PDF、学习笔记、练习题库、答案解析
- 支持预览、下载、重命名、移动、删除及批量操作
- 全局搜索、最近访问记录、收藏夹等便捷功能
一键调用大语言模型对课件内容进行深度解读,生成结构化的知识讲解笔记。
多种预设风格可选:
| 模式 | 适用场景 |
|---|---|
| 零基础入门 | 从基础概念开始,逐步展开讲解 |
| 重点提炼 | 聚焦核心概念和易混淆知识点 |
| 考前速记 | 以考点为导向,提炼关键结论和公式 |
支持自定义提示词,完全掌控输出风格和侧重方向。讲解笔记可导出为 Markdown 或 PDF 格式。
基于课件内容和AI笔记,自动生成配套练习题,形成学习闭环:
- 题型覆盖:选择题、填空题、判断题、简答题、计算题
- 灵活配置:自定义题目数量、难度分布和出题方向
- 详细解析:每道题配套解题思路、知识点回顾和常见错误提示
同样支持自定义提示词,可指定"模拟期末考试难度"或"针对易混淆知识点出题"等个性化需求。
针对"PPT精简、口头讲解丰富"的课程场景:
- 支持上传课堂录音或从视频中分离音轨
- 语音识别转写为文字稿
- 将录音内容与PPT进行语义关联
- 融合多模态信息生成更贴合课堂实际的高质量笔记
有效保留教师强调的重点内容,弥补纯PPT文字信息的局限性。
- 理工科、医学等PPT信息密度较高的专业课程
- 有课程回放资源访问权限,但难以获取教师原版课件的情况
- 需要系统化整理和高效复习课程内容的学习需求
- 基于内容感知的智能视频抽帧算法
- 感知哈希/结构相似性指数的图像去重
- 大语言模型驱动的内容理解与生成
- 语音识别与多模态信息融合处理
XJTU-SlideNote/
├── product_design/ # 产品设计文档
│ ├── design.md # 产品需求设计
│ ├── tech-stack.md # 技术方案设计
│ └── architecture.md # 系统架构设计
├── backend/ # 后端服务 (Python + FastAPI)
│ ├── app/
│ │ ├── api/ # RESTful API 路由
│ │ ├── services/ # 业务逻辑层
│ │ ├── core/ # 核心引擎(视频处理、OCR、LLM)
│ │ ├── models/ # 数据模型 (SQLAlchemy ORM)
│ │ ├── schemas/ # Pydantic 数据校验
│ │ └── prompts/ # AI 提示词模板
│ ├── tests/ # 单元测试
│ └── requirements.txt # Python 依赖
├── frontend/ # 前端应用 (React + TypeScript)
│ ├── src/
│ │ ├── pages/ # 页面组件
│ │ ├── components/ # 通用组件
│ │ ├── services/ # API 调用
│ │ ├── stores/ # Zustand 状态管理
│ │ ├── hooks/ # 自定义 Hooks
│ │ └── types/ # TypeScript 类型定义
│ └── package.json # Node 依赖
└── README.md
详细架构设计请参阅 architecture.md。
| 层级 | 技术选型 |
|---|---|
| 前端框架 | React 18 + TypeScript + Vite 5 |
| UI 组件 | Ant Design 5 |
| 状态管理 | Zustand + TanStack Query |
| 后端框架 | Python 3.11 + FastAPI |
| 数据库 | SQLite + SQLAlchemy |
| 视频处理 | FFmpeg (场景检测) + imagededup (去重) |
| OCR 识别 | PaddleOCR |
| LLM 接入 | LiteLLM (兼容 OpenAI 规范) |
后端:
cd backend
./start.sh该脚本会自动检查环境依赖、创建虚拟环境、安装依赖并启动服务。
手动启动:
cd backend
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env # 配置环境变量(重要:需设置 LLM_API_KEY)
uvicorn app.main:app --reload --port 8000cd frontend
pnpm install
pnpm run dev访问 http://localhost:5173 即可使用。
完整的部署文档、API 使用示例、故障排查请参阅 DEPLOYMENT_GUIDE.md
欢迎提交 Issue 和 Pull Request,共同完善这个项目。