#!/usr/bin/env python3
"""Utilitários de transcrição com OpenAI Whisper."""

import whisper

_model = None


def get_model():
    global _model
    if _model is None:
        print("[whisper] Carregando modelo 'base'...")
        _model = whisper.load_model("base")
        print("[whisper] Modelo carregado.")
    return _model


def transcrever_audio(video_path: str) -> dict:
    """
    Transcreve o áudio de um vídeo/áudio e retorna:
    {
        "texto": "texto completo",
        "segmentos": [{"inicio": 0.0, "fim": 2.5, "texto": "Olá pessoal"}, ...]
    }
    """
    model = get_model()
    result = model.transcribe(video_path, language="pt", word_timestamps=True)

    segmentos = []
    for seg in result["segments"]:
        segmentos.append({
            "inicio": seg["start"],
            "fim": seg["end"],
            "texto": seg["text"].strip()
        })

    return {
        "texto": result["text"],
        "segmentos": segmentos
    }
