首页 → 博客 → 从视频和网络研讨会自动生成 SRT 与 VTT 字幕
从视频和网络研讨会自动生成 SRT 与 VTT 字幕
字幕能提高完播率,让内容在静音状态下也可用,还能帮搜索引擎理解视频讲了什么。手工打字幕要花好几个小时——下面讲如何自动拿到现成的 SRT 和 VTT 文件。
SRT 和 VTT 的区别
两者都是带时间轴的文本,差别很小:
- SRT 接受度最广:视频平台、剪辑软件和几乎所有播放器都能读。时间用逗号:
00:00:12,500。 - VTT(WebVTT)是 HTML5 播放器的网页标准,支持样式和位置控制。时间用点:
00:00:12.500。
规则很简单:上传到视频平台用 SRT,自己网站上的播放器用 VTT。
第一步:从视频里提取音轨
没必要上传整个视频文件——只要音轨就够,体积小几十倍。一条命令搞定:
ffmpeg -i webinar.mp4 -vn -acodec libmp3lame -q:a 5 webinar.mp3
转换之后,一小时的网络研讨会大约 25 MB,正好在请求体积限制之内。
第二步:一个请求拿到字幕
格式由 response_format 指定。服务返回的就是现成文件,不需要你自己把文本切成字幕条:
from openai import OpenAI
client = OpenAI(base_url="https://voicesscribe.com/v1", api_key="your key")
with open("webinar.mp3", "rb") as f:
srt = client.audio.transcriptions.create(
model="whisper-1", file=f, response_format="srt",
)
open("webinar.srt", "w", encoding="utf-8").write(srt)
要用在网页上,只改一个词:
vtt = client.audio.transcriptions.create(
model="whisper-1", file=f, response_format="vtt",
)
在终端里同样简单:
curl https://voicesscribe.com/v1/audio/transcriptions \
-H "Authorization: Bearer your key" \
-F file=@webinar.mp3 -F model=whisper-1 -F response_format=srt \
-o webinar.srt第三步:把字幕挂到播放器上
在 HTML5 里,视频标签内加一行就够:
<video controls src="webinar.mp4">
<track kind="subtitles" src="webinar.vtt" srclang="zh" label="中文" default>
</video>
视频平台则在单个视频的字幕栏里上传 SRT 文件——剩下的只是校对识别出来的文字。
长录音:如何绕开体积限制
如果录音放不进 25 MB,就切开处理,再按时间偏移把字幕拼回去:
ffmpeg -i long.mp3 -f segment -segment_time 1800 -c copy part%03d.mp3
每一段单独提交,合并时给时间轴加上该段的起始偏移。半小时一段的话,这只是几行代码,限制也就不再碍事了。
如何让字幕更好读
- 把术语喂进去。产品名和讲者姓名放进
prompt,字幕里就会写对。 - 指定语种,如果事先已知:
language="zh"能消除偶发的自动判定错误。 - 人工校对。自动字幕省下的是几个小时,但标点和术语的最后一遍还是人眼更靠谱。
- 需要自定义断行规则时用 verbose_json:里面有带精确起止时间的分段。
用你自己的录音试一试。 注册只需一分钟,免费额度足够判断识别质量。
免费获取 API 密钥常见问题
可以直接上传视频文件吗?
更实际的做法是先提取音轨:体积小几十倍,上传也快得多。一条 ffmpeg 命令就能完成。
生成的字幕能用在视频平台上吗?
可以,SRT 格式无需转换即可上传到主流视频平台。
超过一小时的录音怎么办?
切成 20 到 30 分钟一段,分别转录,再按时间偏移把字幕合并起来。
时间轴准不准?
对观看来说足够准:字幕条与语音对得上。剪辑中要求逐帧精确时,通常还需要手工微调。
支持其他语种的字幕吗?
支持,可识别 99 种语言且自动判定语种。双语录音建议分段分别处理。
相关阅读
- 如何把会议录音转成可用的会议纪要 — 把 Zoom、Teams 和 Google Meet 的录音变成可检索的文字和结构化纪要:文件在哪里、如何转录、如何提取决议和待办事项。
- 播客转录:节目笔记、章节和可被搜索的单集页面 — 如何自动转录播客单集,并把文字变成节目笔记、章节时间轴和搜索引擎读得懂的页面。附代码示例与发布清单。
- 如何把通话录音转成文字 — 分步教程:几分钟内通过 API 把电话录音转成文字,包含 Python 和 C# 代码示例、响应格式说明,以及常见错误的处理办法。