import os
import tempfile

try:
    import whisper
except ImportError:
    whisper = None

MODEL_PATH = os.getenv("WHISPER_MODEL", "base")
MODEL = None


def load_model():
    global MODEL
    if MODEL is None:
        if not whisper:
            raise RuntimeError("Whisper is not installed in the Python environment.")
        MODEL = whisper.load_model(MODEL_PATH)
    return MODEL


def transcribe_audio(audio_bytes):
    try:
        model = load_model()
        with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as temp_file:
            temp_file.write(audio_bytes)
            temp_path = temp_file.name

        result = model.transcribe(temp_path)
        return {
            "success": True,
            "transcript": result.get("text", ""),
            "language": result.get("language"),
            "confidence": result.get("confidence", None),
        }
    except Exception as error:
        return {"success": False, "message": str(error)}
