#!/usr/bin/env python3
import json
import os
import sys

from faster_whisper import WhisperModel


def main():
    if len(sys.argv) != 2:
        print(json.dumps({"ok": False, "error": "Usage: local_stt.py <audio-file>"}))
        return 2
    audio_path = sys.argv[1]
    model_name = os.environ.get("LOCAL_STT_MODEL", "tiny")
    compute_type = os.environ.get("LOCAL_STT_COMPUTE_TYPE", "int8")
    try:
        model = WhisperModel(model_name, device="cpu", compute_type=compute_type)
        segments, info = model.transcribe(audio_path, beam_size=5, vad_filter=True)
        text = " ".join(seg.text.strip() for seg in segments if seg.text.strip()).strip()
        print(json.dumps({"ok": True, "text": text, "language": info.language, "language_probability": info.language_probability}, ensure_ascii=False))
        return 0
    except Exception as e:
        print(json.dumps({"ok": False, "error": str(e)}, ensure_ascii=False))
        return 1


if __name__ == "__main__":
    raise SystemExit(main())
