Skip to content
Extraits de code Groupes Projets
Valider a50e88b7 rédigé par Sting's avatar Sting
Parcourir les fichiers

Splitting ASS into several lines

parent 330a28cf
Aucune branche associée trouvée
Aucune étiquette associée trouvée
1 requête de fusion!2CNN + Spectral segmentation
......@@ -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'
......
......@@ -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()
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter