From d53136d91c7f7f6d2cd6e4e35f8b900a0a07298f Mon Sep 17 00:00:00 2001 From: Mahdi Date: Tue, 22 Sep 2026 11:30:07 +0330 Subject: [PATCH] Restructuring the STT structure --- apps/stt/.env.example | 2 ++ apps/stt/main.py | 35 +++++++++++++++++++++++++++++++++-- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/apps/stt/.env.example b/apps/stt/.env.example index fdbc090..1766800 100644 --- a/apps/stt/.env.example +++ b/apps/stt/.env.example @@ -1,4 +1,6 @@ # Local Pipecat Whisper — no GapGPT / OpenAI cloud key required for STT. +# Use a local size: tiny | base | small | medium | large-v3 +# Do NOT use cloud names like whisper-1 STT_MODEL=small STT_DEVICE=cpu STT_COMPUTE_TYPE=int8 diff --git a/apps/stt/main.py b/apps/stt/main.py index 3af3dee..351e432 100644 --- a/apps/stt/main.py +++ b/apps/stt/main.py @@ -39,8 +39,39 @@ def _require_token(header_token: str | None) -> None: def _model_name() -> str: - # faster-whisper / Pipecat: tiny | base | small | medium | large-v3 | ... - return _env("STT_MODEL", "small") or "small" + """Map env / legacy cloud names to Faster-Whisper local sizes.""" + raw = (_env("STT_MODEL", "small") or "small").lower() + # Old GapGPT/OpenAI cloud id — not a local Whisper size + legacy = { + "whisper-1": "small", + "whisper": "small", + "gpt-4o-transcribe": "small", + "gpt-4o-mini-transcribe": "base", + } + if raw in legacy: + return legacy[raw] + allowed = { + "tiny", + "tiny.en", + "base", + "base.en", + "small", + "small.en", + "medium", + "medium.en", + "large", + "large-v1", + "large-v2", + "large-v3", + "distil-large-v2", + "distil-medium.en", + "distil-large-v3", + "large-v3-turbo", + } + if raw in allowed: + return raw + # unknown → safe default for Persian + return "small" def _stt_service() -> WhisperSTTService: