从Markdown讲义自动生成教学视频的完整解决方案

课程视频生成器

功能特性

  • 📝 智能拆分:按标题层级自动拆分Markdown讲义
  • 🔊 语音合成:支持百度AI和本地TTS两种语音引擎
  • 🎬 视频生成:代码演示风格的讲义渲染
  • 📺 自动字幕:根据音频时长自动生成SRT字幕
  • 🎞️ 批量处理:一键生成完整课程视频

安装

快速安装

bash 复制代码
# 运行安装脚本
bash install_deps.sh

手动安装

bash 复制代码
# 1. 安装 ffmpeg
brew install ffmpeg  # macOS
# 或
sudo apt-get install ffmpeg  # Linux

# 2. 创建虚拟环境
python3 -m venv venv
source venv/bin/activate  # macOS/Linux
# 或
venv\Scripts\activate  # Windows

# 3. 安装Python依赖
pip install moviepy Pillow markdown pydub pyttsx3 baidu-aip

使用方法

基本用法

bash 复制代码
python course_generator.py -i course.md -o output

完整参数

参数 说明 默认值
-i, --input 输入的Markdown讲义文件(必填) -
-o, --output 输出目录 course_output
-l, --level 拆分的标题层级(1-6) 1
--no-baidu 使用本地TTS而非百度AI -
--voice 百度TTS音色(103=男,104=女) 103
--speed 百度TTS语速(0-9) 5
--no-merge 不合并为完整课程视频 -

使用示例

bash 复制代码
# 使用百度AI生成课程(需要API密钥)
python course_generator.py -i python_course.md -o output

# 使用本地TTS(离线,无需API密钥)
python course_generator.py -i course.md -o output --no-baidu

# 按二级标题拆分课程
python course_generator.py -i course.md -o output --level 2

# 使用女声、更快的语速
python course_generator.py -i course.md -o output --voice 104 --speed 7

工作流程

复制代码
┌─────────────────┐
│  Markdown讲义   │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│ 按标题拆分TXT   │  ← mdsplit2txtwith.py
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  生成语音音频   │  ← text2audioandcon.py
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  渲染讲义画面   │  ← MarkdownRenderer
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  生成同步字幕   │  ← SRT生成器
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  音视频合成     │  ← VideoGenerator
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  拼接完整课程   │  ← 视频拼接
└─────────────────┘

输出结构

复制代码
course_output/
├── 01_txt/           # 拆分后的文本文件
│   └── course/
│       ├── chapter1.txt
│       └── chapter2.txt
├── 02_audio/         # 生成的音频文件
│   ├── chapter1_完整音频.mp3
│   └── chapter2_完整音频.mp3
├── 03_video/         # 分章节视频
│   ├── chapter1.mp4
│   └── chapter2.mp4
└── 04_final/         # 完整课程
    └── 完整课程.mp4

讲义格式建议

标题层级

markdown 复制代码
# 第一章:Python基础

## 1.1 变量与数据类型

### 整数和浮点数

Python支持多种数据类型...

代码块

使用三个反引号标记代码,会自动应用代码演示风格:

markdown 复制代码
```python
def hello():
    print("Hello, World!")
```

列表

支持有序和无序列表:

markdown 复制代码
- 第一点
- 第二点
- 第三点

配置百度AI(可选)

如需使用百度AI语音合成,请修改 text2audioandcon.py 中的配置:

python 复制代码
APP_ID = '你的APP_ID'
API_KEY = '你的API_KEY'
SECRET_KEY = '你的SECRET_KEY'

获取密钥:https://cloud.baidu.com/product/speech/tts

常见问题

1. ffmpeg 相关错误

确保 ffmpeg 已正确安装并在 PATH 中:

bash 复制代码
ffmpeg -version

2. 字体显示问题

macOS 会自动使用系统字体,Windows/Linux 可能需要安装相应字体。

3. 内存不足

处理大型课程时,可以调整 VideoConfig 中的视频分辨率。

4. 百度TTS配额限制

百度AI有免费配额限制,超额后可使用 --no-baidu 切换到本地TTS。

技术架构

核心模块

模块 功能
CourseConfig 课程配置管理
MarkdownRenderer 讲义渲染为图片
VideoGenerator 音视频合成
CourseGenerator 主控流水线

如对本方案有兴趣,欢迎关注私信.

相关推荐
音视频牛哥3 小时前
AI浪潮下,实时音视频SDK正在经历怎样的价值重构?
人工智能·音视频·实时音视频·rtmp推流·低延迟rtsp播放器·低延迟rtmp播放器·rtsp转rtmp推流
乐橙开放平台4 小时前
明厨亮灶笔记:乐橙轻应用 H5 + 小程序插件,一套 BFF 出两张播放凭证
人工智能·笔记·物联网·小程序·音视频·notepad++
ofoxcoding5 小时前
Seedance 2.0 与 Wan 2026 视频生成 API 成本效率深度对比分析
网络·人工智能·ai·音视频
xingyuzhisuan5 小时前
星宇智算 AI 视频生成工具九维度全测评与行业对标分析
人工智能·音视频
豌豆学姐5 小时前
likeadmin-api 视频生成工作流实战:Seedance 2.0 接口从素材到任务查询
aigc·音视频·api·视频生成·likeadmin-api
乐橙开放平台6 小时前
养殖 SaaS 笔记:乐橙 IoT 物模型管环境,视频 OpenAPI 管回看
数据库·笔记·物联网·mysql·音视频
山顶夕景1 天前
【MAE】音频自监督训练Masked Autoencoders that Listen
音视频·ssl·多模态·自监督·mae
小码哥0681 天前
短视频后台系统架构设计与行业应用深度分析-源码-技术支持
系统架构·音视频·短视频后台·短剧后台·微剧后台
小猴子爱上树1 天前
TikTok Shop视频自动翻译工具实战教程
人工智能·python·音视频·机器翻译
mzy80001 天前
AI漫剧视频生成项目——kimi自检
音视频