这是一个全自动化的内容创作工具,能够将 Markdown 文档 智能转换为 带配音、字幕和幻灯片演示的视频。
本项目基于模块化的流水线架构(Pipeline)设计,集成了大模型文本处理、Marp 幻灯片生成、阿里通义语音合成(TTS)以及 FFmpeg/MoviePy 视频渲染技术。
- 自动化流水线:从文档切分到视频生成的全流程自动化,支持断点续传。
- 智能文档处理:使用 Qwen-Plus 模型将长文档智能切分为适合演示的幻灯片结构。
- 高质量语音合成:集成 Qwen3-TTS-Flash 模型,生成自然流畅的解说配音。
- 极速渲染引擎:经过优化的视频合成逻辑(预合成、多线程编码),将生成时间从数小时缩短至数分钟。
- 自动资源管理:自动整理生成的视频、音频、图片和字幕文件,保持输出目录整洁。
- 字幕自动对齐:精准的时间轴计算,确保语音与字幕完美同步,并自动处理 Markdown 符号。
-
Python 环境 建议使用 Conda 创建虚拟环境:
conda create -n doc2video python=3.12 conda activate doc2video pip install -r requirements.txt
-
外部依赖
- Node.js: 用于运行 Marp CLI 生成幻灯片图片。
- FFmpeg: 用于视频和音频的合并处理(通常通过
imageio-ffmpeg自动安装,若有问题请手动配置环境变量)。
-
API 配置 本项目依赖阿里云 DashScope 服务(通义千问),请确保已设置环境变量:
# Windows Powershell $env:DASHSCOPE_API_KEY="your_api_key_here"
将您的文章内容保存为 Markdown 格式(例如 my_article.md),并放入 input/ 文件夹中。
在项目根目录下运行以下命令:
python main_pipeline.py --input input/my_article.md运行完成后,结果将保存在 output_pipeline/ 目录下。您可以使用整理脚本将文件归类:
python scripts/organize_output.py整理后的目录结构如下:
output_pipeline/
└── section_name/
├── video/ # 最终生成的 MP4 视频
├── subtitles/ # SRT 字幕文件
├── slides/ # 幻灯片源文件
├── audio/ # 配音片段
└── images/ # 幻灯片图片
project_root/
├── main_pipeline.py # 程序入口
├── src/
│ ├── framework/ # 流水线核心框架 (Pipeline, Step, Context)
│ ├── steps/ # 具体步骤实现 (DocSplit, AudioGen, VideoAssembly 等)
│ ├── text_processing/ # 文本处理与 LLM 交互
│ ├── audio_engineering/ # 语音合成与时长计算
│ ├── visual_rendering/ # Marp 幻灯片生成
│ └── video_production/ # 视频合成与剪辑
├── input/ # 输入文档目录
└── output_pipeline/ # 输出产物目录
本项目已针对视频生成速度进行了深度优化:
- 低帧率渲染:针对静态幻灯片视频,使用 10 FPS 渲染,大幅减少计算量。
- PIL 预合成:使用 Pillow 库预先处理图片合成,避免在视频渲染循环中进行繁重的图像处理。
- 多线程编码:启用 FFmpeg 多线程与
faster预设,显著提升编码速度。
- v1.0: 初始版本,基于脚本的线性执行。
- v2.0: 重构为 Pipeline 架构,支持断点续传与模块化扩展。
- v2.1: 性能专项优化,视频生成速度提升 50倍+;修复 Windows 路径兼容性问题。