0x00 背景
此前拿到一批视频学习材料,但因为是国外友人制作的,纯英文讲解、且没有英文和中文字幕。
对于母语是中文的我而言,虽说不至于看不懂,但因为是没接触过的知识,缺少字幕让我学起来很艰涩。尤其是涉及专业术语或地方口音的内容,时常会听岔了、甚至以自以为正确的想法代入,对学习新知识十分不利。
因此我萌生了制作双语字幕的念头。
0x10 生成英文字幕
0x11 语音识别
由于我经常使用剪映剪辑视频,故而知道剪映中内置了 “识别字幕” 的功能,它能够自动识别视频中的语音,而且完全免费。
因此生成英文字幕并不是特别困难的事情:
- 将视频文件导入剪映
- 把视频拖动到工作区
- 在工作区选中视频,右击,选择 “识别字幕/歌词”
此时剪映会分析视频的音轨、识别其中的语音并转换成文字显示在视频相应的时间点上,可以对字幕格式做出调整。
这一步是生成准确字幕的关键。
0x12 字幕提取
随后把字幕文件提取出来:
- 点击右上角的 “导出”
- 输入字幕文件名称、选中导出路径
- 取消 “视频导出” 和 “音频导出” 的勾选
- 仅仅选中 “字幕导出”,格式选择 SRT
SRT 是带有时间格式的字幕文件,方便重新导入字幕时,能够自动定位到字幕的位置。
0x13 字幕格式
对于 SRT 格式的字幕文件,其基本结构如下:
1
00:00:28,166 --> 00:00:30,466
this is first line
2
00:00:30,666 --> 00:00:34,466
this is second
在每个字幕单元中:
- 开始于一个单元序号
- 后面跟着时间码,显示字幕的起止时间
- 然后才是对应的字幕文本
因此如果需要改成中文字幕,只需要替换对应的字幕内容文字即可。
但是考虑到识别语音和翻译中文时可能存在偏差,我最终决定在英文字幕前面插入新行、做成中英双语字幕,方便与视频内容进行对照:
1
00:00:28,166 --> 00:00:30,466
这是第一行
this is first line
2
00:00:30,666 --> 00:00:34,466
这是第二行
this is second
0x20 字幕翻译
现在的问题是如何得到中文字幕。
虽然市面上已经有不少字幕翻译工具或服务,但我不希望写代码抽取字幕内容、翻译后再放回去,“零开发”能选择的工具就相对比较少了。
0x21 ChatGPT 翻译
我首先想到的是给 ChatGPT 翻译,ChatGPT 翻译质量是最高的,但问题在于它翻译速度太慢,而且翻译百来段后、因为受版权问题制约就不再继续翻译了:
0x22 网易见外
碰巧我想起此前使用网易见外做过语音识别,登录后发现,果然也支持字幕翻译:
- 点击右上角的 “新建项目”
- 选择 “字幕翻译”
- 上传刚刚从剪映导出的 SRT 英文字幕文件
- 选择 “英译中”
提交后会生成翻译项目,马上就翻译好了,点击进入项目:
点击右上角的 “导出”,选择 “中英字幕” 就能得到双语字幕了。
网易见外纯粹是机翻,质量一般,但双语比对下理解起来不难,而且每天都能免费翻译 5 个项目,足够用了
0x30 导入双语字幕
此时回到剪映,把刚刚生成的英文字幕先删掉。
然后依次点击左上角的 “文本” ->
“本地字幕” ->
“导入” ->
网易见外生成的双语字幕。
最后把双语字幕拉拽到工作区的视频上方,注意字幕左边和视频左边对齐后再放手,就会自动对齐时间轴了:
导入字幕后,如果文字和背景色混淆在一起,可以选中字幕文字添加对应的样式
确认字幕和视频匹配后,导出视频即可。
0x40 后记
如果希望可以方便自己学习,后期还能做一个 分段章节
的进度条,标记视频每一段的核心内容是什么,就能快速定位找到了。
这个可以在剪映里面做,也可以上传到 B 站后制作(稿件管理 -> 个性化配置
),很简单就不展开了: