# speaches — irv-ml1. Copy to .env on the host and adjust.

# ── Image ───────────────────────────────────────────────────────────────────
# PINNED BY DIGEST, deliberately. The VAD-off setting below rides on an
# upstream variable explicitly marked unstable (`_UNSTABLE_VAD_FILTER`); an
# unpinned `:latest-cuda` could rename it on any bump, silently restoring VAD
# and shifting `no_speech_prob` semantics under Eyra's calibrated gate.
# Bumping this tag is a deliberate act that REQUIRES re-running the
# verbose_json fidelity check afterwards. Digest captured 2026-08-21.
SPEACHES_IMAGE=ghcr.io/speaches-ai/speaches@sha256:6ec12ebf890a17e0d4b242a8ba9e0eb1fb836e60e8a3c857aea9838d541579ac

# ── Network ─────────────────────────────────────────────────────────────────
SPEACHES_PORT=8204
SPEACHES_BIND=0.0.0.0

# ── GPU ─────────────────────────────────────────────────────────────────────
# 1 = RTX A6000 (26 GB free). 0 = RTX 3090, already hosting parakeet + TTS.
SPEACHES_GPU_ID=1

# ── Models ──────────────────────────────────────────────────────────────────
# Both tiers preloaded at startup so the first call of a meeting is not a
# cold download. Repo IDs verified against the HF API 2026-08-21.
#   large-v3        (~3.1 GB fp16) — batch/accuracy tier, post-meeting job
#   distil-large-v3 (~1.5 GB fp16) — low-latency draft captioning
# ⚠ distil-large-v3 is ENGLISH-ONLY. Eyra is English-only for v1 by design.
#   When multilingual unparks, `Systran/faster-whisper-large-v3-turbo` is the
#   multilingual replacement for the fast tier — swapping it is a .env edit.
SPEACHES_PRELOAD_MODELS=["Systran/faster-whisper-large-v3","Systran/faster-distil-whisper-large-v3"]
SPEACHES_CACHE_DIR=/worktank/speaches/cache

# ── Inference ───────────────────────────────────────────────────────────────
# VAD OFF — consumer requirement, do not flip without telling eyra-dev.
SPEACHES_VAD_FILTER=False
# Ampere sm_86: fp16 is correct here; no FP8/NVFP4 on this hardware.
SPEACHES_COMPUTE_TYPE=float16
SPEACHES_NUM_WORKERS=1
# -1 = never unload (deterministic latency). 300 = upstream default, trades
# latency for VRAM — switch if the A6000 gets tight.
SPEACHES_STT_MODEL_TTL=-1

# ── Misc ────────────────────────────────────────────────────────────────────
SPEACHES_ENABLE_UI=true
SPEACHES_LOG_LEVEL=info
