
Translate Subtitles
用户要把视频的转写或字幕翻译成另一种语言、做双语字幕,或更新原文改动后过期的译文时用:逐句翻译写成视频里的译文文档,再放到画面上、按需导出。有媒体时「翻译」默认指字幕翻译。不用...
Install
npx skills add JimLiu/baocut --skill translate-subtitles -g -a claude-code -y- Repository
- JimLiu/baocut1.6k
- Category
- Engineering
- Updated
- 3d ago
- License
- See repository
- Context cost
- Lightabout 1,138 tokens
- Runs scripts
- No, instructions only
What it does
用户要把视频的转写或字幕翻译成另一种语言、做双语字幕,或更新原文改动后过期的译文时用:逐句翻译写成视频里的译文文档,再放到画面上、按需导出。有媒体时「翻译」默认指字幕翻译。不用于翻译与视频无关的文章、文档或一段纯文本;对话里没有视频或字幕、又看不出指的是什么时先问一次。
翻译字幕
观众是在说话人还在说的时候读字幕的:一行很窄,停留两三秒,读完就换下一行。所以成品是字幕,不是散文。你写每句的整句译文;放到画面上时(captions_create)BaoCut 按句把译文对上原文那一句的时间,再按宽度切成字幕条。句子的边界要和原文一一对应,句内的语序要让切开的每一段大致对得上那时说的话,字要少到两三秒读得完。
最容易做坏的样子:译得像一篇好文章。把两句并成一句、把一句拆成两句、为了通顺把后半句挪到前面、把原文的口语写成书面语、每句都比原文长一截。这样的译文单独读很好,放到画面上就对不上声音,观众读到一半字幕已经换了。
用户明确只要翻译一个字幕文件、没有视频时也可以用,做法见最后的「用户明确只要字幕文件时」一节。
1. 先确认
- 目标语言:用 BCP 47 标签(如
zh-Hans、en、ja)。用户没说要译成什么时问一次。原文语言取转写文档的 language。 - 哪份转写:videos_inspect 列出的文档里 kind 为 speech 的那份;有几份时按来源素材(sourceAssetId)对上用户说的那段,对不上就问。
- 转写润色过没有:没有润色过(错字、术语、标点都还是识别出来的样子)时,先按
polish-transcript的做法润色再翻译。润色会改分句与句子指纹:先润色、写回,再读句子来翻译;已有译文的视频润色之后,多数句子要重译。先翻译再润色等于做两遍。 - 已有译文:已经有同一目标语言、sourceDocumentId 指向这份转写的译文(kind translation)时,在它上面改(同一个 documentId),不新建第二份;用户明确要另起一份时才新建。
2. 通读,定下译法
用 documents_read 读转写,translateTo 给目标语言:BaoCut 据此在视频卡与字幕面板显示「正在翻译」,写入这门语言的译文时结束。它带的 translationBasis 给出切好的句子。动笔前先通读全文,定下这几件事,翻译时全文照它们。它们不进成品:
- 内容概要:一两句话说清这个视频讲什么。听岔的词、含糊的指代,都要靠它判断。
- 术语:认出原文里的术语(转写可能把它们拼错,留意同一个术语的几种错写),每个术语全文只用一种译法。
- 专名:人名、产品名、机构名保留并全文一致。
- 用户的术语表:用户点名的译法是硬性要求,逐字照用:不变形、不改拼写、不增减空格、不翻译、不省略;用户只说「最好这样译」的是偏好,保持一致,但可以随上下文让步。每个术语只有一种译法。
- 用户的要求:语气、风格等明确要求的优先级最高,但不违反用户点名的术语译法,也不违反下面的成品规则。
3. 逐句翻译的规则
- 每句翻译一次:不合并、不拆分、不漏、不调序,不把一句挪到别的段落。前后句只是理解上下文用的。
- 先理解整句,再按目标语言自己地道的语序,忠实而自然地翻译。之后的对时会把自然的整句映射到时间上;不要为了跟着原文的分句顺序写出生硬的句子。
- 同样自然的几种译法里,选分句顺序跟着原文的那一种(同声传译的做法):字幕行按原文的语音对时,展开顺序与原文一致的译文,切出来的每一行和正在听到的意思对得上。只在目标语言确实需要时才调序。
- 长度是正确性的一部分,不是风格问题:意思一样、字更少的译文是更好的译文。先删口头填充、多余的连接词、重复的主语和铺垫;两种同样忠实的说法选短的。
- 长度永远排在意思后面。不为了变短删掉必要的意思、否定、限定、数字、名字、语气或语体:这句确实需要那么长,就用那么长。
- 保留每一个明确的因果、转折、条件与结果关系(因为、但是、如果、所以这一类)以及它们管着的内容,哪怕因此变长。切行可以拆开一句完整的译文,但补不回漏掉的分句。
- 每句只给一种译法:不写斜杠分隔或括号里的备选。斜杠只在逐字照抄的术语里出现(例如
/compact这样的命令,不论它来自原文还是用户的术语表)。 - 术语全文一致。
- 遵守目标语言自己的空格习惯:中文、日文的字与字之间不加空格;韩文按词分写,助词、量词贴着前面的词或数字。
- 句子里不加换行或分段标记;只输出译文本身,不带注释、引号或原文。
对比一下(英译中,只是示意):
原文:So what we ended up doing, and this took us a while to figure out, was to let the model review first.
