From a50e88b7f9e3ad72eea6619d01a09fdc2fd275a1 Mon Sep 17 00:00:00 2001 From: Sting <lallegre26@gmail.com> Date: Wed, 12 Jul 2023 18:55:45 +0200 Subject: [PATCH] Splitting ASS into several lines --- assUtils.py | 18 +++++++++++++++--- autokara.py | 2 +- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/assUtils.py b/assUtils.py index 510e639..3345d5b 100644 --- a/assUtils.py +++ b/assUtils.py @@ -51,12 +51,24 @@ Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text ''' self.file.write(header) - def writeSyls(self, syl_timings): + def writeSyls(self, syl_timings, syls_per_line=10000): last_syl_dur = 500 - start_time = timeToDate(syl_timings[0][0]) + syl_index = 0 + while syl_index < (len(syl_timings) - syls_per_line): + start_time = timeToDate(syl_timings[syl_index][0]) + end_time = timeToDate(syl_timings[syl_index + syls_per_line][0]) + line = f'Dialogue: 0,{start_time},{end_time},Default,,0,0,0,,' + for i in range(syl_index, syl_index + syls_per_line): + syl_dur = round((syl_timings[i+1][0] - syl_timings[i][0]) * 100) + line += f'{{\k{syl_dur:d}}}{syl_timings[i][1]:s}' + line += '\n' + self.file.write(line) + syl_index += syls_per_line + + start_time = timeToDate(syl_timings[syl_index][0]) end_time = timeToDate(syl_timings[-1][0] + last_syl_dur//100) line = f'Dialogue: 0,{start_time},{end_time},Default,,0,0,0,,' - for i in range(len(syl_timings) - 1): + for i in range(syl_index, len(syl_timings) - 1): syl_dur = round((syl_timings[i+1][0] - syl_timings[i][0]) * 100) line += f'{{\k{syl_dur:d}}}{syl_timings[i][1]:s}' line += f'{{\k{last_syl_dur:d}}}{syl_timings[-1][1]:s}\n' diff --git a/autokara.py b/autokara.py index 033aaf4..e7f69b1 100644 --- a/autokara.py +++ b/autokara.py @@ -48,6 +48,6 @@ print("Syls found, writing ASS file...") writer = AssWriter() writer.openAss(ass_file) writer.writeHeader() -writer.writeSyls(syls) +writer.writeSyls(syls, syls_per_line=10) writer.closeAss() -- GitLab