import subprocess
import tempfile
import os
from flask import Flask, request, jsonify

app = Flask(__name__)

WHISPER_CLI = "/root/whisper.cpp/build/bin/whisper-cli"
MODEL = "/root/whisper.cpp/models/ggml-tiny.bin"

@app.post("/api/stt")
def stt():
    if "audio" not in request.files:
        return jsonify({"error": "no audio file"}), 400

    audio = request.files["audio"]

    with tempfile.NamedTemporaryFile(delete=False, suffix=".wav") as tmp:
        audio.save(tmp.name)

        try:
            result = subprocess.check_output(
                [WHISPER_CLI, "-m", MODEL, "-f", tmp.name],
                text=True
            )
            text = result.strip().split("\n")[-1]
        except Exception as e:
            text = ""

        os.remove(tmp.name)

    return jsonify({"text": text})
