spoken-captions 是 Picsart gen-ai-skills 中的字幕技能,目标是把口播内容按词级时间显示到屏幕上。资料强调:屏幕上的每个词都来自转写结果,并沿用转写给出的时间,不得改写词的时间。
用途与前置检查
技能用于给生成的配音、用户自己的口播素材,以及从素材剪出的 reel 添加字幕。转写前先用 picsart_media_probe 检查 hasAudio,只有在报告 hasAudio: false 时才跳过,这与 footage-analysis 技能的要求一致。
转写方式
使用 picsart_media_transcribe 转写。对生成的配音,逐条转写生成的语音行,因为这是自有干净音频,词边界准确。对用户自己的素材,每个源素材只转写一次,并复用该转写结果,绝不对剪辑后的片段重新转写。若工具说明指出某个返回片段没有词级时间,则把该片段作为一个整体块覆盖其起止时间,且该块不能带高亮。
配音上的字幕
通过 picsart_scene_patch 把每一行作为 captions 图层放置,content 为 { kind: "captions", transcript, timeOffset },其中 transcript 直接使用工具返回的转写(已符合 captions 图层结构),timeOffset 是该行在视频中的开始时间。每条字幕 2–4 个词。字幕样式的 offset 以画面中心为基准测量,例如 [0, -670] 在 1080×1920 画面中约位于 y≈290,避开平台覆盖的顶部 250 像素;字幕应放在布局的暗色带中,不要压住面板或焦点。
为保证在任意画面上可读并点亮当前朗读词,字幕样式应带描边,并高亮正在说的词。示例样式包含 effects 中的 stroke(width 与 color)以及 decorations 中 target 为 highlighted、place 为 text 的高亮颜色。技能说明要求从 picsart_scene_capabilities 的 effects 读取效果的 id 和参数,而不是照抄此处;该样式结构于 2026-10-05 通过 picsart_scene_validate。整条视频只用一个高亮颜色,品牌有指定色时用品牌色。
剪辑 reel 上的文字
从用户素材剪出的 reel 会分段播放各源素材,因此文字根据用户已确认的场景,用 python3 scripts/reel_text.py words.json 放置。配置中 scene 指向场景文件,transcripts 把每个有声源的 asset id 映射到已保存的转写,captions 可设置样式,highlights 列出要高亮的短语,每条包含 clip、say,text 可选。脚本从场景读取每个片段在 reel 上的位置和裁剪信息,因此用户在编辑器里重新裁剪过的片段会按最终状态读取,并输出叠加了新图层的场景;被截短的短语会在 notes 中返回。
字幕会为每个有声片段生成一个 captions 图层,在该片段播放其源素材期间打开,并使用源素材的转写。片段若被保持超过 trim.out 会冻结在最后一帧,因此字幕在裁剪结束处关闭。reel 在合成的 duration 处结束,若没有则按轨道图层的时长结束,字幕也在那里停止。照片、静音片段、没有转写的镜头或超出 reel 末尾的片段不会得到字幕;静音片段或超出末尾的片段上的高亮会被拒绝。
高亮全部放在一个 captions 图层上,每个短语一个 segment,渲染器会把每个 segment 放进按测量文字适配的 pill 中。可通过 highlightStyle 改变外观,字体遵循 scene-building-basics 技能。
高亮的选择
高亮是少量值得阅读的句子,不是逐字字幕。每条 reel 建议 2–4 条,每条 2–6 个词,逐字来自转写。say 是实际说的内容;text 可以去掉填充词或修正大小写,但不能改变含义。应挑钩子、数字、中段转折(retention-hooks 技能所称的 rehook)和收尾记忆点,跳过问候、填充词和屏幕上已经出现的内容。放置前先起草,每个短语连同其片段,便于用例提供给用户;即使没有高亮,reel 也是完整的。
高亮一次只显示一个。脚本让每个高亮从第一个词保持到最后一个词之后半秒,持续 1.5–3 秒,绝不超出其片段或进入下一个短语。高亮应大、高对比、位于平台安全带内并避开人脸;用例会说明安全带。若同时有字幕,两者应放在不同带中。最后按 quality-review 技能检查结果,并在每个短语开始处取一帧确认。
限制
资料未提供该技能的独立收费、价格、支持平台范围或完整安装步骤;使用依赖 Picsart 场景与媒体工具链以及相应脚本。