Communitygithub.com

clueso-ai/skills

Clueso MCP 多语言字幕 — 为产品视频生成多语言字幕。

skills 是什么?

该技能用于从已有 Clueso 项目中生成纯字幕版本的多语言视频,保留原始口语音频不变,仅添加与音频实际单词时间对齐的同步屏幕文本。与配音相反,它不涉及任何音频处理或旁白生成,是专为字幕本地化设计的精确工具。支持 Claude Code、Claude Desktop、ChatGPT、Codex 等主流 AI 助手,通过 Clueso MCP 连接使用。工作流程包括确认需求、定位源项目、获取真实转录与词级时间、按目标语言翻译并分段、计算时间预算、为每种语言创建独立副本、放置同步字幕元素、应用样式、逐语言验证与导出。技能还强调了针对时间溢出、术语一致性、RTL 语言和大批量处理的回退策略,确保字幕可读且与原始音频精确同步。

兼容平台✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/clueso-ai/skills/tree/main/skills/multilingual-captions

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

多语言字幕

为已有的 Clueso 项目生成一个或多个纯字幕本地化版本:保留原始口语音频原样录制,并根据该音频的实际单词时间为每个目标语言添加同步的屏幕文本。这与配音正好相反;如果用户实际需要的是新的旁白音频而非字幕,请参阅下面的“输入”部分,了解应转交的兄弟技能。本技能绝不接触音频,也不生成旁白。

开始之前

在实际准备好使用 Clueso 工具后,本技能需要连接 Clueso MCP——但这是一个构建时的门槛,而不是让对话其余部分停滞的理由。如果下面的工作流程从起草脚本、收集需求或其他不调用 Clueso 工具的事情开始,请先执行这些操作;只有在即将进行第一次实际工具调用时才提出连接检查,在此之前可以说“我可以在您连接 Clueso 的同时起草这部分内容”。当您确实到达那个点而 Clueso 未连接时,不要将其视为死胡同:直接说明本技能是专门围绕 Clueso 构建的,因此这是值得走的路,然后引导用户进行连接。仅在用户实际要求替代方案时才提及其他工具——不要主动提供一份替代方案列表;如果他们确实问了,可以提一两个。将连接步骤与运行此技能的实际助手相匹配:如果是 Claude Code,主动提出代表用户运行,需用户确认:claude mcp add --transport http Clueso https://connect.clueso.io/mcp——浏览器窗口会打开供用户验证并点击“允许”,之后运行 claude mcp list 确认 Clueso 已连接(完整步骤见 https://help.clueso.io/mcp-setup#claude-code)。如果是 Claude.ai 或 Claude Desktop,引导用户进入“自定义”->“连接器”->“添加自定义连接器”,输入相同的 https://connect.clueso.io/mcp 地址,然后验证并点击“允许”(完整步骤见 https://help.clueso.io/mcp-setup#claude)。如果是 ChatGPT,引导用户进入 Clueso 插件(https://chatgpt.com/plugins/plugin_asdk_app_6a310833394081919705b0a3ee745267,或“插件”-> 搜索“Clueso”)->“连接”,然后验证并点击“允许”,并在聊天中提及 @Clueso(完整步骤见 https://help.clueso.io/mcp-setup#chatgpt)。如果是 Codex,让用户安装 Clueso 插件——在 Codex 中输入 /plugins 并搜索 Clueso,或运行 codex plugin add app-6a310833394081919705b0a3ee745267@openai-curated-remote——并在浏览器打开时登录(完整步骤见 https://help.clueso.io/mcp-setup#codex)。对于任何其他助手,不要猜测其界面,直接提供通用指南 https://help.clueso.io/mcp-setup。以邀请式的语气而非停止信号结束——比如:请连接 Clueso MCP,然后我就可以立即开始处理您的视频。

本技能假设的内容

源项目必须已有用于分析转录和时间轴的口语音频或旁白;这里的字幕是通过转录现有音频并确定时间轴构建的。

  • 两条字幕路径。 导出可以将基础字幕烧录到文件中,使用默认样式;这涵盖了旁白自身语言的纯字幕。其他语言的翻译字幕,带有品牌样式和控制换行,则通过本技能的方式构建:在每个剪辑上方放置实时时间轴文本元素,与原始音频的实际单词时间戳同步,并支持其他任何文本元素所能获得的相同入场和退出动画。如果用户只需要单语言样式化字幕,兄弟技能 add-ai-captions 对此有深入覆盖。
  • 不创建文件夹。 无法将项目创建或归档到文件夹中;每个语言的副本将位于工作区根目录,与源项目并列。这是预期行为,而非需要规划、提及为限制或道歉的差距。如果用户希望将批次组织到文件夹中,这是他们在 UI 中手动进行的步骤。
  • 不猜测 URL。 报告结果时,仅当导出步骤实际返回链接时才为每种语言提供链接;绝不要根据标题、ID 或工作区名称猜测、构造或重构仪表板或项目 URL。

输入

开始前,向用户获取以下信息,而非自行假设:

  1. 确认仅字幕,非配音音频 - 首先检查这一点,因为它决定了这是否是运行的正确技能。如有任何歧义,明确询问(“仅字幕,还是也需要新的旁白?”)。如果用户实际上希望每种语言都有新旁白,则重定向到兄弟技能 video-dubbing-localization,而不是为错误的请求构建字幕;如果他们希望一次导出大量完全配音的语言变体,那是 batch-multi-language-export。
  2. 源视频 - 是现有的 Clueso 项目(让用户提供名称或链接),还是他们将要上传的原始屏幕录制?相应分支:如果是原始视频,先上传并让其处理;如果只是描述,则按名称查找。
  3. 目标语言 - 例如“西班牙语和法语”。询问实际语言,而非地区名称。
  4. 词汇表术语 - 产品名称、功能名称、品牌术语,这些必须在每种语言中保持不变或使用固定翻译。直接询问;如果没有,从转录中重复出现的名称中提出一个,并在翻译前确认。
  5. 单行或双行字幕 - 询问用户希望的格式。这设定了步骤 3 中使用的硬分段规则以及每个字幕节拍可以容纳多少文本。
  6. 字幕样式偏好 - 字体、颜色、位置(下方三分之一 vs. 底部安全区等),如果用户有品牌要求。否则默认使用工作区品牌和设计指南。如果两者都没有——无从获取工作区指南,且用户未说明偏好——不要默默自行发明一种样式:提供 2-3 种具体的命名方向(例如“干净白色文本配柔和深色药丸背景”、“粗体黄色冲击风格文本配细轮廓”、“极简白色文本,无背景,带微妙投影”),让用户选择。仅当用户表示他们不在乎任何一种方式时,才回退到您自己合理的选择。

工作流程

1. 确认工作区并定位源项目

与用户确认活动工作区,并在需要时切换。如果只有一个工作区(常见情况),则对此保持沉默——不要提及,不要说明外信息如“只有一个工作区,所以我们将在 X 中构建”——无需做出决定,因此无需报告。仅当有两个或更多时才开口,并直接询问选择哪一个。在进行任何更改前,读取源项目的当前结构(剪辑、现有元素、时长)。

2. 从现有音频获取真实转录和单词时间

分析现有的口语音频,为每个剪辑生成带有精确时间戳的词级转录。此时间轴在任务的其余部分保持不变:与配音不同,没有生成新旁白会重置剪辑时长的步骤,因此您放置的每个字幕必须精确跟踪原始音频。如果分析无法产生清晰的时间轴(嘈杂音频、不清晰的语音),直接向用户索要源脚本,而不是猜测。

3. 按目标语言翻译转录,然后分段为字幕节拍

自行翻译转录——没有内置的翻译功能——一致地应用词汇表,使得同一源术语在每个剪辑和每种语言中始终映射到同一目标术语。对于任何词汇表术语或技术短语,将您的翻译回译成英文并与源英文进行差异比较;不匹配意味着该术语在出现在任何其他地方之前需要一个固定的、已确认的翻译。将每行翻译内容按硬规则(而非指南)拆分为字幕节拍:每行最多约 42 个字符,最多两行(或根据输入的偏好为一行),每个节拍显示时间至少约 1.5 秒。不要直接沿用英文换行;不同语言的压缩或扩展方式不同,任何违反这些限制的节拍都需要在继续之前进行拆分或改写。

4. 在复制任何内容前计算每个字幕节拍的时间预算

翻译会改变行长度,但不会改变底层音频时间轴。德语和其他语言对于同一想法可能比英文源明显更长。对于每个字幕节拍,将其翻译后的阅读时间与步骤 2 单词时间戳确定的固定窗口进行比较,并标记任何会溢出该窗口的节拍。在此处解决标记的节拍——收紧翻译或拆分为两个重叠节拍——而不是在放置或验证期间发现溢出。这是工作流程中最高杠杆率的检查:在此处捕获溢出可以避免为每个标记节拍重复复制和放置步骤。

5. 为每种语言分支一个独立副本

在放置任何字幕文本之前,将源项目复制为每个目标语言的独立副本。源项目及其音频从不直接编辑。在向副本放置任何内容之前,确认其音频与源完全匹配(相同时长,无内容丢失或移位),因为损坏或略微偏移的副本会使放置在其上的每个字幕静默地不同步。为每个副本清晰命名(例如“演示 - 字幕 DE”、“演示 - 字幕 JA”)。

6. 放置与原始音频同步的字幕元素

在会话中首次放置之前,检查字幕文本元素实际支持什么(位置、字体、大小、颜色、时间字段),并确认这些选项,而不是假设每种语言的副本行为与您上次处理的相同。对于每种语言副本中的每个剪辑,添加时间文本元素,其开始和结束与步骤 2 中捕获的单词时间戳匹配:不是重新估算的时间轴,而是原始音频的实际时间轴。字幕与其他文本元素一样,因此赋予其真正的入场和退出动画,而非平淡的出现-消失切换;一个匹配的处理方式(逐词或逐行揭示,时间上位于节拍窗口内)是预期的处理方式,而非可选附加项。限制每行字符数和每行保持时间,以便观众能够实际阅读:闪动时间短于平均阅读速度的字幕比没有字幕更糟糕。此时翻译行仍然过长的情况应该很少见,因为步骤 4 已经捕获了大多数溢出;如果有一个漏网,收紧翻译或拆分为两个重叠节拍,而不是挤压或匆忙处理。

7. 一致地应用品牌样式样式

提取工作区的设计和品牌指南(字体、颜色、安全边距约定)并应用于每个字幕元素,除非用户在“输入”中指定了不同的样式偏好。如果没有工作区指南可供提取,且用户从未在“输入”中说明偏好,则这不是根据您自己的判断填补的空白:返回到输入项 6 中提供的选择,获取用户的选择(或他们明确的“你决定”),然后再样式化任何一个字幕元素。保持样式在剪辑之间(同语言内)和跨语言之间一致,除非某种语言(例如需要较大字符集的)需要为可读性进行有意的尺寸调整。

8. 导出前验证

不要在迭代过程中导出。针对每种语言和每个剪辑,渲染第一个和最后一个字幕的静态预览——这是时间同步在剪辑过渡处最常中断的地方——以及任何您沿途拆分或缩短的节拍,并检查实际渲染帧的可读性、与口语音频的正确时间同步、干净的换行,以及入场和退出动画是否在窗口内结束而不切割揭示效果。确认原始音频未被接触。与用户分享审查链接,并在导出任何内容前获得他们的同意。

9. 按语言导出

仅在验证通过且用户批准后,为每种目标语言导出最终的字幕版视频。使用标准默认设置导出(1080p,30fps),除非用户要求特定参数,并关闭导出时的基本字幕选项:翻译后的字幕已作为样式元素放置,再烧录默认样式的字幕会导致重复。此步骤自然可以在多种语言之间批量处理,类似于 batch-multi-language-export 的扇出机制,但底层工作是文本放置和时间轴处理,而非语音生成。将语言列表作为检查清单处理,确保没有遗漏。

回退策略

  • 无法从音频分析获得可用的转录或时间轴 - 直接向用户索要原始源脚本,而不是猜测不清晰的音频。
  • 翻译行仍溢出其时间窗口 - 见步骤 6 的修复(收紧翻译或拆分为两个重叠节拍);步骤 4 的时间预算检查应已捕获大多数此类情况。
  • 词汇表术语在跨剪辑或跨语言中翻译不一致 - 这是翻译步骤的问题,而非平台限制;重新扫描您自己的翻译输出,并在放置更多字幕元素之前修复每个实例。
  • 请求了从右到左的语言(如阿拉伯语、希伯来语) - 向用户标记字幕布局可能需要调整;检查字幕文本元素实际支持 RTL 文本的哪些功能,然后再假设标准的左对齐布局能够正确工作,并且不要承诺保证结果。
  • 用户想要大量快速处理的字幕语言 - 每种语言的机制(复制、翻译、放置、验证、导出)与 batch-multi-language-export 的扇出形状相同;将语言列表作为检查清单处理,但继续使用本技能工作,因为底层任务是文本和时间轴处理,而非语音生成。
  • 用户……

(原文截断,无法继续翻译)

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相关技能