关于 layer-localization
layer-localization 是 Layer 的本地化技能,面向需要为视频和图像制作多语言版本的团队。它涵盖配音、烧录字幕及图中文字替换,并强调各语言版本都从已批准的母版制作。
主要功能
- 01视频配音与文本转语音
- 02将字幕烧录进视频
- 03替换图像中已有文字
- 04为干净图稿逐语言排字
- 05规划语言与素材输出矩阵
适用场景
- 01为宣传片制作多语言配音
- 02为不同语言版本烧录字幕
- 03本地化海报或片尾卡文字
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ layerai/ skills --skill layer-localization安装后在 Claude Code 中输入/layer-localization确认已加载。
详细介绍
Layer 本地化
概述
本地化是以一个母版为基础,扩展出一系列语言版本。每种语言版本都应从经批准的母版制作,而不能从另一种语言的版本制作:从法语版本制作的德语剪辑会把法语版本的缺陷一并带到德语版本中。
Layer 涵盖资产的三个层面:
- 语音:为现有视频配音,或使用文本转语音朗读翻译后的脚本。
- 字幕:将字幕烧录到视频中。
- 图像中的文字:替换图稿中的文字,或为每种语言在干净底图上排字。
生成机制、估算门槛和轮询流程详见 layer skill。设置精确字体类型请使用 layer-typography,剪辑完成的视频请使用 layer-video-timeline。
如果你可用的技能中缺少此处提到的同级技能,请让用户安装它(npx skills add layerai/skills --skill <name>);若无法等待,则根据工具架构继续操作,并标明这一缺口。
快速参考
| 任务 | 路由 |
|---|---|
| 为带语音的视频配音 | use_case: "dub_video",target_language 从模型的 dub_languages 中选取 |
| 根据翻译后的台词制作新旁白 | use_case: "text_to_speech",speech_language 从 speech_languages 中选取 |
| 烧录字幕 | use_case: "video_subtitle",subtitle_preset 从 subtitle_presets 中选取 |
| 更改图像中已嵌入的文字 | use_case: "edit_text" |
| 在干净图稿上为每种语言添加精确文本 | render_text,然后使用 compose_image(layer-typography) |
每条路由都是 list_base_models 的筛选条件,最后一条除外:它由两个确定性工具组成,不消耗 Creative Units。首次运行前,请对所选模型调用 get_base_model:下方提到的语言列表、预设和行为均由其能力决定。
先规划语言矩阵
开始任何运行前,先按语言列出资产:每个母版的 file_id、每种语言的代码,以及每个输出对应的空白 file_id 单元格。语言使用 ISO 639-1 代码(de、ja、pt),表示语言,而非市场。如果用户需要巴西葡萄牙语而不是欧洲葡萄牙语,请说明仅凭代码可能无法区分,并查看模型的列表。
请向用户或其本地化服务供应商索取已批准的译文。如果你自行翻译文案,请标明为待审核的草稿:店铺文案、法律条款和角色名称均由用户决定。
首次运行前,先估算整个矩阵的费用,并将 20 CU 门槛应用于总费用。计价时会读取文件,因此估算时请传入每个源文件。文本转语音按字符数计价,因此每种语言的脚本都要单独估算。如果不确定两种语言是否会分别计价,则每种语言分别估算一次。
配音
配音保留原始表演,只更改语言。配音模型必须设置 target_language,且其值必须是 dub_languages 中的代码。配音模型的区别在于一项比音质更重要的选择:
- 有些模型会让画面和时长完全保持不变。当配音要套用到已有剪辑、时间线或固定时长的广告位时,选择这类模型。
- 其他模型会重新同步口型,并可能根据新语言的语速延长或缩短视频片段。为出镜演讲者选择这类模型;若视频片段必须保持原时长,则不要选择。
目前,工具架构将 ElevenLabs Dubbing 列为前一种行为,将 HeyGen 模型列为后一种行为;由于目录会变化,请通过 get_base_model 确认。
文本转语音适用于根据翻译后的脚本生成全新的配音。将 speech_language 留空,模型会根据文本推测语言;若台词很短,或包含大量人名和外来词(这些正是模型容易用错误语言朗读的内容),则应设置该参数。text_normalization 控制数字和日期的读法,且各语言的规则不同。同一语言的所有台词都应使用相同的声音选项,避免角色在一场宣传活动中途变声。
翻译后的语音会更长。德语和法语台词往往比英语台词长,而 15 秒的广告位无法延长。应缩短台词,而不是加快语速:稍微提速可以接受,但不要为了塞下台词而仓促朗读。
字幕
筛选 use_case: "video_subtitle"。subtitle_preset 必须严格填写为模型 subtitle_presets 中的某个值;其他名称会先按默认样式报价,启动时再被拒绝。subtitle_dynamic_presets 下列出的预设会逐词动态显示,费率较高,因此估算时也要传入相同的预设。subtitle_alignment、subtitle_color 和 subtitle_secondary_color 仅适用于功能报告中列出这些参数的模型。架构不接受字幕文本,因此应为每种语言的配音分别生成字幕,而不是为原始版本生成字幕;并通过 get_base_model 确认模型支持为该语言生成字幕。运行配音或字幕任务时,请将源视频附加到 get_base_model 为该模型列出的引导槽位中;不要自行假设槽位。
烧录式字幕会为每种语言生成一个文件,因此原始版本应保留为无字幕版本。如果画面下方三分之一处有行动号召、游戏界面或下三分之一标题,请将字幕移到顶部。
图像中的文字
最省成本的本地化方式,是从一开始就不在美术素材中嵌入文字。生成无文字的原始版本,再用 render_text 和 compose_image 为每种语言排版。
嵌入视频画面的文字(例如片尾卡)无法通过图像工具处理。首先要求生成无文字的片尾卡。如果做不到,就在 render_video_timeline 编辑(layer-video-timeline)中覆盖片尾卡对应的时间段:在旧文字上方放置图像或纯色素材,再用 font_file_id 指定字体文件,并设置文字项来显示该语言的文字。
- 字符覆盖。 拉丁文字品牌字体通常不包含中日韩文字、西里尔字母、泰文或阿拉伯文字符;缺失的字符会显示为空框。选择覆盖相应文字系统的字体系列(
font_family可以使用 Google Fonts 的字体系列名称),并检查每次渲染结果。 - 文字方向与字形塑造。 对于从右向左书写以及连写文字系统,请目视检查字母是否正确连写、方向是否正确。如果不正确,应报告问题,不要交付。
- 文本扩展。 按最长的语言设置文本框大小,并将每种语言的文字都渲染到同一个文本框中。如果
render_text因文字尺寸要求而拒绝处理,请缩短文字,或统一调低所有语言的font_size,避免某个市场的标题明显更小。
如果文字已经嵌入画面,请在原始版本上运行 edit_text 模型,并准确引用替换文本。逐字检查结果。如果失败,就先用 erase_object 或 inpainting 模型移除文字,生成干净底图,再为每种语言分别排版。
操作示例
“将我们时长 15 秒、画幅为 9:16 的预告片及其片尾卡本地化为德语、日语和葡萄牙语。”
- 建立矩阵:按
de、ja、pt列出预告片和片尾卡的母版。询问葡萄牙语是否指巴西葡萄牙语,并索取片尾卡两行文字的已批准译文。 - 使用
use_case: "dub_video"调用list_base_models;对候选模型调用get_base_model。预告片必须保持 15 秒,因此选择能保留画面和时长的模型,并确认其dub_languages包含这三个语言代码。 - 附上预告片,估算这三种语言的配音费用。片尾卡无需估算:它们是确定性的。报出总费用;如果超过 20 CUs,先等待明确同意。
- 每种语言分别调用
execute_forge并设置target_language,然后使用poll_interval_seconds间隔调用get_forge_run查询状态。逐一检查配音是否与画面匹配。 - 片尾卡:母版没有文字,因此使用
render_text将每种语言的文字渲染到同一个共享文本框中;日语使用涵盖假名和汉字的字体系列,然后使用compose_image合成到母版上。 - 在矩阵中填写每个输出的
file_id,然后交付。
常见错误
- 使用其他语言版本进行本地化,而不是使用母版。
- 将会重新同步口型的配音放进固定时长的剪辑中,导致成片变长或变短。
- 只估算一种语言的费用,就假定其他语言的费用相同。
- 品牌字体不支持相应文字系统,交付时却只显示空方框。
- 让每种语言各自缩小字号,直到文案放得下。
- 翻译商店文案或法律文案后,将其当作最终版本提交。
- 将字幕烧录到母版的唯一副本中。