from __future__ import annotations

import subprocess
from pathlib import Path

_EDGE_TTS = Path.home() / "miniconda3/bin/edge-tts"


def synthesize(text: str, wav_path: Path, voice: str = "en-US-AriaNeural") -> None:
    mp3_path = wav_path.with_suffix(".mp3")
    subprocess.run(
        [str(_EDGE_TTS), "--text", text, "--voice", voice, "--write-media", str(mp3_path)],
        check=True,
        timeout=60,
        capture_output=True,
    )
    subprocess.run(
        ["ffmpeg", "-y", "-i", str(mp3_path), "-ar", "16000", "-ac", "1", str(wav_path)],
        check=True,
        capture_output=True,
    )
    mp3_path.unlink(missing_ok=True)
