diff --git a/assUtils.py b/assUtils.py index 510e639f8c31ea0d41365f84233cf7abffabe374..3345d5b1665b0c9b21812ab3fcfbf6a9ee3a82c8 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 033aaf421fd735d61eeefa4b47ef3c1e72bc04d4..e7f69b174336edf669cc884c52275ae95fdea7f7 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()