Whisper-TikTok-Demo / src /subtitle_creator.py
MatteoFasulo's picture
Added src folder
cf72e88
raw
history blame
1.26 kB
import os
from pathlib import Path
import torch
def srt_create(whisper_model, path: str, series: str, part: int, text: str, filename: str, **kwargs) -> bool:
series = series.replace(' ', '_')
srt_path = f"{path}{os.sep}{series}{os.sep}"
srt_filename = f"{srt_path}{series}_{part}.srt"
ass_filename = f"{srt_path}{series}_{part}.ass"
absolute_srt_path = Path(srt_filename).absolute()
absolute_ass_path = Path(ass_filename).absolute()
word_dict = {
'Fontname': kwargs.get('font', 'Arial'),
'Alignment': kwargs.get('sub_position', 5),
'BorderStyle': '1',
'Outline': '1',
'Shadow': '2',
'Blur': '21',
'Fontsize': kwargs.get('font_size', 21),
'MarginL': '0',
'MarginR': '0',
}
transcribe = whisper_model.transcribe(
filename, regroup=True, fp16=torch.cuda.is_available())
transcribe.split_by_gap(0.5).split_by_length(kwargs.get(
'max_characters')).merge_by_gap(0.15, max_words=kwargs.get('max_words'))
transcribe.to_srt_vtt(str(absolute_srt_path), word_level=True)
transcribe.to_ass(str(absolute_ass_path), word_level=True,
highlight_color=kwargs.get('font_color'), **word_dict)
return ass_filename