[软件] sub字幕转换srt - IdxSubOcr v1.15

[复制链接]
查看9 | 回复0 | 2019.10.2 18:52 | 显示全部楼层 |阅读模式
sub字幕转换srt - IdxSubOcr v1.15




Q:IdxSubOcr是什么?
A:这是一个专门用来OCR(光学字符识别)Vobsub格式字幕的软件,能够将idx/sub格式的字幕转成srt格式,并提供srt格式校对功能。OCR引擎为微软Office       2003所带的Microsoft Office Document Imaging (MODI),支持英文、简体中文、繁体中文、日文。
      
Q:为什么要开发IdxSubOcr?
A:目前已经有一些免费的字幕OCR软件,英文的可以用Subresync,中文的可以用SubOCR。但是在使用了这些软件后,我还是决定开发IdxSubOcr,理由如下:
      


          
  • 希望能够使用方便性方面有所改善。Subresync自带的OCR引擎的识别率很棒,但是每次都要敲几十个字母实在太麻烦;而且还不支持中文、日文字符。
  • SubOCR实在太庞大,而且在某些机器上运行出错。
      
Q:IdxSubOcr的识别效果如何?
A:目前能够比较的相似软件是Subresync和SubOCR,分别能识别英文和中文:
      


          
  • Subresync有两种识别方式:使用ocrdll的自动方式和缺省的手工方式。Subresync的识别率明显优于使用ocrdll的自动方式,与缺省的手工方式大致相同,但是击键次数大大减少,只有在碰到粘连在一起的字符才需要用户手工辨识,而Subresync需要对每个字母先进行人工辨识。
  • SubOCR目前支持简体和繁体中文,繁体中文引擎的识别率优于简体中文引擎。IdxSubOcr除中文外,还支持日文识别,识别率相当于SubOCR繁体中文引擎的识别率。
      
Q:IdxSubOcr在使用上有什么要求?
A:IdxSubOcr的运行环境存在下列限制:
      


          
  • 只能从硬盘上运行,不能从光盘等只读识别上运行。
  • 本软件的中文、日文识别结果为GBK字符,因此只能在支持GBK编码的环境下使用。一般Windows 2000/XP没有问题,Windows         Me看运气,Windows 98多半不行。
  • 配置MODI以支持简体中文、繁体中文、英文的方法请google我写的《在简体中文Office 2003下OCR繁体中文、日文、韩文》。
      
Q:IdxSubOcr收费吗?
A:IdxSubOcr是一个“友情软件”(Friendware),用户在承诺不用于商业目的,也不对文件及其附件进行任何更改的条件下,不需要为使用该软件负任何费用,最多是在某个讨论区看到我发帖子灌水时(我的ID一般是strnghrs),进去捧个人场,作为友情回报;或者在年节时发个email问声好(所以叫“友情软件”)。我承诺绝不在程序中暗藏任何商业广告、木马,但不承诺为使用IdxSubOcr的后果承担任何责任。如果您需要将它用于商业目的,或加入您的网站,请与我联系,否则保留追究一切责任的权利。
               
Q:“OCR前先加粗处理”有什么用?
                A:有些字幕在文字周围有其他颜色的边框,在去掉边框后,文字笔画会变得太细,影响OCR质量。这时就可以选择此选项,通过加粗文字笔画,提高OCR识别率。但如果文字笔画本来就不细,选择此选项后可能会造成笔画粘连,反而降低OCR识别率。
                所以此选项没有记忆功能,您如果觉得正常情况下OCR后的字幕错别字太多,可以勾选“黑白图像”功能,实际看一下黑白处理后字幕文字的笔画是否过细,如果是就勾选此选项重新OCR一遍。
               
Q:影响OCR识别率的因素有哪些?
                A:包括但不限于:
               


                   
  •                         OCR语言选择错误。如字幕明明是繁体中文,选择OCR语言时却选择简体中文,能出来好的质量才真是有鬼。就我在网上看到的情况,很多抱怨本软件OCR质量差的人犯的都是这个错误,因为不是人人都知道怎么安装繁体中文语言包的。
                            建议使用本软件前先阅读此文:
                            http://www.comicer.com/stronghorse/water/software/officeocr.htm
                            如果您安装的是Office 2007,务必要按照文中的说明打SP1、SP2或SP3补丁,否则不能OCR。
                            如果您安装的是office 2010及其以上的版本,将不再含本软件OCR所需的MODI模块,建议按照此文的说明单独安装:
                            http://www.comicer.com/stronghorse/water/software/modi.htm
                            独立运行的简体中文MODI组件(含简中、英):http://ishare.iask.sina.com.cn/f/25168321.html
                            繁体中文语言包:http://ishare.iask.sina.com.cn/f/24878359.html
                            日文语言包:http://ishare.iask.sina.com.cn/f/24878361.html
  • 字幕图像质量太烂。如果是笔画太细,可以试试看勾选“OCR前先加粗处理”。
  • 中英文混杂,这个没有办法,是OCR引擎的事情。
  • 文字出现斜体或其他花狸狐哨的变体,这个也没有办法,同样是OCR引擎的事情。
      使用说明      
一、软件安装/删除
      
本软件安装非常简单:创建一个目录,用WinZip将下载下来的ZIP包解压缩到该目录即可。
      
本软件的删除也很简单:直接删除从ZIP包中解压缩出来的所有文件及运行过程中生成的文件即可。
      
ZIP包中包括下列文件:
      


          
  • IdxSubOcr.exe。这是软件的主程序。
  • IdxSubOcr.htm。本帮助文件。
      
如果您下载到的ZIP包中还包括其它文件,毫无疑问不是我放进去的,有广告之嫌疑,请立即删除。
      
另外程序运行过程中还会生成以下文件:
      


          
  • IdxSubOcr.ini。这个是参数保存文件,第一次更改参数后生成。退出IdxSubOcr,删除此文件,再重启IdxSubOcr,即可恢复缺省参数。
      
二、软件使用
      
软件的使用比较简单:
      


          
  • 点击“打开idx文件”按钮,选择需要OCR/校对的idx文件。         或直接从资源管理器拖拽idx文件。
  • 如果有必要,设置“毫秒分隔符”选项,即毫秒用小数点还是句号分隔。
  •                 如果有必要,勾选“OCR前先加粗处理”,避免因为笔画过细影响OCR质量。但如果文字笔画本来就不细,勾选此选项后可能造成笔画粘连,反而影响质量。
  • 在“操作选项”里,选择需要OCR/校对的字幕,及究竟是要OCR还是校对。
    如果是OCR,在接下来的“OCR”选项中,需要选择OCR语言及字幕颜色。注意这两个选项直接关系到OCR效果,所以必须认真选择:语言好说,颜色必须保证文字为实心字,空心字没法识别。         如果字幕第一行为空,则文字颜色可能不能选择,可以选择字幕其他行,直到能够选择颜色。OCR识别结束后,自动进入校对模式。
    如果是校对,界面上方显示字幕图像,下方显示文字,用户可以直接对文字进行编辑。在编辑框中可以使用上下箭头、PgDn、PgUp滚动。校对完成后,点击“保存srt文件”按钮存盘。
      
在校对过程中,可以用“辅助功能”进行辅助,包括:
      


          
  • 文本替换。通常用来替换OCR中的一些习惯性错误。
  • 英文句首字母大写。某些英文字幕全是大写,看起来比较费劲,用这个可以转成小写。
  • 繁体转简体。繁体中文字幕OCR后的结果是GBK编码的繁体字,如果觉得麻烦,可以用这个功能转换成GB编码的简体字。
      
另外如果想改变已有srt文件中的毫秒分隔符,可以选择“校对”,然后刚刚“毫秒分隔符”选项,再存盘即可。
      附录A 关于OCR      
OCR一直是我感兴趣的一个问题,但是大多数成功的OCR产品都对自己的技术细节秘而不宣。我接触的第一个开源OCR是gocr,一个在linux下大名鼎鼎的开源项目。从源代码本身看,这个项目是真正按照OCR引擎的要求开发的,层次分解得很好,OCR该有的操作也都基本具备。但是在真正编译、运行成功后,我也发现了一些问题:
      


          
  • 源代码的链表操作有问题,会产生内存泄露。一个如此有名的软件会出现这样的错误,多少有些出乎我的预料。虽然我尝试着堵上了我能够找到的漏洞,但是我绝对不敢保证我已经堵上了所有的漏洞。我发现的问题和我的解决方案都已经发给了gocr的作者,希望后续的版本能够彻底解决这个问题。
  • gocr原先的识别引擎是基于规则的,没有任何训练、学习能力。新的基于特征数据库的引擎似乎还不是很成熟,但是值得期待。
  • 对斜体字的识别率实在令人扫兴,但是偏偏现在很多字幕在显示歌词的时候喜欢用斜体字。不过这个问题可以通过增加纠偏过滤器来解决。
      
顺着gocr网页中的链接,我还找到了另外一个开源OCR项目——ocrchie。这个项目看起来最有吸引力的地方就是它的引擎具有学习能力,能够在使用过程中不断扩充特征库。不过在编译、运行成功后,我也发现了一些问题:
      


          
  • 内存泄露问题比gocr还严重,而且几个链表交叉成网状,想改都不知道从哪改起。
  • 特征定义是针对大字号的,小字号时字体变形严重,识别率很低,偏偏字幕文件全是小字。这个看一下源代码中附带的train.tif其实就该知道了,我居然在花了两天时间改程序后才发现,有够笨。
      
另外在研究Vobsub解码idx/sub格式的同时,我也顺便看了一下Vobsub的OCR部分。从源代码看,Vobsub支持两套OCR引擎:一个是Vobsub自带的,一个是使用ocrdll。我自己的猜测:Vobsub一开始的时候可能用的是ocrdll,后来因为ocrdll开始收费,才开发了自己的OCR引擎。当然这个仅仅是我的猜测,实际情况我也不知道。
      
国内某些论坛上有帖子说:到SimpleOCR网站下载一个免费版SimpleOCR,安装后将安装目录下的OCRDLL.DLL、DLLTWAIN.DLL、ENGLISH.WDC复制到subresync所在目录,即可让Vobsub自动识别,不再需要每次识别时敲字母。我自己的经验是:
      


          
  • 按照我google的结果,上述说法是从国外一个论坛帖子上翻译过来的,有点老了。
  • 以前可能确实可以在SimpleOCR网站上下载到带OCRDLL.DLL的免费版SimpleOCR,但是如今已经没有这样的好事了,就算安装了SimpleOCR,里面也不会有OCRDLL.DLL。估计是从商业角度考虑,其作者更改了软件接口。而且在他的努力下,现在网上已经找不到以前版本的SimpleOCR了,至少我没找到。
  • SimpleOCR的前身是wocr,这个是真正的免费软件,接口也是公开的(Vobsub用的就是这个接口),现在在某些地方还能下载到。我比较过wocr         2.5和SimpleOCR 3.1所带的ENGLISH.WDC文件,一个字节都不差。
  • ocrdll不是Vobsub的缺省选项,因此即使将上述3个文件复制到subresync,在使用时还要勾选“Use         ocrdll.dll”选项,才能自动识别。至于识别的效果……谁用谁知道!至少我自己不会在自动识别的基础上进行校对,最多只是在校准idx/sub的时候作为选择试听点的参考。
      
至于Vobsub自带的OCR引擎,这个可能是最精确的引擎:将需要识别的字符与学习样本逐“象素”比较,因此识别率不是其它正常OCR可以比的。但是正因为它不是基于特征的,因此学习的结果没有办法保存,只能每次开始识别前先学习一遍,好在英文字母数量有限,但是中文就绝对不能这么玩。
      
由于目的比较明确,因此Vobsub自带的OCR引擎实现比较简单,不仅没有其它引擎的特征抽取过程,常见的去噪声点、倾斜校正等功能也没有,不过这些功能对字幕识别本来也没有多大用处。
      
真正让我对OCR重燃信念,是在我接触到微软Office 2003所带的Microsoft Office Document Imaging       (MODI),这大概是目前唯一公开接口、支持多语言的商业级OCR引擎。奇怪的是,这么好的东西在Office       2007的缺省安装里居然没有,需要手工选择安装。
      
在用MODI开发了几个OCR相关软件(Pdg2Pic、TextForever、DjVuToy等)后,我开始尝试用它来OCR字幕,因为字幕OCR有其特殊性:
      


          
  • 字幕中的文字通常都很小,其实Vobsub显示的时候都是放大显示,所以才会看到锯齿。
  • 目前商用的OCR引擎,主要针对的是扫描文字,字体尺寸要比字幕的字体尺寸大很多,如果直接使用这样的OCR引擎,识别率很难提升。
      
在经过大量的测试、改进后,目前IdxSubOcr在识别中文、日文方面效果不错(可能与中文、日文的字体变化不大有关),但是识别英文的效果差了点。
      
由于在OCR引擎方面有一个漫长的摸索过程,因此IdxSubOcr的开发时间也较长:2005年底就开始,直到2008年初才完成。当时因为是年底,所以选了一个圣诞风格的icon,后来为了纪念,也就一直没换。
      附录B 鸣谢      
本软件开发过程中引用了下列软件的源代码,在此对作者表示诚挚的谢意:
            附录C 版本更新记录      
Version 1.15
                错误修正:在Win 10下以管理员权限运行后,从资源管理器不能拖拽打开文件。而不以管理员权限运行,则在Win 10下OCR内容为空。
               
Version 1.14
                功能增强:支持从资源管理器拖拽打开idx文件,便于使用。
               
Version 1.13
                新增功能:增加“OCR前先加粗处理”选项。此选项使用得当可以提高OCR识别率,使用不当则会降低识别率,请仔细阅读FAQ部分的相关说明。
                功能增强:提高英文OCR的识别准确率。
                错误修正:遇到某些格式错误的字幕文件,会报告“内存不足”。
               
Version 1.12
                错误修正:某些中文标点前后会加入空格。
               
Version 1.11
                新增功能:在列表中增加“序号”列。
                功能增强:在OCR简、繁、日字幕时,如果字符间距大于字高的一半,则在字间插入空格。
               
Version 1.10
                新增功能:增加“毫秒分隔符”,允许选择毫秒分隔符是小数点还是逗号。
               
Version 1.09
                错误修正:OCR某些字幕时会中断退出。
               
Version 1.08
功能增强:对含无效字符的文件路径能够给出提示。
      
Version       1.07
错误修正:如果原始字幕文件有错,会中断退出。
错误修正:如果原始字幕文件信息有错,OCR后出现无时间轴的空白行,导致结果文件被截断。
      
Version 1.06
功能增强:加强繁简转换时的纠错能力。
      
Version 1.05
重写OCR后处理部分,减小文字错位、错行的概率。
      
Version 1.04
错误修正:如果字幕编号不是从0开始,则不能正常OCR。
      
Version 1.03
功能修正:对于Unknown的字幕语言,在提醒后允许继续OCR。
      
Version       1.02
功能修正:考虑到宽屏逐渐普及,初始界面不再最大化。
错误修正:界面缩小到正常大小时,“黑白图像”选项会被遮挡。
      
Version 1.01
错误修正:如果字幕第一行为空,则在“OCR选项”中,不能再选择文字颜色。
      
Version 1.00   
提供字幕OCR、校对功能。
OCR采用MODI引擎,支持英文、简体中文、繁体中文、日文。


IdxSubOcr.zip (289.46 KB, 下载次数: 0)
https://www.loadream.com
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

1640

主题

2052

帖子

272

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
272

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老