@echo off
setlocal

:rem ============================================================
:rem Irodori-TTS launcher
:rem
:rem Usage:
:rem   run_irodori.bat [mode] [text] [caption] [server] [port] [out_wav]
:rem
:rem mode:
:rem   WebUI             : Standard WebUI
:rem   VoiceDesignWebUI  : Voice Design WebUI
:rem   CLI               : Generate speech from command line
:rem
:rem Examples:
:rem   run_irodori.bat
:rem   run_irodori.bat WebUI
:rem   run_irodori.bat VoiceDesignWebUI "こんにちは" "落ち着いた女性の声"
:rem   run_irodori.bat CLI "音声合成のテストです" "明るく自然な声"
:rem   run_irodori.bat WebUI "" "" 0.0.0.0 7860
:rem ============================================================



cd /d D:\Irodori-TTS

rem ----- Default arguments -----
set "MODE=WebUI"
set "TEXT=こんにちは。これは音声合成のテストです。"
set "CAPTION=落ち着いた女性の声で、明瞭かつ自然に読み上げる。"
set "SERVER=127.0.0.1"
set "PORT="
set "OUTWAV=output.wav"

rem ----- Command-line arguments -----
if not "%~1"=="" set "MODE=%~1"
if not "%~2"=="" set "TEXT=%~2"
if not "%~3"=="" set "CAPTION=%~3"
if not "%~4"=="" set "SERVER=%~4"
if not "%~5"=="" set "PORT=%~5"
if not "%~6"=="" set "OUTWAV=%~6"

rem ----- Dispatch by mode -----
if /I "%MODE%"=="WebUI" goto WebUI
if /I "%MODE%"=="VoiceDesignWebUI" goto VoiceDesignWebUI
if /I "%MODE%"=="CLI" goto CLI

echo ERROR: Unknown mode: %MODE%
echo.
echo Valid modes: WebUI, VoiceDesignWebUI, CLI
goto END

:VoiceDesignWebUI
if "%PORT%"=="" set "PORT=7861"
echo [Irodori-TTS] mode=VoiceDesignWebUI server=%SERVER% port=%PORT%
uv run --no-sync python gradio_app_voicedesign.py --server-name "%SERVER%" --server-port %PORT%
goto END

:WebUI
if "%PORT%"=="" set "PORT=7860"
echo [Irodori-TTS] mode=WebUI server=%SERVER% port=%PORT%
uv run --no-sync python gradio_app.py --server-name "%SERVER%" --server-port %PORT%
goto END

:CLI
echo [Irodori-TTS] mode=CLI
echo text    = %TEXT%
echo caption = %CAPTION%
echo output wave = %OUTWAV%
uv run --no-sync python infer.py ^
  --hf-checkpoint Aratako/Irodori-TTS-v4.1-Small ^
  --text "%TEXT%" ^
  --caption "%CAPTION%" ^
  --no-ref ^
  --output-wav "%OUTWAV%"
goto END

:END
endlocal
