Revert "Auto-route NZ folk-pop directly to Gemini (skip Scribe)"

This reverts commit 91caf957f2.
This commit is contained in:
Sebastjan Artič 2026-04-29 18:59:51 +00:00
parent 91caf957f2
commit 49546410ca

View File

@ -575,43 +575,6 @@ Output ONLY the JSON object."""
return None
def is_likely_folk_pop(filename_hint=None):
"""Detekcija ali je pesem narodno-zabavna (NZ) za auto-routing na Gemini.
Scribe slabo transkribira NZ glasbo (Avsenik, Modrijani, itd.),
Gemini 3 Pro je veliko zanesljivejši. Zato auto-routamo NZ pesmi
direktno na Gemini.
"""
if not filename_hint:
return False
name = filename_hint.lower()
# Whitelist znanih NZ izvajalcev (slovenski + hrvaški + bosanski + srbski folk-pop)
NZ_KEYWORDS = [
# Tipične besede
"ansambel", "ansambl", "tamburaški", "polka", "valček", "narodno",
"veseli", "studio", "vox", "trio", "kvintet", "oktet",
# Slovenski Avseniki & sorodni
"avsenik", "slak", "fehtar", "modrijan", "atomik", "feniks",
"gadi", "mladi korenjaki", "prinčki", "vikend", "stil", "unikat",
"veseli svatje", "topliški", "korenjaki", "gorenjski",
"prleški", "štajerski", "primorski", "dolenjski",
"fantje", "trio", "kvartet",
# Hrvaški
"klapa", "stoka", "thompson", "marko perković", "mate bulić",
"miroslav škoro", "halid bešlić", "haris džinović",
# Srbski / bosanski folk
"lepa brena", "ceca", "bijelo dugme", "azra",
]
for kw in NZ_KEYWORDS:
if kw in name:
return True
return False
def transcribe_full(audio_path, lang=None, model_size="small", provider="auto", filename_hint=None):
"""Whisper/Scribe transcript dispatcher z hybrid fallback.
@ -631,21 +594,6 @@ def transcribe_full(audio_path, lang=None, model_size="small", provider="auto",
if provider == "auto":
provider = "hybrid" if (has_scribe and has_gemini) else ("elevenlabs" if has_scribe else "local")
# ─── NZ AUTO-ROUTING ──────────────────────────────────────
# Če je pesem zaznana kot narodno-zabavna IN imamo Gemini → preskoči Scribe.
# Scribe slabo transkribira NZ glasbo (Avsenik, Modrijani itd.), Gemini boljši.
if has_gemini and provider in ("hybrid", "auto") and is_likely_folk_pop(filename_hint):
print(f"🎻 NZ pesem zaznana ('{filename_hint}') → Gemini 3 Pro direktno (preskoči Scribe)", file=sys.stderr)
result = transcribe_with_gemini(audio_path, lang=lang, filename_hint=filename_hint)
if result and result.get("segments"):
return result
# Če Gemini failed, pade na Scribe
if has_scribe:
print(f" ⚠️ Gemini failed → fallback na Scribe", file=sys.stderr)
provider = "elevenlabs"
else:
return {"language": "unknown", "language_probability": 0.0, "segments": []}
# ─── HYBRID: Scribe primary, Gemini fallback ───
if provider == "hybrid":
if not has_scribe: