AudioBuff

字幕格式与编辑工作流

讲解 SRT、VTT、TXT 的区别,时间戳生成原理,转录到裁剪的联动流程,以及精度的局限。

目录

字幕格式:SRT、VTT、TXT 的区别

AudioBuff 可将转录结果导出为 SRT、VTT、TXT 三种格式。三者规范和用途各不相同,根据发布平台或后续工序选用更高效。

格式全称时间戳主要用途
SRTSubRip SubtitleHH:MM:SS,mmm(逗号分隔)YouTube 字幕、导入 Premiere Pro / DaVinci Resolve、通用视频剪辑软件
VTTWeb Video Text TracksHH:MM:SS.mmm(句点分隔)HTML5 video 的 <track> 元素、网页流媒体、需要字幕样式的场景
TXTPlain Text无(仅正文)会议纪要草稿、转为博客文章、作为 AI 摘要输入、可检索的存档

SRT 与 VTT 的选择

SRT 和 VTT 外观非常相似,但存在明确区别。SRT 诞生于 1990 年代,最初是 DVD 抓取工具 SubRip 的格式,因其简洁而被广泛采用。VTT 是 W3C 制定的 Web 标准,是唯一能被 HTML5 `<track>` 元素直接读取的字幕格式。

实用选择建议:导入视频剪辑软件(Premiere Pro、Final Cut Pro、DaVinci Resolve、iMovie)时选 SRT;在网站中嵌入视频并显示字幕时选 VTT;上传 YouTube 时 SRT 或 VTT 均可。若要粘贴到 Notion 或 Google Docs 作为文字内容使用,TXT 最为合适。

SRT 示例
1\n00:00:00,000 --> 00:00:03,500\n大家好,今天的主题是…
VTT 示例
WEBVTT\n\n00:00:00.000 --> 00:00:03.500\n大家好,今天的主题是…
时间戳精度
两者均为毫秒级精度(小数点后 3 位)。Whisper 的输出粒度约为 20ms,作为字幕显示已经足够精确。
tip

VTT 文件必须以 WEBVTT 作为头部标识行。开头没有 `WEBVTT` 的 VTT 文件在许多播放器中会加载失败。AudioBuff 导出 VTT 时会自动添加该头部。

时间戳生成原理

Whisper 内部会将音频分割为 30 秒的片段处理(因模型设计上编码器能接收的最大长度为 30 秒)。为避免片段边界处的发话被截断而导致误识别,AudioBuff 设置了 5 秒的重叠(stride)。

每个片段推理得到的 token 序列和时间戳,最终会在合并重叠部分的同时整合为一条完整时间线。这一整合过程被称为"finalize"阶段,也是 UI 上进度条在 90% 附近停顿、随后再从 90% 推进到 100% 这一特殊行为的原因。

进度条的设计如下:0-90% 根据 token 生成数量估算(约每分钟 200 个 token 为基准),90-95% 是 finalize 阶段基于时间的缓慢推进,100% 为完成通知。这样设计可以在 token 持续生成期间反映真实进度,即使进入内部处理阶段,界面也不会显得卡死。

长音频也可一次性处理
通过分块 + 重叠机制,Whisper 可以突破 30 秒的限制处理任意长度的音频。AudioBuff 即使面对一小时以上的录音,也能作为单一转录任务执行。
finalize 阶段的体感
token 生成完成后,时间戳还原与片段间合并需要几秒到几十秒不等。音频越长,finalize 耗时通常也越长。

转录到裁剪的联动

AudioBuff 的一大特色工作流,是可以直接从转录结果的每个片段创建"待裁剪区间"。点击文本右侧的剪刀按钮,该片段的起止时间就会被登记为裁剪(cut),并在之后导出音频时移除对应区间。

这一设计是为了将"边读转录结果边标记不需要的部分(重复措辞、口头禅、跑题内容),最终反映到音频上"这一播客剪辑中常见的工作,在同一文件内完成。常规工作流通常需要"转录 → 判断如何剪辑 → 在视频剪辑软件中裁剪"这样在多个工具间往返的过程,而 AudioBuff 因为文本与音频绑定在同一个项目中,无需在工具间来回切换。

裁剪区间是基于修整后的时间线记录的。高效的流程是:先用修整功能大致裁掉范围,执行转录,再边看结果边追加细致的裁剪。

去除口头禅
"呃"、"那个"、"嗯"等口头禅常被识别为独立片段,只需对这些片段点击剪刀移除,即可让节奏更自然流畅。
撤销裁剪
已裁剪的片段可通过撤销图标恢复原状。在导出之前可以反复修改。
导出时的行为
点击"开始处理"后,会在修整范围内排除已登记为裁剪的区间,并以所选的输出格式(MP3 / WAV)导出音频。EQ、压缩器、响度归一化也会应用于裁剪后的音频。

转录的局限与技巧

Whisper 作为通用语音识别模型精度很高,但仍存在一些局限。了解这些局限并相应调整输入音频,可以明显提升识别结果的精度。

不支持说话人分离(diarization)
Whisper 本身无法识别"是谁在说话"。即使转录多说话人的音频,所有发话也只会按时间顺序排列,不会标注"甲"、"乙"之类的说话人标签。如需说话人分离,需要另外配合 pyannote.audio 等 diarization 模型使用。
静音时的幻觉输出
面对较长的静音区间,有时会生成训练数据中常见的字幕套话(例如"感谢观看"、"我们下期再见"等)。事先应用 AudioBuff 的"压缩静音"功能,可以抑制此类误生成。
专有名词、专业术语
人名、公司名、地名、技术术语、最新流行语等是典型的易误识别内容。高质量模型(large-v3-turbo)明显强于标准模型,但仍无法做到零误识别。现实的做法是配合文本编辑软件的后期处理(批量替换)。
输入音质的影响
混响、噪音、极端的音量差异、爆音都会显著降低精度。尤其是户外录音或手机内置麦克风录制的音频,误识别率会明显上升。先应用 AudioBuff 的 EQ、高通滤波器、压缩器、响度归一化,再进行转录,可以期待改善效果。
tip

技巧总结:① 先用修整功能裁掉不需要的静音及首尾部分;② 如有条件,用高通滤波器(80-120Hz)消除噪音;③ 发话较复杂(语言混合、专业术语、多说话人)时选择高质量模型;④ 结果务必以人工核对与修正为前提使用。

体验字幕生成

从转录结果导出 SRT、VTT、TXT,还可基于时间戳进行裁剪编辑。