为什么自动字幕会在不自然的位置断开
自动字幕为什么会在别扭的位置断开,以及 CaptionBolt 如何生成易读、仍可在 Editor 中调整的初稿。

Kevin Li

有件事困扰了我好几个月。
你上传一个视频,说话人说的是:"I went to the grocery store yesterday to buy some eggs."
按固定词数切分的字幕器可能会把它分成这样:
Line 1: "I went to the"
Line 2: "grocery store yesterday"
Line 3: "to buy some eggs"
再读一遍。"I went to the"——the 什么?你的大脑不得不把这个片段暂存在工作记忆里,等待下一行出现。就像读一本书,有人拿剪刀随机在每一行中间剪了一刀。
这就是字幕分段问题。它在很短的演示里容易被忽略,但当一句话在观众还没获得足够上下文前就被切断时,问题会非常明显。这也是我们把字幕当作编辑流程,而不是把转录文字直接贴到视频上的原因之一。
为什么比看起来难得多
按固定词数分段虽然一致,却很容易产生别扭的碎片。标点能提供更合适的候选断点,但语音转文字生成的标点并不总是准确。时间信息也有帮助:明显停顿可能意味着自然断点,短暂换气却未必需要另起一段。
实际要做的是平衡这些信号,并让每段保持舒适的阅读长度。没有一条自动规则能适合所有说话者、语言和表达节奏,所以结果必须始终容易修改。
我们现在怎么做
我们围绕几种简单、可验证的信号改进了分段流程:
优先参考已有标点。 清晰的句末是很强的候选断点,但我们不会假定每个自动生成的标点都正确。
参考明显停顿。 没有标点时,词与词之间较明显的时间间隔可以作为备用断点。
硬性的字幕块长度限制。 当前分段器会在组装后的字幕块达到或超过 60 个字符时切分。标点或停顿仍可能产生很短的片段,因此结果始终可以编辑,而不会被当作无需检查的最终稿。
最终由 Editor 中的人工检查决定。 分段只是初稿。导出前,你可以修改文字,也可以拆分或合并任何不符合说话节奏的字幕块。
前后对比
相同的转录文本,旧算法 vs 新算法:
之前:
"So what I've been"
"doing lately is working"
"on this new project"
"that I'm really excited about"
之后:
"So what I've been doing lately"
"is working on this new project"
"that I'm really excited about"
文字上看,差别似乎不大。在这个例子中,调整后的分组在跟随语速阅读时更容易理解,因为每个字幕块包含了更完整的短语。但这只是一个例子,并不保证同一条规则适合所有说话者或语言。
为什么这个问题容易被忽略
简短演示通常只有几句排练过的台词和少量字幕块。更长、即兴程度更高的口语会出现更多标点、停顿和短语边界组合,因此不自然的断句更容易暴露。
我们在自己的片段中测试 CaptionBolt 时注意到这种模式,随后围绕可以检查的明确信号调整了分段器。当前逻辑依次使用句末标点、超过 300 毫秒的停顿、分句标点,以及 60 字符的硬限制。
所有新上传都会使用这套分段流程。请把结果当作可编辑的初稿:先在 Editor 中检查,再拆分或合并任何不符合说话节奏的字幕块。
相关阅读
如果你想看这个问题在实际使用中的表现,可以读 如何给视频添加字幕 或 如何编辑 SRT 文件。如果你想直接修正字幕,可以使用 自动字幕生成器 和 字幕编辑器。


