$ErrorActionPreference = "Stop" $scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path $venvDir = Join-Path $scriptDir ".venv" $python = "py -3.11" if (-not (Test-Path $venvDir)) { Invoke-Expression "$python -m venv `"$venvDir`"" } $venvPython = Join-Path $venvDir "Scripts\python.exe" & $venvPython -m pip install --upgrade pip & $venvPython -m pip install -r (Join-Path $scriptDir "requirements.txt") $env:WHISPER_MODEL = if ($env:WHISPER_MODEL) { $env:WHISPER_MODEL } else { "base" } $env:WHISPER_LANGUAGE = if ($env:WHISPER_LANGUAGE) { $env:WHISPER_LANGUAGE } else { "" } $env:WHISPER_DEVICE = if ($env:WHISPER_DEVICE) { $env:WHISPER_DEVICE } else { "auto" } $env:WHISPER_COMPUTE_TYPE = if ($env:WHISPER_COMPUTE_TYPE) { $env:WHISPER_COMPUTE_TYPE } else { "" } $env:WHISPER_BEAM_SIZE = if ($env:WHISPER_BEAM_SIZE) { $env:WHISPER_BEAM_SIZE } else { "5" } $env:WHISPER_VAD_FILTER = if ($env:WHISPER_VAD_FILTER) { $env:WHISPER_VAD_FILTER } else { "1" } $env:WHISPER_DOWNLOAD_ROOT = if ($env:WHISPER_DOWNLOAD_ROOT) { $env:WHISPER_DOWNLOAD_ROOT } else { (Join-Path $scriptDir "models-cache") } Push-Location $scriptDir try { & $venvPython -m uvicorn app:app --host 0.0.0.0 --port 8088 } finally { Pop-Location }