OpenMontage 中 HeyGen 视频字幕完全指南:自动字幕配置、SRT 多语言翻译与无障碍实践

📅 发布时间:2026/9/10 1:13:37
OpenMontage 中 HeyGen 视频字幕完全指南:自动字幕配置、SRT 多语言翻译与无障碍实践
OpenMontage 中 HeyGen 视频字幕完全指南自动字幕配置、SRT 多语言翻译与无障碍实践【免费下载链接】OpenMontageWorlds first open-source, agentic video production system. 12 production pipelines, 100 tools, 700 agent skill and production-knowledge files. Turn your AI coding assistant into a full video production studio.项目地址: https://gitcode.com/GitHub_Trending/op/OpenMontage导读本指南以 OpenMontage 仓库内 HeyGen 技能包的字幕参考文档.claude/skills/heygen/references/captions.md为主体系统讲解 HeyGen 数字人视频的自动字幕Captions能力从caption开关到字体、字号、颜色、位置等样式定制从多语言字幕到自定义 SRT 翻译输入再到 TikTok、YouTube、LinkedIn 等平台的适配策略与无障碍最佳实践。读完本文你将掌握在 HeyGen/v2/video/generate与 Video Agent 工作流中为 AI 虚拟人视频一键生成专业字幕的完整方案并能结合 OpenMontage 仓库中的 Remotion 字幕烧录工具与字幕生成技能实现HeyGen 生成 → 本地字幕增强的闭环流水线。文档定位在 OpenMontage 中.claude/skills/heygen/SKILL.md标注该技能包已标记为DEPRECATED其工作流已被更聚焦的create-video基于 Prompt 的 Video Agent API与avatar-video基于 v2 API 的精确头像/场景控制取代。但字幕能力在上述两条新工作流中依然是标准配置项本参考文档captions.md的技术细节对二者同样适用。一、什么是 HeyGen 自动字幕HeyGen 可以在生成数字人视频时自动生成字幕Captions / Subtitles。与手工在剪辑软件里逐句敲字幕不同自动字幕由平台基于语音内容直接产出主要带来两类收益可访问性Accessibility让听障/重听观众也能完整获取视频信息参与度Engagement大量用户尤其是移动端、静音刷屏场景依赖字幕理解内容带字幕的视频完播率更高。在 OpenMontage 的语境中HeyGen 被用作头像数字人视频Talking-head / 讲解视频 / 演示视频的云端生成引擎对应的工具封装位于 tools/video/heygen_video.py。该工具的supports声明中native_audio为False、cloud_generation为True即字幕与音频均依赖云端能力而字幕正是提升这类纯云端产出视频信息密度的关键一环。二、开启字幕caption字段字幕可以在生成视频时通过配置开启。在/v2/video/generate请求中caption是一个顶层字段非video_inputs内部字段与dimension、title、test等平级其类型为布尔值表示是否启用自动字幕。最小开启示例const videoConfig { video_inputs: [ { character: { type: avatar, avatar_id: josh_lite3_20230714, avatar_style: normal, }, voice: { type: text, input_text: Hello! This video will have automatic captions., voice_id: 1bd001e7e50f421d891986aad5158bc8, }, }, ], // Caption settings (availability varies by plan) caption: true, };要点说明character.type目前支持avatar数字人与talking_photo照片说话人两种类型字幕对二者均可启用voice.type: text表示使用文本转语音TTS字幕即根据这段input_text的语音生成若使用audio类型上传自定义音频或silence类型字幕生成行为会因语音来源不同而有所差异官方注释明确提示availability varies by plan字幕样式等高级能力与订阅套餐相关接入时应先确认当前账号套餐支持范围详见下文局限性一节。在 OpenMontage 的参考文档 .claude/skills/heygen/references/video-generation.md 中caption也被列入/v2/video/generate顶层请求字段表FieldTypeReqDescriptionvideo_inputsarray✓Array of 1-50 video input objectsdimensionobjectVideo dimensions{width, height}titlestringVideo name for organizationtestbooleanTest mode (watermarked, no credits)captionbooleanEnable auto-captionscallback_idstringCustom ID for webhook trackingcallback_urlstringURL for completion notificationfolder_idstringStorage folder ID开发建议联调阶段建议同时开启test: true输出带水印、不消耗积分避免反复生成消耗配额。配额体系的具体规则参见参考文档 .claude/skills/heygen/references/quota.md。三、字幕配置项CaptionConfig当caption不再满足于开/关这种二元控制时可以传入对象形式的完整配置。参考文档给出了CaptionConfig接口interface CaptionConfig { // Enable/disable captions enabled: boolean; // Caption style style?: { font_family?: string; font_size?: number; font_color?: string; background_color?: string; position?: top | bottom; }; // Language for caption generation language?: string; }字段逐项解析字段类型默认行为说明enabledbooleantrue对象存在时字幕总开关等价于顶层caption: truestyle.font_familystring平台默认字体族名称如Arial、Robotostyle.font_sizenumber平台默认字号像素参考文档建议至少 24pxstyle.font_colorstring#FFFFFF典型默认字体颜色支持十六进制色值style.background_colorstring半透明黑典型默认背景色支持rgba(...)透明背景style.positiontop \| bottombottom字幕纵向位置languagestring跟随语音语言字幕生成语言覆盖自动检测当仅需默认样式时直接写caption: true即可平台会用默认样式渲染当需要自定义样式时使用caption: { enabled: true, style: {...} }对象形式二者不能混用对象形式下enabled仍需显式置truelanguage字段用于覆盖字幕语言不传时字幕语言跟随语音语言详见第五节多语言字幕。四、字幕样式从基础到自定义4.1 基础字幕默认样式只需要字幕、不关心外观时最小配置const config { video_inputs: [...], caption: true, // Enable with default styling };video_inputs数组内仍是标准的charactervoice 可选background结构可参考 .claude/skills/heygen/references/video-generation.md 中的多场景Multi-Scene示例一个video_inputs数组元素即一个场景字幕会贯穿全部场景生成。4.2 自定义样式字幕const config { video_inputs: [...], caption: { enabled: true, style: { font_family: Arial, font_size: 32, font_color: #FFFFFF, background_color: rgba(0, 0, 0, 0.7), position: bottom, }, }, };这是一套典型的白字 半透明黑底 底部组合rgba(0, 0, 0, 0.7)提供了 70% 不透明度的深色背景条能在任何画面上保证文字可读性同时不会完全遮挡画面内容。样式设计的三条核心原则对比度优先深底白字或浅底深字避免中灰背景上出现灰色文字字号与画幅匹配1080p 视频建议 32px 起手机竖屏9:16建议更大字号见第八节社交平台考量背景半透明全不透明背景会形成硬色块半透明如0.5–0.9兼顾可读性与画面观感。五、多语言字幕跟随语音语言生成对于不同语言的视频字幕会基于语音的语言自动生成。也就是说语音是什么语言自动字幕就是什么语言无需单独指定language字段。西班牙语视频配西班牙语字幕的示例// Spanish video with Spanish captions const spanishConfig { video_inputs: [ { character: { type: avatar, avatar_id: josh_lite3_20230714, avatar_style: normal, }, voice: { type: text, input_text: ¡Hola! Este video tendrá subtítulos en español., voice_id: spanish_voice_id, }, }, ], caption: true, };注意示例中的voice_id: spanish_voice_id为占位符。实际使用时需先通过语音列表接口查询对应语种locale的voice_id参见参考文档 .claude/skills/heygen/references/voices.md。由此可以推导出多语言批量生产的通用模式每种语言维护一份{ input_text, voice_id }映射依次调用生成接口每份请求都带上caption: true生成结果即为对应语言的数字人口播 对应语言的自动字幕。这一模式与 OpenMontage 仓库中的本地化配音流水线localization-dub管线的技能目录位于 skills/pipelines/localization-dub配合使用可组成HeyGen 多语言口播 字幕的一站式本地化方案。六、SRT 文件格式与自定义输入6.1 SRT 标准格式SRTSubRip Text是行业标准的字幕交换格式其结构为序号 时间轴 文本的重复块时间轴格式为HH:MM:SS,mmm -- HH:MM:SS,mmm1 00:00:00,000 -- 00:00:03,000 Hello! This video will have 2 00:00:03,000 -- 00:00:06,000 automatic captions generated. 3 00:00:06,000 -- 00:00:09,000 They sync with the audio.格式要点序号从 1 开始递增时间戳中毫秒用逗号分隔而非小数点文本可跨行一个字幕块可含多行文本块与块之间以空行分隔。6.2 使用自定义 SRT视频翻译场景在进行视频翻译时可以传入自己的 SRT 文件来控制字幕内容与翻译方向const translationConfig { input_video_id: original_video_id, output_languages: [es-ES, fr-FR], srt_key: path/to/custom.srt, // Custom SRT file srt_role: input, // input or output };参数语义字段类型说明input_video_idstring待翻译的源视频 ID此前生成的视频output_languagesstring[]目标语言列表如[es-ES, fr-FR]srt_keystring自定义 SRT 文件路径/键srt_roleinput \| output该 SRT 的角色input表示作为输入字幕平台据此翻译或对齐output表示作为输出字幕平台直接使用该文件作为最终字幕跳过自动翻译提示output_languages使用带地区码的格式如es-ES西班牙西班牙、fr-FR法语法国这与语音列表接口中的 locale 字段风格一致。6.3 仓库内的字幕生成配套如果你不希望完全依赖平台的自动字幕OpenMontage 仓库提供了本地生成/处理字幕的完整配套可作为 SRT 的生产上游tools/subtitle/subtitle_gen.py字幕生成工具skills/core/whisperx.md基于 WhisperX 的转写与对齐技能含时间戳级精度skills/core/subtitle-sync.md字幕时间轴同步技能。典型链路为WhisperX 转写 → 生成 SRT → 校验时间轴 → 作为srt_key传入 HeyGen 翻译接口实现完全可控的字幕生产。七、字幕位置底部与顶部7.1 底部默认底部是绝大多数视频的标准字幕位置caption: { enabled: true, style: { position: bottom } }适用场景常规横屏讲解、演示视频、访谈类内容——观众的阅读习惯是从上到下扫视画面底部字幕符合主流视频平台的默认排版YouTube、B 站等均默认底部。7.2 顶部当视频底部区域被其他内容占据时例如底部有品牌条、进度条、Logo、人物关键手势或竖屏底部被平台 UI 遮挡应切换为顶部caption: { enabled: true, style: { position: top } }适用场景TikTok/Instagram Reels 等底部常被点赞、评论、分享按钮遮挡的竖屏平台详见第八节。八、无障碍最佳实践参考文档给出了 5 条经过实践检验的字幕无障碍准则始终开启字幕Always enable captions—— 提升听障/重听观众的可访问性同时服务大量静音观看场景高对比度Use high contrast—— 白字深底或深字浅底避免低对比配色可读字号Readable font size—— 标准视频至少 24px移动端应更大参考文档在社交媒体一节建议 42px 以上不遮挡关键内容Dont cover important content—— 字幕位置应避开关键视觉元素尤其是数字人的嘴部与面部时间轴精准Sync timing—— 确保字幕与音频时间严格对齐错位字幕比没有字幕更影响体验。这 5 条准则同样适用于 OpenMontage 的 remotion-composer/src/components/CaptionOverlay.tsx 组件——仓库内的本地字幕渲染组件同样采用高对比、可配置字号、可配置位置的实现默认白色#F8FAFC文字 琥珀色#FBBF24高亮 半透明黑底rgba(0, 0, 0, 0.6)与上述无障碍原则完全一致。九、字幕辅助函数与预设为便于在代码中复用字幕样式参考文档提供了一个预设注册表 工厂函数的辅助实现。先定义样式接口interface CaptionStyle { font_family: string; font_size: number; font_color: string; background_color: string; position: top | bottom; }然后内置四套开箱即用的预设const captionPresets: Recordstring, CaptionStyle { default: { font_family: Arial, font_size: 32, font_color: #FFFFFF, background_color: rgba(0, 0, 0, 0.7), position: bottom, }, minimal: { font_family: Arial, font_size: 28, font_color: #FFFFFF, background_color: transparent, position: bottom, }, bold: { font_family: Arial, font_size: 36, font_color: #FFFFFF, background_color: rgba(0, 0, 0, 0.9), position: bottom, }, branded: { font_family: Roboto, font_size: 30, font_color: #00D1FF, background_color: rgba(26, 26, 46, 0.9), position: bottom, }, };四套预设的适用场景预设字号背景适用场景default32rgba(0,0,0,0.7)通用默认兼顾可读性与画面通透度minimal28transparent画面干净、追求轻量感的极简风格bold36rgba(0,0,0,0.9)高对比强调、信息密度高的快节奏视频branded30rgba(26,26,46,0.9)品牌定制品牌色文字 深色品牌背景工厂函数按预设名一键生成完整配置function createCaptionConfig(preset: keyof typeof captionPresets) { return { enabled: true, style: captionPresets[preset], }; }用法示例const config { video_inputs: [...], ...createCaptionConfig(bold), // 直接得到 { enabled: true, style: { ... } } };该预设 工厂模式与 OpenMontage 仓库中 tools/video/_shared.py 的做法一脉相承后者同样通过HEYGEN_PROVIDERS提供多提供方VEO、Sora、Kling、Runway、Seedance 等的预设元数据并用estimate_quality_cost/estimate_speed_runtime等工厂函数按预设生成成本与耗时估算见 tools/video/heygen_video.py 的estimate_cost/estimate_runtime实现。十、社交媒体平台的字幕适配不同平台的 UI 遮挡区域与观看习惯差异巨大字幕策略需要按平台定制。10.1 TikTok / Instagram Reels竖屏短视频字幕放在画面居中或偏上位置底部 20% 区域会被点赞、评论、分享、作者信息等 UI 元素遮挡避免底部 20%这是平台 UI 的重灾区字幕放这里会被盖住使用更大字号手机观看、屏幕小、观看距离近大字号才能保证可读。const socialCaptions { enabled: true, style: { font_size: 42, position: top, // Avoid bottom UI elements }, };10.2 YouTube标准底部字幕即可良好工作YouTube 播放器的字幕安全区就在底部YouTube 还支持上传封闭字幕closed captions如果希望观众可开关、可搜索可在 YouTube Studio 中上传 SRT 文件而非烧录进画面。10.3 LinkedIn强烈建议开启字幕大量 LinkedIn 用户在办公室/通勤场景静音观看偏好专业样式建议使用default或branded预设避免过于花哨的配色与职场内容调性一致。十一、局限性自动字幕并非万能参考文档明确列出以下限制字幕样式受订阅套餐限制不同 tier 可用的样式能力不同style中的部分字段可能在高阶套餐才可用部分高级字幕功能可能仅限网页端API 暴露的能力是网页端功能的子集某些高级特性如逐字高亮、自定义动画需在 HeyGen 网页编辑器中完成多说话人字幕检测可用性有限多人对话场景下自动区分说话人的能力可能不可用或表现受限字幕准确率取决于音频质量与语音清晰度背景噪音、口音、语速都会影响 ASR自动语音识别的准确率生成后应人工抽检关键片段。对应到工程实践建议对平台自动字幕做质量兜底将最终视频 字幕文件送入 tools/video/remotion_caption_burn.pyRemotion 字幕烧录工具或按 skills/core/whisperx.md 的流程用 WhisperX 重新转写校对保证交付级准确率。十二、与视频翻译的集成使用视频翻译功能时字幕会被自动处理// Video translation includes caption generation const translationConfig { input_video_id: original_video_id, output_languages: [es-ES], // Captions generated in target language };即指定output_languages后平台会为目标语言重新生成语音并自动附带目标语言的字幕——翻译与字幕是一次请求内完成的原子操作无需二次配置caption。两种字幕来源的配合策略场景推荐做法源语言视频未翻译caption: true或caption: { enabled: true, style: {...} }平台自动生成源语言字幕翻译为多语言传output_languages平台自动产出目标语言字幕如需完全控制字幕内容用srt_keysrt_role: output指定自定义 SRT关于视频翻译的更多细节参考文档末尾原链接指向video-translation.md该文件未包含在当前仓库的 reference 目录中可用的参考文件完整列表见 .claude/skills/heygen/references本文档基于现有仓库内容进行说明。十三、完整实战链路把字幕能力接入 OpenMontage 流水线综合上述所有能力一条可落地的HeyGen 数字人字幕视频生产链路如下生成调用/v2/video/generate或 Video Agent 的/v1/video_agent/generate在请求中带上caption: { enabled: true, style: captionPresets.default }配好dimension与多场景video_inputs多场景写法参见 .claude/skills/heygen/references/video-generation.md状态轮询通过/v2/videos/{video_id}轮询直至status completed获取video_url轮询模式细节参见 .claude/skills/heygen/references/video-status.md多语言扩展如需本地化以源视频video_id发起翻译请求传output_languages批量产出多语言字幕版本质量兜底可选将关键成片送入 tools/video/remotion_caption_burn.py该工具会把词级转写片段转换为 RemotionWordCaptionJSON 并通过 remotion-composer/src/components/CaptionOverlay.tsx 渲染逐词高亮字幕等价于 TikTok 风格的字幕动画若 Remotion 不可用则自动回退到 FFmpegsubtitles滤镜烧录底部字幕发布前检查对照第八节无障碍准则做最终走查——对比度、字号、位置遮挡、时间轴同步。环境前置以上所有 HeyGen API 调用均需HEYGEN_API_KEY环境变量设置方式见 .claude/skills/heygen/references/authentication.md。OpenMontage 的heygen_video工具同样以该环境变量作为可用性判断依据见 tools/video/heygen_video.py 的get_status方法。结语自动字幕是 HeyGen 数字人视频开箱即用的高价值特性一行caption: true即可获得可访问、提参与度的成片字幕通过CaptionConfig的样式与位置定制、多语言跟随、自定义 SRT 输入又能满足品牌化、本地化、多平台分发的专业需求。结合 OpenMontage 仓库中的 Remotion 逐词高亮字幕烧录、WhisperX 转写校对等配套能力你可以构建一条从云端生成到本地增强的完整字幕生产流水线让数字人视频的每一句话都清晰可读、处处可及。【免费下载链接】OpenMontageWorlds first open-source, agentic video production system. 12 production pipelines, 100 tools, 700 agent skill and production-knowledge files. Turn your AI coding assistant into a full video production studio.项目地址: https://gitcode.com/GitHub_Trending/op/OpenMontage创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考