leonvent 发表于 2018-7-29 15:30:00

IdxSubOcr:基于Netlfix字幕提取的OCR教程

本帖最后由 leonvent 于 2019-3-10 17:07 编辑

一时兴起写了一遍OCR Netflix图形字幕的教程,扔在Q群感觉太浪费了。前后整理了一下,就发到这吧。

前言:自从Netflix在日本动画投资了一大笔钱后,Netflix平台上也有了大量的日漫作品,Netflix台区和港区也在逐步增加中文字幕,也许不久后会有很多作品会同步更新。由于Netflix的字幕并不是嵌入视频的硬字幕,而是传统的外挂图形字幕,且没有被加密,可以提取来OCR。在字幕组的数量也在逐年下降,国内政策对线上媒体越来越紧的情况下,Netflix或许可以成为国人翻墙看片的一种新选择吧。写一篇简单的OCR Netflix图形字幕的教程应该是有意义的。


本篇教程所需要的部分工具:https://pan.baidu.com/s/11XHBJggfqh4TMrZ7ikng4w
一、提取NETFLIX字幕
所需工具:脚本管理器(Greasemonkey),Subtitle Edit
NETFLIX字幕并没有被加密,所以提取方法有很多,个人觉得最好用还是这款js脚本:https://greasyfork.org/en/script ... subtitle-downloader
新版字幕提取脚本可以直接提取文本,格式为VTT,可以用记事本编辑成srt
http://t1.aixinxi.net/o_1cjgsev437an1or61qakadi1etea.png-j.jpg脚本安装完后登陆Netflix,用老虚的哥斯拉来做例子,我们可以看到字幕选择栏中,已经有下载的选项
http://t1.aixinxi.net/o_1cjgso6j316ea1q561lch1v7jljsa.png-j.jpg
下载当前的字幕或者下载整个剧集的字幕。我们这里是电影,所以下载当前的字幕就好了。下载下来是个zip压缩包,解压后就是传统XML+PNG的形式
http://t1.aixinxi.net/o_1cjgsvdbn1o1311lf10p1642okea.png-j.jpg

使用SubtitleEdit,就可以生成传统的SUP或者其他的图形格式。工具 - 批量转换。字幕格式为blu-ray sup
http://t1.aixinxi.net/o_1cjgumptn1g6t1ksjff0o7uo26a.png-j.jpghttp://t1.aixinxi.net/o_1cjguknns1acjl2316oh1eg921ha.png-j.jpg
转换速度不算快,最后得到的就是传统的sup字幕http://t1.aixinxi.net/o_1cjgv028o1lvk1sqldtfosi240a.png-j.jpg作为最常见的PGS字幕,直接封装进视频,抢个首发,是完全可以的。

leonvent 发表于 2018-7-29 15:30:01

本帖最后由 leonvent 于 2019-3-10 17:08 编辑

二、OCR
OCR图形字幕的方法很多,这里仅介绍用IdxSubOcr


需要工具:SharePointDesigner(WIN10下如果.NET 3.5 安装失败,通常是启用或关闭windows功能里的.NET 3.5 没打开)SubtitleEdit , Aegisub ,IdxSubOcr ,BDSup2Sub,JAVA
IdxSubOcr依赖office 的MODI,所以借助SharePointDesigner安装MODI 12.0。因为也只需安装MODI,所以其他组件就没必要安装了。
http://t1.aixinxi.net/o_1cjiaapb51061cda10c01nk2nana.png-j.jpg在系统上增加office 的繁体语言包(繁体系统下,应该需要简体语言包)
将繁体语言包下面的文件复制到安装到MODI 12.0的相同文件夹下:
(64位)C:\Program Files (x86)\CommonFiles\microsoft shared\MODI\12.0
TCPRINT.DAT
TCPRINT2.DAT
TCSERHT.DAT
TCTREE.DAT
TW_BU.DAT
TW_UB.DAT
TWBIG532.DLL
双击reg文件导入注册表最后安装java,至此环境配置完成
由于IdxSubOcr只能OCR indx+sub字幕,所以我们需要把XML+PNG的字幕文件,转换成indx+sub的格式。
新版IdxSubOcr可以直接打开sup了,可以不用转换了具体步骤:

打开BDSup2Sub, FILE-   LOAD- 选择之前生成好的sup - 设置好基本的参数 -OK 。 双击右下角的方框可以修改字幕显示位置(应该没人会去做那个)
http://t1.aixinxi.net/o_1cjic0pk31aaqj8c1evk1h5l9jia.png-j.jpg
导入后,没有出现错误的话。FILE-   Save\Export。这样就生成了indx+sub的字幕格式
http://t1.aixinxi.net/o_1cjic8f8fp02flr1m6p1k6o1g0ha.png-j.jpg
打开IdxSubOcr,载入这个indx+sub,就可以正式OCR了http://t1.aixinxi.net/o_1cjiccv071vtirqh66pn1o1okca.png-j.jpg最后我们得到一个OCR的初稿http://t1.aixinxi.net/o_1cjicqd8d1qd7sco44blvv1nsga.png-j.jpg

leonvent 发表于 2018-7-29 15:30:02

本帖最后由 leonvent 于 2018-8-14 01:11 编辑

三、检查
无论何种OCR都不可能100%正确,接下来就要开始人工检查与除错。IdxSubOcr自身也可以进行排查工作,但是界面操作起来并不是很友善。这里介绍一种利用Aegisub来检查的方式。原理是创建一个很长的黑视频,把之前生成的indx+sub字幕压入这个黑视频,再由Aegisub导入压制好的视频与OCR初稿。调整样式排版后,再运用一些快捷键就可以很轻松的检查。

所需工具:Aegisub,小丸工具箱
我先把OCR初稿转换ASS字幕,利用记事本先替换一些明显的错误,例如:无法正确识别“一”和 “-”这种的数字和符号。保存。

http://t1.aixinxi.net/o_1cjidbq4g1kkd1ofr1o0n1eqcki5a.png-j.jpg
制作一个黑视频,参考这个avs脚本,用小丸工具箱会方便很多吧。(小技巧:先压一个5分钟的黑屏,然后反复拼接这个5分钟黑屏,速度要快很多)x= #设置宽度
y= #设置高度
fps= #设置帧率
duration= #设置时间长度,单位秒
color=$000000 #设置颜色,$000000为黑,$FFFFFF为白
framecount=Round(fps*duration)
BlankClip(length=framecount,width=x,height=y,fps=fps,color=color)
matrix=(y<=576)?"Rec601":"Rec709"
ConvertToYV12(matrix=matrix)

然后压制之前生成的indx+sub字幕, 各凭各U,crf30就可以了
http://t1.aixinxi.net/o_1cjiditla12dahol89hnd52t9a.png-j.jpg


然后载入压制视频,导入之前随便生成ASS字幕,开启自动定位时间轴http://t1.aixinxi.net/o_1cjidodglr1g1ucqmpg1pjn1q80a.png-j.jpg更改样式,大致对齐视频里的字幕http://t1.aixinxi.net/o_1cjidqmnn1j221rrutad8da1ar2a.png-j.jpg

然后就这样一行行检查过去,按回车键进入一下条。如果有OCR错误,会很直观的看出来。熟练后,检查下来就非常快有一种可能会出现这种情况,由于时间轴会有误差1-2帧,没显示出字幕。
http://t1.aixinxi.net/o_1cjie1e2m1h0s1fkm4hm14ht1755a.png-j.jpg

这时候快进一帧就可以看到了。如果这种现象普遍,把整个字幕往后移1帧。


http://t1.aixinxi.net/o_1cjie44fk1i2br4na66eg21a8oa.png-j.jpg
全部检查完后,保存。大功告成。 这样的检查方式比较直接,而且有经验的字幕作者,可以做全套。初学者第一次做可能会比较耗时,但是熟练后还是很快的,OCR一集24分钟动画并检查完毕,我个人需要大概20分钟左右


leonvent 发表于 2018-7-29 15:30:03

本帖最后由 leonvent 于 2019-3-10 17:06 编辑

FAQ:
我为什么不用SubtitleEdit直接生成indx+sub?
答:由于SubtitleEdit的转换模式直接生成indx+sub的话,会造成一些字幕被压扁的现象,还其他各种诡异问题,我个人不建议这么做。
新版IdxSubOcr可以直接打开sup了,可以不用转换了
新版字幕提取脚本可以直接提取文本,格式为VTT,可以用记事本编辑成srt

我想要改sup字幕的显示位置,该怎么做?
答:双击BDSup2Sub右下角的方框,可以修改显示位置

Netflix没有登录中国区,我看不了Netflix怎么办
答:翻墙,科学上网,切到港台日IP


怎么翻墙,科学上网,切到港台日IP?
答:我。。。百度能找就找找吧



                                              本篇作者 柊游楠

leonvent 发表于 2018-7-29 15:30:04

本帖最后由 leonvent 于 2018-8-14 01:18 编辑

占楼备用,可能会加点什么














也许我真该加点什么。

leonvent 发表于 2018-7-29 15:30:22

占楼备用,可能也不会加点什么

zx353 发表于 2018-7-29 20:05:33

本帖最后由 zx353 于 2018-7-29 20:12 编辑

我最近看的几部高达剧场版字幕角色名翻译与以往完全不同。还有挺多相像字错误,像OCR版? {:6_296:}

收藏收藏。也许哪天就能用到了。{:6_307:}

leonvent 发表于 2018-7-30 12:37:32

应该是没有比这个更简单的OCR字幕的方式了吧

kurumi01150 发表于 2018-8-4 01:01:24

感覺好像還不錯,只是 Netlfix 是用沒有任何特效的字幕
所以如果可以還是找字幕組做的應該會比較好

haiyang 发表于 2018-8-4 02:06:09

感谢楼主分享经验
我就说一点吧    aegisub可以生成空白视频不压制一段黑视频也是可以的
页: [1] 2
查看完整版本: IdxSubOcr:基于Netlfix字幕提取的OCR教程