mcpField
V
video-translation

video-translation

github.com/chatcut-inc创意与媒体99269 次安装1 天前更新
代码仓库

关于 video-translation

video-translation 是一项用于本地化现有项目视频的技能,支持配音、可选口型同步和字幕。口型同步任务需先审阅源转录文本,并与仅翻译音频的流程区分。

主要功能

  1. 01将语音配成其他语言
  2. 02保留说话者的声音特征
  3. 03让译制语音与口型同步
  4. 04审阅和编辑源转录文本
  5. 05可选择烧录译制字幕

适用场景

  1. 01为其他市场制作配音版本
  2. 02保留受访者声音并翻译采访
  3. 03只翻译音频而不改动画面
  4. 04为本地化视频添加译制字幕

MCP 相关

该技能通过声明的 ChatCut MCP 连接提交并跟踪视频翻译任务,并由宿主负责身份验证。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/chatcut-inc/agent-plugin --skill video-translation

安装后在 Claude Code 中输入/video-translation确认已加载。

详细介绍

视频翻译

如果尚未加载 submit_video_translation,请先使用 ToolSearch 加载,再调用它,以便使用其真实参数,而不是猜测参数。

从现有项目视频创建新的本地化视频资源。将语音翻译、配音、声音保留、唇形同步、字幕、质量、授权、生成和验证视为一个完整工作流。

唇形同步翻译从在可编辑的 ChatCut Widget 中审核源字幕稿开始。在用户编辑或批准该版本并提交之前,绝不会将识别出的源语句视为最终版本。纯音频翻译则沿用现有的直接提交流程,跳过此审核步骤。

身份验证和输入

在此工作流中使用已声明的 ChatCut MCP 连接;身份验证由主机管理。不要从用户的环境、凭据存储或本地文件中读取密码、API 密钥或 OAuth 凭据。下面的工具参数是项目资源标识符、语言和处理选项,以及经用户审核的字幕稿文本,而不是身份验证信息。

适用场景

当用户希望对现有视频进行以下处理时,使用此技能:

  • 让视频中的说话者改用另一种语言讲话。
  • 制作配音或本地化版本。
  • 跨语言保留原说话者的声音特征。
  • 让画面中可见的口型与翻译后的语音同步。
  • 仅翻译口播音频,同时保留原画面。
  • 生成带有可选译文字幕的翻译视频。
  • 为其他市场制作特定语言版本。

常见触发请求包括:

  • “让视频里这个人说英语。”
  • “把中文口播做成英文版,口型也对上。”
  • “把这段采访译制成日语,保留每个人的声音。”
  • “做一个西班牙语配音版。”
  • “只把声音翻译成英语,画面不要变。”
  • “把这个中文数字人成片改成英文。”

将相邻请求转至其他技能:

  • 仅翻译、添加、编辑或导出字幕:使用字幕翻译。
  • 生成新的虚拟人视频前先翻译脚本:先翻译文本,然后使用 Digital Human Skill。
  • 使用指定的新声音生成语音:使用 Voice Skill。
  • 转录口语内容但不做改动:使用 Transcription Skill。
  • 编辑访谈视频中的停顿、错误、构图或 B-roll:使用 Talking Head Guide。
  • 生成新视频素材,而不是本地化现有视频:使用 Video Gen。

将以下请求视为含糊不清:

  • “把这个视频翻译成英文。”
  • “帮我做一个英文版。”
  • “中文改成英语。”
  • “做一个海外版。”
  • “把这个视频国际化一下。”

遇到含糊不清的请求时,提供文字选项,询问用户希望采用哪种处理方式。措辞应符合对话语境,并包含所有适用选项:

  • 口型同步翻译:继续进行可编辑的源稿审阅,然后使用 audioOnly: false 提交,或省略 audioOnly。
  • 仅翻译声音:沿用现有的直接提交流程,并使用 audioOnly: true 提交。
  • 仅翻译字幕:使用字幕翻译,不要提交视频翻译任务。

面向用户的术语应保持使用同一种语言。以下是本地化后的概念名称,而不是固定的完整选项句子;描述可根据语境自然表达:

对话语言口型同步选项仅翻译声音选项仅翻译字幕选项
中文口型同步翻译只翻译声音只翻译字幕
英语Lip-synced translationAudio-only translationSubtitle-only translation
西班牙语Traducción con sincronización labialTraducción solo de audioTraducción solo de subtítulos

目标翻译语言不会影响此处使用的文案,应以用户的对话语言为准。不要在本地化标签后附加第二种语言的释义,例如 (lip-sync)。

如果源视频中有可见的说话者,不要省略口型同步选项。不要将仅翻译声音重新标记为泛化的“AI voice replacement”;选择新的合成声音属于单独的 Voice Skill 工作流。如果用户已说明想要的处理方式,则跳过此问题,直接按相应路径操作。

在用户明确要求或确认更改口播音频之前,不要提交付费的视频翻译任务。

工作流

  1. 解析源视频。 必须是已导入的项目视频资源; 使用附件、所选内容或 browse_assets 中的确切资源 ID。 本地或外部媒体必须先导入。

  2. 从实时目录解析目标语言。 调用 submit_video_translation,参数仅为 action: "list_languages"。 此操作只读取目录;不需要项目、转录文本审核、确认或额度。然后将 返回值中匹配的内容原样复制到 targetLanguage,包括任何方言、地区 或文字体系限定信息。不要臆造语言名称,也不要发送 ISO 代码。 将用户要求的语言和变体与返回的目录进行匹配;如果用户只暗示了市场 (“海外版”),则需确认语言。如果提交报告语言不受支持,请使用其 建议的候选项,或通过 action: "list_languages" 刷新目录,不要重试 猜测的名称。每次调用都必须提供 action 参数。

  3. 选择处理方式:

    • 口型同步:mode: "speed" — 翻译配音,同时保留说话者的声音特征, 并同步口型。继续完成下文的源文本转录审核。
    • audioOnly: true — 仅翻译音频,画面保持不变。适用于屏幕录制、旁白 视频,或用户要求画面不得更改的情况。当保留透明 WebM 的 Alpha 通道 很重要时,优先使用此方式。跳过步骤 4–6,并保留现有的直接提交流程; 不要要求或包含 reviewedSourceTranscript。
  4. 仅为口型同步准备源文本转录。 如果尚未完成逐词转录,则调用 trigger_transcript,使用 track_progress 等待,并仅在其就绪后重试。 调用 read_script,然后读取匹配的 library/<filename>.md 源文本转录。 不要使用可编辑的 timeline.md 剪辑作为翻译源。不要用 inspect_asset 的转录范围替代 read_script;范围结果可能不完整, 并非规范的完整源文本转录。

  5. 仅为口型同步呈现可编辑的源文本审核表单。 加载 widget-forms Skill,并复用 Digital Human Skill 使用的同一种 <form-textarea> 确认模式。删除知识库中的 [sN] 地址和说话者渲染行, 但必须保留每行恰好一个已识别的转录片段,并按源顺序排列。将完整文本 放入文本区域的 default;使用本地化标签,请用户检查并更正识别出的原文。 不要暴露片段 ID、词索引、文件语法或时间戳。

    Widget 输出前必须完成以下检查:

    • 字段 ID 必须为 reviewedSourceTranscript。
    • 预填充属性必须为 default,绝不能使用 default-value、 defaultValue、value 或 placeholder。
    • default 必须包含实际且完整的非空识别转录文本,不能是占位文本或省略的值。 如果尚未成功读取转录文本,则不要呈现 Widget;请先读取规范的知识库文档。
    • 每行保留一个已识别的源片段。发送表单前,确认首尾非空源片段均已包含。
    • 在嵌入式原始标签路径中,将完整转录文本放入 default 前,须遵循 widget-forms 的 XML 属性转义规则。绝不能在标签内放入未转义的识别文本。

    嵌入式 ChatCut 示例(将可见文案本地化):

    Please review the recognized source text and correct any mistakes:
    
    <widget>
      <form-textarea id="reviewedSourceTranscript" label="Please review and correct the source text" rows="12" required="true" default="<recognized source text; one segment per line>"/>
    </widget>
    

    应针对当前宿主遵循 widget-forms,不要在不支持嵌入式协议的宿主中输出原始标签。 不要额外添加是/否问题,也不要手写提交按钮。在此处停止并等待。首次呈现 Widget 的同一轮中,绝不能提交翻译。

  6. 严格使用提交的修订内容。 Widget 提交即表示明确确认。请从用户的下一条消息中读取完整的 reviewedSourceTranscript 文本框答案,并准确保留其措辞、标点和顺序。存在返回的换行时,请予以保留,但不要拒绝或改写用户在文本框内进行的常规换行编辑;工具会根据源视频时间重新对齐这些内容。不要改述文本,也不要要求用户再次确认相同文本。如果用户在 Widget 外回复并提出进一步修改,请使用这些修改重新打开同一个可编辑 Widget,而不是恢复为纯文本转录稿。

  7. 时长处理。 默认情况下,输出时长可以比源视频稍长或稍短,以便译制语音保持自然节奏。仅当用户需要与原始时长完全一致时(例如要替换现有时间线片段),才设置 keepDuration: true,并说明语速可能会更快。

  8. 提交。 使用 submit_video_translation,并设置 action: "submit"。对于唇形同步,将第 6 步返回的完整文本框原文准确设置为 reviewedSourceTranscript;工具会将用户审阅过的各行与原始片段时间戳结合,生成源字幕。对于 audioOnly: true,省略 reviewedSourceTranscript,并保留原有的直接提交流程。工具会在任务开始前向用户显示付费确认;如果用户拒绝,不要重新提交。

  9. 跟踪进度。 使用 track_progress(action="wait"),直到译制后的视频素材出现在素材库中,然后交还给用户(仅在用户要求时才将其放到时间线上)。

限制与费用

  • 整个源视频都会被翻译,并按完整时长计费。若只需本地化其中一段,请先将该片段剪辑并导出为独立素材,再翻译较短的素材。
  • 可选的译制字幕:enableCaption: true 会将字幕烧录到输出视频中。
  • ChatCut 始终会请求保留源视频的分辨率和比特率。对于唇形同步,这只是尽力而为,因为画面会重新渲染。透明 WebM 可能会变为不透明,而 4K 或帧率高于 30 fps 的媒体可能会重新编码。工具的确认信息会指出这些情况;切勿承诺唇形同步会精确保留容器、Alpha 通道、HDR、编解码器、比特率或帧率。
  • 如果画面不得进行唇形同步,请选择 audioOnly: true;这样可以避免重新渲染人脸,是处理透明源视频最稳妥的方式,但不要承诺容器会逐字节保留。完成后,在媒体探测可用时,ChatCut 会比较源视频和输出视频的分辨率、帧率及 Alpha 像素格式,并在生成状态中报告检测到的变化。
  • 支持多位说话者;用户说明说话者人数时,请设置 speakerCount。
  • 对于唇形同步,可编辑的审阅内容会以每行一个源片段的形式开始,以便提交的文本复用原始的逐词时间信息。请将 Widget 的完整值直接传给工具;不要在对话层合并、拆分、重排或悄悄规范化内容。对于 audioOnly: true,不要调用此审阅流程。
  • 参考费用:每分钟源视频约需 8 个积分。
  • 配音使用与原说话者相匹配的声音;由于这是对录制语音的翻译,如果素材显然属于他人,请确认用户拥有相关视频素材及说话者的使用权。
  • 切勿透露或讨论底层服务提供方;应将其描述为 ChatCut 的 AI 视频翻译。

评论

支持 Markdown