论文部分内容阅读
前段时间我购入了新的MP4,结果发现从网上下载的视频内嵌字幕大多太小,很难看清楚,还是有必要再重新下载新的字幕文件。别人都说我事多,没办法,我一直就是个完美主义者。
字幕文件分为图片型和文本型两类,常见的图片型字幕由IDX和SUB两个文件构成,前者是时间轴导引文件,确定每段字幕的显隐时间,后者则是每段字幕的图片,即把每段文字转成图片的形式,再把IDX和SUB两个整合在一起而成。文本型最常见的是SRT和SSA两种:其中SRT文件可以直接用记事本程序打开编辑,而SSA文件必须用Sub Station Alpha等专门软件处理。
我那MP4支持的字幕格式是SRT,于是麻烦来了—从网上下载的字幕文件类型有很多,这意味着要将图片型字幕想转换为SRT格式,这是比较麻烦的过程。要用到两个软件:SubRip(下载地址:http://work.newhua.com/cfan/200806/SubRip.rar,快车代码:CF0806SZDM01)和SubToSrt(下载地址:http://work.newhua.com/cfan/200806/SubToSrt.rar,快车代码:CF0806SZDM02)
英文字幕的转换
1 打开SubRip,选择“文件→打开Vob文件”菜单项,在弹出窗口中,点击“打开文件目录”按钮,选择SUB文件,之后,将“语言数据流”设置为“English”,同时勾选“字幕图片通过OCR转换成文本”,点击“开始”(见图1)。
(1)
2 现在识别每个字符,即识别该图片中拆成单个字母的最小图片,我们只需要在首次识别该图片时输入相应字母,当这个图片再次出现时,就会自动识别了。其实还是靠人识别,由该软件建立起一个字符和图片的对应关系。而这个对应关系,在这个软件中被称为字符点阵(见图2)。
(2)
p字符点阵可以保存,但一般各部电影的点阵文件都不同,例外情况是,如果是系列的纪录片,那这个点阵文件就可以适用于这个系列中的所有英文字幕,即省去第一遍的字符输入
3 识别完成后,可单击下方的“文件→另存为SRT文件”菜单项,得到文本格式的英文字幕。
识别完成,得到SRT文件并非就万事大吉了,有个问题:在相当多的图片字幕中,图片字母的字体为Arial,该字体的“l”和大写的“I”外形相同!由于“l”的使用频率更高,且“I”往往是位于句首,后期修改较为方便,所以识别时应统一识别为“l”。可以想象:字幕中有若干个“我”被识别成“l”,还有lt、lts、lf、ln…如果用记事本逐行改那上千行的字幕文本,还不能误改其中正确的“l”,相当头大。这里可以用Word中的“全部替换”来帮忙:用Word打开转换后的SRT文件,点击菜单中的“编辑→替换”项,勾选高级中的“区分大小写”、“全字匹配”后,替换内容为“l”;替换为“I”,单击“全部替换”。接下来将lt替换为It,之后依次替换正确的Is、Its、If、In、Into(前面是出错频率最高的),常见的还有Instead、Inside、Including、Immediately等。完成后最好再把全文过一遍。因为在Word中,拼写错误都会有红色下划线标注,非常醒目,这样可以基本搞定像FBI、CIA这些漏网之鱼。最后保存即可。
中文字幕的转换
SubRip实际上也是可以直接转换中文字幕的,但是由于准确率和速度不及SubToSrt,因此总的转换步骤为:先用SubRip把那个SUB整文件拆成每行的单个图片字幕,再由SubToSrt识别为中文。
1运行SubRip,同样选择“文件→打开Vob文件”菜单项,在弹出窗口中,点击“打开文件目录”按钮,选择SUB文件,之后,将“语言数据流”设置为“Chinese”(有时也可能显示为gb、Chs等),同时勾选“字幕图片保存为4bit的BMP文件”,并勾选“加时间和尺寸”,“开始”即可(见图3)。
2输入任意文件名(最好新建一个文件夹,因为每段字幕将生成一个BMP文件,因此有可能有上千个小图片文件),“保存”即可(最终生成的中文字幕名称和现在的文件名称完全无关)。
(3)
3在弹出窗口中选择“I-Author”,勾选“Custom Colors and Contrast”,把颜色#1~#4全部选择成白色(#1~#4分别代表字芯、字框、背景、消除走样,不同电影字幕的#1~#4所代表的都不一样),以便测试出哪一个为字芯,将其设为黑色,其他3项全部设为白色(见图4)。
(4)
p这样可以使每段图片字幕的文字处于最容易识别的状态。要注意的一点就是在调整颜色时,必须要点“基本颜色”下的白色和黑色,“自定义颜色”中的黑色点击后无效,整个字幕段仍无法正常显示
4SubRip自动将每一幅图片保存为BMP,并且加上相应的时间顺序,再依次点击“输出格式→设置输出格式”下的“SubRip”,点击“转换成此格式”,“另存为→保存”即可(见图5)。
(5)
p此时弹出的对话框是提示你这种格式不是最好的选择。由于我们接下来要在SubToSrt中继续识别,所以不必理会,点击“确定”
(6)
p上图在窗口左下角依照字幕调节“空格检测设置”、“空格宽度设置”及“行高检测灵敏度”
5打开SubToSrt,选择“文件→打开SRT或SSA文件”菜单项,选取刚才保存的SRT文件。然后点击“图片处理→自动裁剪”菜单项(见图6),最后点击“识别→开始识别”菜单项。该软件同样是把大图片拆成每个汉字的小图片,然后根据软件中已知的字库(图片和汉字的对应数据库,类似SubRip的字符点阵,但比后者复杂得多。网上可以下载到,最大的有50MB,这是因为英文变来变去就那52个形状,而中文的方块字字形就太复杂了)进行识别。当遇到不认识的字时,会自动跳出窗口要求丰富字库,输入该字,按回车即可。因此可能开始时很多内容要识别,但是随着识别的不断进行,字库文件中的内容不断增加,需要识别的内容会越来越少(见图7)。
(7)
p经过我“训练”的SubToSrt,现在识别一部电影平均只需输入两三个字。如果汉字分为左右部分,识别时有时会只显示半个字,按扩展(Alt+E),即可显示全字
6识别完毕后,会自动替换已知错误词组。接着,可以看一下字幕,如有需要,可以略作修改(如原SUB字幕中就是错误的,部分繁体字的字幕由于习惯不同,质量不太好,可自行修改)。
7点击“文件→保存为SRT或SSA格式”菜单项,保存为SRT格式即可。注意,在保存好后退出SubtoSrt时,软件需要一定的时间去存储刚刚扩充到字库文件中的新内容,如果强行结束程序,将导致字库文件的损坏。
现在把转换好的SRT字幕和视频文件使用相同的文件名复制到MP4中,就可以在MP4的小屏幕看到清晰的字幕了。不错,很完美!我很满意!
字幕文件分为图片型和文本型两类,常见的图片型字幕由IDX和SUB两个文件构成,前者是时间轴导引文件,确定每段字幕的显隐时间,后者则是每段字幕的图片,即把每段文字转成图片的形式,再把IDX和SUB两个整合在一起而成。文本型最常见的是SRT和SSA两种:其中SRT文件可以直接用记事本程序打开编辑,而SSA文件必须用Sub Station Alpha等专门软件处理。
我那MP4支持的字幕格式是SRT,于是麻烦来了—从网上下载的字幕文件类型有很多,这意味着要将图片型字幕想转换为SRT格式,这是比较麻烦的过程。要用到两个软件:SubRip(下载地址:http://work.newhua.com/cfan/200806/SubRip.rar,快车代码:CF0806SZDM01)和SubToSrt(下载地址:http://work.newhua.com/cfan/200806/SubToSrt.rar,快车代码:CF0806SZDM02)
英文字幕的转换
1 打开SubRip,选择“文件→打开Vob文件”菜单项,在弹出窗口中,点击“打开文件目录”按钮,选择SUB文件,之后,将“语言数据流”设置为“English”,同时勾选“字幕图片通过OCR转换成文本”,点击“开始”(见图1)。
(1)
2 现在识别每个字符,即识别该图片中拆成单个字母的最小图片,我们只需要在首次识别该图片时输入相应字母,当这个图片再次出现时,就会自动识别了。其实还是靠人识别,由该软件建立起一个字符和图片的对应关系。而这个对应关系,在这个软件中被称为字符点阵(见图2)。
(2)
p字符点阵可以保存,但一般各部电影的点阵文件都不同,例外情况是,如果是系列的纪录片,那这个点阵文件就可以适用于这个系列中的所有英文字幕,即省去第一遍的字符输入
3 识别完成后,可单击下方的“文件→另存为SRT文件”菜单项,得到文本格式的英文字幕。
识别完成,得到SRT文件并非就万事大吉了,有个问题:在相当多的图片字幕中,图片字母的字体为Arial,该字体的“l”和大写的“I”外形相同!由于“l”的使用频率更高,且“I”往往是位于句首,后期修改较为方便,所以识别时应统一识别为“l”。可以想象:字幕中有若干个“我”被识别成“l”,还有lt、lts、lf、ln…如果用记事本逐行改那上千行的字幕文本,还不能误改其中正确的“l”,相当头大。这里可以用Word中的“全部替换”来帮忙:用Word打开转换后的SRT文件,点击菜单中的“编辑→替换”项,勾选高级中的“区分大小写”、“全字匹配”后,替换内容为“l”;替换为“I”,单击“全部替换”。接下来将lt替换为It,之后依次替换正确的Is、Its、If、In、Into(前面是出错频率最高的),常见的还有Instead、Inside、Including、Immediately等。完成后最好再把全文过一遍。因为在Word中,拼写错误都会有红色下划线标注,非常醒目,这样可以基本搞定像FBI、CIA这些漏网之鱼。最后保存即可。
中文字幕的转换
SubRip实际上也是可以直接转换中文字幕的,但是由于准确率和速度不及SubToSrt,因此总的转换步骤为:先用SubRip把那个SUB整文件拆成每行的单个图片字幕,再由SubToSrt识别为中文。
1运行SubRip,同样选择“文件→打开Vob文件”菜单项,在弹出窗口中,点击“打开文件目录”按钮,选择SUB文件,之后,将“语言数据流”设置为“Chinese”(有时也可能显示为gb、Chs等),同时勾选“字幕图片保存为4bit的BMP文件”,并勾选“加时间和尺寸”,“开始”即可(见图3)。
2输入任意文件名(最好新建一个文件夹,因为每段字幕将生成一个BMP文件,因此有可能有上千个小图片文件),“保存”即可(最终生成的中文字幕名称和现在的文件名称完全无关)。
(3)
3在弹出窗口中选择“I-Author”,勾选“Custom Colors and Contrast”,把颜色#1~#4全部选择成白色(#1~#4分别代表字芯、字框、背景、消除走样,不同电影字幕的#1~#4所代表的都不一样),以便测试出哪一个为字芯,将其设为黑色,其他3项全部设为白色(见图4)。
(4)
p这样可以使每段图片字幕的文字处于最容易识别的状态。要注意的一点就是在调整颜色时,必须要点“基本颜色”下的白色和黑色,“自定义颜色”中的黑色点击后无效,整个字幕段仍无法正常显示
4SubRip自动将每一幅图片保存为BMP,并且加上相应的时间顺序,再依次点击“输出格式→设置输出格式”下的“SubRip”,点击“转换成此格式”,“另存为→保存”即可(见图5)。
(5)
p此时弹出的对话框是提示你这种格式不是最好的选择。由于我们接下来要在SubToSrt中继续识别,所以不必理会,点击“确定”
(6)
p上图在窗口左下角依照字幕调节“空格检测设置”、“空格宽度设置”及“行高检测灵敏度”
5打开SubToSrt,选择“文件→打开SRT或SSA文件”菜单项,选取刚才保存的SRT文件。然后点击“图片处理→自动裁剪”菜单项(见图6),最后点击“识别→开始识别”菜单项。该软件同样是把大图片拆成每个汉字的小图片,然后根据软件中已知的字库(图片和汉字的对应数据库,类似SubRip的字符点阵,但比后者复杂得多。网上可以下载到,最大的有50MB,这是因为英文变来变去就那52个形状,而中文的方块字字形就太复杂了)进行识别。当遇到不认识的字时,会自动跳出窗口要求丰富字库,输入该字,按回车即可。因此可能开始时很多内容要识别,但是随着识别的不断进行,字库文件中的内容不断增加,需要识别的内容会越来越少(见图7)。
(7)
p经过我“训练”的SubToSrt,现在识别一部电影平均只需输入两三个字。如果汉字分为左右部分,识别时有时会只显示半个字,按扩展(Alt+E),即可显示全字
6识别完毕后,会自动替换已知错误词组。接着,可以看一下字幕,如有需要,可以略作修改(如原SUB字幕中就是错误的,部分繁体字的字幕由于习惯不同,质量不太好,可自行修改)。
7点击“文件→保存为SRT或SSA格式”菜单项,保存为SRT格式即可。注意,在保存好后退出SubtoSrt时,软件需要一定的时间去存储刚刚扩充到字库文件中的新内容,如果强行结束程序,将导致字库文件的损坏。
现在把转换好的SRT字幕和视频文件使用相同的文件名复制到MP4中,就可以在MP4的小屏幕看到清晰的字幕了。不错,很完美!我很满意!