字幕格式与编辑工作流
讲解 SRT、VTT、TXT 的区别,时间戳生成原理,转录到裁剪的联动流程,以及精度的局限。
目录
字幕格式:SRT、VTT、TXT 的区别
AudioBuff 可将转录结果导出为 SRT、VTT、TXT 三种格式。三者规范和用途各不相同,根据发布平台或后续工序选用更高效。
| 格式 | 全称 | 时间戳 | 主要用途 |
|---|---|---|---|
| SRT | SubRip Subtitle | HH:MM:SS,mmm(逗号分隔) | YouTube 字幕、导入 Premiere Pro / DaVinci Resolve、通用视频剪辑软件 |
| VTT | Web Video Text Tracks | HH:MM:SS.mmm(句点分隔) | HTML5 video 的 <track> 元素、网页流媒体、需要字幕样式的场景 |
| TXT | Plain 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,作为字幕显示已经足够精确。
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、高通滤波器、压缩器、响度归一化,再进行转录,可以期待改善效果。
技巧总结:① 先用修整功能裁掉不需要的静音及首尾部分;② 如有条件,用高通滤波器(80-120Hz)消除噪音;③ 发话较复杂(语言混合、专业术语、多说话人)时选择高质量模型;④ 结果务必以人工核对与修正为前提使用。
从转录结果导出 SRT、VTT、TXT,还可基于时间戳进行裁剪编辑。