跳到主要内容
SubtitleMatrix

字幕按句拆分

时间轴在某个时间点拆分
或者粘贴字幕文本

选项

在一句结束、下一句开始的地方切开,也会在字幕换行的地方切开,因为字幕文件经常省略句号。真正开启新句的句号、问号或感叹号都算,包括全角的 。!?;像 e.g. this 这样小写延续、像 3.5 这样的小数,以及 Mr. 或 Dr. 这样的常见缩写则不算。每个句子按文本量分得这条字幕时间的一部分。

时间按哪个帧率计算。在格式页面里,这是 MicroDVD 需要的值,因为它把时间存成帧号。在帧率页面里,它是文件当初对应的速率 —— 字幕是按这个版本做的 —— 而页面的第二个框填你要拿它配套的视频速率。常见的有 23.976、24、25、29.97、30、50、59.94 和 60。填错会让整条时间轴偏移;在帧率页面里,偏移是按比例发生的,而不是一个固定的量。

这一页让每条字幕只装一句话。转写导出的文件经常把好几句写进同一条字幕——按说话人轮次或自动分段——这一页会在每句话结束、下一句开始的地方把字幕分开,再按各句携带的文字量分配原来的时间。

没有数字要填。断点来自文字本身:开始新句的句号、问号、感叹号,也包括中文和日文使用的全角版本。换行也算断点,因为字幕文件经常一行一句、省略句末标点——没有这条规则,这类文件会看起来像工具拒绝处理。

判断什么结束一句话是启发式的,而且偏向不动字幕。小写续写(如 e.g. this)、小数点(如 3.5)、以及 Mr.、Dr.、etc. 这类常见缩写不结束句子;两个数字之间的点也永远不算。漏掉一个缩写,最坏是有一条字幕没被分开,你能看见也能手工修;反之过于积极,就会把名字切成两半,而读输出的人无法还原。

全部在浏览器标签页里完成,文件不上传。SRT、WebVTT、ASS、SSA、SBV、SAMI、MicroDVD、TTML、JSON、CSV 都按同一方式读取,条数变化的文件按时间轴顺序从 1 重新编号。

示例

一条字幕里的三句话

输入

1
00:00:01,000 --> 00:00:04,000
He left. She stayed. We waited.

输出

1
00:00:01,000 --> 00:00:01,828
He left.

2
00:00:01,828 --> 00:00:02,966
She stayed.

3
00:00:02,966 --> 00:00:04,000
We waited.

三秒按 8、11、10 字符的比例分成 828、1138、1034 毫秒。拆分的目的就是阅读速度,所以最长的一句占用屏幕最久是预期结果,不是算术的副作用。

不结束句子的那些点

输入

1
00:00:01,000 --> 00:00:03,000
Mr. Smith left at 3.5 seconds.

2
00:00:05,000 --> 00:00:08,000
Dr. Jones arrived. The room was full.

输出

1
00:00:01,000 --> 00:00:03,000
Mr. Smith left at 3.5 seconds.

2
00:00:05,000 --> 00:00:06,500
Dr. Jones arrived.

3
00:00:06,500 --> 00:00:08,000
The room was full.

第一条字幕里有三个点,没有一个结束句子,于是整条返回。第二条有两个真正的句末,变成两条,Dr. 也再次被放过。这一对就是同一个文件里的完整判断:缩写表覆盖什么,这里就发生什么。

常见问题

按句拆分怎么判断一句话在哪里结束?

它寻找开始新句的句号、问号、感叹号,以及中日常用的全角版本,并把字幕内部每个换行也当作句末。三种情况会让点不算数:后面跟小写字母(如 e.g. this)、两边都是数字(如 3.5)、以及词在缩写表里——表中有 Mr.、Mrs.、Dr.、Prof.、St.、Jr.、Sr.、vs.、etc.、fig.、no.、vol.、approx.、inc.、ltd.、co.、dept.、a.m.、p.m.、u.s.、u.k.,以及 J. 这样的单字母。

没有标点、只按行写的字幕会被按句拆分吗?

只看那里是否换行。换行算句末,所以一行一句写成的文件即使完全没有标点也能拆开,多数转写导出正是这样。把两句话挤进一行、中间又没有标点的文件,工具无从下手,那条字幕会原样返回——报告会说有多少条无法拆分,而不是假装做了什么。

按句拆分和按标点符号拆有区别吗?

有,遇到引号和括号时区别明显。句末标点后的右引号或右括号跟在前一句上——He said "Stop." And left. 在右引号之后分,而不是在句号与引号之间。数字里的点、首字母缩写里的点根本不是句末,所以 Dr. Jones arrived at 3.5 p.m. 这样的字幕会一直保留到下一个真正的句末或换行。

拆出来的句子会沿用原来的时间吗?

不能。原文件只记录整条字幕何时在屏,没有任何信息说明区间内部哪一刻从一句换到下一句。于是各段按字符数占比分得时间,用来代替阅读速度:文字多一倍的一句停留约一倍,第一段从原字幕开始处开始,最后一段在它结束处结束。

能用字幕按句拆分把文稿变成字幕吗?

可以,前提是文稿已经是带时间的字幕文件。这一页处理字幕条,不是散文;纯文本没有可分的边界,也没有时间可分。它不会为从未有过时间的文件凭空造出时间轴。请先把文件作为 SRT 导入或从纯文本转换,再在这里拆分,得到的每段一句话,之后再处理时间。

按句拆分后原来的样式还在吗?

样式、位置和卡拉 OK 计时属于它们被写在的那条字幕,所以第一段保留,新建的各段没有。这在 ASS 和带定位的 WebVTT 上看得见,报告会计数有多少新字幕没有格式。对每条都带重样式的文件,在字幕编辑器里手工分可能比整份跑一遍更不破坏格式。

相关工具