Communitygithub.com

machengjie321/powerpoint-auto-subtitles

为 PowerPoint 演示文稿添加可编辑的定时字幕,并导出自动前进的 MP4 视频。适用于基于幻灯片的带字幕视频,包括无声演示和研究报告。

powerpoint-auto-subtitles 是什么?

该技能可将现有的本地 PPTX 文件转换为带可编辑字幕的演示文稿和视频,同时保持原始文件不变。字幕以原生 PowerPoint 文本框形式呈现,并带有进入和退出动画效果,而非平面化的幻灯片图像或仅 SRT 格式的交付物。它支持 Windows 桌面版 Microsoft PowerPoint,通过 PowerShell 脚本自动添加字幕效果、设置自动幻灯片切换并导出 MP4 视频。技能提供完整的字幕编辑工作流,包括从幻灯片内容草拟字幕、接受用户提供的文本或音频文件,以及基于文本长度或实际语音时间计算时间轴。工作流包含布局审查、动画创建、视频导出和播放质量验证等步骤,确保最终视频的字幕准确、可读且定时正确。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/machengjie321/codex-PPTtoVideo-skills/tree/HEAD/powerpoint-auto-subtitles

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

PowerPoint 自动字幕与视频

将现有的本地 PPTX 文件转换为可编辑的字幕演示文稿和视频。原始演示文稿保持不变。字幕是原生的 PowerPoint 文本框,带有进入和退出效果,而不是平面化的幻灯片图像或仅 SRT 格式的输出。

输入与决策

在开始创作之前,需确定具体的源 PPTX 文件(确切的绝对路径、确切的附件名称或明确标识的已打开演示文稿)、输出目录、持续时间策略、字幕语言和字幕来源。字幕来源可以是一个已命名的文档、明确提供的逐幻灯片文本、一个已命名的旁白文件,或一个明确要求从演示文稿草拟字幕的请求。验证引用的文件是否存在,以及字幕是否与实际幻灯片顺序对应。如果对话中源演示文稿或字幕来源不明确,仅询问缺失的信息;不要选择无关的历史演示文稿或凭空杜撰脚本来源。粘贴的带有占位符路径的示例请求不是真实的输入演示文稿。

识别任何要包含的真实媒体。重用提供的资产和测量值。如果没有提供音频,则从幻灯片内容撰写简洁的字幕;不要将其描述为语音转录。当存在音频时,使字幕与实际旁白对齐。

关于从幻灯片草拟字幕、接受逐幻灯片文本或文档,以及根据文本长度估算时间,请阅读字幕创作与时间控制。附带的 scripts/captions-to-timeline.py 可将标准化的 Markdown/TXT 转换为动画 CSV,并带有可调节的英文单词和汉字阅读速率。当存在旁白时,使用实际的语音时间。

在添加动画之前,先生成 UTF-8 编码的时间轴。阅读时间轴约定了解架构和时间计算公式。幻灯片在文件中的位置(slide_index)可能与其打印页码(slide_number)不同。九张幻灯片或 160 秒不是通用默认值。

字幕前置输入

支持两条字幕准备路径:(A) 从指定的 PPTX 草拟字幕;(B) 规范化用户提供的字幕而不重新草拟。对于路径 B,保留措辞、顺序、数值和单位;仅在被要求时才进行翻译或润色。将未解决的分页映射和提议的含义更改性编辑保留在单独的审查笔记中。当要求采用分阶段工作流时,两条路径都可以在制作前进行用户审查、编辑和确认。支持“草拟—编辑—制作”工作流:当要求时,自动读取指定的演示文稿并保存标准的逐幻灯片字幕草稿及单独的审查笔记。不要要求用户先手动填写模板。在审查笔记中标记无法读取的内容和不确定的声明,而不是虚构字幕。当用户请求在生产前进行人工审查时,交付草稿并等待编辑后的文件。在后续的制作阶段,将该编辑后的文件视为字幕的唯一真实来源;保留其措辞,根据它重新计算时间,不要用新的从演示文稿生成的脚本覆盖它。此审查阶段是所请求的工作流范围,对于明确授权的一次性导出来说,不是强制性的关卡。

开始新的字幕工作流时,先帮助用户以标准的逐幻灯片格式提供字幕。解释 ## Slide N 标识实际的 PPTX 幻灯片,每行 - 表示一个字幕块。接受一个已命名的字幕文件或粘贴的带幻灯片标签的文本。在计算时间之前,将 Word 或非结构化的草稿规范化为 UTF-8 格式的 captions.md。将视觉指示和任务说明保留在字幕文本之外。检查幻灯片顺序、缺失页面和未替换的模板占位符。当用户选择了提供脚本的工作流时,不要虚构缺失的字幕;仅在被要求时才从演示文稿草拟字幕。如果用户只要求整理字幕文档,则仅交付该文档和映射检查,而不继续执行动画/导出。重用已有的有效字幕文件,而不是重复输入。对于端到端的视频请求,规范化是一个中间步骤:继续执行时间、原生动画、导出和实际播放质量检查,无需不必要的审批关卡。仅在明确要求该有限范围时,或当未解决的缺失输入阻止进一步工作时,才在字幕文档处停止。

生产前的布局审查

对于采用用户审查的分阶段工作流,在添加动画之前保留一个一致的底部字幕区域。从幻灯片高度的大约 10%–15% 开始,根据实际字幕长度和可读性进行调整,而不是强制执行固定的比例。保留原始样式和测量后的内容。重新定位或适度调整主体内容的大小;切勿覆盖原始内容以模拟空白区域。保持坐标轴、图表标题、页脚和徽标清晰可见。在更改布局时保留现有的动画。

交付一个单独的可编辑布局 PPTX 和 PDF/每幻灯片审查预览。在预览中显示每张幻灯片中最长的字幕以检查文本是否适合;不要在制作源中留下预览字幕占位符。标记页面过度拥挤的情况。当用户请求人工布局确认时,在最终动画/导出之前等待确认,然后将确认的布局演示文稿和确认的字幕文件作为制作输入。将辅助带的放置/字体设置与批准的布局匹配;不要盲目使用默认值。重用已经批准的布局,而不是重复此阶段。明确授权的一次性工作流不需要额外的审查关卡。

工作流

  1. 检查并准备演示文稿。 保留图表、表格、媒体、备注和现有设计。在绘图标签和视频输出之外预留底部字幕区域。首先在需要时重新排列内容。根据实际幻灯片尺寸调整字幕大小。将字幕保持在一到两行。
  2. 编写并检查时间轴。 为每个字幕块分配唯一的 CAPTION_… 形状名称。检查每个字幕块的范围、间隙、重叠、幻灯片持续时间和累计视频时间。将最终的 CSV 与输出一起保存。
  3. 创建原生字幕效果。 在安装了桌面版 PowerPoint 的 Windows 系统上,当预条件满足时使用提供的辅助脚本。它通过 PowerPoint 对象模型创建可编辑的文本框和原生的“淡入”进入与“淡出”退出效果。其时间模型使用自动的 After Previous 效果,这避免了 With Previous 链中绝对延迟的歧义。
  4. 设置自动幻灯片切换。 使用每张幻灯片的时间轴持续时间,禁用点击切换,并使用记录的幻灯片计时和动画进行导出。保留不相关的演示文稿功能。
  5. 通过 PowerPoint 导出。 交付动画 PPTX、实际的 MP4、最终的 CSV 以及请求的 PDF/PNG 图像。静态预览显示每张幻灯片上的第一个字幕块;PPTX 保留所有字幕块。缺失的演示视频应保留为明确标记的占位符。
  6. 验证实际输出。 检查渲染后的幻灯片,并在每个字幕块内、跨幻灯片边界以及选定的淡入淡出处采样 MP4。确认持续时间、可读的字幕、正确的消失状态,以及没有残留的字幕文本。仅凭 XML 检查、SRT 文件或导出完成状态不足以确认正确的播放。明确报告未验证的项目。

辅助脚本

scripts/add-subtitles-and-export.ps1 接受一个本地 PPTX 文件和时间轴 CSV。它会创建一个副本,添加字幕,导出 PDF/PNG 图像,并且除非另有要求,还会导出 MP4。它拒绝现有的动画序列或字幕对象,因为合并这些序列需要深思熟虑的创作。对于已经包含动画的源,应保留并调整现有的时间轴,使用可用的演示工具,而不是清除所有效果。

pwsh -NoProfile -File "<skill>/scripts/add-subtitles-and-export.ps1" `
  -InputPptx "C:/work/presentation.pptx" `
  -TimelineCsv "C:/work/subtitle_timeline.csv" `
  -OutputDirectory "C:/work/captioned-output"

只能通过当前环境允许的执行方法运行。该辅助脚本需要安装了 Microsoft PowerPoint 的 Windows 桌面登录会话。沙箱 COM 登录会话错误是环境限制:请使用批准的桌面执行路径或原生 UI,并保留所需的任何审批边界。不要削弱安全设置或绕过执行策略。

对于视频质量检查,建议使用可用的媒体解码器。可选的 scripts/extract-video-frames.ps1 使用 Windows 媒体解码,需要 PowerShell 7 并处于 STA 模式。在排除故障或调整现有动画时,请阅读 Office 播放与导出说明。

完成

提供所请求文件的简洁链接。说明是否检查了 MP4 的实际时间和字幕更改。保持资格限定范围狭窄:识别缺失的真实媒体或未经测试的播放,而不暗示占位符可证明现场演示的有效性。

如需适合同事阅读的英文说明,请参阅工作流指南。

相关技能