6

字幕翻译笔记:字幕提取

 2 years ago
source link: https://www.nansey.me/2021/10/translate-subtitle-extract.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

字幕翻译笔记:字幕提取

工作缘故,最近需要对公司一个产品的视频宣传片的字幕进行翻译。任务需求很简单,就是中文到英文的转换,视频也不是很长,十分钟都不到。

我没有在字幕组工作过,之前也没有太多这方面的经验,有的只是零星阅读过相关的教程或者网贴,但是早已忘到九霄云外,甚至在拿到任务时候,连应该去下载和使用哪个软件也没有概念。

直觉和热衷各种软件的经验告诉自己,这大概只是使用软件的问题而已。但是很快,我发现我错了。印象里YouTube对于字幕的处理功能和自己困难重重的实操形成了鲜明的对比,我高估了自己的智商。

下面我会讲到在这次字幕处理的过程中遇到的各种问题,这些问题可能是借助搜索引擎并没有那么容易找到解决办法,或者网络上给出了解决办法,但实际的操作却是另一种回事的情况。我不会像大多数网贴一样去不厌其烦地重复各种软件操作的步骤,毕竟那些网帖已经讲得够多够清楚了。

声明一下,我只是字幕处理领域的初学者,所以接下来的写作难免会有纰漏,还望各位多多批评指正。

此次任务使用或者涉及的软件(附下载链接):

gMKVExtractGUIhttps://sourceforge.net/projects/gmkvextractgui/ 
My MP4Box GUIhttps://www.videohelp.com/software/My-MP4Box-GUI
Pot Playerhttps://potplayer.daum.net/ 
LAV Filterhttps://www.videohelp.com/software/LAV-Filters
Codec Tweak Tool
https://www.videohelp.com/software/Codec-Tweak-Tool 
Format Factoryhttp://www.pcgeshi.com/ 
esrXP
https://www.videohelp.com/software/esrXP
Srt Sub Master
https://mjpclab.net/submaster.html
Abbyy FineReader
https://pan.baidu.com/s/1RXzDBbD_vrhkw8tHLfbvDA

字幕提取的原理(硬字幕):

1.使用esrXP跑视频抓字幕OCR
2.使用Abbyy FineReaderOCR软件提取文字
3.使用esrXPSrt Sub Master对字幕进行校对并导出为字幕文件

1. 硬字幕与软字幕

我拿到的视频虽然是高清的(1920*1080),但却是硬字幕。

什么是硬字幕呢?就是字幕像是水印一样嵌在了视频里,使用普通的软件是无法直接提取字幕文件的。和硬字幕对应的概念是软字幕,即视频文件和字幕文件是分离的,可以利用某些专门的软件直接提取。比如Pot Player,比如gMKVExtractGUI(mkv格式视频),再比如My MP4Box GUI(mp4格式视频)等等。

(Pot Player提取软字幕,图片来源于网络)

(gMKVExtractGUI提取软字幕,图片来源于网络)

(My MP4Box GUI提取软字幕,图片来源于网络)

2. esrXP

对于硬字幕的提取目前普遍使用的软件是esrXP,一个非常古老却又十分有效的工具。有效的同时,调教的过程中又几乎必然会出现种种屡试不爽的「人为bug」,我一度有想砸电脑的冲动。

问题1:视频无法载入,即过滤器页面没有视频预览或者主页面无法运行「开始」。

解决办法: 1.安装LAV Filter解码器; 2.安装并使用Codec Tweak Tool工具设置系统默认解码器(将视频解码托管到LAV Filter); 3.文件名有特殊符号导致无法加载(将文件名改成纯英文或数字即可,网友贡献提示)

那么,执行了问题1解决办法中的步骤后,是否就一定能保证esrXP能够预览和开始处理视频了呢?答案是否定的。视频解码是一方面,另一方面,esrXP并不能够保证对于大多数视频格式的支持(相反的,我觉得这种兼容性比较差)。自己测试了对于mkv/mpg/avi等格式在LAV Filter托管了系统解码后是没有问题的,但碍于时间有限,其他的一些格式并没有进行测试。不过即使是格式不被支持的情况下,使用Format Factory进行格式的转换也是一种解决方式,目前网络上流行的格式不外乎mp4/avi/3gp/rmvb/wmv/mkv/mpg/vob/mov/flv等等,转换时候可能需要注意一下目标视频格式的大小(如果一个较长的视频,采用了体积较大的目标格式,而电脑配置又很一般的话,那将是一种不可描述的灾难),以及屏幕的大小设置(大的屏幕输出对于后期清晰地OCR更加方便,但并非越大越大)。

视频格式与大小的分类:

最小:mkv/flv/rmvb/wmv(流媒体)
其次:mp4/3gp(手机格式)
再次: mpg/vcd/dvd/mov
最大:avi(无压缩)

问题2:视频在可以预览的情况下,esrXP也可以正常运行OCR截屏,但是截出来的字幕全是糊的。

解决办法: 这是我在此次视频处理任务中遇到的最大问题之一,甚至在问了几个朋友后也没有得到答案。网络上给出了各种各样的参数,但也都是针对某个具体视频的方案,并不是一个普适性的解决办法。事实上,对于不同的视频,也没有一个普适的参数设置。

(进阶设置,图片来源于网络)

过滤器的进阶设置,这里像是一个高级的复合型滤镜,参数设置得好的话,可以减少后期非常多的校对工作。我的建议是「启动过滤器」进行实时参数调整的效果预览。我只使用了边线和第一阶段的「最高光度」2个参数来调整,最后拿到了满意的输出效果,这也得益于拿到的任务是一个黑条白字的视频,相对于那种字幕浮于视频上面的复杂情况要容易处理的多。

esrXP的过滤原理主要是通过颜色的判断来完成的,且过滤器使用了“HSL色彩模型”,HSL分别对应:

H(hue)=色相指的是人眼所能感知的颜色范围,这些颜色分布在一个平面的色相环上,取值范围是360°的圆心角,每个角度可以代表一种颜色。

S(saturation)=饱和度指的是色彩的饱和度,它用0%100%的值描述了相同色相、明度下色彩纯度的变化。数值越大,颜色中的灰色越少,颜色越鲜艳,呈现一种从理性(灰度)到感性(纯色)的变化。

L(lightness)=亮度指的是色彩的亮度,作用是控制色彩的明暗变化。它同样使用了0%100%的取值范围。数值越小,色彩越暗,越接近于黑色;数值越大,色彩越亮,越接近于白色。

了解了HSL色彩模型是什么之后,除RGB差距外,每个过滤选项就可以和HSL对应起来了:

色度差距(H) = 所选颜色的色相差距大于设定值,则会被过滤
RGB差距 = 所选颜色的RGB差距大于设定值,则会被过滤
最低光度(L) = 亮度小于设定值,则会被过滤
最高光度(L) = 亮度大于设定值,则会被过滤
最低色泽(S) = 饱和度小于设定值,则会被过滤
最高色泽(S) = 饱和度大于设定值,则会被过滤;

关于HSL和RGB的背景知识(供参考学习):

HSLhttps://en.wikipedia.org/wiki/HSL_and_HSV
RGBhttps://en.wikipedia.org/wiki/RGB_color_model

(后处理,图片来源于网络)

关于过滤器中的「后处理」

「后处理」同样会对抓取的字幕产生较大的影响,这里的参数设置也需要考虑到「进阶设置」中设定的效果来进行选择和调整。比如我已经通过「进阶设置」拿到了比较好的预览效果,那么这里的设置就不用再做太多的工作。但是如果「进阶设置」拿到的效果较差,比如说字幕在设置参数后仍然有很多的杂点,这个时候就需要通过移除像素或是区块来优化了。

(字幕管理,图片来源于网络)

关于「字幕管理」中的「高质量」

在抓到所有的字幕帧后,「高质量」对于输出清晰的字幕作用同样非常明显,这将直接影响到OCR的识别率。点选「高质量」可以感受前后的对比效果,这个效果有些像是打印和低质量的复印甚至手写的差别。对于出现的多余相同字幕可以进行合并,多余的杂色和空白字幕行则可以执行去除和删除。

这些工作完成后,可以将字幕进行导出。 esrXP支持导出的文件有:

.esr(保存当前抓取的图像信息以及时间轴)
.ssa(保存ssa字幕文件,且只含有时间轴)
.srt(保存srt字幕文件,且只含有时间轴)
.idx,.sub(保存图形字幕文件,可直接作为字幕观看)
.bmp(位图,用来OCR成文本)

我的处理方式是将字幕文件导出为OCR图片,再使用Abbyy FineReader(当然你可以使用其他的OCR软件)进行文字的提取。提取的文字复制粘贴回esrXP或者直接放进Srt Sub Master进行包括时间轴的校对。

补充一点,导出的过程中需要注意的是,最好在导出之前保存一份.esr工程文件。esrXP作为一个古老的软件,对于大视频的处理,难免有崩溃的可能。一旦崩溃,又得从头再跑一遍,关键很有可能你已经不记得之前设置的参数了。

在Srt Sub Master中则可以直接对着视频进行字幕的调整/翻译/时间轴校对。完成后导出字幕文件即可。

(Srt Sub Master,图片来源于网络)

到这里,硬字幕的提取或者说英文/双语字幕的制作已经完成。至于如何将制作好的字幕完美地封装到之前的视频里进行字幕的替换,对于一个没有什么视频编辑经验的翻译来讲,我好像遇到了一个更大的问题。

不过没有关系,就当这是一个契机,迫使自己去学习翻译领域之外的相关知识,学完后我会继续和各位分享,就像这次学习字幕的提取一样。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK