去除字幕下划线标签
或者粘贴字幕文本
选项
一个框,七个选项,每个选项都有自己的页面。斜体、粗体、下划线和颜色只去掉对应的那一种区间,行内其他样式不动。全部 会去掉工具建模的所有区间 —— 那四种加上卡拉 OK 计时 —— 文本里的其他内容保持原样。HTML 做同样的事,并额外清掉解析时因为不被建模而留在文本里的尖括号标记,比如 VTT 的 <v Bob> 说话人标签和 <c.className>。ASS 则改为清掉覆写块,即解析时未能识别的 {...} 代码,比如 {\fad(500,500)}。这一页会把框填成标题里点名的选项,并且不列出其他选项。
时间按哪个帧率计算。在格式页面里,这是 MicroDVD 需要的值,因为它把时间存成帧号。在帧率页面里,它是文件当初对应的速率 —— 字幕是按这个版本做的 —— 而页面的第二个框填你要拿它配套的视频速率。常见的有 23.976、24、25、29.97、30、50、59.94 和 60。填错会让整条时间轴偏移;在帧率页面里,偏移是按比例发生的,而不是一个固定的量。
这一页删掉字幕文件里的下划线区间,不动文字、时间码,也不动同一行上的其它样式。丢进来、跑一遍,文字按写入的样子回来,只是下划线标记没了——也只有下划线标记,所以同时是斜体的一行出来仍然是斜体。
下划线是三种常见强调样式里最不装饰的一种,它通常意味着有人在给文件做标记,而不是在设计什么。法务字幕员给当事人姓名加下划线,医疗文件给药名加,译者给需要再核一遍的术语加,审校给时间存疑的词加。这些都是文件上的工作笔记,文件一交付它们就没用了——读者分不清一个加了下划线的词和一个被标记的词。
反过来也值得在跑之前说:下划线没了,文件里再没有任何地方记录哪些词被标过。需要那份清单就先从文件里抄出来。下划线还特殊在有些交付规范直接禁止它,因为下划线会与字母混在一起,这正是工作笔记带进成品要冒的险。
SRT、WebVTT、SBV、SAMI 写成 `<u>` 与 `</u>`,ASS 与 SSA 写成 `{\u1}` 与 `{\u0}`,TTML 写成带下划线装饰的 span。文件不上传,在浏览器标签页里读写;本来没有下划线的文件逐字节返回。
示例
为了交付被加上下划线的人名
输入
1
00:00:01,000 --> 00:00:02,000
The <u>defendant</u> was not present.
2
00:00:03,000 --> 00:00:04,000
<u>Exhibit B</u> is a letter.
输出
1
00:00:01,000 --> 00:00:02,000
The defendant was not present.
2
00:00:03,000 --> 00:00:04,000
Exhibit B is a letter.
被划线的词保留拼写与在句中的位置,走的只是标签对。产物里看不出 `defendant` 与 `Exhibit B` 曾经被标过,这既是这一趟的目的,也是跑之前该确认的事。
ASS 文件里下划线紧挨着斜体
输入
[Script Info]
Title: underline
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,0,0,0,0,100,100,0,0,1,1,1,2,10,10,10,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,{\u1}hello{\u0} {\i1}there{\i0}
输出
[Script Info]
Title: underline
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,0,0,0,0,100,100,0,0,1,1,1,2,10,10,10,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,hello {\i1}there{\i0}
同一种删除在 ASS 语法里:`{\u1}` 与 `{\u0}` 消失,紧挨着的斜体对原样保留。两个区间在行上相邻而只有一个被要求去掉,这是工具要在真实文件上做对的情形。
常见问题
下划线在每种字幕格式里怎么写?
SRT、WebVTT、SBV、SAMI 是一对 `<u>` 标签;ASS 与 SSA 用 `{\u1}` 打开、`{\u0}` 关闭;TTML 把文字包进带下划线装饰的 span。文件按真实格式读入,所以一份实际是 WebVTT 的 `.srt` 文件照样能找到下划线。
去掉下划线会改文字或时间码吗?
都不会。页面只重写标记:起止保持毫秒值、顺序是文件自己的、条数不变;除标签字符外文字逐字节相同,没有词被重新拼写,也没有行被合并。
哪些词被下划线标过,还能查回来吗?
不能,这是跑之前唯一要想清楚的事。下划线是“这个词被标记过”的唯一记录,删掉之后文件不再区分被标记的词与普通词。若标记有意义——审校的待查术语、字幕员的当事人名单——先抄出来再跑。
交付规范为什么常禁止下划线?
因为下划线会贴在字母上,被读成字母的一部分:下伸部会与线相撞,小字号下一个划线的字符很容易被看成另一个字符。对一份只读一遍、还要快速读的媒介来说这是实打实的代价。
同一行上的粗体、斜体、颜色会一起没吗?
不会。每种样式是独立的区间,一行既划线又加粗,出来是加粗而不划线;斜体区间里的下划线也只删到文件给的范围为止。要全部一起删,用清除字幕全部格式那一页。
只清部分文件可以吗?
这一页处理整份文件。只有几条 cue 需要清理时,可靠的做法是先拆开文件、只对需要的那部分跑,或者跑完再把标签加回想保留的 cue。