Skip to content

Repository files navigation

🎓 Live Course Notes

在电脑上实时旁听直播课,自动生成结构化笔记,并将课程知识蒸馏为可复用的 Agent Skill

License: MIT Python 3.10+ Platform: Windows PRs Welcome MCP

特性快速开始架构配置蒸馏FAQ贡献


📖 这是什么

Live Course Notes 是一个运行在你 Windows 电脑上的课程旁听工具。当你观看直播课、在线培训或视频教程时,它会:

  1. 🎙️ 采集系统音频 — 通过 loopback 录制课程声音,用 faster-whisper 本地转写为文字
  2. 🖥️ 截取屏幕画面 — 定期截图,理解 PPT、代码演示、操作界面等视觉内容
  3. 📝 实时生成笔记 — 将音频和画面结合,输出结构化课程笔记
  4. 🧪 知识蒸馏 — 课程结束后,用 RIA-TV++ 流水线把方法论提炼成可复用的 Agent Skill 包

核心特点:

  • 完全免费 — Whisper 本地运行,视觉用 Agent 内置能力或免费 API
  • 跨 Agent 兼容 — 基于标准 MCP 协议,扣子 / Claude Desktop / Cursor 等都能连接
  • 隐私优先 — 音频和截图只保存在本地,不上传任何服务器
  • 知识复用 — 不只是笔记,更把课程内容蒸馏成可触发、可组合、可测试的 Skill

✨ 特性

音频转写

  • Windows loopback 系统音频采集(无需虚拟音频线)
  • faster-whisper 本地推理,CPU/GPU 均可运行
  • 支持中文/英文自动检测
  • 弱网/离线时本地缓存录音,恢复后继续处理

屏幕理解

  • 定期自动截图(间隔可配)
  • Agent 内置视觉模型直接理解画面(零配置)
  • 可选接入智谱 GLM-4V-Flash(免费)或 Google Gemini(免费层)
  • 自动识别 PPT 文字、代码、图表、操作演示

实时笔记

  • 音频 + 画面双向印证,避免"只听不看"或"只看不听"
  • 重要知识点标记
  • 会中可随时向 Agent 提问
  • 课程结束自动整理学习笔记和复习提纲

知识蒸馏

  • 基于 cangjie-skill 的 RIA-TV++ 方法论
  • 提取框架、原则、流程、反例、术语五类方法论单元
  • 三重验证筛选(有依据、能泛化、非常识)
  • 每个单元生成独立 SKILL.md,可直接在 Agent 中使用

🚀 快速开始

环境要求

  • Windows 10/11
  • Python 3.10+
  • ffmpeg(音频处理需要)
  • (可选)NVIDIA GPU + CUDA,加速 Whisper 转写

第一步:安装

# 克隆仓库
git clone https://github.com/1361525226/live-course-notes.git
cd live-course-notes/scripts

# 一键安装(检测环境 + 装依赖)
python setup.py

或直接双击 启动服务器.bat(首次运行会自动安装依赖)。

第二步:启动 MCP 服务器

python mcp_server.py

启动成功后会显示:

============================================================
  直播课笔记 MCP 服务器
============================================================
  监听地址: http://127.0.0.1:8765
  Whisper 模型: small
  视觉提供方: none
  截图间隔: 15秒
============================================================

首次启动时 Whisper 会自动下载模型(small 约 500MB),请耐心等待。

第三步:连接 Agent

扣子(Coze):

在 Agent 设置 → MCP 服务器中添加,地址填 http://127.0.0.1:8765

Claude Desktop:

编辑配置文件 %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "live-course-notes": {
      "url": "http://127.0.0.1:8765"
    }
  }
}

Cursor / 其他支持 MCP 的 Agent:

同样添加 HTTP MCP 服务器,地址为 http://127.0.0.1:8765

第四步:开始旁听

在 Agent 对话中说:

"开始旁听课程,标题是 Python 进阶实战"

然后正常观看课程即可。Agent 会定期整理笔记。课程结束后说"课程结束",再说"生成笔记"或"蒸馏成技能"获取最终产出。


🏗 架构

┌─────────────────────────────────────────────────────┐
│              你的 Windows 电脑                         │
│                                                       │
│  ┌──────────────┐   ┌──────────────┐                 │
│  │  系统音频采集   │   │  屏幕截图采集  │                 │
│  │ (loopback)   │   │   (mss)      │                 │
│  └──────┬───────┘   └──────┬───────┘                 │
│         │                   │                         │
│  ┌──────▼───────┐   ┌──────▼───────┐                 │
│  │ faster-      │   │  截图压缩     │                 │
│  │ whisper 转写  │   │  (Pillow)    │                 │
│  └──────┬───────┘   └──────┬───────┘                 │
│         │                   │                         │
│         └────────┬──────────┘                         │
│                  ▼                                    │
│         ┌────────────────┐                            │
│         │  MCP Server    │◄────── HTTP/SSE            │
│         │  (FastMCP)     │                            │
│         └───────┬────────┘                            │
└─────────────────┼───────────────────────────────────┘
                  │
     ┌────────────┼────────────┐
     ▼            ▼            ▼
┌─────────┐ ┌─────────┐ ┌─────────┐
│  扣子    │ │ Claude  │ │ Cursor  │   ... 任何 MCP 客户端
│  Agent  │ │ Desktop │ │         │
└─────────┘ └─────────┘ └─────────┘
     │
     ▼
┌─────────────────────────────────┐
│  实时笔记 → 学习笔记 → RIA-TV++   │
│  → 可复用 Skill 包               │
└─────────────────────────────────┘

⚙️ 配置

编辑 scripts/config.yaml

whisper:
  model_size: "small"      # tiny / base / small / medium / large-v3
  device: "auto"           # auto / cpu / cuda
  compute_type: "auto"     # auto / int8 / float16 / float32
  language: null           # null=自动检测,zh=中文,en=英文

capture:
  audio_chunk_seconds: 5          # 音频块长度
  screenshot_interval_seconds: 15 # 截图间隔
  monitor: 1                      # 显示器编号
  max_screenshot_width: 1920      # 截图最大宽度
  jpeg_quality: 80                # JPEG 质量

vision:
  provider: "none"         # none / glm / gemini
  glm_api_key: ""          # https://open.bigmodeli.cn(glm-4v-flash 免费)
  gemini_api_key: ""       # https://aistudio.google.com(免费层)

server:
  host: "127.0.0.1"
  port: 8765

模型选择

模型 大小 速度 中文准确度 推荐场景
tiny ~75MB 极快 一般 快速测试
base ~150MB 尚可 低配电脑
small ~500MB 中等 默认推荐
medium ~1.5GB 较慢 很好 有 GPU
large-v3 ~3GB 最好 高要求 + GPU

GPU 加速

有 NVIDIA 显卡的用户,安装 CUDA 版 PyTorch:

pip install torch --index-url https://download.pytorch.org/whl/cu121

然后将 config.yaml 中的 device 改为 "cuda"


🧪 知识蒸馏 (RIA-TV++)

课程结束后,如果内容包含可复用的方法论,Agent 会执行 RIA-TV++ 流水线:

  1. 整课理解(Adler 分析) — 梳理课程结构和核心方法论
  2. 并行提取 — 5 个专项提取器:框架、原则、流程、反例、术语
  3. 三重验证(TV) — 每个候选必须:
    • 课程中有明确依据
    • 能应用到课程未明说的新场景
    • 不是常识性废话
  4. RIA++ 结构化 — 每个通过验证的单元包含:
    • R(原文):课程中的原始讲解
    • I(重述):用自己的话准确重述
    • A1(案例):课程中给出的案例
    • A2(触发场景):未来什么时候该用
    • E(执行步骤):具体怎么做
    • B(边界):什么时候不适用
  5. Zettelkasten 链接 — 找出技能间的依赖和组合关系
  6. 压力测试 — 为每个技能设计测试 prompt

蒸馏产出可直接作为 Agent Skill 使用。方法论源自 cangjie-skill


📁 项目结构

live-course-notes/
├── SKILL.md                      # Agent 技能指令文件
├── README.md                     # 本文件
├── LICENSE                       # MIT 许可证
├── CHANGELOG.md                  # 变更日志
├── CONTRIBUTING.md               # 贡献指南
├── SECURITY.md                   # 安全策略
├── .gitignore
├── .github/
│   ├── workflows/ci.yml          # GitHub Actions CI
│   ├── ISSUE_TEMPLATE/           # Issue 模板
│   └── PULL_REQUEST_TEMPLATE.md
└── scripts/
    ├── mcp_server.py             # MCP 服务器主程序
    ├── audio_capture.py          # 系统音频采集
    ├── screen_capture.py         # 屏幕截图
    ├── transcriber.py            # Whisper 语音转写
    ├── vision.py                 # 视觉 API 调用
    ├── setup.py                  # 一键安装脚本
    ├── config.yaml               # 配置文件
    ├── requirements.txt          # Python 依赖
    └── 启动服务器.bat              # Windows 一键启动

🔌 MCP 工具

工具 说明
start_session(title) 开始课程采集
stop_session() 停止采集
get_transcripts(since_timestamp) 增量获取转写文字
get_screenshots(since_timestamp) 增量获取截图
get_session_status() 查询采集状态
analyze_screenshot(index, prompt) 用视觉 API 分析截图
export_session() 导出完整会话数据
list_audio_devices() 列出音频设备

❓ 常见问题

采集不到声音怎么办?

确保播放课程的设备是系统默认扬声器。可以在 Agent 中调用 list_audio_devices 查看设备列表。如果使用蓝牙耳机,尝试切换为有线或内置扬声器。部分蓝牙设备在"通话模式"下会降级音频质量。

Whisper 模型下载慢?

模型默认下载到 scripts/models/ 目录。可以手动从 HuggingFace 下载对应模型后放入该目录。也可以先用 tiny 模型测试,后续再切换。

CPU 转写太慢?

有 NVIDIA 显卡的用户安装 CUDA 版 PyTorch 可大幅加速。没有 GPU 也可以使用 small 模型,在现代 CPU 上大约 1:1 到 1:3 的实时率(即 1 分钟音频需要 1-3 分钟转写)。

MCP 连接失败?

检查:① 服务器命令行窗口是否还在运行 ② 端口 8765 是否被占用(可在 config.yaml 中修改)③ Windows 防火墙是否放行 Python。

截图是黑屏?

部分受 DRM 保护的内容(如某些付费课程客户端、Netflix 等)禁止屏幕捕获。尝试使用浏览器网页版观看课程。

课程超过 2 小时怎么办?

音频和截图持续采集不受时长限制。建议让 Agent 每 20-30 分钟整理一次阶段性小结,避免上下文过长。

支持 macOS 吗?

目前音频采集模块使用 soundcard 库的 Windows loopback 功能。macOS 需要安装 BlackHole 等虚拟音频设备,并修改 audio_capture.py。欢迎 PR 贡献。


🤝 贡献

欢迎贡献!请阅读 CONTRIBUTING.md 了解如何提交 Bug 报告、功能建议和代码。

感谢所有贡献者!


🙏 致谢


📄 许可证

MIT License

About

在电脑上实时旁听直播课,自动生成结构化笔记,并将课程知识蒸馏为可复用的 Agent Skill

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages