Skip to content

把你的网课视频自动整理成带图的md笔记。

Notifications You must be signed in to change notification settings

yejiu002/MetaNote

 
 

Repository files navigation

MetaNote:课程视频自动笔记生成工具

听网课听完就忘了,懒得自己做笔记,但是后面又想找回来复习看看,如果又去看视频,很难精准找到知识点,太降低效率。 MetaNote 是一个简单而强大的工具,能够从课程视频中自动生成带有关键图像的结构化 Markdown 笔记。 它帮你搞定网课笔记。

功能特点

  • (新!)便捷的图形化界面:提供基于 Streamlit 的图形化操作界面,简化使用流程,无需命令行操作经验。
  • 自动语音识别:使用 FunASR 高精度转录视频中的语音内容。
  • 智能关键帧提取:基于场景变化和内容稳定性分析,提取最有价值的画面,收纳作为笔记配图。
  • 多模态理解:支持使用本地 Ollama 或阿里云千问多模态模型理解图像内容。
  • 结构化笔记生成:自动整合文本和图像,生成格式清晰的 Markdown 笔记。

快速开始

环境准备

  1. 克隆项目
  git clone https://github.com/marstaos/metanote.git
  cd metanote
  1. 安装依赖
  pip install -r requirements.txt

如果你使用过旧版本,需要重新安装requirements。

  1. 下载ASR模型 参照FunASR文档,前往魔搭社区下载模型:SenseVoiceSmall 下载完成后,记下模型文件所在的路径,后续配置需要用到。

  2. 安装 FFmpeg FFmpeg 用于音视频处理。在基于 Debian/Ubuntu 的系统上,可以通过以下命令安装:

    sudo apt update && sudo apt install ffmpeg

    其他系统请参照 FFmpeg 官方文档进行安装。

使用方式一:使用图形化界面 (推荐)

推荐使用全新的图形化界面进行操作,更加直观便捷。

  1. 启动图形化界面 在项目根目录下运行:

    streamlit run app.py

    应用启动后,终端会显示正在运行服务的url。

  2. 使用步骤 进入图形化界面后,请按照界面左侧导航栏的步骤依次操作:

    • 步骤 1: 配置检查与修改
      • 在此步骤中可以查看和修改 config.yaml 文件的内容。
      • 关键配置项
        • model_path: ASR 模型的路径 (例如 model_path: /path/to/your/SenseVoiceSmall)。请确保填写您在“环境准备”步骤中下载并存放的模型路径。
        • llm.qwen.api_key: 千问大模型的 API Key。(前往阿里百炼平台获取qwen的api-key:https://bailian.console.aliyun.com/)**注意:这个 key 需要在图形化界面中填写两次,图形化界面里面有两个地方要填sk-key**,分别对应config文件中的 image_understanding.qwen.api-key 和 note_generator.qwen.api-key
      • 您可以直接在界面提供的编辑器中修改配置,修改完成后务必点击“保存配置”按钮。
    • 步骤 2: 启动 ASR 服务
      • 点击“启动 ASR 服务”按钮。
      • 服务启动后,界面右上角会显示服务状态。“running”表示正在尝试启动。
      • 可以点击“刷新日志”按钮刷新状态,确认服务是否成功运行。
    • 步骤 3: 处理视频
      • 上传需要处理的视频文件(支持 .mp4, .mov, .avi 等格式)。
      • 上传完成后,点击“开始处理”按钮。
      • 处理过程会提取音频、进行语音识别、提取关键帧、进行图像理解,并最终生成笔记。此过程可能需要较长时间,如果没报错就应该是在正常进行。
    • 步骤 4: 查看结果
      • 处理完成后,生成的 Markdown 笔记内容会直接显示在此页面。
      • 同时,完整的笔记(Markdown 文件)和提取的关键帧图片会保存在项目根目录下的 output/[视频文件名] 文件夹中。

方式二:使用命令行界面

  • 启动 ASR 服务:

    python cli.py asr-server --model /path/to/your/SenseVoiceSmall

    请将 /path/to/your/SenseVoiceSmall 替换为实际的 ASR 模型路径。

  • 处理单个视频:

    python cli.py process /path/to/video.mp4
  • 批量处理视频:

    python cli.py batch /path/to/videos/folder --recursive

运行要求

  • Python 3.10+
  • CUDA (推荐,用于加速 ASR 和 ollama 运行多模态模型)
  • FFmpeg
  • Streamlit (通过 requirements.txt 安装)
  • 本地 Ollama 安装(可选,用于离线图像理解)
  • 阿里云千问 API 密钥(可选,用于云端图像理解和笔记生成),前往阿里百炼平台获取qwen的api-key:https://bailian.console.aliyun.com/

项目结构

metanote/
├── app.py              # Streamlit 图形化界面应用
├── cli.py              # 命令行接口
├── main.py             # 后端主逻辑 (供 app.py 和 cli.py 调用)
├── config.yaml         # 配置文件
├── requirements.txt    # Python 依赖
|
├── asr_client.py       # ASR 客户端逻辑
├── asr_server.py       # ASR 服务端逻辑 (或通过 cli.py 启动)
├── frame_extractor.py  # 帧提取模块
├── image_processor.py  # 图像理解模块
├── note_generator.py   # 笔记生成模块
├── utils.py            # 工具函数及通用逻辑
|
├── docs/               
│   ├── example/        
│   ├── index.html      
│   └── 技术报告.md
|
├── logs/               # 运行时日志目录 (例如 ASR 服务日志)
├── output/             # 默认笔记及图片输出目录
└── README.md           # 本项目说明文件

示例

以下是 MetaNote 生成的笔记示例:

# 如何进入良性循环:克服拖延症的学习笔记

本节课程探讨了如何通过理解拖延的心理机制,采取有效策略进入工作与生活的良性循环。以下是主要内容的结构化总结。

## 一、拖延的心态与焦虑曲线
拖延往往源于对任务不确定性的恐惧,导致我们选择暂时逃避。然而,这种行为会引发焦虑,并随着拖延时间的增长而加速上升。  
- **毒舌曲线**:描述了拖延过程中焦虑的变化趋势。如果一直拖延,焦虑如同眼镜蛇昂首,最终变得难以控制。但一旦开始行动,哪怕只是迈出一小步,焦虑也会迅速下降。
- **红区与蓝区**- 红区:拖延阶段,焦虑持续上升。  
  - 蓝区:开始行动后,焦虑逐渐降低,进入高效工作状态。

![图片 1](./images/image_01.jpg)  
*图1解释:水坝象征着拖延时积累的焦虑,而“迈出一小步”则是打开闸门的关键,让焦虑如洪水般倾泻,从而缓解心理压力。*

## 二、拖延的恶性循环及其破解
拖延行为具有自我强化的特点,容易形成恶性循环:  
1. 拖延 → 焦虑增加 → 自我否定 → 动力消耗 → 更加拖延。  
2. 解决方法:将拖延转化为良性循环,通过实际行动增强自信和成就感。  

心理学研究表明,以下四点阻碍我们进入良性循环:  
- **缺乏自信**:目标设定过高或不确定性较强,使人不敢启动。  
- **任务不愉快**:预期过程或结果令人反感,降低行动意愿。  
- **目标遥远**:缺乏即时反馈,难以维持动力。  
- **无法专注**:分心问题严重,影响效率。

## 三、两个实用心法
为了打破拖延的恶性循环,课程介绍了两种简单有效的方法:

### 1. 五分钟启动法  
由Instagram创始人凯文·斯特罗姆提出,核心理念是告诉自己“先做五分钟”。这种方法利用了人类行为的惯性:一旦开始,继续下去的概率会显著提高。即使最初只想做五分钟,通常也能顺利完成整个任务。  

### 2. 想象未来的自己  
拖延者常对未来抱有过度乐观的期待,认为“未来的自己”可以轻松解决当前的问题。但实际上,这只会加重未来的负担。因此,我们需要重新审视对未来的期望,善待未来的自己,避免把困难推给未来的版本。

## 四、案例实践与行动计划
在课程最后,建议学员挑选一件曾经拖延的任务,尝试使用“五分钟启动法”进行实践。具体步骤如下:  
1. 选择一个具体的任务(如写报告、学习新技能等)。  
2. 设定五分钟的时间限制,专注于完成该任务的第一小部分。  
3. 观察自己的心理变化,记录体验。

## 总结
本节课的核心内容包括:  
1. **理解拖延的机制**:从焦虑曲线到红区与蓝区的划分,揭示拖延背后的心理动因。  
2. **识别阻碍因素**:明确四大障碍(缺乏自信、任务不愉快、目标遥远、无法专注)对良性循环的影响。  
3. **掌握应对策略**:通过“五分钟启动法”和“想象未来的自己”,逐步培养行动习惯,进入良性循环。  

希望这些知识能帮助你更好地管理时间,摆脱拖延的困扰!

About

把你的网课视频自动整理成带图的md笔记。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%