去除字幕斜体标签
或者粘贴字幕文本
选项
一个框,七个选项,每个选项都有自己的页面。斜体、粗体、下划线和颜色只去掉对应的那一种区间,行内其他样式不动。全部 会去掉工具建模的所有区间 —— 那四种加上卡拉 OK 计时 —— 文本里的其他内容保持原样。HTML 做同样的事,并额外清掉解析时因为不被建模而留在文本里的尖括号标记,比如 VTT 的 <v Bob> 说话人标签和 <c.className>。ASS 则改为清掉覆写块,即解析时未能识别的 {...} 代码,比如 {\fad(500,500)}。这一页会把框填成标题里点名的选项,并且不列出其他选项。
时间按哪个帧率计算。在格式页面里,这是 MicroDVD 需要的值,因为它把时间存成帧号。在帧率页面里,它是文件当初对应的速率 —— 字幕是按这个版本做的 —— 而页面的第二个框填你要拿它配套的视频速率。常见的有 23.976、24、25、29.97、30、50、59.94 和 60。填错会让整条时间轴偏移;在帧率页面里,偏移是按比例发生的,而不是一个固定的量。
这一页删掉字幕文件里的每一个斜体区间,文字一个字符不动。丢进来、跑一遍,cue 文字按写入的样子回来——同样的拼写、标点、换行、时间码——只是斜体标记没了。它既不是转换也不是重写:唯一改变的是文件说哪些文字应该倾斜。
斜体几乎是每份字幕都用的一种行内样式,因为它承载含义而不是装饰。画外音、电话里的声音、旁白、外语词、片名卡与内心独白按惯例都用斜体。这也是它与去粗体、去下划线分开的原因:正常文件上你要拿走其中一种而保留其余,一个全删的页面做不到。
不论文件怎么写,删除方式相同:SRT、WebVTT、SBV、SAMI 写 `<i>` 与 `</i>`,ASS 与 SSA 写 `{\i1}` 与 `{\i0}`,TTML 写一个带字体样式的 span。这些是同一件事的不同语法,文件按它真实的格式读入,所以跑起来都一样。刻意留下的是 WebVTT 的 `<c.lawyer>` 这类类标签:那是页面自己样式表里的名字,不是斜体区间,工具从没建模过它——扫掉它们的页面标题里写明了。
文件不上传,在浏览器标签页里读写,所以不能离开机器的素材留在机器上;本来没有斜体的文件逐字节返回。 产物与输入只差标签字符。
示例
SRT 文件里的画外音
输入
1
00:00:01,000 --> 00:00:02,000
<i>A voice off screen.</i> The door opens.
2
00:00:03,000 --> 00:00:04,000
<i>I can hear you.</i>
输出
1
00:00:01,000 --> 00:00:02,000
A voice off screen. The door opens.
2
00:00:03,000 --> 00:00:04,000
I can hear you.
两个斜体区间都走了,包括覆盖整条 cue 的那个,而第二条 cue 的文字不受影响。斜体区间紧挨着同一行里的普通台词时,两侧的词用一个空格收拢,这正是读者一直看到的样子。
同时带类标签的 WebVTT 文件
输入
WEBVTT
00:00:01.000 --> 00:00:02.000
<c.lawyer><i>The defendant was not present.</i></c>
输出
WEBVTT
00:00:01.000 --> 00:00:02.000
<c.lawyer>The defendant was not present.</c>
斜体走了,`<c.lawyer>` 留着。类名不是样式区间——它在页面的样式表里被查表,`<c.lawyer>` 在那里可以意味着任何东西。留下它是对“工具没建模过的标签”的诚实处理;扫掉这类标记的是去 HTML 标签那一页。
常见问题
斜体在字幕里通常表示什么?
画外的人声、电话另一端、旁白、外语词、片名卡与内心独白。这些含义是读者从斜体里读出来的,所以删掉它可能删掉场景说过的一部分信息——先确认文件的惯例,再决定。
斜体在每种格式里怎么写?
SRT、WebVTT、SBV、SAMI 是一对 `<i>` 标签;ASS 与 SSA 用 `{\i1}` 打开、`{\i0}` 关闭;TTML 是一个字体样式为斜体的 span。页面按真实格式读入,不管用哪种语法都能找到区间;只是看起来倾斜、没有区间的文字不会被碰。
去掉斜体会改时间码或文字吗?
都不会。页面只重写文字周围的标记,每条 cue 的起止保持毫秒值,顺序是文件自己的,条数不变;文字除标签字符外逐字节相同,标点不加不减,两行的 cue 之后还是两行。
<c.lawyer> 类标签为什么没被删?
因为类名不是斜体区间。它说明文字属于某个命名分组,而分组长什么样由文件里没有的样式表决定;工具从没建模过它,于是留在文字里而不是删掉读不懂的东西。要扫掉它,用去除字幕 HTML 标签那一页。
只删部分 cue 的斜体可以吗?
这一页处理整份文件,每条 cue、每一行。需要保留一部分时,实际路线是跑完把标签加回想保留的那几条,或者先拆开文件、只对其中一份跑。
本来没有斜体的文件跑一遍会怎样?
逐字节返回,粗体留在原处。在一份你怀疑有斜体却看不出来的文件上,这是最便宜的确认方式;它也不会顺手把粗体带走。