【Hello AI 科技致善】用 SOLO 打造智能课件生成器——让每位老师都能拥有好用的教学工具


① 摘要

面向广大基层教师(尤其是乡村教师和资源匮乏地区教师),在日常备课场景下提供一键生成专业课件(PPT + 讲解视频)的能力。目前通过端到端测试验证:输入科目、主题、年级后,系统可在 10 秒内自动生成 9 页结构完整的 PPT 课件,在 3 分钟内生成带中文语音讲解的教学视频,涵盖数学、语文、英语、科学等 8 个学科


② 真实场景与需求

目标人群: 基层中小学教师,特别是:

  • 乡村及偏远地区教师,缺乏专业课件制作工具和设计能力

  • 承担多学科教学任务的教师,需要快速切换不同科目的课件

  • 年龄较大的教师,对复杂软件操作不熟悉

痛点描述: 教师在日常备课中面临以下具体困难——制作一份高质量的 PPT 课件通常需要 1-3 小时:找模板、排版、配图、设计动画。对于承担多学科教学的老师,每天光备课就要耗费大量时间。而制作带讲解的视频课件更是复杂,需要录屏、配音、剪辑,门槛极高。许多老师最终只能使用简单的文字幻灯片,或者干脆不用课件,直接板书教学,导致课堂效果打折扣。

现有做法与不足:

  • 从网上下载现成课件:质量参差不齐,难以匹配自己的教学进度和学生水平

  • 使用 WPS/Office 手动制作:耗时耗力,设计能力要求高

  • 使用商业 AI 课件工具:需要付费订阅,且大多依赖云端网络,乡村学校网络不稳定

核心问题:缺少一个免费的、离线可用的、操作简单的课件生成工具。


③ 作品介绍

我们开发的「智能课件生成器」是一个 Web 网页应用,教师只需打开浏览器,简单四步即可生成专业课件:

步骤一: 选择科目(数学/语文/英语/科学/历史/地理/音乐/美术)、年级和课件主题

步骤二: 选择喜欢的模板风格(活力课堂/清新自然/海洋探索/梦幻星空/温暖阳光)

步骤三: 预览和编辑自动生成的课件内容(可添加、删除、排序幻灯片)

步骤四: 选择输出格式(PPT / 视频 / PPT+视频),一键生成并下载

核心功能:

:small_blue_diamond: AI 自动生成课件内容 —— 根据科目和主题,自动生成包含封面、目录、教学内容、练习题、课堂小结的完整课件大纲,内容真实可用。

:small_blue_diamond: PPT 课件生成 —— 使用 pptxgenjs 引擎,生成 16:9 宽屏 PPTX 文件,支持 8 种配色主题和 7 种页面布局。

:small_blue_diamond: 视频课件生成 —— 将 PPT 转换为 1920x1080 高清 MP4 视频,支持添加中文语音讲解(TTS),画面与讲解同步。

:small_blue_diamond: 内容编辑器 —— 可视化编辑每页幻灯片的标题和内容,支持添加、删除、上下移动幻灯片。

:small_blue_diamond: 5 种精美模板 —— 活力课堂(珊瑚橙)、清新自然(绿色)、海洋探索(蓝色)、梦幻星空(紫色)、温暖阳光(橙色)。

:small_blue_diamond: 8 学科覆盖 —— 数学、语文、英语、科学、历史、地理、音乐、美术,每个学科有独立的内容模板和教学逻辑。


④ 用 SOLO 实现的过程

任务拆解思路:

整个项目被拆解为 5 个核心子任务,并行开发以提高效率:

  • 后端核心引擎:PPT 生成引擎 + 视频生成引擎 + TTS 语音引擎 + 内容生成器

  • 前端 Web 界面:主页 + 模板选择 + 内容编辑器 + 生成下载

  • 模板系统:5 种视觉模板 + 8 个学科内容模板

  • 集成测试:API 测试 + 端到端测试 + 浏览器验证

使用的 SOLO 能力:

:bar_chart: PPT 生成(pptx 技能): 使用 pptxgenjs 库,遵循专业 PPT 设计规范(容器系统、尺寸常量、配色方案),生成高质量的 16:9 宽屏课件。

:artist_palette: AI 图片生成: 为课件封面和内容页生成教学插图(披萨分数图、巧克力分数图、西瓜分数图等),增强课件的视觉吸引力。

:clapper_board: 视频生成: 使用 Pillow 渲染幻灯片图片,espeak-ng 生成中文语音,ffmpeg 合成视频,实现画面与讲解的同步。

:memo: 文档生成(docx 技能): 生成配套的讲课讲稿文档,方便教师参考。

:rocket: 并行子代理开发: 同时启动 3 个子代理分别开发后端引擎、前端界面和模板系统,大幅提升开发效率。

关键 Prompt 示例:

以下是几个关键的 Prompt,展示了如何与 SOLO 协作:

:light_bulb: 生成 PPT 课件: “帮老师制作课件视频” → SOLO 自动完成选题、内容设计、PPT 制作、视频生成的全流程。

:light_bulb: 添加老师讲解: “老师讲解” → SOLO 自动编写每页 PPT 的讲课逐字稿,生成 TTS 语音,合成带配音的视频。

:light_bulb: 开发完整应用: “开发一个程序,帮助老师开发课件” → SOLO 进行需求分析、架构设计、并行开发、集成测试,产出完整的 Web 应用。

踩过的坑:

:cross_mark: 1. TTS 语音合成网络超时: 最初使用 edge-tts(微软 Edge 在线语音),但沙箱环境无法访问外网导致连接超时。解决方案:切换到本地 espeak-ng 引擎,虽然音质较基础,但稳定可靠。

:cross_mark: 2. 前端静态文件路径错误: Express 的 static 中间件指向了 server/public 而非项目根目录的 public,导致前端页面 404。通过修改路径解决。

:cross_mark: 3. API 返回格式不匹配: 后端返回 { success, data } 格式,但前端期望 { success, files } 格式。通过统一 API 返回结构,增加 files 字段解决。

:cross_mark: 4. PPT 颜色格式问题: pptxgenjs 中颜色值不能使用 # 前缀(如 #FF0000 会损坏文件),必须使用不带 # 的十六进制(如 FF0000)。

:cross_mark: 5. 中文引号嵌套: JavaScript 字符串中包含中文引号导致语法错误,需要使用单引号或转义字符处理。


⑤ 成果展示

项目产出:

  • :white_check_mark: 智能课件生成器(完整 Web 应用):包含前端界面 + 后端引擎 + 模板系统,共 15+ 个源代码文件

  • :white_check_mark: 示例课件:分数的初步认识(PPT + 带配音视频 + 讲课讲稿)

  • :white_check_mark: 项目文档:README.md(安装指南、使用说明、技术栈介绍)

技术架构:

  • 前端: 纯 HTML + CSS + JavaScript,无需框架,浏览器直接打开即用。现代化 UI 设计,响应式布局。

  • 后端: Node.js + Express,提供 RESTful API。PPT 引擎使用 pptxgenjs,视频引擎使用 Pillow + ffmpeg + espeak-ng。

  • 部署: 纯本地运行,无需云端服务。只需安装 Node.js、ffmpeg、espeak-ng 三个开源工具即可。

项目文件结构:

课件生成器/
├── public/              # 前端界面(HTML + CSS + JS)
├── server/              # 后端服务
│   ├── engines/         # 核心引擎(PPT/视频/TTS/内容生成)
│   ├── templates/       # 模板系统(5种视觉模板 + 8个学科模板)
│   └── routes/          # API 路由
├── scripts/             # 安装和启动脚本
└── README.md            # 项目文档


⑥ 验证方式与下一步

验证方式:

:white_check_mark: 1. 端到端功能测试: 已通过自动化测试验证:服务器启动、模板 API、PPT 生成(数学-认识乘法、语文-静夜思、英语-My Family 均成功生成)、前端页面加载、文件下载。

:white_check_mark: 2. 多学科内容验证: 分别测试了数学、语文、英语三个学科的课件生成,每个学科生成 9 页结构完整的 PPT,内容贴合教学实际。

:white_check_mark: 3. 视频生成验证: 成功生成带中文语音讲解的教学视频(1920x1080 高清,约 4 分钟),画面与讲解内容同步。

:white_check_mark: 4. 浏览器兼容性验证: 通过内置浏览器工具验证前端页面正常渲染,UI 交互流畅。

下一步计划:

  • 接入更高质量的 TTS 语音引擎(如 CosyVoice、ChatTTS),提升讲解视频的语音自然度

  • 增加更多课件模板和页面布局,支持教师自定义上传图片

  • 邀请一线教师试用,收集反馈持续优化

  • 打包为桌面应用(Electron),降低技术门槛,双击即可使用

  • 开源发布到 GitHub,让更多教师受益


我们相信,AI 技术应该服务于教育公平。每一位老师都值得拥有好用的教学工具,每一位学生都值得拥有精彩的课堂。希望这个小小的工具,能为教育公益事业贡献一份力量。:glowing_star: