LABEL_TO_ID = { "intro": 0, "verse": 1, "chorus": 2, "bridge": 3, "inst": 4, "outro": 5, "silence": 6, "intchorus": 7, "prechorus": 8, "gtrbreak": 9, "solo": 10, "quietchorus": 11, "bre": 12, "break": 13, "introverse": 14, "mainriff": 15, "chorushalf": 16, "instintro": 17, "gtr": 18, "vocaloutro": 19, "verse_slow": 20, "fadein": 21, "saxobeat": 22, "transition": 23, "verse1a": 24, "build": 25, "pre-chorus": 26, "outroa": 27, "bigoutro": 28, "fast": 29, "instrumentalverse": 30, "section": 31, "choruspart": 32, "instbridge": 33, "guitar": 34, "instrumental": 35, "breakdown": 36, "rhythmlessintro": 37, "intropt": 38, "interlude": 39, "postchorus": 40, "postverse": 41, "opening": 42, "altchorus": 43, "stutter": 44, "oddriff": 45, "synth": 46, "preverse": 47, "quiet": 48, "raps": 49, "verseinst": 50, "instchorus": 51, "chorus_instrumental": 52, "slowverse": 53, "slow": 54, "worstthingever": 55, "transition2a": 56, "miniverse": 57, "refrain": 58, "introchorus": 59, "drumroll": 60, "guitarsolo": 61, "versepart": 62, "chorusinst": 63, "ending": 64, "no-vocal-intro": 65, "no-vocal-interlude": 66, "no-vocal-outro": 67, "NO_LABEL": 68, # Only referring to cases without labels, this portion of labels will be ignored during the loss calculation process. } ID_TO_LABEL = {v: k for k, v in LABEL_TO_ID.items()} # Reserve 64 embedding positions for dataset identifiers in the model. DATASET_LABEL_TO_DATASET_ID = { "SongForm-HX-7Class": 0, # Categories after rule mapping for HarmonixSet "SongForm-HX-Widen": 1, # Original HarmonixSet "SongForm-Private-Raw": 2, "SongForm-Private": 3, "SongForm-HX-Gemini-Relabeled": 4, # Rule-mapped HarmonixSet corrected by Gemini "SongForm-HX-8Class": 5, # Rule-mapped (pre-chorus retained) "SongForm-Hook": 6, "SongForm-Gem": 7, "SongForm-Gem-Only-Label": 8, # Use only segments with labels in SongForm-Gem } DATASET_ID_TO_DATASET_LABEL = {v: k for k, v in DATASET_LABEL_TO_DATASET_ID.items()} DATASET_ID_ALLOWED_LABEL_IDS = { 0: [0, 1, 2, 3, 4, 5, 6], 1: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, ], 2: [0, 1, 2, 3, 26, 39, 64, 65, 66, 67], 3: [0, 1, 2, 3, 4, 5, 6, 26, 39, 64, 65, 66, 67], 4: [0, 1, 2, 3, 4, 5, 6, 26], 5: [0, 1, 2, 3, 4, 5, 6, 26], 6: [0, 1, 2, 3, 4, 5, 6, 26], 7: [0, 1, 2, 3, 4, 5, 6, 26], 8: [0, 1, 2, 3, 4, 5, 6, 26], }