2012-12-25 15:12
十几年前在国外网站上看到有人做出装在光驱槽位的凹、凸适配器。我当时想:this is the furture;现在看到这些想的是:this is the ZHAI。//@Joey_Yin: 这玩意儿的推广一定不是靠所谓的拥抱握手……TBBT里面已经有很好的示范demo出来了,当然那只是第一步。
2024-06-08 21:27
有些早一点的电视剧,比如《Two and a Half Men》,一开始只有 720p 的 WEB-DL 或 HDTV 版。字幕组针对这些版本出了字幕。后来又出了 1080p 版,但字幕组没有跟进。
大部分情况下,新出的 1080p 和早先的版本顶多是片头长度不同,只要整体挪一下时间轴就可以匹配。有时候帧率会变化,那也只需要缩放时间轴就可以。但少数情况下,新版本会被重新剪辑。其中绝大多数情况是对原剪辑点插入的黑屏长度进行调整。比如原来两个场景之间有 1.7 秒的黑屏过度,现在改为了 2.4 秒。这种情况通常都需要手工调整时间轴。有些字幕软件提供了通过搜索静音来找到剪辑点的功能,这只能提高定位剪辑点的效率,但仍免不了要手工操作。《Two and a Half Men》就是这种情况。这就是为什么很多字幕组不会为新出的 1080p 版更新字幕,因为成本很高。
虽然此前有些软件试图通过各种原理实现自动时间轴匹配(比如 subsync),但显然效果并不理想,否则字幕组自然就用了。我很早以前就想自己写程序解决这个问题,但感觉投入的时间成本可能要比手工调整的时间还多。
不过现在有大模型帮我写程序了。
我的第一个思路是:720p 的有英文字幕,1080p 的也有英文字幕,那么对比两个英文字幕是不是就能找到时间调整点?然后不就可以根据英文字幕时间轴的变化情况调整中文字幕了吗?
实际开始干之后我发现想简单了。很多剧的早期英文字幕和后来的英文字幕并不只是时间轴不同,断句也不一样。当然这用一些算法可以勉强解决。解决了这个问题后,我又发现一些早期英文字幕存在大量拼写错误。比如 Will 在字幕里是 WiII。这些字幕显然是从 DVD 的 .sub 字幕 OCR 出来的。虽然理论上这可以用一个 OCR 纠错字典来解决,但更糟糕的是很多早期字幕的时间轴本来就不精确,导致很难通过和新字幕的对比来定位调整点。于是这个思路就只能放弃了。
然后我试图模拟字幕软件的“搜索静音”的功能定位剪辑点。程序搞出来之后,我发现找到静音的地方虽然容易,但精确的起始和结束点并不容易定位。因为”静音“是个模糊概念,不同的视频中不太一样。用光线来打比方的话,就是所谓黑暗,也多少还有一点光。你伸手不见五指,猫还能看见。所以搜索静音的标准严格一些,搜索到的静音段就可能偏短,而标准松一些,搜索到的静音段就会偏长。在字幕软件里“搜索静音”并不需要很精确,因为人可以通过看波形和听声音来判断时间轴实际应该调整多少。我又想再模拟人看波形的过程,对新老视频的波形进行比对,找出调整点。但不知是不是因为我不熟悉这个领域,最终实现的效果不太好。速度很慢,准确率也不理想。
然后我就想那是不是可以在搜索到静音片段后再把其中不是黑屏的那部分去掉?因为剪辑插入部分不仅静音,而且黑屏。我试了一下,成功了,终于可以准确找出剪辑插入的部分。
然后我忽然想到一个问题:到底是找黑屏快还是找静音快?如果是找黑屏快的话,那么先找黑屏再判断黑屏是不是静音才是效率最高的。我又试了一下,果然,先找黑屏比先找静音要快好几倍。
现在我只花了很短的时间就有了一个效率很高的能精确找出视频中插入的黑屏静音片段的程序。基于此可以很简单地实现时间轴自动适配。而且我自己没写一行代码,全靠奴役 ChatGPT。
2025-06-11 09:55
像这种,在敲下“听说”两个字的时候,甚至不会意识到自己正在提供一个民间传说的例子。//@blood睾丸:能救命,听说舒马赫吃了,才勉强把命保住。//@tombkeeper:片仔癀、安宫牛黄丸,都相当于实体比特币,价值源于稀缺性和由民间传说形成的“共识”。1993 年之前的安宫牛黄丸因为用的还是犀牛角,几万块一粒,拿来送礼,不显山不露水。