3.9 KiB
3.9 KiB
VidMarmot
VidMarmot — 为英语课本音频配画的 AI 工具。
给一篇课文文本 + 对应的朗读音频,VidMarmot 会自动拆分场景、生成配图、对齐语音时间轴,最终合成一个带字幕的视频。
为什么做这个?
老师总让我帮忙做课文视频。一次两次还好,做多了真的烦。
所以我就写了这个工具——把整个流程自动化了:放进去文本和音频,点几下按钮,视频就出来了。
主要用途
- 英语课本课文 — 给每篇课文的朗读音频配上场景画面
- 故事类文章 — 自动拆分场景,逐张生成配图
- 教学演示 — 生成带字幕的场景切换视频
课文文本 + 朗读音频 → AI 拆分场景 → 逐场景生成配图 → 语音对齐时间轴 → 合成视频(含字幕)
功能
- AI 场景划分 — 支持 Qwen / GLM / DeepSeek / 阿里云百炼 / OpenAI 兼容接口
- AI 文生图 — 支持 Kolors / Qwen-Image 模型,逐张生成场景配图
- 逐张审查 — 每张图生成后可以预览、确认、重新生成或跳过
- 语音对齐 — 基于 Qwen3-ForcedAligner 的 ASR 强制对齐
- 视频合成 — MoviePy 合成最终视频,自动添加字幕
预览
快速开始
环境要求
- Python 3.12+
- Conda
- NVIDIA GPU(本地 ASR 模型需要)
安装
# 创建环境
conda create -n VidMarmot python=3.12 -y
conda activate VidMarmot
# 安装依赖
pip install PyQt6 moviepy Pillow requests openai
pip install funasr modelscope torch torchaudio
# 下载 ASR 模型(约 1.2GB)
python qwen_download.py
配置 API Key
编辑 config.py,在对应模型的 api_key 字段填入你的 Key。只需填你用到的服务即可。
| 服务 | 用途 | Key 对应 | 免费额度 |
|---|---|---|---|
| ModelScope | LLM + 文生图 | MODELSCOPE_API_KEY |
有 |
| 硅基流动 | LLM + 文生图 | SILICONFLOW_API_KEY |
有 |
| 阿里云百炼 | LLM (Qwen3-235B) | DASHSCOPE_API_KEY |
有 |
| DeepSeek | LLM (V3/R1) | DEEPSEEK_API_KEY |
有 |
| OpenAI 兼容 | 自定义 Router | OPENAI_API_KEY |
- |
运行
python gui.py
# 或 Windows 双击
run.bat
工作区结构
每个视频项目是一个文件夹:
workspace/my_lesson/
├── article.txt # 课文文本
├── voice.mp3 # 朗读音频
├── scene_plan.json # 场景计划(自动生成)
├── result.json # ASR 对齐结果(自动生成)
├── scene/ # 生成的场景图
│ ├── scene_001.png
│ ├── scene_002.png
│ └── ...
└── output_video.mp4 # 最终视频(自动生成)
项目结构
├── gui.py # PyQt6 GUI(主入口)
├── scene_plan.py # AI 场景划分 + Prompt 工程
├── image_gen.py # 文生图 API 调用
├── asr.py # ASR 强制对齐
├── make_video.py # 视频合成 + 字幕渲染
├── text_ai.py # LLM API 客户端
├── config.py # 配置管理(路径、API、模型)
├── qwen_download.py # ASR 模型下载脚本
├── run.bat # Windows 启动脚本
└── .gitignore
依赖
| 包 | 用途 |
|---|---|
| PyQt6 | GUI 框架 |
| moviepy | 视频合成 |
| Pillow | 图片处理 / 字幕渲染 |
| requests | HTTP API 调用 |
| openai | 兼容 OpenAI 格式的 LLM 客户端 |
| funasr | ASR 强制对齐 |
| modelscope | 模型加载 |
| torch / torchaudio | GPU 推理后端 |
Roadmap
- 图生视频 — 用生成的场景图做图生视频,让每张静态图变成动态片段,最终拼接成真正的动态视频
- 更多文生图模型支持
- 批量处理多个课文
- 打包为可执行文件(pyinstaller)
License
MIT
