Universal chorus selection: chorus mandatory, pre-chorus only natural extension
User feedback: 'REFREN je obvezen, pre-chorus opcijsko' + 'sistem mora biti
stabilen za vse jezike, tudi španščino in romunščino'.
Two changes:
1. Web search is now MANDATORY first step (was: optional fallback):
- Even if Claude thinks it knows the song, must search lyrics first
- Universal lyrics sources by language:
SLO: besedila.com, lyricstranslate.com
DE: songtexte.com
HR/SR/BS: tekstovi.net
ES: letras.com, musica.com
RO: versuri.ro
IT: angolotesti.it
FR: paroles.net
EN: genius.com, azlyrics.com
Universal: lyricstranslate.com (any language)
- Search strategy: artist+title first, then transcript snippet fallback
- Without lyrics, Claude cannot reliably identify chorus boundaries
2. Simplified selection rules - chorus is THE priority:
- Chorus (full first occurrence) = MANDATORY
- Pre-chorus = ONLY if 1-2 verse lines tightly connected to chorus
- In doubt: just take chorus alone (12-25s)
- Outro fillers explicitly multi-language:
SLO 'aj ja ja' / 'ej ej ej'
EN 'yeah' / 'oh oh'
ES 'ay ay ay'
RO 'hei hei'
JA 'la la la'
- 12-35s total range (was 15-35s, now allows shorter chorus-only clips)
This makes the system language-agnostic: works the same way for Slovenian
narodno-zabavna, Spanish reggaeton, Romanian manele, German Schlager, etc.
The lyrics lookup is what makes it stable across languages.
This commit is contained in:
parent
389c26d012
commit
90cdad516b
@ -769,17 +769,35 @@ def _build_analysis_prompt(transcript, video_duration, target_duration=30, filen
|
|||||||
hint_block = f"""
|
hint_block = f"""
|
||||||
|
|
||||||
🎵 IME DATOTEKE: "{filename_hint}"
|
🎵 IME DATOTEKE: "{filename_hint}"
|
||||||
Iz imena datoteke morda lahko prepoznaš naslov pesmi ali izvajalca. Če je tako:
|
|
||||||
- Uporabi svoje znanje o **dejanskem besedilu** te pesmi
|
|
||||||
- Če Whisper transkript ne ustreza znanemu besedilu pesmi, POPRAVI besedilo na **dejansko besedilo pesmi**
|
|
||||||
- Ohrani timestamp-e iz Whisper-ja (časovne meje so pravilne, samo besede so morda napačne)
|
|
||||||
|
|
||||||
🔍 ČE NE POZNAŠ PESMI (npr. slovenske narodno-zabavne, manj znane pesmi) → **UPORABI web_search tool** da poiščeš pravo besedilo!
|
🚨 **PRVI KORAK — VEDNO PRED ANALIZO**:
|
||||||
Primeri search queryjev:
|
Iz imena datoteke prepoznaj izvajalca + naslov pesmi. Potem **OBVEZNO uporabi web_search tool** da poiščeš pravo besedilo pesmi — TUDI ČE MISLIŠ DA POZNAŠ PESEM.
|
||||||
- "[ime izvajalca] [naslov pesmi] besedilo" (slovenske: Modrijani, Veseli Dolenjci, Avseniki, Čuki, Atomik Harmonik)
|
|
||||||
- "[artist] [title] lyrics" (angleške/nemške)
|
Razlog: večinoma ne poznaš celotnih besedil pesmi (predvsem ne-angleških). Brez pravega besedila NE MOREŠ:
|
||||||
- Pogosto so besedila na: besedila.com, lyricstranslate.com, genius.com, tekstovi.net (HR/SR), songtexte.com (DE)
|
- Pravilno prepoznati strukture (verz / pre-chorus / chorus / bridge)
|
||||||
Ko najdeš pravo besedilo, uporabi to za popravljanje "corrected_segments" — **transkript bo veliko bolj točen** kot če le ugibaš.
|
- Vedeti kje refren **začne in konča** (vključno z outro frazami)
|
||||||
|
- Popraviti STT halucinacij
|
||||||
|
|
||||||
|
📋 **Search strategija** (univerzalna za vse jezike):
|
||||||
|
1. Prvo iskanje: `[izvajalec] [naslov] lyrics` ALI `[izvajalec] [naslov] besedilo/Songtext/letra/versuri`
|
||||||
|
2. Če ni rezultatov: `[del transkripta - 4-5 zaporednih besed] lyrics`
|
||||||
|
3. Trusted lyrics sajti po jezikih:
|
||||||
|
- 🇸🇮 SLO: besedila.com, lyricstranslate.com
|
||||||
|
- 🇩🇪 DE: songtexte.com, lyricstranslate.com
|
||||||
|
- 🇭🇷🇷🇸 HR/SR/BS: tekstovi.net, lyricstranslate.com
|
||||||
|
- 🇪🇸 ES: letras.com, musica.com
|
||||||
|
- 🇷🇴 RO: versuri.ro, lyricstranslate.com
|
||||||
|
- 🇮🇹 IT: angolotesti.it
|
||||||
|
- 🇫🇷 FR: paroles.net
|
||||||
|
- 🇬🇧🇺🇸 EN: genius.com, azlyrics.com
|
||||||
|
- **Univerzalno**: lyricstranslate.com (vsi jeziki)
|
||||||
|
|
||||||
|
Ko najdeš lyrics:
|
||||||
|
- Identificiraj kateri del je REFREN (ponavlja se)
|
||||||
|
- Identificiraj VERZE (zgodba, ne ponavlja se)
|
||||||
|
- Identificiraj BRIDGE / PRE-CHORUS / OUTRO če obstajajo
|
||||||
|
- Mapiraj transkript timestamp-e na strukturne dele
|
||||||
|
- Popravi corrected_segments z dejanskim besedilom
|
||||||
"""
|
"""
|
||||||
|
|
||||||
return f"""Tu je transcript pesmi iz STT modela (timestamp v sekundah, besedilo):
|
return f"""Tu je transcript pesmi iz STT modela (timestamp v sekundah, besedilo):
|
||||||
@ -788,8 +806,8 @@ Iz imena datoteke morda lahko prepoznaš naslov pesmi ali izvajalca. Če je tako
|
|||||||
|
|
||||||
Cela pesem traja {video_duration:.1f}s. Cilj: izrezati ~{target_duration}s odsek za TikTok/Instagram Reel.{hint_block}
|
Cela pesem traja {video_duration:.1f}s. Cilj: izrezati ~{target_duration}s odsek za TikTok/Instagram Reel.{hint_block}
|
||||||
|
|
||||||
⚠️ POMEMBNO: STT lahko naredi napake — narečne besede, slovanski jeziki, ko glasba prevladuje:
|
⚠️ POMEMBNO: STT lahko naredi napake v vseh jezikih, posebej:
|
||||||
- Pri narečjih in slovanskih jezikih
|
- Pri narečjih, slovanskih jezikih, romanskih jezikih
|
||||||
- Generira "tipičen" tekst (npr. tekst druge pesmi istega izvajalca)
|
- Generira "tipičen" tekst (npr. tekst druge pesmi istega izvajalca)
|
||||||
- Lahko vstavi besede ki se POdoBNO slišijo, ampak imajo ČISTO drug pomen
|
- Lahko vstavi besede ki se POdoBNO slišijo, ampak imajo ČISTO drug pomen
|
||||||
|
|
||||||
@ -807,32 +825,40 @@ PROSIM:
|
|||||||
- Refren MORA imeti vse pojavitve ENAKE
|
- Refren MORA imeti vse pojavitve ENAKE
|
||||||
- Popravi pomešane jezike (vse vrstice v enem jeziku)
|
- Popravi pomešane jezike (vse vrstice v enem jeziku)
|
||||||
- Ohrani timestamp-e nespremenjene
|
- Ohrani timestamp-e nespremenjene
|
||||||
3. Prepoznaj REFREN: del besedila ki se PONAVLJA (ponavadi je 2-4 vrstice ki se večkrat ponovijo skozi pesem)
|
3. Prepoznaj REFREN: del besedila ki se PONAVLJA (ponavadi 2-4 vrstice, ki se v pesmi večkrat ponovijo). To je **univerzalno za vse jezike** — refren je strukturni element pesmi, ne le slovenske/nemške/angleške.
|
||||||
|
|
||||||
4. **IZBERI ODSEK PO TEM PRIORITETNEM REDU:**
|
4. **IZBERI ODSEK — REFREN JE GLAVNA STVAR:**
|
||||||
|
|
||||||
🥇 **PRVA IZBIRA**: zadnji verz pred refrenom (build-up) + cel **PRVI** refren
|
## 🎯 OBVEZNO: cel **PRVI** refren
|
||||||
- Build-up = zadnji verz pesmi tik PRED prvim refrenom (običajno 8-15s)
|
- **Začetek**: prva vrstica refrena (kjer ponavljanje prvič začne)
|
||||||
- Refren = ves prvi nastop refrena (običajno 10-20s)
|
- **Konec**: vključno z **vsem naravnim izpevom refrena**:
|
||||||
- SKUPAJ: 20-35 sekund
|
- Outro fraze ki so del refrena (slo: "aj ja ja", "ej ej ej"; en: "yeah", "oh oh"; es: "ay ay ay"; ro: "hei hei"; ja: "la la la" — uniSAERZALno čez jezike)
|
||||||
- Začni na začetku build-up verza (ne sredi besede)
|
- Pevec drži zadnji ton 1-3s — to je **del refrena**, ne reži ga
|
||||||
- **Končaj 1-2 sekunde PO zadnji besedi refrena** — pevec ima outro / drži ton, naj clip zajame celoten emocionalni vrh
|
- Refren naj se **naravno izteče**
|
||||||
- **NE reži clip točno na zadnjo besedo** — refren naj se naravno izteče (vključno s "ej-ej-ej", "oh", "yeah" outroji)
|
|
||||||
- Primer: če refren začne na 32s in zadnja beseda konča na 48s → izberi 20-50s (12s build-up + 16s refren + 2s outro padding)
|
|
||||||
|
|
||||||
🥈 **DRUGA IZBIRA** (samo če pre-chorus ni dovolj močan): samo cel **PRVI** refren
|
## 💡 PRE-CHORUS samo če JE pred refrenom in pasta naravno
|
||||||
- Brez build-upa, samo refren z 1-2s padding pred in 1-2s padding po
|
- **PRE-CHORUS = zadnja 1-2 vrstici verza tik pred refrenom** (slišne, povezane z refrenom)
|
||||||
- Ne sekaj ravno na zadnji besedi
|
- **Dodaj samo če**:
|
||||||
|
- Je tik pred refrenom (brez pavze ali instrumental vmes)
|
||||||
|
- Vsebinsko vodi v refren (gradnja občutka, "stopnjuje" se)
|
||||||
|
- Je kratek: 4-10 sekund
|
||||||
|
- **Ne dodajaj** pre-refrena če:
|
||||||
|
- Refren se začne neposredno za prejšnjim refrenom
|
||||||
|
- Verz je predaleč (>2s pavze) ali je instrumental vmes
|
||||||
|
- Bi presegel skupno dolžino 35s
|
||||||
|
- **V dvomu**: bolje SAMO REFREN kot da bi dodal čuden pre-chorus
|
||||||
|
|
||||||
🥉 **TRETJA IZBIRA** (samo če pesem nima jasnega refrena): najbolj dramatičen/zaključen del
|
## 📏 Skupna dolžina: 12-35 sekund
|
||||||
|
- **Sam refren** (najpogostejša izbira): 12-25s
|
||||||
|
- **Refren + pre-chorus**: 18-32s
|
||||||
|
|
||||||
**NIKOLI**:
|
## 🚫 NIKOLI:
|
||||||
- Ne izbiraj DRUGEGA ali tretjega refrena (pojasnimo: prvi nastop ima največ energije)
|
- **Drugi/tretji refren** — vedno PRVI nastop
|
||||||
- Ne vključuj instrumentalnih medbridge sekcij ali "la la la" delov
|
- **Instrumentalni medbridge** brez petja
|
||||||
- Ne preskakuj med verzi (clip mora biti ena celota)
|
- **Skok med verzi** (clip mora biti ena neprekinjena celota)
|
||||||
- Ne podaljšuj clipa čez 35 sekund
|
- **Sekanje sredi besede ali izpeta tona**
|
||||||
|
|
||||||
5. Če Whisper transkript je v večini halucinacija (manj kot 30% smiselnih besed), v "reason" napiši "WHISPER_HALLUCINATION_DETECTED" in vrni najmanj segmentov (samo tisti ki so smiselni)
|
5. Če transkript je v večini halucinacija (manj kot 30% smiselnih besed), v "reason" napiši "STT_HALLUCINATION_DETECTED"
|
||||||
|
|
||||||
Odgovori SAMO v JSON formatu (brez markdown, brez razlage):
|
Odgovori SAMO v JSON formatu (brez markdown, brez razlage):
|
||||||
{{
|
{{
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user