"""faster-whisper small STT starter — lokální, offline, CPU-safe."""

from __future__ import annotations

import os
import sys

from faster_whisper import WhisperModel

HF_TOKEN = os.environ.get("HF_TOKEN")  # výhradně z env
MODEL_SIZE = "small"  # ~500 MB, MIT, CPU real-time
MODELS_DIR = os.environ.get("DEV_ENV_MODELS_DIR", "models")


def transcribe(audio_path: str) -> str:
    model = WhisperModel(
        MODEL_SIZE,
        device="cpu",
        compute_type="int8",
        download_root=MODELS_DIR,
        local_files_only=True,  # offline — žádné síťové volání během běhu
        token=HF_TOKEN,
    )
    segments, _ = model.transcribe(audio_path, beam_size=5)
    return "".join(segment.text for segment in segments)


if __name__ == "__main__":
    if len(sys.argv) < 2:
        print("Použití: python whisper_starter.py <cesta_k_audio>", file=sys.stderr)
        sys.exit(1)
    text = transcribe(sys.argv[1])
    print(text)
