摘要:一套纯本地的完整链路——把每页备注里写好的逐字稿,用 GPT-SoVITS 克隆音色逐页配音,再把 PPT 渲染成 1920×1080 高清画面,最后用 ffmpeg 合成一条「逐页全屏 + 本人声音讲解」的 MP4 宣讲视频。全程不依赖云端 TTS,不额外装 Office 之外的任何重量级组件。
做售前、培训、产品宣讲的人都有一个共同烦恼:PPT 做完了,逐字稿也写好了,但要录一条讲解视频,传统做法是「开着录屏软件,一边翻页一边照着稿念」。问题随之而来:
有没有一种办法:稿子是现成的(PPT 备注里就有)、声音是本人的(克隆一份就行)、画面是原封不动的 PPT,三条线自动对齐,一键出片?
有。下面这套链路就能做到,核心工具是 WorkBuddy 里的「PPT 宣讲视频」能力,底层用本地 GPT-SoVITS 做音色克隆、PowerPoint COM 做渲染、ffmpeg 做合成。全部跑在本机,不碰云端 TTS,隐私和音色都自己掌控。
整体只做四件事,每件事一个脚本:
.txt;.wav;.png;关键点在于「音画按页对齐」:因为是先逐页配音、再逐页渲染,最后按同一序号拼接,所以第 N 页的声音天然对应第 N 页的画面,彻底解决翻页错位问题。而且改哪页,只需重新生成哪一页,不用整条重做。
先说输入输出约定:输入是一个 .pptx,每页备注 = 该页的配音文字,一段到底;输出是同名的 _宣讲视频.mp4。
python310\python.exe scripts\extract_script.py "D:\演示\方案宣讲.pptx"跑完会在 deck_script/ 下生成 P01.txt 到 P0N.txt。脚本还会提示哪些页的备注是空的——空备注意味着这一页没有配音,合成时会变成静音画面,记得回头补上稿子。
venv310\Scripts\python.exe scripts\infer_pages.py跑完在 deck_audio/ 下生成 P01.wav 到 P0N.wav,采样率 32kHz 单声道。因为用 CPU 跑 GPT-SoVITS,大约 1 分钟/页,所以这条命令一定要放后台执行。已经生成过的页会自动跳过——想只改某一页,删掉对应 wav 或改对应 txt 再重跑即可。
python310\python.exe scripts\render_pptx.py "D:\演示\方案宣讲.pptx" "D:\AI工具集\声音克隆工具\deck_slides"在 deck_slides/ 下生成 P01.png 到 P0N.png,每张 1920×1080。这一步依赖本机装了 Microsoft PowerPoint。
venv310\Scripts\python.exe scripts\build_video.py "D:\演示\方案宣讲_宣讲视频.mp4"合成逻辑是每页 -loop 1 循环画面 + 配音,末尾用 apad 补 0.4 秒停顿,-shortest 控制时长,再 concat 拼接。出片后建议跑一句校验:
ffmpeg -i "D:\演示\方案宣讲_宣讲视频.mp4"看 Duration 是否约等于「配音总时长 + 页数 × 0.4 秒」,对得上就说明音画没串台。
现象 | 原因 | 解法 |
|---|---|---|
渲染报「无法将^0保存到^1」 | PowerPoint COM 不支持中文路径 | 先导出到英文临时目录,再拷贝回目标目录 |
渲染脚本偶发异常 | win32com 的 gen_py 缓存损坏 | 改用 |
ffmpeg 报找不到文件 | 相对路径在 subprocess 下失效 | 所有 |
含 WiFi6 / 802.1X 等英文时 TTS 报 LookupError | 英文 G2P 缺 NLTK 语料 | 手动从 GitHub 拉 cmudict、averaged_perceptron_tagger_eng 两个 zip 解压到 nltk_data |
提示音色克隆失败、音频被拒 | 参考音频超 10 秒(硬上限 3~10 秒) | 裁剪到 6~8 秒,且 prompt_text 必须与参考音频逐字一致 |
Git Bash 下 ffmpeg 路径报错 | Windows ffmpeg 不认 | 传 |
改稿后重出片发现还是旧的 | 单页已生成被自动跳过 | 删掉对应 wav / 改对应 txt 后再跑配音 |
这条链路的真正价值在于把「写稿」和「出片」解耦:逐字稿是你本来就在写的东西(PPT 备注),声音是你一次性克隆好的本人音色,画面是你已经定稿的 PPT。三者各自独立、按页对齐、可局部重做。改一页稿不用重录整条,换一段措辞只需重新合成那一页的声音。
如果你也有「PPT 做好了、稿子写好了、就差一条讲解视频」的需求,不妨用 WorkBuddy 跑一遍上面的四步流程。上手时先拿一个 3~5 页的小 PPT 试跑通全链路,确认音色和节奏满意后,再套用到正式的宣讲材料上,效率会非常可观。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。