From 6270c92b44c0c35407be7ff6465ffb3117b97b52 Mon Sep 17 00:00:00 2001 From: OpenClaw Agent Date: Sat, 2 May 2026 11:17:51 +0000 Subject: [PATCH] STT routing: FOLX DE / ZWEI \u2192 Scribe default (4\u00d7 hitrej\u0161e + brez Mississippi/Mrs. Sadie halucinacij). SLO postaje ostanejo na Soniox. User lahko override v UI. --- app/main.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/app/main.py b/app/main.py index e79bcff..3d17a18 100644 --- a/app/main.py +++ b/app/main.py @@ -759,8 +759,23 @@ def process_job(job_id): fn_hint = Path(job["filename"]).stem cmd += ["--filename-hint", fn_hint] # STT provider (elevenlabs = Scribe, local = faster-whisper, auto = preferiraj Scribe) - if job.get("whisper_provider"): - cmd += ["--whisper-provider", job["whisper_provider"]] + # Per-station default routing: + # FOLX DE / ZWEI (nemške) → Scribe (boljši za nemščino, brez "Mrs. Sadie" halucinacij) + # FOLX SLO / ONE / ADRIA → Soniox primary (auto = soniox_chain) + # User lahko v UI override-a (whisper_provider polje). + station = (job.get("tv_station") or "").upper() + DE_STATIONS = ("FOLX DE", "ZWEI", "ZWEI MUSIC TV", "FOLX MUSIC TV") + user_provider = job.get("whisper_provider") + if user_provider and user_provider not in ("auto", ""): + # User explicitly chose a provider — respect it + cmd += ["--whisper-provider", user_provider] + elif any(s in station for s in DE_STATIONS): + # Auto-route DE → Scribe + cmd += ["--whisper-provider", "elevenlabs"] + print(f"🇩🇪 Auto-routing STT to Scribe za {job.get('tv_station')}", flush=True) + elif user_provider: + # auto → analyze.py si izbere (soniox_chain default) + cmd += ["--whisper-provider", user_provider] # lang: če None ali 'auto', pusti analyze.py auto-detect if job.get("lang") and job["lang"] not in ("auto", ""): cmd += ["--lang", job["lang"]]