苏辰汐 发表于 2022-2-2 17:52:07

Alass:另一种批量自动调轴工具

本帖最后由 苏辰汐 于 2022-4-3 10:35 编辑

该自动调轴工具源自github仓库:kaegi/alass: "Automatic Language-Agnostic Subtitle Synchronization"
由于原仓库release版本较旧,个人编译了新版本并制作了批量bat工具以方便使用:Releases · dyphire/alass

29楼实现了一个更为便利和优雅的使用工具,个人推荐优先使用,传送门:Alass FFsubsync Helper
alass-cil.exe可以选择替换为以下压缩档内的bin文件夹内的同名文件,增加了通过--audio-index参数指定参考音轨和自动检测字幕编码的功能

服务于mpv的在播放时调用ffsubsync和alass用来同步字幕的脚本,见:dyphire/autosubsync-mpv

2022-3-24 Update:优化批量bat文件,更新使用说明。目前版本已无需重命名参考文件(原始字幕仍需重命名),也不再需要移动原始文件至指定文件夹,提高使用工具的便利性
论坛下载:

以下为使用教程:

特别注意:alass所在路径不要有中文
特别注意:alass所在路径不要有中文
特别注意:alass所在路径不要有中文
第一步,配置环境:
以管理员身份运行alass.bat(非必须)在alass(xxx ver).bat中设置路径(已设好,无需变动)
以上操作只需配置一次,后续无需再执行此步骤

第二步,准备文件:1.参考文件为<xxx.xxx>(参考文件可以是视频文件,也可以是另一份正确时轴的字幕)
2.原始字幕文件命名为<xxx_TV.ass> or <xxx_TV.ssa> or <xxx_TV.srt>,视文件格式而定3.需要用到的alass(xxx ver).bat(对应字幕文件的格式)
文件名尽量不要有特殊符号,可能影响程序正常工作以上文件全部放在同一个文件夹中(参考文件和原始字幕文件可以通过硬链接或符号链接(推荐)放入alass所在文件夹)批量重命名可使用好压批量命名工具(内置) 也可以选择自己喜欢的批量重命名工具
创建符号链接的工具推荐 :Hardlink Shell Extension(内置)

第三步,开工:把参考文件<xxx.xxx>拖到alass(xxx ver).bat上(一次性可处理多个)泡一杯咖啡等待,bat会自动依次处理所有的字幕,直到全部处理完毕
BDsub文件夹内是调轴后的字幕TVsub文件夹内是原始字幕Log文件夹内是调轴记录日志
以下为动图示例(可批量拖放):
第四步,人工查错:打开Log目录下生成的<xxxx_check.log>文件,人工检查提示的有问题的行和画面字
注释:更多灵活的参数用法请参考README.md或运行alass --help获取详细的命令行参数
原理解释:alass是利用了字幕靠卡音频打轴的特点,将字幕和音频或其他正确字幕进行对比,并参考此时间的差值对字幕时间轴进行平移的,所以台词基本上都是准的,但画面字不一定准。理论上,声音的波形越容易辨识,调轴就越准,理论上如此。
特殊用法:
[*]关于参考文件可以为另一份正确时轴的字幕这点,其实存在一些骚操作

[*]比如用来调轴不同字幕组版本以供食用,经测试极为方便(
[*]美剧之类还可以把nf/亚马逊的官中字幕当作参考字幕来调轴字幕组版本,未测试
[*]理论上其他语言的正确时轴字幕也可以当作参考字幕(比如英文字幕),但往往这类字幕会多很多的背景音标注字之类。所以不先批量去除干扰的话效果应该不会很好,未测试。更新:经他人测试这一方案可行,效果不错
[*]注意:参考字幕和需调轴的字幕其中一方不能有漏译问题,否则无法正确处理(缺失相同的对话时无影响)
[*]这工具还可以通过视频制作带时间轴的空srt文件,以便制作字幕使用

[*]命令行参考:alass myMovie.mkv _ reference.srt,经测试120分钟视频生成时间轴的空srt文件大概耗时1-2分钟

和sushi自动调轴的区别:相比sushi自动调轴工具,alass仅需要bd文件和原始字幕即可调轴,不需要再准备原始视频。更方便也更符合大多数使用场景,当然sushi调轴的准确性理应相对更高。alass在测试中对美剧类剧集的批量调轴效果很好,动画类在测试中会遇到一些特殊情况无法正确处理,具体见已知问题。
已知问题:
[*]原始字幕缺译较多时无法正确处理(字幕本身漏译或BD增加新的对话场景)
[*]BD片源开头/结尾处和放送源不一致时无法正确处理(常见于前情提要和下集预告的缺失)
[*]字幕开头存在画面字时无法正确处理(可以先行移除后再处理)
[*]srt字幕单个时轴存在多行字幕时可能无法正确处理(常见于双行)

备注:批量bat文件和使用指南制作参考sushi批量操作包作者 Shizuru @Kamigami,论坛地址:Sushi: 自动调轴工具批量处理。特此感谢!





tonyhsie 发表于 2022-4-3 01:58:09

本帖最后由 tonyhsie 于 2022-4-3 02:00 编辑

先放上我目前寫的小工具

同時使用 alass + ffsubsync 來為字幕調軸,附件的壓縮檔裡已經附上 alass 了,ffsubsync需要另外安裝
(不裝也沒關係,它一樣會用 alass 來調軸)


操作一樣是用拖曳調軸(由命令列操作也可以)

輸入可以接受「兩個檔案(一個目標影音檔,一個需調軸的字幕檔)」
或是「一個目錄(多個影音檔+多個字幕檔,但兩者數量要一致)」
或是「兩個目錄(影音檔目錄 + 字幕檔目錄,兩邊的檔案數量也要一致)」


調軸的結果,會放在影音檔所在的目錄下,然後主檔名跟影音檔相同,如圖



兩個 log 檔分別是 alass 跟 ffsubsync 的調軸紀錄
三個 wav 檔是調軸目標的影音檔
三個 *.alass.srt 是用 alass 調軸後的字幕檔
三個 *.ffss.srt 是用 ffsubsync 調軸後的字幕檔

先這樣,有什麼問題或有任何想法,都歡迎回報


在沒辦法用 sushi 調軸的情況下,alass 跟 ffsubsync 的確不失為另一種不錯的選擇


苏辰汐 发表于 2022-2-2 18:06:35

本帖最后由 苏辰汐 于 2022-2-3 15:41 编辑

参考文件可以是视频文件,也可以是另一份正确时轴的字幕
关于参考文件可以为另一份正确时轴的字幕这点,其实存在一些骚操作。

比如用来调轴不同字幕组版本以供食用,经测试极为方便(

美剧之类还可以把nf/亚马逊的官中字幕当作参考字幕来调轴字幕组版本,未测试

理论上其他语言的正确时轴字幕也可以当作参考字幕(比如英文字幕),但往往这类字幕会多很多的背景音标注字之类。所以不先批量去除干扰的话效果应该不会很好,未测试。经人测试这一方案可行,效果不错

注意:参考字幕和需调轴的字幕其中一方不能有漏译问题,否则无法正确处理(缺失相同的背景音时无影响)


苏辰汐 发表于 2022-2-2 18:55:52

这工具还可以通过视频制作带时间轴的空srt文件,以便制作字幕使用
命令行参考:alass myMovie.mkv _ reference.srt
经测试120分钟视频生成时间轴的空srt文件大概耗时1-2分钟




tonyhsie 发表于 2022-2-2 21:04:49

1.参考文件为<xxx.xxx>(参考文件可以是视频文件,也可以是另一份正确时轴的字幕)

參考文件是視頻的話它是怎麼調軸的?


如果是參考另一份正確時軸的字幕
正確時軸版的字幕文本,也不見得跟你想調的那一份字幕,文本長得一模一樣

它又怎麼判斷?


感覺很神奇.....

苏辰汐 发表于 2022-2-2 21:17:18

本帖最后由 苏辰汐 于 2022-2-2 22:00 编辑

tonyhsie 发表于 2022-2-2 21:04
參考文件是視頻的話它是怎麼調軸的?



参考视频的话分析的就是人声音频频谱生成时轴,然后字幕按时轴拆分切割文件(切分程度可以调参),然后和音频时轴进行比较分析处理。大概是这么个原理,我个人测试中很好用,大部分都能正确调轴,遇到主楼提到的已知问题就不能正确处理了,不过log里也有对应错误记录。

参考字幕的话原理我也不懂,而且局限性也不小,毕竟是骚操作。我只测试过用来调钢炼和eva不同字幕组版本的字幕,结果好的出乎意料。我安利后有人用英文字幕做参考调中文字幕,结果效果也很好(真没想到)。真•骚操作

具体工作原理开发者在github上有放论文,感兴趣的可以去看看

Keadovs 发表于 2022-3-23 16:35:12

warn: some subtitles now have negative timings, which can cause invalid subtitle files
warn: negative subtitles will therefore moved to the start of the subtitle file by default; pass '-n' or '--allow-negative-timestamps' to disable this behavior

log报错 请问大佬如何修改运行参数

苏辰汐 发表于 2022-3-23 17:39:22

本帖最后由 苏辰汐 于 2022-3-23 17:51 编辑

Keadovs 发表于 2022-3-23 16:35
warn: some subtitles now have negative timings, which can cause invalid subtitle files
warn: negativ ...
打开log文件夹下对应字幕文件的log,查看调轴日志。这个提示是说明有字幕的时间轴在调轴中为负可能会出问题的意思,可以通过查看对应日志确认哪里有问题

至于要修改bat相关参数的话,可以打开批量bat文件在以下位置添加任意所需的自定义参数
https://s2.loli.net/2022/03/23/AyQ5iEJR8GpkrwO.png

shadows 发表于 2022-3-23 18:17:24

本帖最后由 shadows 于 2022-3-23 18:20 编辑

我有时是用https://github.com/smacke/ffsubsync ,原理也差不多(或者说一样?),根据人声时间来调整字幕
他在readme里也提到了alass

苏辰汐 发表于 2022-3-23 18:48:19

shadows 发表于 2022-3-23 18:17
我有时是用https://github.com/smacke/ffsubsync ,原理也差不多(或者说一样?),根据人声时间来调整字幕 ...

这两个各有千秋,都有一些对方没有的特点。实际效果我也没有对比过,ffsubsync没怎么用过

shadows 发表于 2022-3-23 19:08:43

苏辰汐 发表于 2022-3-23 18:48
这两个各有千秋,都有一些对方没有的特点。实际效果我也没有对比过,ffsubsync没怎么用过
...

我感觉是一样的思路,可能具体实现不同吧……ffsubsync还在维护,可以期待未来的发展
页: [1] 2 3 4 5
查看完整版本: Alass:另一种批量自动调轴工具