Wjs Localizing Video

Polar Sponsor
爱发电 赞助
.NET 9.0

用于端到端视频本地化流程的轻量编排器,路由至四个专注子技能——/wjs-transcribing-audio、/wjs-translating-subtitles...

wjs- localization- video( orchestrator)

功能概述

wjs- localization- video( orchestrator)是一项面向实际任务的技能,主要用于这种技能被分割了;过去1300行的全集现在是4个焦点化的子技能;

核心要点

  • 只有在用户要求完整管道时才使用此管线。
  • 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。

使用与执行

该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;

结果检查与注意事项

若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

wjs-localizing-video(编排器)

该能力已被拆分。 原先那个 1300 行、包罗万象的单体能力,现已重构为 4 个专注明确的子能力。**仅当用户在单次请求中明确要求执行完整流水线时**,才调用本编排器;若用户仅需其中某一步骤,请直接路由至对应子能力。

四个子能力

步骤 能力 输入(IN) 输出(OUT)
1. ASR /wjs-transcribing-audio 音频 / 视频 + 源语言 源语言 SRT 文件
2. 翻译 /wjs-translating-subtitles 源语言 SRT + 目标语言 目标语言 SRT(按标点边界切分)
3. 配音(可选) /wjs-dubbing-video 视频 + 目标语言 SRT + 声音 ID *__dub.mp4(TTS 音频已替换入原视频)
4. 烧录字幕 / 混音(可选) /wjs-burning-subtitles 视频 + SRT + (可选配音文件) 最终 MP4(单次编码)

第 3 和第 4 步为可选且相互独立:大多数“仅字幕”任务在第 2 步完成后即终止,并通过 /wjs-burning-subtitles 进行软封装(soft-mux);大多数“仅配音”任务则在第 3 步后结束。

何时调用本编排器 vs 直接调用子能力

请调用本能力(wjs-localizing-video),当用户一次性提出完整流程需求时:

  • “帮我把这个西班牙语视频做成中文字幕和中文配音”
  • “translate this Spanish video to English with dubbing”
  • “全套:转写、翻译、烧字幕、配音、混音”

请直接调用子能力,当用户仅提出单一环节需求时:

  • “转写一下这个音频” → /wjs-transcribing-audio
  • “把这个 SRT 翻译成中文” → /wjs-translating-subtitles
  • “给这个视频配个中文音” → /wjs-dubbing-video
  • “把字幕烧进视频” → /wjs-burning-subtitles

各子能力职责更聚焦,其输入/输出契约也定义得更为严谨。若用户请求本身仅涉及单一步骤,请勿经由本编排器中转——否则你将阅读大量与当前任务无关的文档。

进度检查清单(务必在调用任一子能力前完成)

整条流水线最多含四个步骤,总耗时数分钟。用户期望看到实时进度反馈,而非长时间静默后突然返回成品文件。**在调用首个子能力前,必须预先创建一份 TaskCreate 格式的计划步骤清单。** 每当启动某一步骤时,将其状态更新为 in_progress;完成时立即标记为 completed。Claude Code 将在 UI 中以实时勾选形式渲染该清单。

应创建哪些任务

根据用户请求判断将执行哪几个步骤:

用户请求内容 应创建的任务
完整本地化(字幕 + 配音 + 最终混音) ① 转写 ② 翻译 ③ 配音 ④ 烧字幕 + 混音
仅字幕(不变更人声) ① 转写 ② 翻译 ③ 烧字幕(或 soft-mux)
仅配音(不烧录) ① 转写 ② 翻译 ③ 配音
用户已提供源语言 SRT 跳过①;仅创建后续步骤
用户已提供目标语言 SRT 跳过①和②;仅创建剩余步骤

请勿为不执行的步骤创建任务项——末尾未勾选的条目会被理解为“遗漏”,而非“主动跳过”。

任务标题的表述规范

使用与下方“最终响应模板”中完全一致的标签命名方式,确保运行中的清单与最终完成摘要呈现为同一份连贯产物:

  • 转写 (例如:转写 西班牙语)
  • 翻译 → (例如:翻译 → 中文)
  • 配音 (例如:配音 中文 (高冷御姐 -8%))
  • 烧字幕 + 原声底层 (例如:烧字幕 + 原声底层 0.18)

对于 activeForm 字段,请使用进行时变体(转写中…、翻译中…、配音中…、合成中…)。

状态管理规范

  • 仅将当前正在执行的任务标记为 in_progress(一次仅一个)。
  • 子能力返回输出文件后,立即标记为 completed —— 不要批量更新。
  • 若某步骤触发澄清提问或执行失败,保持其状态为 in_progress,以便用户清晰识别流水线中断位置;切勿将未完成步骤标记为 completed。
  • 若用户在流水线中途变更指令(如“跳过配音”),请同步更新剩余任务:删除不再适用的条目,保留其余任务;切勿静默丢弃。

标准端到端流水线示例(西班牙语 → 中文,含配音 + 底层音 + 烧录)

此为原始“验证场景”——将西班牙语瑜伽/灵性类内容本地化为简体中文,用于微信视频号 / 小红书平台。完整覆盖全部 4 个子能力。

步骤 1 — 转写西班牙语源内容

调用 /wjs-transcribing-audio,传入视频文件及参数 `--language es`。

该子能力负责:音频分块、词级时间戳、基于标点边界的字幕段组装、循环防护、自动重试。输出:entrevista.srt(西班牙语,源语言)。

步骤 2 — 翻译为简体中文

调用 /wjs-translating-subtitles,传入西班牙语 SRT 及目标语言 `zh-CN`。

该子能力负责:基于标点重新切分字幕段、最小化填充式指示代词、限制单行长度、保留说话人语气风格。输出:entrevista.zh-CN.srt。

步骤 3 — (可选)中文配音

调用 /wjs-dubbing-video,传入视频 + entrevista.zh-CN.srt + 声音 ID。

成熟沉思型女性声音默认值:zh_female_gaolengyujie_moon_bigtts(Volcano 高冷御姐,参数 --rate -8% +0Hz)。若无 Volcano 凭据,则回退为:zh-CN-XiaoxiaoNeural --rate -8% --pitch -10Hz。该子能力先采样预览,确认后再正式生成。

输出:entrevista_zh_dub.mp4。

步骤 4 — 烧录字幕 + 将配音与原声底层混合

调用 /wjs-burning-subtitles,参数为 --video entrevista.mp4 --srt entrevista.zh-CN.srt --dub entrevista_zh_dub.mp4

该子能力负责:libass 可用性检测、evermeet 静态构建回退机制、字体大小自适应校准、全量渲染前逐帧校验、底层音频混音音量设为 0.18。

输出:entrevista_zh_final.mp4(可直接交付发布)。

用户已标准化的默认配置

以下规则贯穿整条流水线;各子能力在其职责范围内分别强制执行:

  • 中文语音识别优先调用豆包(Volcano),Whisper 作为备用方案。 由 /wjs-transcribing-audio 强制执行。
  • 整段配音统一使用单一声音,除非用户明确指出需区分多个说话人。 由 /wjs-dubbing-video 强制执行。
  • 任何配音均保留原始音频作为低音量底层(0.15–0.25)。 由 /wjs-burning-subtitles 强制执行。
  • 微信视频号 / 抖音平台默认烧录字幕;其余平台默认软封装(soft-mux)。 由 /wjs-burning-subtitles 强制执行。
  • 频道 CTA 名称(如添加至视频描述中)统一为:王建硕 —— 绝不使用嘉宾姓名。(该规则源自全局配置 ~/.claude/CLAUDE.md;当本流水线后续衔接 /wjs-uploading-video 时生效)

文件命名规范(继承自原始能力)

输入:                       entrevista.mp4

中文流水线:
  源语言 SRT                 entrevista.srt
  中文 SRT                   entrevista.zh-CN.srt
  中文配音(纯音频)         entrevista_zh_dub.mp4
  中文最终成品(字幕+配音)  entrevista_zh_final.mp4

英文流水线:
  英文 SRT                   entrevista.en.srt
  英文配音                   entrevista_en_dub.mp4
  英文最终成品               entrevista_en_final.mp4

双语字幕:
  西班牙语 + 中文             entrevista.es-zh.srt
  西班牙语 + 英文             entrevista.es-en.srt
  三语字幕                   entrevista.es-zh-en.srt

采用 BCP-47 风格后缀,便于多目标语言输出并存,且一眼即可识别目标语言。

本编排器不承担的职责

  • 它不重复实现任何逻辑。所有步骤均委托至对应子能力执行。
  • 它不打包脚本文件。dub.py 位于 /wjs-dubbing-video/scripts/,render.py 位于 /wjs-burning-subtitles/scripts/,visual_diarize.py 位于 /wjs-dubbing-video/scripts/。若发现 wjs-localizing-video/scripts/ 下存在陈旧副本,请始终优先采用子能力自身的权威路径。

最终响应模板

当整条流水线成功完成时,请用用户的自然语言作简明回复,并严格匹配用户习惯的“已完成”格式:

已完成:
- 西班牙语转写  (/wjs-transcribing-audio)
- 中文翻译     (/wjs-translating-subtitles)
- 中文配音     (/wjs-dubbing-video, voice: 高冷御姐 -8%)
- 烧入字幕 + 原声底层 0.18  (/wjs-burning-subtitles)

输出:
- entrevista.srt
- entrevista.zh-CN.srt
- entrevista_zh_dub.mp4
- entrevista_zh_final.mp4

不确定片段:
- 00:01:23–00:01:26 背景噪音较大,原文可能不完全准确。

若无不确定片段,请省略最后一项列表。

参阅

  • /wjs-segmenting-video — 将长视频切分为独立短视频片段(使用其专属 SRT 切片器;与本流水线正交)。
  • /wjs-overlaying-video — 基于 HyperFrames 在视频片段上叠加 HTML/CSS 字幕。 请勿与 /wjs-burning-subtitles 混用 —— 每个输出仅选用一种字幕系统。
  • /wjs-uploading-video — 将最终 MP4 推送至 YouTube。
  • /lark-minutes — 当本地豆包 ASR 尚未接入时,提供飞书妙记作为纯中文转录路径的替代方案。

相关专题

更多
js实现base64编码
js实现base64编码

在JavaScript中实现Base64编码,最直接的方式是使用内置的btoa()函数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2025.10.24

379

9

html中如何调用外部js
html中如何调用外部js

在 html 中调用外部 js 可通过以下步骤:创建 js 文件并编写代码。在 html 代码中添加 <script> 标签,设置 src 属性为 js 文件路径。保存并刷新页面加载外部 js。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.11

1712

6

php和js的区别
php和js的区别

php和js的区别:PHP主要用于服务器端编程,而JavaScript主要用于客户端编程;PHP代码在服务器端执行,而JavaScript代码在客户端浏览器中执行。想了解更多php和js的相关内容,可以阅读本专题下面的文章。

2024.03.22

4828

11

JS的Document介绍
JS的Document介绍

在JavaScript中,document对象是一个非常重要的全局对象,它代表整个HTML文档。想了解更多Document的相关内容,可以阅读本专题下面的文章。

2024.03.14

6047

11

js中each函数的用法
js中each函数的用法

在JavaScript中,并没有一个内建的each函数,但jQuery库提供了一个非常有用的$.each() 函数,用于遍历数组或对象。想了解更多each函数的相关内容,可以阅读本专题下面的文章。

2024.03.13

1629

5

js和vue的关系
js和vue的关系

js和vue的关系:1、js作为web开发基石;2、vue.js作为前端框架的崛起;3、js与vue的互补关系;4、js与vue的实践应用。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.03.11

353

5

js弹幕功能实现方法
js弹幕功能实现方法

PHP中文网为大家带来,js实现弹幕功能的方法:1、创建html文件;2、添加html代码架构;3、在body标签中使用div、input、button标签分给页面设计效果显示框、输入框、弹幕提交按钮;4、添加script标签并写入js代码来实现弹幕效果;5、通过浏览器方式查看设计效果即可。希望对大家有所帮助。

2024.03.04

2992

11

js事件冒泡可以解决哪些问题
js事件冒泡可以解决哪些问题

js事件冒泡可以解决的问题:1、简化事件处理逻辑;2、提高事件处理性能;3、实现自定义组件和交互效果;4、控制事件传播方向;5、解决事件覆盖问题;6、实现全局事件监听;7、方便调试和排查问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

2824

4

js的split用法
js的split用法

js的split方法是字符串的一个方法,用于将字符串按照指定的分隔符分割成子字符串,并返回一个新的数组,其语法为“string.split(separator, limit)”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.24

1127

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
WEB前端教程【HTML5+CSS3+JS】
WEB前端教程【HTML5+CSS3+JS】

共101课时 | 21万人学习

JS进阶与BootStrap学习
JS进阶与BootStrap学习

共39课时 | 4.8万人学习