一、 目前为止可行的硬字幕(hardsub)提取方案
这里只说“可行”的方案,那些不成熟的、按时收费的,用过就删的,不在此列。
1. 人工手提,用手和眼来提取时间轴和文字。
优点:
准确率高(废话)。
缺点:
费时费力,不能常做。
2. esrXP + IdxSubOcr(MODI OCR)
esrXP提取带时间轴信息的字幕图片,打包成一个idx文件,然后导入IdxSubOcr用MODI ocr识别文字。
优点:
用了计算机图像技术判断字幕出现和消失的时间点,从而提取时间轴信息,准确率较高。
缺点:
老掉牙的微软MODI ocr识别引擎准确率较低,为了照顾MODI ocr,esrXP需要做较多设置、试验、调整参数的工作,以便提供漂亮的黑底白字clearTxT给MODI ocr,这就很考验用户的经验了。总体来说识别率不高、工作量较大。虽然esrXP已经停更多时,但是苦于没有更好的选择,长期以来字幕爱好者只能将就着用。
3. VideoSubFinder_5.50_x64 + ABBYY FineReader 15
VideoSubFinder_5.50_x64做类似esrXP的工作(区别是保存每个字幕图片,不打包成一个idx文件),ABBYY FineReader 15做类似IdxSubOcr的工作,将每个jpg字幕图片ocr识别为一个txt文件,然后回到VideoSubFinder_5.50_x64将所有txt文件合成一个srt文件。
优点:
跟esrXP类似,采用了更先进复杂的计算机图像技术判断字幕出现和消失的时间点,从而提取时间轴信息,更好的去重算法,准确率进一步提高(人家叫Finder嘛,从2011年做到现在)。ABBYY FineReader 15除了能ocr中英文,还支持其他语种。
缺点:
ABBYY FineReader 15号称地表最强离线文字ocr引擎,虽然比MODI ocr好得多,但在实际使用效果上,对比经过数年AI人工智能训练的云识别引擎(例如百度OCR通用文字识别引擎),识别准确率还是差了一大截。
4. 硬字幕提取工具6.5
采用VideoSubFinder_5.50_x64 + 百度搜狗有道讯飞OCR通用文字识别引擎,整合第三方工具APP(为什么不好好利用别人的成果呢?),从开始到结束,整个字幕提取流程一气呵成,识别率高、省时省力。
二、 初次使用本软件
总体来说,三个大步骤:
1、将字幕从视频中切片截图下来
2、将字幕图片OCR为文字
3、校对编辑字幕文字
具体步骤如下所述:
步骤1、准备百度OCR服务APP_ID / API_KEY / SECRET_KEY
到ai.baidu.com/tech/ocr/ge… 注册获取百度通用文字识别服务的APP_ID / API_KEY / SECRET_KEY,
一个手机号码注册一个账号(须实名认证)。
每账号每天免费识别次数有规定(依精度不同从每天500次到每月1000次不等,每次识别1张图片,具体政策由厂家规定),如不够用可多注册几个账号,同时厂家经常有优惠活动(例如百度1元购1W次,讯飞0元购10W次,搜狗有道新注册送50、100元等)。对于长期需求用户,建议充点钱购买次数吧,价格不贵,还能支持国家高科技发展。
注册步骤很简单,可自行百度,获得的APP_ID / API_KEY / SECRET_KEY信息先保存起来下面会用到。
类似的:
搜狗OCR到deepi.sogou.com/ 注册。
有道OCR到ai.youdao.com/product-ocr… 注册。
讯飞OCR到www.xfyun.cn/service/tex… 注册。(选文字识别 -- 印刷文字识别(多语种),服务接口认证信息为三项:APPID、APISecret、APIKey)
步骤2、准备工作流程中将会用到的APP1、APP2第三方软件
到sourceforge.net/projects/vi… 下载安装VideoSubFinder_5.50_x64 作为APP1
到github.com/SubtitleEdi… 下载安装Subtitle Edit 3.5.18作为 APP2
注:APP2 不指定,可以选用户熟悉的其他软件,例如SubtitleEdit可换成Aegisub或 ArcTime
步骤3、设置硬字幕提取工具
打开工具,
点击‘系统设置’
填入步骤1获得的百度OCR服务APP_ID / API_KEY / SECRET_KEY
点Browse找到步骤2安装好的APP的入口exe文件,APP1 – APP2顺序不要错,然后Save保存设置。
这时,主界面的APP1、APP2 按键将显示刚才设置好的exe文件名
步骤4、用VideoSubFinder_5.50_x64生成RGBImages
点击主界面VideoSubF按键,将启动运行VideoSubFinder_5.50_x64
点击左上角File -> Open Video(FFMPEG) ,打开要提取字幕的视频文件(本例为:倚天屠龙记之魔教教主-中字.mp4)
快速浏览全片,查看字幕区间矩形最大范围(注意有些视频是两层字幕),用两根竖线两根横线设置字幕截图区间(四根线在视频边缘不容易发现,试着点击选中可以移动它)。 注意:矩形边框要比实际字幕稍大,不要为了节省图片尺寸而把区间设置成紧贴字幕(当然也没必要设置得太大,太大会导致叠图数量降低)。
点击Search右边的Settings,出现设置界面,我们只关心左边这块能影响Search字幕图片的参数。
第一个参数‘Text Alignment’默认设置是‘Center’,须要点击设置成‘Any’。
其他众多参数中,有一个参数至关重要,就是Use Filter Colors这项,default值是空的,其他参数可以不设,这个一定要设置上,特别是非纯白字幕,例如黄色!如果不设置,有大几率会漏字幕。
我们需要取色字幕文字的骨干颜色(骨干外则是字幕轮廓颜色,不要取偏了),然后将颜色值填入,将有助于VideoSubFinder判断字幕出现和结束的时间,生成正确的时间轴信息,并防止丢时间轴。常见字幕颜色可能有白色的、黄色的,或者其他颜色,本例电影的字幕是白色。如果是多色字幕,可以按VSF要求取色多色填入。
具体的参数设置,可以参考Docs目录下的readme_eng.txt,专业用户精调参数可以提高Search字幕帧的准确率,从而减少丢时间轴(少字幕图片,致命)和假时间轴(空字幕图片,影响不大)的情况,不过据笔者使用经验,如果没弄明白参数含义和作用,随意调整反而适得其反,普通用户还不如不调的好。
在右边界面先点一下Pixel Color
然后点击字幕白色文字中心骨干取色,点不准可以多点几下。
取到了颜色,会显示出来
本例将Lab: l:245 a:127 b:129 拷贝后双击填入Use Filter Coloers,一般做了这步就可以基本保证不会有时间轴丢失的情况,算是完成了Search的设置。
点击Search -> Clear Foders 清空RGBImages目录,
然后点 OCR Search,程序开始扫描视频文件,生成RGBImages。
几分钟后扫描完成,可以关掉VideoSubFinder_5.50_x64,初次使用我们可以打开RGBImages目录看一下
这些是刚才VideoSubFinder_5.50_x64 Search生成的1000多个字幕切片图片文件,说明这个电影有1000多条字幕呢。文件名前段为时间轴信息。
打开文件看看,是RGB原色字幕截图切片,很适合喂给百度AI过的OCR引擎做识别。
步骤5、清理空字幕图片
点击主界面上的‘删合’按键,将打开‘删合窗’并自动定位到RGBImages目录,
我们可以在‘删合窗’中清除RGBImages目录中的空字幕图片。
由于VideoSubFinder 的Search算法还没做到100%准确,所以会误生成少量无字幕图片(假时间轴),有时还会把广告也截图下来,我们在‘删合窗’中用鼠标滚轮快速浏览RGBImages目录,把发现的空字幕、广告字幕图片删掉,让后续百度OCR识别不用浪费每天数量额度,同时在校对阶段不用再做删除工作。
一页可以显示几十张图片,浏览、选中、删除非常方便。
翻页:将鼠标指针停留在图片区,滚动鼠标滚轮,或者键盘↑↓键、键盘←→键,可以翻页(一次滚动三列)
选中:鼠标左键点击可以标记选中图片,再次点击可以去选中。Shift+鼠标左键可以连续多选、连续去选。
删除:直到最后一页标记完成,点<<面板上的‘总删合’按键会弹出删除提示,确认后将删除所有标记过的空图片。后昆仑决看就看的《》<,.,kl
更多方便的功能可以看“第四节之6、 删合窗(删除合并)”
如下图一处为广告,可以选中标记它:
如下图一处为空字幕图片,可以选中标记它:
一直标记到最后一页:
然后点‘总删合’,确认后将会把刚才标记过的所有空字幕图片删除(如果发现不能删除,多半是系统权限问题,请不要将VSF和本工具安装在C盘或桌面):
清理完空字幕图片后,点击面板上的‘返回主界面’。
步骤6、运行百度OCR识别
百度高精度每天免费识别额度较低,如不采用叠图 --- 多张字幕图片合成一张大图来识别以节省额度,每天只能识别较少字幕图片,因此,如果用户没有购买额度,应该在系统设置中先选上叠图,并保存设置。
点击主界面的OCR按键,程序将连接百度OCR服务器,对RGBImages目录中的所有字幕图片从头到尾按顺序做识别,只需等待完成即可(免费用户最大每秒能处理2 – 3次识别)
OCR识别完成了!
这时在RGBImages目录下已经为每个.jpeg文件生成了一个同名.txt字幕文件,初次使用可以看一下。
步骤7、校对字幕
点击主界面上的‘校对’按键,将打开校对窗,校对窗显示一页6组图文。
编辑:可以用输入法进行常规的输入、删除、鼠标左键/右键插入空格等操作。
翻页:将鼠标指针停留在任一图片上,滚动鼠标滚轮,或者键盘↑↓键可以翻页。翻页将自动保存校对过的字幕。
选中:鼠标右键点击可以选中图片,再次点击可以去选中。
删除:按Delete会弹出删除提示,按回车Enter执行删除。
更多方便的功能(例如‘精准对齐’,‘一键插入空格’)可以看“第四节之7、 校对窗(补漏校对)”
如果希望在SubtitleEdit等字幕软件中做校对,可以略过这个步骤,直接到下个步骤。
校对完字幕后,点击面板上的‘返回主界面’。
步骤8、用SubtitleEdit编辑字幕文件
之所以前面在校对窗做过校对,这里又用到APP2来做编辑,是因为有些用户(例如字幕组)对字幕要求高,还需要做调轴、批量替换、方言转换等进一步校对工作。
点击主界面CreateSRT按键,将生成带时间轴的字幕文件123.srt,和不带时间轴的纯字幕文件123.txt。
可以大概浏览一下,然后关掉。
点击主界面SubtileE按键,将自动打开SubtitleEdit编辑刚才生成的123.srt字幕文件。
在波形图窗口里,“点击以添加波形”,打开视频文件,本例是‘倚天屠龙记之魔教教主-中字.mp4’
在波形图窗口,勾选‘选择当前播放时刻的字幕’,设定播放速度,例如200%,然后开始播放视频,字幕会同步显示在播放窗口,可随时暂停播放,进行字幕校对。
该删除的删除,该修正的修正,该替换的替换,该调轴的调轴。
一般来说,走到SubtitleEdit这步,剩下的校对工作已经不多了,有时甚至不需要校对就能用了(注重细节的用户还是认真过一遍吧)。
完成字幕校对后,点击“文件->另存为” 保存校对好的字幕文件,SubtitleEdit会自动将123.srt重命名为跟视频文件同名的srt文件“倚天屠龙记之魔教教主-中字.srt”,并保存在视频文件所在目录下,方便大多数播放软件播放视频文件时自动加载同名字幕文件。
至此,整个硬字幕提取流程就走完了。
更多方便强大的功能,请花点时间阅读用户使用手册,您会发现新大陆!
问题反馈 及 建议:
使用过程中有任何问题,请先阅读下面的Q&A,及用户使用手册,如果觉得可能是bug,可以在这里留言。
Q&A:
1、
Q: 软件需要安装吗?运行出错怎么办?
A: 绿色免安装。如果32bit版本运行出现“Failed to execute script pyi_rth_multiprocessing”错误,说明win7x32系统太旧,要先装 KB2533623才行。如果出现找不到dll的报错,请安装Microsoft .NET Framework 4.8和Microsoft Visual C++ 2015-2019。如果运行过程中,执行命令或删除出错,多半是系统权限问题,请不要将VSF及工具软件解压安装在C盘、或者偷懒放到桌面运行,有这种坏习惯要改。
2、
Q: APP1、APP2指定必须要用文档例子中的第三方软件吗?
A: 不指定,甚至可以不用设置,本工具将第三方软件集成入工作流中,减少了各个APP来回切换的时间。
3、
Q: OCR服务商免费吗?
A: 每家OCR服务商提供不同的免费识别额度(每天每月有一定数量,具体看厂家规定),业余人士可利用免费额度。同时厂家经常有优惠活动(例如百度1元购1W次,讯飞0元购10W次,搜狗、有道新注册送50、100元等)。而对于长期需求用户,建议充点钱购买次数吧,价格不贵,还能支持国家高科技发展。
4、
Q: 为什么填写了OCR服务商的KEY后,不能识别?
A: 请确认开通了服务商的文字识别服务,填写获得的KEY等资料前后不能有空格、双引号、单引号等其他字符,鼠标双击拷贝KEY有时候会多拷贝一个空格。 如识别出现“Network Exception!”错误提示,说明无法连接到OCR厂家的服务器,请检查网络连接是否正常(不要用VPN代理),或重启一下电脑再试。
5、
Q: 高精度和低精度识别率差别大吗?
A: 对于清晰简单的字幕,差别不大,模糊复杂(多种语言混合)的字幕、大图识别,差别较大,在批量识别前可做识别试验,以便选择最佳设置。
6、
Q: 有时候叠图出现‘间隔标记丢失,尝试纠正!’的告警提示,怎么办?
A: OCR厂商训练的机器学习模型,对不同特征的图片识别能力不同,甚至有些特殊爱好或怪癖,例如百度OCR对于模糊字幕的叠图容易丢失间隔标记(模糊与清晰并存时眼睛有点花),其他厂家的OCR则没有这种问题。有些语言类型设置会丢失第一个英文字符,有些会丢失标点,小问题不一而足。每种机器学习模型的情况都不同,在批量识别前可先做识别试验(包括加入增强魔棒),以便获得最佳设置,得到最佳识别结果。
7、
Q: 极速叠图会导致识别率降低吗?
A: 对于清晰简单的字幕,识别率只有轻微降低,几乎没有影响。模糊复杂(多种语言混合)的字幕,降低较明显,如果出现识别率明显降低,或者出现‘间隔行丢失,尝试纠正... 如经常出现,请改用半叠或不叠’的告警提示,可中止识别,改为半叠或者不用叠图。叠图的主要好处是节省额度、节省时间。
8、
Q: 想切换图片做字幕文字编辑,老是要在文件列表区用鼠标点击,很不方便。
A: 请用鼠标滚轮或者键盘↑↓来做图片切换浏览,滚动时请将鼠标指针停留在图片区中,然后滚动滚轮,养成使用习惯后会很方便。
9、
Q: 批量识别过程中出现Network Exception错误、额度用完、手动中止,导致识别未完成,又不想重头识别,想从中断点处继续识别怎么操作?
A: 主界面Restart去选中,接下来再做批量识别将自动从中断点处继续识别。
10、
Q: 识别率不高、漏字、错字、漏标点、漏空格,怎么办?
A: 识别率主要由OCR厂家训练的机器学习模型决定,遇到识别率问题,可以:
1) 更换OCR厂家
2) 更改语言类型设置
3) 利用‘增强魔棒’提高识别率
4) 如果用了叠图,可以改为半叠或者不叠
5) 识别完成后,利用SubtitleEdit、Aegisub等字幕软件替换错误字符
11、
Q: 如果不想用VSF的RGBImages想改用TXTImages来做OCR可以吗?
A: 当然可以,只需要在文件列表区手动Browse打开定位到TXTImages目录即可,其他一切操作跟在RGBImages目录下无异。
12、
Q: OCR识别率挺高的,多数情况下只需要补上识别丢失的空格,就能完成文字校对工作了。在校对窗校对时,有办法提高插入空格的速度吗?
A: 6.3版及以前版本支持“鼠标左键定位+鼠标右键插入空格”,须按两下鼠标插入一个空格,6.5版新增“鼠标左键一键定位+同时插入空格”功能,只需要按一下鼠标左键就能插入一个空格,变得更轻松了。
13、
Q: OCR批量识别完成后,是在校对窗中校对,还是在APP2第三方字幕软件中校对?
A: 常规流程做法:OCR批量识别完成后,切换到校对窗,先缩放和移动字幕图片,做精准对齐,然后开始校对。校对完后生成SRT文件,启动APP2进行替换、转换、调轴。
有时候也可以:OCR批量识别完成后,生成SRT文件,启动APP2进行替换、转换(但不调轴),然后切换回校对窗、导入APP2加工过的SRT文件做精校对(校对完还可再次生成SRT文件,启动APP2做调轴)。具体看识别率来定。
14、
Q: 网页截图识别没反应?如何提高网页、pdf文件截图识别率?
A: 需要先安装第三方截图软件如Snipaste,然后配合本工具才能实现截图识别。为了提高识别率,可以选用高识别率OCR厂家、还可开启增强魔棒,并将Snipaste输出图像质量设置成100。
15、
Q:使用时遇到报毒
A:请不用担心,因为本工具采用python+pyinstaller打包,很多防毒软件会误报(除非购买白名单证书或申请鉴定)
16、
Q:有朋友担心程序植入了木马
A:我只想说:稍微做过python编程的,都知道python是解释型语言,是不能加密的,exe只是个打包。你担心木马可以读读本程序代码嘛(凡是你能找到的从1.0到最新的版本),花不了你几分钟,就能解开你的疑虑。或许你还能学到点知识,提高点水平,如果整天只会人云亦云疑心重,精神萎靡搞黄色,你这辈子也就这样了。。。
免责声明:
本工具仅供个人使用,为业余提取字幕的朋友提供方便,不可用于商业目的,不可侵犯他人知识产权。
同时,作者建议有长期大量需求的用户,请购买OCR服务商的额度,支持国家高科技发展。
6.5 最新版(64bit、32bit)下载地址:
提取码:2021
2021.09.13更新:
1、修复了进度条长度异常问题
2021.09.02更新:
1、允许秘钥拷贝填写误多输入空格
6.3开放了5个OCR,对比6.2只开放了1个OCR
因近期OCR服务商免费额度政策调整,导致很多新用户额度不够用,故开放5个OCR,不够用的朋友可以实名申请最多5个OCR秘钥填入,从而提供5倍于单个账号的免费额度。如果还不够用,请购买OCR服务商的额度。
6.5版新增“鼠标左键一键定位+同时插入空格”功能,校对窗中文本框只须按一下鼠标左键就能插入一个空格,对于高精度版这种文字识别率很高,但是空格不能识别,需要补漏空格的校对工作,变得更轻松了。对比6.3及以前版本支持“鼠标左键定位+鼠标右键插入空格”,须按两下鼠标才能插入一个空格(继续支持)。具体请看6.5版用户使用手册 - 校对窗章节。
VSF + SubtitleEdit (64bit)下载(内有中文设置使用手册):
提取码:2021
Snipaste 截图神器下载(用了会上瘾):
提取码:2021