diff --git a/scripts/analyze.py b/scripts/analyze.py index be7927a..40c3b1c 100644 --- a/scripts/analyze.py +++ b/scripts/analyze.py @@ -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: