在电脑上实时旁听直播课,自动生成结构化笔记,并将课程知识蒸馏为可复用的 Agent Skill
Live Course Notes 是一个运行在你 Windows 电脑上的课程旁听工具。当你观看直播课、在线培训或视频教程时,它会:
- 🎙️ 采集系统音频 — 通过 loopback 录制课程声音,用 faster-whisper 本地转写为文字
- 🖥️ 截取屏幕画面 — 定期截图,理解 PPT、代码演示、操作界面等视觉内容
- 📝 实时生成笔记 — 将音频和画面结合,输出结构化课程笔记
- 🧪 知识蒸馏 — 课程结束后,用 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(首次运行会自动安装依赖)。
python mcp_server.py启动成功后会显示:
============================================================
直播课笔记 MCP 服务器
============================================================
监听地址: http://127.0.0.1:8765
Whisper 模型: small
视觉提供方: none
截图间隔: 15秒
============================================================
首次启动时 Whisper 会自动下载模型(small 约 500MB),请耐心等待。
扣子(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 |
有 NVIDIA 显卡的用户,安装 CUDA 版 PyTorch:
pip install torch --index-url https://download.pytorch.org/whl/cu121然后将 config.yaml 中的 device 改为 "cuda"。
课程结束后,如果内容包含可复用的方法论,Agent 会执行 RIA-TV++ 流水线:
- 整课理解(Adler 分析) — 梳理课程结构和核心方法论
- 并行提取 — 5 个专项提取器:框架、原则、流程、反例、术语
- 三重验证(TV) — 每个候选必须:
- 课程中有明确依据
- 能应用到课程未明说的新场景
- 不是常识性废话
- RIA++ 结构化 — 每个通过验证的单元包含:
- R(原文):课程中的原始讲解
- I(重述):用自己的话准确重述
- A1(案例):课程中给出的案例
- A2(触发场景):未来什么时候该用
- E(执行步骤):具体怎么做
- B(边界):什么时候不适用
- Zettelkasten 链接 — 找出技能间的依赖和组合关系
- 压力测试 — 为每个技能设计测试 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 一键启动
| 工具 | 说明 |
|---|---|
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 报告、功能建议和代码。
感谢所有贡献者!
- faster-whisper — 高效的 Whisper 推理引擎
- FastMCP — Python MCP 框架
- cangjie-skill — RIA-TV++ 知识蒸馏方法论
- Model Context Protocol — 标准化的 Agent-工具连接协议