PPT Master 如何在 Windows 上把带配音的演示文稿导出为 MP4 视频
2026/9/10 12:39:05 网站建设 项目流程

PPT Master 如何在 Windows 上把带配音的演示文稿导出为 MP4 视频

【免费下载链接】ppt-masterAI turns documents or topics into real, native PowerPoint decks—with native shapes, transitions and animations,>项目地址: https://gitcode.com/GitHub_Trending/ppt/ppt-master

PPT Master 能把演讲者备注转成逐页旁白音频,把音频重新嵌入 PPTX,再在 Windows 上把带旁白的 PPTX 交给本机 PowerPoint 2016+ 的原生编码器,产出一份带旁白的 MP4。整条路径是:生成旁白音频 → 重新导出嵌入音频的 PPTX → 用powerpoint_video.py导出 MP4。机器需要 Windows、带自动化接口的 PowerPoint 2016 及以上版本(主版本号 ≥ 16)和 Windows PowerShell。自动 MP4 导出不增加 Python 依赖,但默认用edge-tts生成旁白时,生成阶段需要联网调用微软在线 TTS 服务。

准备条件

  • 已按 Windows 安装指南 安装 Python 3.10+、获取项目并执行pip install -r requirements.txt。Windows 官方安装器只带python.exe,不带python3.exe,所以本文命令里的python3在 Windows 上可直接替换成python
  • 默认旁白后端edge-tts已列入skills/ppt-master/requirements.txt,上一步装完依赖即包含它;单独安装则为python3 -m pip install edge-tts
  • 带旁白导出会用ffprobe读取每页音频的真实时长来写页面推进时间,系统需要有可用的ffprobe
  • 项目已由 PPT Master 生成完毕,且演讲者备注已切分为notes/*.md逐页文件(Generate 路线中由total_md_split.py <project_path>完成后处理切分)。

先用检查命令确认本机 PowerPoint 自动化可用:

python3 skills/ppt-master/scripts/powerpoint_video.py --check

版本达标时输出PowerPoint video export available (version …);不达标(低于 Office 2016 基线、找不到 PowerPoint 或 PowerShell 缺失)时退出码为 1,并输出PowerPoint video export is unavailable: …。检查不通过时,带旁白的 PPTX 仍是成功的上游产物,可以改用文末的手工"创建视频"路径。

第一步:生成逐页旁白音频

主路径(AI 流程):deck 导出后在聊天里直接说:

You: Generate narration for this deck and re-export with audio embedded.

AI 会根据 deck 的主语言(zh-CN/en-US/ja-JP等)拉取音色目录、推荐候选,一次性确认 provider、音色、语速、是否嵌入 PPTX 和是否继续导出视频,然后跑完整个流程。也可以直接指定语言或要求视频交付,例如Add Japanese voice narration; pick a calm female voice.

进阶路径(跳过 AI 流程直接调脚本),以默认 edge 后端为例(无需 API Key):

# 查看某 locale 的可用音色 python3 skills/ppt-master/scripts/notes_to_audio.py --list-voices --locale zh-CN # 用 edge-tts 为每页生成 MP3/SRT 对 python3 skills/ppt-master/scripts/notes_to_audio.py <project_path> \ --voice zh-CN-YunjianNeural --rate +0%

<project_path>是活动项目目录(例如projects/demo,以 agent 报告的项目路径为准)。edge 模式下--voice是必填项。发送 TTS 请求前,脚本会先做备注预检:每一页都必须有可读且非空的逐页备注,缺失或空备注返回退出码2——需要先生成这些备注再重新运行音频生成,不能带着部分音频继续。

成功后每页产出audio/<stem>.mp3,edge 还会从同一次合成产出页内audio/<stem>.srt(时间轴以00:00:00,000为原点);整套生成完整成功后原子写入audio/manifest.json记录来源。云端 provider(ElevenLabs、MiniMax、Qwen、CosyVoice)需设置对应 API Key,其中 Qwen 当前 TTS 接口不返回计时、只生成音频;需要页内字幕时选择 edge、ElevenLabs、MiniMax 或支持时间戳的 CosyVoice 音色,详见 docs/audio-narration.md。

第二步:重新导出嵌入音频的 PPTX

使用svg_to_pptx.py --recorded-narration audio。它要求每页都有匹配的音频文件,用ffprobe读出真实时长,按"页前起始下限 + 音频长度 + 页尾停留"写入页面自动推进时间,输出保存为exports/<name>_<timestamp>_narrated.pptx

python3 skills/ppt-master/scripts/svg_to_pptx.py <project_path> \ -o <final_narrated_pptx> --recorded-narration audio \ --narration-start-floor 0.8 --narration-padding 0.5
  • --narration-start-floor 0.8:从目标页转场开始计,到旁白启动的最短秒数。默认0.8;设为0表示转场结束后立即开始。转场结束后的实际静默时间是max(0, narration_start_floor - transition_duration),调整它不会拉长转场本身。
  • --narration-padding 0.5:旁白结束后、页面推进前的静默停留秒数。默认0.5。两个参数都可省略或独立覆盖。
  • --recorded-narration会拒绝on-click对象动画,因为 PPT Master 不生成对象级点击计时;deck 中如有点击触发动画,需要改为after-previous/with-previous
  • 嵌入 PPTX 的音频必须是 PowerPoint 可靠格式:m4a(AAC)、mp3wav;内置生成路径默认mp3

在 AI 流程中这一步包含在 "re-export with audio embedded" 请求里,上面的命令是它对应的手动等价形式。

第三步:通过 PowerPoint 原生编码器导出 MP4

python3 skills/ppt-master/scripts/powerpoint_video.py \ <final_narrated_pptx> -o exports/<raw_powerpoint_video>.mp4

<final_narrated_pptx>就是第二步产出的_narrated.pptx文件。脚本用本机 PowerPoint 以只读方式打开该文件,调用CreateVideo接口(使用录制的计时和旁白),然后轮询CreateVideoStatus,直到 PowerPoint 明确报告成功或失败才返回。默认输出 1080p / 30 fps,编码器质量 85,等待超时 7200 秒。可选参数:

参数默认值说明
-o/--output与 PPTX 同名的.mp4输出路径,只接受.mp4.wmv扩展名
--resolution1080竖屏视频分辨率(像素)
--fps30帧率,1 到 60
--quality85PowerPoint 编码器质量,1 到 100
--default-slide-duration5无录制计时页面的回退秒数
--timeout7200等待 PowerPoint 的最大秒数
--force覆盖已存在的输出视频

输出文件已存在而未加--force时命令直接拒绝。命令运行期间 stderr 会打印如PowerPoint video export started: 1080p, 30 fps.的进度信息。

结果验证

  • --check输出PowerPoint video export available (version …)说明本机可走自动导出;失败信息会说明是版本过低还是找不到 PowerPoint/PowerShell。
  • 导出成功时,脚本在 stdout 打印已创建视频文件的完整路径;它同时校验文件存在且非空,报成功但文件缺失或为空会分别给出PowerPoint reported success but did not create the output file.PowerPoint created an empty video file.
  • 失败时输出以下之一,结尾都附带提示Close any PowerPoint dialog and retry.
    • PowerPoint reported that video creation failed.——PowerPoint 报告创建失败;
    • PowerPoint video creation exceeded the <超时秒数>-second timeout.——等待超时;
    • PowerPoint <version> is older than the supported Office 2016 baseline.——版本低于基线。
  • 在非 Windows 系统上运行,脚本输出PowerPoint video export currently requires Windows PowerPoint. Keep the narrated PPTX and export it manually on another platform.并退出。

成片里,嵌入音频作为每页旁白播放,视频节奏由第二步写入的页面自动推进时间驱动;PowerPoint Windows 视频导出会保留原生视觉页间转场和无点击对象动画。文件大小方面,20 页全高清 deck 通常在 30–80 MB,取决于图片量(文档给出的经验范围)。

声音边界、字幕与手工回退

PowerPoint 原生编码器产出的 raw MP4 可靠包含旁白,但不保证把附着在转场或 Animation Pane 行上的动画音效写入音轨。如果最终 motion 里已解析出这类音效 cue,需要在第二步的导出命令中追加--conversion-trace <final_narrated_trace>生成转换 trace,再运行video_sound_mix.py(需要PATH中可用的ffmpeg/ffprobenumpy),产出独立 SFX stem、混音后的最终 MP4 和机器可读验收回执;只要旁白,则这个 raw MP4 就是最终视频。

字幕始终是外部 SRT:PPT Master 不把它嵌入 PPTX,也不烧录进 MP4。需要交付字幕轨时用video_subtitles.py(另需stable-ts)把冻结的旁白文本对齐到最终视频的音轨,在视频旁生成同名 SRT。

如果本机自动化不可用,还有手工回退:打开exports/里那份带旁白的.pptx,走文件 → 导出 → 创建视频,选择清晰度与"使用录制的计时和旁白",保存为.mp4(Windows 也支持.wmv)。这不是录屏,声音边界与原生CreateVideo相同。注意 PowerPoint for Mac 的影片导出不会播放动画效果,动画保真要求下应使用 Windows 路径。

下一步

完整流程中页内 SRT 合并、声音混音与字幕对齐的命令见 skills/ppt-master/scripts/docs/narration.md;旁白阶段的触发条件、音色选择规则与各命令适用分支见 skills/ppt-master/workflows/stages/generate-audio.md;python打开 Microsoft Store、pip 权限或网络失败等安装问题见 docs/windows-installation.md 的 Troubleshooting 一节。

【免费下载链接】ppt-masterAI turns documents or topics into real, native PowerPoint decks—with native shapes, transitions and animations,>项目地址: https://gitcode.com/GitHub_Trending/ppt/ppt-master

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询