whisper_simple / src /infer.py
nunenuh's picture
feat: add preloader for effiecient in time
7640294
raw
history blame contribute delete
834 Bytes
from typing import *
from src import utils
import whisper
MODEL_NAMES = ["tiny", "base", "small", "medium", "large", "large-v1","large-v2"]
MODEL_BASE = whisper.load_model("base")
def model_preloader_downloader():
for mname in MODEL_NAMES:
mdl = whisper.load_model(mname)
del mdl
def model_loader(name: str):
if name=="base":
return MODEL_BASE
else:
return whisper.load_model(name)
def predict(model_name: str, language: str, mic_audio=None, audio=None):
if mic_audio is not None:
voice = mic_audio
elif audio is not None:
voice = audio
else:
return "(please provide audio)"
voice = utils.preprocess_audio(voice)
model = model_loader(model_name)
result = model.transcribe(voice, language=language)
return result["text"]