找回密码
 立即注册
查看: 17726|回复: 54

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

  • TA的每日心情
    慵懒
    2019-12-23 15:09
  • 签到天数: 42 天

    [LV.5]常住居民I

    5

    主题

    476

    回帖

    215

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    366700
    苏辰汐 发表于 2022-2-2 17:52:07 | 显示全部楼层 |阅读模式
    本帖最后由 苏辰汐 于 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: 自动调轴工具批量处理特此感谢!






    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x

    评分

    参与人数 2活跃度 +5608 收起 理由
    cocola + 1000 很實用
    tonyhsie + 4608 cool

    查看全部评分

    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2016-12-31 01:33
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    69

    主题

    1377

    回帖

    1万

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    2969813

    卓越贡献

    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 的確不失為另一種不錯的選擇


    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x

    评分

    参与人数 2活跃度 +10320 收起 理由
    Yukarubih + 5200 神马都是浮云
    苏辰汐 + 5120 很给力!

    查看全部评分

    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-12-23 15:09
  • 签到天数: 42 天

    [LV.5]常住居民I

    5

    主题

    476

    回帖

    215

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    366700
    苏辰汐  楼主| 发表于 2022-2-2 18:06:35 | 显示全部楼层
    本帖最后由 苏辰汐 于 2022-2-3 15:41 编辑
    参考文件可以是视频文件,也可以是另一份正确时轴的字幕

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

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

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

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

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


    点评

    已整合至主楼  发表于 2022-2-2 19:06
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-12-23 15:09
  • 签到天数: 42 天

    [LV.5]常住居民I

    5

    主题

    476

    回帖

    215

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    366700
    苏辰汐  楼主| 发表于 2022-2-2 18:55:52 | 显示全部楼层
    这工具还可以通过视频制作带时间轴的空srt文件,以便制作字幕使用
    命令行参考:alass myMovie.mkv _ reference.srt
    经测试120分钟视频生成时间轴的空srt文件大概耗时1-2分钟




    点评

    已整合至主楼  发表于 2022-2-2 19:07
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2016-12-31 01:33
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    69

    主题

    1377

    回帖

    1万

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    2969813

    卓越贡献

    tonyhsie 发表于 2022-2-2 21:04:49 | 显示全部楼层
    1.参考文件为<xxx.xxx>(参考文件可以是视频文件,也可以是另一份正确时轴的字幕)

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


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

    它又怎麼判斷?


    感覺很神奇.....
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-12-23 15:09
  • 签到天数: 42 天

    [LV.5]常住居民I

    5

    主题

    476

    回帖

    215

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    366700
    苏辰汐  楼主| 发表于 2022-2-2 21:17:18 | 显示全部楼层
    本帖最后由 苏辰汐 于 2022-2-2 22:00 编辑
    tonyhsie 发表于 2022-2-2 21:04
    參考文件是視頻的話它是怎麼調軸的?

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

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

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

    点评

    看了論文跟投影片,感覺蠻強大的,有機會再來試試  发表于 2022-2-3 02:45
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-27 03:26
  • 签到天数: 373 天

    [LV.9]以坛为家II

    1

    主题

    33

    回帖

    348

    VC币

    白金会员

    Rank: 12Rank: 12Rank: 12

    积分
    55415
    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报错 请问大佬如何修改运行参数
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-12-23 15:09
  • 签到天数: 42 天

    [LV.5]常住居民I

    5

    主题

    476

    回帖

    215

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    366700
    苏辰汐  楼主| 发表于 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文件在以下位置添加任意所需的自定义参数

    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-6 15:37
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    2

    主题

    353

    回帖

    42

    VC币

    荣誉会员

    Rank: 14Rank: 14Rank: 14Rank: 14

    积分
    142578

    活跃达人

    shadows 发表于 2022-3-23 18:17:24 | 显示全部楼层
    本帖最后由 shadows 于 2022-3-23 18:20 编辑

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

    评分

    参与人数 1活跃度 +1000 收起 理由
    tonyhsie + 1000 很给力!

    查看全部评分

    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-12-23 15:09
  • 签到天数: 42 天

    [LV.5]常住居民I

    5

    主题

    476

    回帖

    215

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    366700
    苏辰汐  楼主| 发表于 2022-3-23 18:48:19 | 显示全部楼层
    shadows 发表于 2022-3-23 18:17
    我有时是用https://github.com/smacke/ffsubsync ,原理也差不多(或者说一样?),根据人声时间来调整字幕 ...

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

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-6 15:37
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    2

    主题

    353

    回帖

    42

    VC币

    荣誉会员

    Rank: 14Rank: 14Rank: 14Rank: 14

    积分
    142578

    活跃达人

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

    我感觉是一样的思路,可能具体实现不同吧……ffsubsync还在维护,可以期待未来的发展
    回复

    使用道具 举报

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

    本版积分规则

    快速回复 返回顶部 返回列表