ejercicios/utilities/subtitle_translation.py

42 lines
1.2 KiB
Python

import torch
import whisper
def cuda_works():
print(torch.cuda.is_available())
print(torch.cuda.get_device_name(0))
def format_time(seconds):
ms = int((seconds - int(seconds)) * 1000)
s = int(seconds) % 60
m = (int(seconds) // 60) % 60
h = int(seconds) // 3600
return f"{h:02}:{m:02}:{s:02},{ms:03}"
def generate_subtitles(video_path):
model_name = "medium"
model = whisper.load_model(model_name)
result = model.transcribe(video_path, task="translate", language="es")
srt_path = "subtitles.srt"
with open(srt_path, "w", encoding="utf-8") as srt_file:
for segment in result["segments"]:
start = segment["start"]
end = segment["end"]
text = segment["text"]
srt_file.write(f"{segment['id'] + 1}\n")
srt_file.write(f"{format_time(start)} --> {format_time(end)}\n")
srt_file.write(f"{text}\n\n")
print(f"Subtítle generated in path: {srt_path}")
if __name__ == "__main__":
# cuda_works()
generate_subtitles(
r"C:\Users\david\Videos\Social media\Cursos\Spring Security\Introduccion\Introducción Curso Spring Security Cero a Experto.mp4")