APP下载 微博 微信

Hao4K影音


[软件资源] 写了个拆分掉英文字幕的宏

[复制链接]

发表于 2022年10月18日 10:18 7002 22 来源:高清影视> 软件资源 回帖奖励 |倒序浏览 |

whindson 帖主

2022-10-18 10:18

----再次更新-------
修正了一些遇到以“-”开头的翻译宏跑不下去的bug
----更新了下---------
1、感谢坛友michaellv的建议,把判断中英文的算法改为英文字符的比例,这样好处就是一大串英文夹杂1,2个中文符号的,依然会去掉,缺点也有,如果翻译组不把人名翻译出来,那可能这条也会被删除,比如类似“走,xxxxx”,后面xxxx够长的话就可能被删除,所以我这个宏并没有做直接删除,仅仅标识那些行是英文,最后大家可以自行保留
2、不用添加任何结束字符串了。
-------------------------------------------------------
应该有人和我一样反感双语字幕

也不知道那个神仙发明了这么个玩意,纯粹的装13。我都搞不懂哪个神仙可以在有中文字幕的同时还能看英文字幕,同时还能学习英文,大概机器人可以吧
多个英文字幕,除非把字幕变的很小,如果按蓝光原盘那种字体大小,双语字幕能占去40%不止的画面,是在看电影还是看字幕?
即便一个人抱着要学习英语的心去看影片,在有中文的情况下,99.99999....%(省略号表示无数个9)情况下会去注意中文而不是英文!
隔壁兄弟论坛上很多非热门的片子提供的都是双语字幕,想纯粹的看个电影的,要去那个英文就有点难受了,我随便写了个宏给大家方便搞自己的中文字幕
仅适用于SRT字幕,ASS字幕请先去ASS 转 SRT (在线转换 & 批量转换) (sorz.org)转成SRT字幕
使用方法:

1、然后ctrl+a全选字幕,复制
2、打开附件的excel文件,先删除A列原有内容(不要删除列,选中a列按del按键清除内容),然后粘贴,如果弹出窗口要你选文件,就直接取消掉
3、执行宏
4、b列筛选等于1的行,筛选出来后全选,删除行
5、去除筛选,复制A列,然后去粘贴到一个空白文本文件中,保存后后缀再改名为SRT文件


拆分中文.rar (90.15 KB)

评分

参与人数 2活跃 +21 H币 +20 收起 理由 (评分规则)
一枝黄花 + 1 谢谢分享@Thanks!
hao4k + 20 + 20 原创作品,谢谢分享@Thanks!

查看全部评分

回复

使用道具 举报

全部回复22

ZombieNight 2

2022-10-18 11:51

我一般使用正则表达式去掉后边的英文
回复 支持 反对

使用道具 举报

ZombieNight 3

2022-10-18 11:56

用Aegisub里的“搜索替换”,勾选上“使用正则表达式”,查找目标\\N[\s\S]+
然后替换为空
回复 支持 反对

使用道具 举报

veryNice 4

2022-10-18 12:00

双语字幕还真是为了学习外语用的,有个网站可以把2个srt字幕合成一个srt。哈哈。
回复 支持 反对

使用道具 举报

michaellv 5

2022-10-18 13:46

国产字幕常用软件SrtEdit本身就自带去除双语字幕的功能,其原理是搜索第二行的字符串,如果都是英文字符串(可以含数字)就会自动删除,但是里面如果包含有任一中文标点符号(含空格),就不会被去除,所以这是srtedit软件去除双语字幕的一个局限!

而上面有玩家提出只是不管三七二十一就是把换行符后面的都删除,这个坦白说也不是太靠谱,会有错删的。我好几年前也是通过EXCEL公式用此方式来处理的,后来有坛友提醒用srtedit就放弃EXCEL了,毕竟用软件处理要快太多了。

所以就想问问你,你的算法是否有更好的解决方式。
回复 支持 反对

使用道具 举报

michaellv 6

2022-10-18 14:01

我随便提供一下高级算法的思路,用excel的公式来处理应该是没问题的:
1、计算一下换行符“/N"的数量
2、如果只有一个换行符,那么就计算这一个换行符后面的英文字符串长度,如果其长度大于换行符后面所有的字符串长度的75%,那就全部删掉
3、如果有两个换行符,那么计算第一个和第二个换行符之间的英文字符串长度,如果其长度大于后面所有的字符串长度的75%,那就全删掉,然后计算第二个换行符后面的,原理同上
4、如果有三个换行符,基本方式同上


回复 支持 反对

使用道具 举报

michaellv 7

2022-10-18 14:29

在最后一条字幕结尾换行加上“0000结束0000”,这个其实没有必要,excel有个远古函数counta( )可以用来计算非空行的数量,你在宏里可以录一个定位选取的命令(用offset叠加counta)就能自动选取有效范围了,这个技巧是我大概18年前自己琢磨出来的,非常有实用价值的哦!
回复 支持 反对

使用道具 举报

whindson 8

2022-10-18 15:00

michaellv 发表于 2022-10-18 13:46
国产字幕常用软件SrtEdit本身就自带去除双语字幕的功能,其原理是搜索第二行的字符串,如果都是英文字符串 ...

一样的,因为判断是否含中文其实就是判断一整行字符串的长度。
srt edit有这个功能的话,那直接用srt edit就行了哈
回复 支持 反对

使用道具 举报

whindson 9

2022-10-18 15:18

michaellv 发表于 2022-10-18 14:01
我随便提供一下高级算法的思路,用excel的公式来处理应该是没问题的:
1、计算一下换行符“/N"的数量
2、 ...

这个算法不错哈,我改下看看效果
回复 支持 反对

使用道具 举报

freeeGai 10

2022-10-18 15:20

ZombieNight 发表于 2022-10-18 11:56
用Aegisub里的“搜索替换”,勾选上“使用正则表达式”,查找目标\\N[\s\S]+
然后替换为空

你这太高级了,看来饭碗还不会被他们抢掉
回复 支持 反对

使用道具 举报

ZombieNight 11

2022-10-18 15:26

freeeGai 发表于 2022-10-18 15:20
你这太高级了,看来饭碗还不会被他们抢掉

不过这个方法有缺点,楼上有人也说了
回复 支持 反对

使用道具 举报

ZombieNight 12

2022-10-18 15:34

我觉得最保险的方法是判断每一个换行符后边的字符串是否包含中文,只要换行符后边哪怕只有一个中文字符,那就不删。程序执行完成后再人工审核那些未处理的有换行符的行
回复 支持 反对

使用道具 举报

freeeGai 13

2022-10-18 15:41

ZombieNight 发表于 2022-10-18 15:26
不过这个方法有缺点,楼上有人也说了

你正则里把中文标点和中文空格也加上去就完美了
回复 支持 反对

使用道具 举报

whindson 14

2022-10-18 15:48

michaellv 发表于 2022-10-18 14:01
我随便提供一下高级算法的思路,用excel的公式来处理应该是没问题的:
1、计算一下换行符“/N"的数量
2、 ...

我改了下,只是我把判断门限改成了90%
还是会误伤,就是开头那些字幕组的介绍,比如“翻译 xxxxxxx”,后面xxxx长的话就会被判断为英文。
但这种算法好在就是一大串英文中夹杂几个中文标点符号的话依然会被认定为英文而去除掉。
回复 支持 反对

使用道具 举报

michaellv 15

2022-10-18 16:10

whindson 发表于 2022-10-18 15:48
我改了下,只是我把判断门限改成了90%
还是会误伤,就是开头那些字幕组的介绍,比如“翻译 xxxxxxx”,后 ...

我现在是能下单语字幕是肯定只下单语的,首选官方ocr,次选知名字幕组,实在没有再考虑下双语后再改,另外如果知名字幕组的发布晚于官方ocr,那就优先下载,现在srt很多都有带字幕特效。
c8ea8d9a0a258ce466e3a80e3c4186a6c259af6b.jpg
回复 支持 反对

使用道具 举报

zzsyxd 16

2022-10-19 14:07

有英文正好判断一个时间轴是否正确。呵呵。
回复 支持 反对

使用道具 举报

whindson 17

2022-10-19 16:19

zzsyxd 发表于 2022-10-19 14:07
有英文正好判断一个时间轴是否正确。呵呵。

我就问你一个双语字幕怎么去判断时间轴正确?
你靠听吗?如果靠听,中文字幕就对不了时间轴了?
双语字幕就是个国人发明的所谓面子性玩意儿,你看,我在看电影学英语,呵呵呵
回复 支持 反对

使用道具 举报

zzsyxd 18

2022-10-19 20:20

whindson 发表于 2022-10-19 16:19
我就问你一个双语字幕怎么去判断时间轴正确?
你靠听吗?如果靠听,中文字幕就对不了时间轴了?
双语字 ...

英文不行,有时听读音是否能对上英文,对上中文也就行了。光中文只要能对上也行。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

返回列表 本版积分规则



绑定微信 + 关注公众号,第一时间获得消息通知!
:
发烧刚入门
:
介绍未填写

主题

帖子

积分718