一键导入
podcast-video
把幻灯片和播客配音合成为一个带字幕的视频,幻灯片随着对话内容自动切换,字幕逐句出现,是播客视频的最后一步。 只要用户说合成视频、生成视频、把幻灯片和音频合在一起、加字幕、做成视频、最后一步,好了合成吧, 或者前面几步都做完了想收尾,就应该触发此技能——即使用户只说"合成"也要触发。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
把幻灯片和播客配音合成为一个带字幕的视频,幻灯片随着对话内容自动切换,字幕逐句出现,是播客视频的最后一步。 只要用户说合成视频、生成视频、把幻灯片和音频合在一起、加字幕、做成视频、最后一步,好了合成吧, 或者前面几步都做完了想收尾,就应该触发此技能——即使用户只说"合成"也要触发。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
当用户想了解本体如何开发和使用时使用本技能。它能够通过 CRM 的实际 DEMO,演示以下 6 项能力:1)自然语言数据查询(无需 SQL);2)聚合统计分析;3)字段歧义智能消歧;4)非结构化文本转对象和跨表视图的创建;5)数据操作(周报生成→信息抽取→客户录入→商机任务创建);6)非结构化本体的文档融合检索。你可以通过以下对话唤起本技能:「给我演示一下」「本体能做什么」「怎么创建对象和视图」「结构化和非结构化怎么融合」「帮我查一下客户数据」。
当你想让 Agent 查询或操作你自己定义的业务数据(而不是系统内置数据)时使用本技能。它能够帮你用自然语言定义一张新的数据表,并基于这张表开发出本体对象,设定字段和字段含义,数据自动存入专属 数据表;还能创建跨表视图,让 Agent 同时查询多个对象。定义完成后挂载到当前数字员工,Agent 就能直接查询和操作你的数据了。你可以通过以下对话唤起本技能:「帮我创建一个任务管理对象」「我想建一个拜访记录表,包含客户名、拜访日期、跟进结果」「查看我有哪些本体对象」「把任务对象挂载到我的助理」。
当你有文档、图片、视频等非结构化内容存在知识库里,想让 Agent 能像查结构化数据一样精准检索和操作它们时使用本技能。它能够帮你给非结构化内容打上结构化标签(定义字段,如日期、主题、参会人),让每份文档/图片/视频都带有可查询的属性,实现结构化数据与非结构化内容的融合检索。定义的标签字段相当于表的字段,支持新增、修改、删除操作。与结构化本体的区别在于:内容本身存在知识库里,而不是动态表。你可以通过以下对话唤起本技能:「帮我创建一个会议纪要对象,绑定到我的会议知识库」「我的周报存在知识库里,想让 Agent 能按日期和项目名检索」「查看我的知识库有哪些」「把会议纪要对象挂载到我的助理」。
把任意内容(网页链接、文章、关键词)整理成一份结构化的播客视频大纲,是制作播客视频的第一步, 后续的幻灯片和对话脚本都从这份大纲生成,保证两者内容一致。 只要用户想制作播客视频、把文章变成视频、做一期播客、先规划内容结构, 或者说"做个大纲"、"做播客"、"把这篇文章做成播客",就必须触发此技能—— 即使用户没有提到"大纲",只要目标是制作播客视频就要触发。
根据播客大纲生成双人对话脚本(主持人和嘉宾),对话自然流畅,每句话都标注对应的幻灯片编号, 方便后续配音和视频同步。也可以直接从关键词或文章生成对话脚本。 只要用户想写播客脚本、生成对话、把内容做成两个人聊天的形式、帮我写播客、做播客对白, 就应该触发此技能——即使用户只说"写个脚本"或"把这个做成对话"也要触发。
用火山引擎(豆包)语音合成将播客对话脚本转成双声道音频,主持人和嘉宾各用一个声音, 同时生成精确到每个句子的时间信息,供视频合成使用。 只要用户想给脚本配音、生成播客音频、把对话变成声音、生成语音、脚本转音频, 或者正在做播客视频需要录音,就应该触发此技能——即使用户只说"配音"或"生成音频"也要触发。
| name | podcast-video |
| description | 把幻灯片和播客配音合成为一个带字幕的视频,幻灯片随着对话内容自动切换,字幕逐句出现,是播客视频的最后一步。 只要用户说合成视频、生成视频、把幻灯片和音频合在一起、加字幕、做成视频、最后一步,好了合成吧, 或者前面几步都做完了想收尾,就应该触发此技能——即使用户只说"合成"也要触发。 |
| compatibility | Requires ffmpeg, LibreOffice, Python PyMuPDF (pip install pymupdf) |
将 PPTX + 音频 + 脚本合成为 1920×1080 MP4,是播客视频流水线的最后一步。
幻灯片切换的精度取决于上游两步的输出质量:/podcast-script 在每条对话上标注了幻灯片编号,/podcast-voice 以 --sentence-mode 生成了句子级时间戳——两者结合,才能让每张幻灯片在正确的时刻切换、每条字幕在正确的句子出现。
所有产物统一存放在:
<当前工作空间>/podcast-projects/<项目名>/v<N>/final.mp4
<当前工作空间> 是调用此技能时所在的目录。播客视频流水线中的所有技能建议在同一个目录下调用,确保 podcast-projects/ 始终在同一位置。
确定项目: 扫描 podcast-projects/ 目录,找到含 presentation.pptx 和 podcast.mp3 的项目,向用户确认后继续。
自动版本: 读取 <项目名>/current.txt:
final.mp4 已存在于当前版本 → 创建 vN+1/ 目录,复制现有产物,再写入本次视频,更新 current.txtfinal.mp4 不存在 → 直接写入当前版本,成功后更新 current.txt这些依赖缺少任何一个都会导致合成失败,而合成过程可能耗时数分钟,提前验证能节省时间:
presentation.pptx 存在于项目版本目录podcast.mp3 存在于项目版本目录ffmpeg 和 ffprobe 可用:ffmpeg -version && ffprobe -versionlibreoffice 可用:libreoffice --version(用于将 PPTX 转为图片)pymupdf 已安装:python -c "import fitz"若 podcast_durations.json 不存在,不阻断合成,但要告知用户同步质量会降低(见下方同步质量对照表)。
跨文件一致性校验(三者任一不一致立即报警,不进入合成):
用 python -m markitdown presentation.pptx 提取 PPTX 实际幻灯片数,与以下两个来源对比:
slide-outline.json 中的 meta.total_slidespodcast-script.json 中所有 "slide" 字段的最大值三个数必须相等。不一致时说明上游某步生成有误,告知用户具体差异并指明需要重新运行哪个步骤(幻灯片数少 → 重跑 /slide-deck;脚本 slide 最大值偏小 → 重跑 /podcast-script)。
上游文件的完整性直接决定视频质量:
| 脚本有幻灯片注解 | 时间戳文件 | 幻灯片时序 | 字幕精度 |
|---|---|---|---|
| ✅(sentence-mode) | ✅ 句子级 | 精确 | 逐句精确 |
| ✅ | ✅ 轮次级 | 精确 | 轮次内按字数比例 |
| ❌ | ✅ | 均分(不准) | 轮次精确 |
| ❌ | ❌ | 均分(不准) | 仅按字数估算 |
获得最佳效果的路径:/podcast-script(输出含幻灯片编号注解)+ /podcast-voice --sentence-mode(输出句子级时间戳)→ /podcast-video。
<skill-dir> 是本 SKILL.md 所在的目录,运行前根据实际加载路径替换。
python <skill-dir>/scripts/assemble.py \
--pptx podcast-projects/<项目名>/v<N>/presentation.pptx \
--audio podcast-projects/<项目名>/v<N>/podcast.mp3 \
--output podcast-projects/<项目名>/v<N>/final.mp4 \
--script podcast-projects/<项目名>/v<N>/podcast-script.json \
--timing podcast-projects/<项目名>/v<N>/podcast_durations.json
--script 和 --timing 是可选参数——省略 --script 时不生成字幕;省略 --timing 时字幕按字数比例分配。
| 工具 | Ubuntu/Debian | macOS |
|---|---|---|
| ffmpeg | apt install ffmpeg | brew install ffmpeg |
| libreoffice | apt install libreoffice | brew install --cask libreoffice |
| pymupdf | pip install --break-system-packages pymupdf | pip install pymupdf |
脚本在运行时会检测缺失的依赖并打印安装提示。
合成完成后验证最终产物:
podcast-projects/<项目名>/v<N>/final.mp4 存在podcast.mp3 时长误差 < 2 秒:ffprobe -i final.mp4 -show_entries format=durationffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv final.mp4podcast_durations.json,验证其所有 duration 之和与 MP3 实际时长误差 < 2 秒——差值过大说明时间戳文件与音频不匹配,视频字幕和幻灯片切换会整体漂移| 缺失情况 | 标准反问 |
|---|---|
无 presentation.pptx | "未找到幻灯片文件,请先运行 /slide-deck,或提供 PPTX 文件路径。" |
无 podcast.mp3 | "未找到音频文件,请先运行 /podcast-voice,或提供 MP3 文件路径。" |
| 无时间戳文件 | "未找到时间戳文件,幻灯片将均分时长,字幕精度会降低。是否仍然继续合成?" |
libreoffice 未安装 | "需要安装 LibreOffice(用于将幻灯片转为图片):apt install libreoffice(Linux)或 brew install --cask libreoffice(macOS)。" |
| 用户未指定项目 | "请告诉我要合成哪个播客项目,或分别提供 PPTX 和 MP3 的完整路径。" |