- name
- polish-transcript
- description
- 视频的转写要校对或润色时用:改错字与误听,统一术语与专名,补正标点与分句,写回同一份转写,词的时间不变。做译文或建字幕层之前先做这一步。默认不改语法、不删口癖、不精简;去掉口癖与停顿是剪辑,不在这里做。不用于润色与视频无关的文章或纯文本。
- version
- 1.0.0
# 润色转写
转写是后面一切的底稿:句子怎么切、译文怎么对、字幕怎么断,都从它来。润色是从头到尾顺读一遍的校订,不是改写:修识别错误、补正标点,说话人原来怎么说就保留怎么说。
## 1. 什么时候做
- **在翻译与建字幕层之前**。句子由标点切出来,改标点就会改分句;分句一变,译文记下的句子指纹就对不上了。所以先润色、写回,再重新 documents_read 拿新的句子去翻译。
- 这个视频已经有译文时,润色之后多数句子要重译。先告诉用户这一点,再动手。
- 用户说不要润色,或者这份转写已经润色过(用户改过、这个会话里做过)时跳过。
## 2. 只能一词对一词地改
用 documents_read 读 kind 为 speech 的转写(有几份时按来源素材对上用户说的那段)。正文的 words 是一串词,每个词有 id、开始与结束时间、说话人和 text;标点贴在词的 text 上:句末标点在一句最后那个词的末尾,开引号、开括号在第一个词的开头。
写回时只改词的 text:
- 每个词的 id、时间与说话人原样保留;词的个数与顺序不变;正文里其他字段照读到的原样写回。
- **能做**:把一个词的文本换成正确的写法(错字、同音或近音误听、拼写、大小写、专名);在词的 text 前后加、改、删标点;把一个词里明显连写在一起的外语短语按词补回空格(仍在这个词的 text 里,不翻译)。
- **不能做**:合并或拆分词,增加或删除词,调换词序,把文本挪到别的词上,把词的文本改成空串。
- 一个错误跨了几个词时,能把正确写法分摊到这几个词上、每个词仍有文本,就分摊(例如逐字切分的转写里「深」「度」「雪」「洗」改成「深」「度」「学」「习」,按词切分的转写里 `Chat` `GBT` 改成 `Chat` `GPT`)。分摊不了(要删一个词或多出一个词才对得上)时不要硬改,在交付说明里列出这一处和正确写法。
## 3. 先通读,定下底本
动笔前通读全文,定下这几件事,全文照它们改:
- **背景参考**:先 videos_inspect 看来源素材的 `assets[].source`(从链接导入的素材才有):标题、发布者(`uploader`)、简介(`description`)、作者的章节。它是背景参考,不是文稿内容,也不是绝对权威:里面人名、机构、产品、术语的准确写法是强校正提示,只在说话人明显在说它时才照它改;绝不因为简介里有就往文稿里加词、加事实。用户点名的写法仍是硬性要求,优先于它。
- **内容概要**:一两句话说清这个视频讲什么,用来判断听错的词本来是什么。
- **术语与专名**:认出同一个术语、人名、产品名的几种错写,全文统一成一种正确写法。用户点名的写法是硬性要求,逐字照用:不变形、不改拼写与大小写、不增减空格。上下文不能确定时不猜,保留原样。
- **原文语言**:取转写文档的 language。润色后的文本仍是这种语言,绝不翻译;说话人夹用的别种语言的词保留原样,也不把原文语言的词换成别的语言。
## 4. 默认做的三件事
1. **错字与误听**:明显的识别错误、拼写、同音或近音误听、错分的词界。要有上下文的证据才改;口语里不通顺、不规范的说法本身不是识别错误,代词、时态和口语语法照原样留着。
2. **术语与专名**:按第 3 节统一。
3. **标点与分句**:按意思补正标点,每说完一个完整的意思,就用这种文字自己的句末标点收住。
- 不在悬着的连词、介词或没说完的引导语后面断句(例如 `because.`、`of.`、`当。`、`和。`):把它接到后面的分句上,意思说完再断。
- 停顿只是参考:停顿常在句子中间,按意思断句,不因为停顿就断。
- 一长段话不要一直用逗号连下去:没有句末标点的长段会被硬切成很长的句子,字幕和译文都会难读。
- 不留冲突的相邻标点(例如 `。,`、`,。`、`,,`、`.,`),只保留一个表达边界的。
- 标点与空格按这种文字自己的习惯:中文、日文用全角标点,字与字之间不加空格;拉丁、西里尔等字母文字用半角标点,标点贴着前一个词;其他文字按它通行的书写规范,拿不准时沿用转写里已有的标点风格,不套用别种文字的标点。
## 5. 默认不做的事
- **改语法**(主谓一致、冠词、时态等):用户要求时才做,只修明确的错误,不改意思和语气;需要增删词才能改通的不改,列在交付说明里。
- **删口癖、精简啰嗦**:要删词,转写里做不到。用户想让视频里没有口癖、长停顿,那是剪辑:按剪口播(`talking-head-cut`)的做法,或用 edits_apply 的 proposeCuts 提出剪辑,剪时间线,不改转写。
- 改写、总结、调序、补充内容、翻译:都不做。
## 6. 写回
- 在读到的正文上代入改好的 text,用 documents_put 写回同一份转写(document 给它的 documentId,kind 不变),一次写完整份。
- 版本冲突说明用户刚改过:重新读,在新的正文上重做,不要用旧正文覆盖用户的修改。
- 写好后再 documents_read 一次,看 translationBasis 里切出的句子:没有整段连成一句,也没有在半句话处断开;不对就再改标点。
## 7. 说话人实名
转写区分了说话人时,正文的 `speakers[]` 给每位说话人一个 id 和 name。自动区分只给占位名,润色写回之后,最后一件事是给占位名的说话人换上真名。
- **占位名**:转写流程自动起的「说话人 n」及它在别的界面语言里的对应(`Speaker 1`、`Sprecher 1`、`Parlante 1` 这类「说话人 + 编号」)、识别服务给的编号标签(`SPEAKER_00`、`S1`、`spk-1`),以及名字为空或等于 id 的(大小写不论)。别的名字都是用户或别人起的,不动。
- **什么时候做**:说话人多于一位、还有占位名时必做;只有一位说话人、或已经没有占位名时跳过。第 1 节说的跳过润色时,这一步照样做:它只改名字,不碰正文。证据能认出来时,不要带着占位名交付多人的视频。
- **证据从哪来**:文稿开头约 400 词;每位说话人第一次开口前约 60 词、开口后约 120 词;来源素材的标题、发布者与简介(第 3 节);画面帧上的姓名条或字幕:先用这个任务里已经取过的帧;元数据点出了参与者、文稿里却对不上声音时,用 videos_frames 取开头一两分钟和每位说话人首次开口处的几帧看姓名条。姓名条要明确标着这一位在说话,画面上随便出现的名字不算。
- **什么算证据**:自我介绍(「我是……」「my name is …」);对方引介(「今天请到了……」「welcome, …」);被点名之后紧接着这一位的回应;签名式的收尾;来源元数据唯一地指明了其中一位。元数据里列出几位嘉宾,但分不出哪个声音是谁时,还要文稿里的证据。参与者名单、发言顺序、说话人编号、话题本身都不算证据;反过来,标题或简介点出了参与者时更要做这一步:逐位找证据,把名字对到声音上。
- **名字怎么写**:写材料里实际用的形式,通常是全名,没有全名时用出现的那种(比如只有名);保留原来的文字与拼写,不翻译、不音译;不加头衔、敬称、机构、括号、引号或说明;不超过 40 个字符。材料里没有名字、但明确说了角色(某个节目的主持人、采访者、旁白)时,可以用简短的角色标签;不能只凭对话的样子编一个角色。
- **不猜**:拿不准就保留占位名。猜错比留着更糟:错名会出现在每一条字幕和每个导出的文件里。
- **一人几个 id**:自动区分可能把同一个人拆成几个 id。每个 id 各有证据时给它们同一个名字;不合并 id。
- **写回**:用 documents_put 写回同一份转写,只改 `speakers[].name`,words 与其他字段照读到的原样;几位一次写完。版本冲突时照第 6 节重新读。
## 8. 交付
- 说明:改了多少处;统一了哪些术语与专名;补了哪些分句。
- 列出因为只能一词对一词而没改成的地方(原文、应该是什么)和拿不准没改的地方。
- 说话人:给谁实名了、凭的什么证据(一句话);哪些没有证据、仍是占位名。
- 接下来要翻译时,用这次写回之后的转写重新 documents_read。
## 9. 自查
- 词的个数、id、时间与说话人和读到的一致,没有空文本的词。
- 没有翻译、改写、调序或删掉内容;默认没有改语法、没有删口癖。
- 术语和专名全文一致,用户点名的写法逐字出现。
- 每句以句末标点收住,没有悬空的断句,没有冲突的相邻标点;标点与空格合这种文字的习惯。
- 多位说话人时没有能认出却还留着的占位名;每个写上的名字都有证据,没有头衔与括号;用户起的名字没被改。
Ver no GitHub