File size: 802 Bytes
345855e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | from faster_whisper import WhisperModel
from .config import MODEL_SIZE, TEMP_DIR
from .ffmpeg import extract_audio
import os
model = None
os.makedirs(TEMP_DIR, exist_ok=True)
def get_model():
global model
if model is None:
model = WhisperModel(
MODEL_SIZE,
device="cpu",
compute_type="int8"
)
return model
def transcribe_video(video):
audio = f"{TEMP_DIR}/audio.wav"
extract_audio(video, audio)
segments, _ = get_model().transcribe(
audio,
word_timestamps=True
)
words = []
for seg in segments:
for w in seg.words:
words.append({
"start": w.start,
"end": w.end,
"text": w.word.strip()
})
return words
|