用途 本工具用于把「一段逐字稿 + 一张 IP 形象图」制作成 IP 卡通数字人口播动画课件视频。片中的主讲 IP 以圆形头像常驻右下角讲课,带有待机浮动、口型开合、说话光环和声波条;主画面是自动排版的动画课件。
主要能力
- 提供六套课件版式:cover(封面/开场)、idea(核心概念 + 要点)、steps(带序号的流程)、compare(左右对比 + VS 圆章)、numbers(数据滚动)、recap(总结卡 + 收尾 CTA);另外,当 brand.endCard.enabled 开启时,build 会自动追加一个无配音的片尾品牌卡 outro 场景。
- 支持横屏与竖屏两种画幅:同一份 script.json 可以输出两种画幅,timeline.json 按画幅各生成一份。
- 内置两套口播形象:haibao(动物卡通·海老豹)和 human(人物卡通·眼镜青年);每个形象目录包含三帧素材:image(闭口)、mouth-mid(微张)、mouth-open(张口)。如果只提供一张图也能运行,但效果会退化为轻微挤压、光环和声波条。形象信息在 build 时写入 timeline.json,因此更换形象后必须重新 build。
- 提供三条 TTS 通道:分别是小米 MiMo、火山和 edge;各引擎的音色字段不同(火山 tts.voice / 小米 tts.mi.voice / edge tts.edge.voice)。可以用 iph voice 自检。
- 自动计时:每个场景的时长 = leadPadding(0.85s)+ 该段配音的实际时长 + tailPadding(0.7s),下限为 minSceneSeconds(3.2s);修改旁白后,时间轴会自动重排。
- 自动产出:中文字幕 SRT/VTT、英文字幕 SRT/VTT(需要填写 publish.en.cues)、旁白稿.md、发布文案.md(包含 YouTube 中英双语板块和各平台文案)。
- YouTube 章节自动生成,并满足以下规则:首条为 00:00、至少 3 条、每条至少 10 秒;如果某个分镜不足 10 秒,groupChapters() 会自动把它并入当前章节。
- 支持不联网渲染:字体使用本机已安装的中文字体,素材全部位于本地;如果 chrome-headless-shell 下载被拦截,会自动改用本机 Playwright 已安装的 Chromium。
使用方式 CLI 为 <仓库>/bin/iph,参数位于 <仓库>/config.json。每期内容放在 dirs.projects(默认 <仓库>/episodes/<日期 标题>/),中间产物与成片放在 dirs.build(默认 <仓库>/build/<日期 标题>/)。 常用命令:
- iph new "<标题>":建期,并从模板复制 script.json
- iph list:列出现有期
- iph voice:配音自检,回显档位并真正合成一句
- iph build <期>:配音,并生成时间轴、字幕、旁白稿和发布文案
- iph publish <期>:同 build,仅修改 publish 段时使用,配音走缓存
- iph still <期> [秒]:输出静帧以查看版式
- iph render <期>:渲染成片到 outputs/final-<画幅>.mp4
- iph all <期>:build + render 一条龙
- iph srt <期>:查看字幕条的时间与文本
- iph kinds:列出可用课件版式
- iph avatars:列出可用口播形象(包含三帧是否齐全和当前默认)
- iph preset <形象名>:切换默认口播形象,写入 config.json
- iph open <期>:打开期目录与后台目录 常用开关:--ratio=16:9,9:16、--preset=human、--force-tts、--scene=2、--still=2,12,25。 标准流程:先运行 iph new 建期并编辑 script.json(scenes[].narration 写旁白,heading 写屏上大字,kind 选版式,data 填要点),然后按需运行 iph voice 自检,最后运行 iph all "标题" 输出横竖两版成片。
适用场景 适合制作口播讲解类课件视频,例如知识科普、课程讲解等。典型 60~80 秒片子的骨架为 cover → idea → steps → compare → numbers → recap,六段各约 6~10 秒。
限制与注意事项
- script.json 是唯一手写源,timeline.json、字幕.srt、旁白稿.md 等均为生成物,不要手动修改,否则会在下次 build 时被覆盖。
- 数字人必须位于右下角,且不能与字幕条重叠;字幕条必须使用深色底。
- 英文字幕条数必须与中文字幕条数严格相等;条数不符时,build 会跳过英文字幕并发出警告。
- 中文如果显示为方块,说明缺少中文字体;需要安装 HarmonyOS Sans SC、MiSans 或思源黑体中的任意一种。
- 小米通道只有小句级时间戳,因此字幕不会逐字高亮;如果需要逐字高亮,请把 tts.engine 换成 volc。
- 如果片子总长不足 30 秒,YouTube 章节无法凑出 3 个达到 ≥10 秒的章节,因此不要在描述中放入时间戳。
- 以上收费、价格、平台支持范围等信息暂未提供。