Ayanaminn / N46Whisper

Whisper based Japanese subtitle generator
MIT License
1.56k stars 128 forks source link

【功能提案】提供选项「是否给有空格的行分行」 #7

Closed Lenshyuu227 closed 1 year ago

Lenshyuu227 commented 1 year ago

■功能 在参数选择那里提供一个新的选项,「是否对存在空格的行实施分割」。用户可根据自身需要选择「是」或「否」。 如果选择了「是」,则对存在空格的行进行分割,分割后的若干行均临时采用相同时间戳,且添加了adjust_required标记提示调整时间戳避免叠轴。 效果如下 ○分割前

Dialogue: 0,0:01:06.52,0:01:17.52,default,,0,0,0,,スマホ見てる時点でもう失格です 後輩メンバーから言いたい放題言われながらも必死にアピールを続け

○分割后

Dialogue: 0,0:01:06.52,0:01:17.52,default,,0,0,0,,スマホ見てる時点でもう失格です Dialogue: 0,0:01:06.52,0:01:17.52,default,,0,0,0,,後輩メンバーから言いたい放題言われながらも必死にアピールを続け(adjust_required)

■添加该功能的理由 目前Whisper转录时可能会有好几句话放在了同一行,导致一行过长。特别是在多人说话时该情况出现频率很高。如果能拆开的话,轴只需要把分出来的同一个时间戳的若干行重新调整一下各行的时长就能解决问题了。相当于代劳了aegisub的split。

※ 因为已经写好这个功能试着跑过一遍了,如果觉得确实有必要添加该功能的话,我可以提交PR。

Ayanaminn commented 1 year ago

感谢,这个功能比较实际。然后我想了一下,按空格分割可能还有若干种情况需要考虑,以避免无效分割:

  1. 有英文的情况,如

    Birthday Liveについて話そうかなと思います

这里若仅以空格分割就反而多余。实际上应避免分割。

  1. 短句或单词的情况, 如

    じゃあ行きまーす せーの ふふ はい はい あー全然ダメでした

这里有较为多的语气词,单字或短句,如果每个元素都分割可能没有必要,反而增加了调轴的工作量。 我的想法是这里可以提供用户自定义的阈值(或直接设定),如提供分句强度的选项。例如,强分割时每个元素都分割,弱分割时只有空格后的词长度大于5才进行分割(暂时选了一个5,我觉得可能这个长度能过滤大部分日语短词的长度) 那么以上例句就被分割为

じゃあ行きまーす せーの ふふ はい はい(adjust_required) あー全然ダメでした(adjust_required)

这样应该会更实际一点

这几种情况我大概有实现方法的思路。我觉得你看是不是可以提交PR先把分割功能加进来,然后我再去打补丁。 也看你还有没有别的想法。

Lenshyuu227 commented 1 year ago

分句强度这个想法非常好! 现在我做的只是单纯把有空格的地方给替换掉换行,没考虑到切得太细碎的问题以及英文的情况。 那我过两天先提交一个PR吧。