{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/tracing-back-music-emotion-predictions-to","title":"Tracing Back Music Emotion Predictions to Sound Sources and Intuitive Perceptual Qualities","arxiv_id":"2106.07787","date":"2021-06-14","proceeding":null,"authors":["Shreyan Chowdhury","Verena Praher","Gerhard Widmer"],"abstract":"Music emotion recognition is an important task in MIR (Music Information Retrieval) research. Owing to factors like the subjective nature of the task and the variation of emotional cues between musical genres, there are still significant challenges in developing reliable and generalizable models. One important step towards better models would be to understand what a model is actually learning from the data and how the prediction for a particular input is made. In previous work, we have shown how to derive explanations of model predictions in terms of spectrogram image segments that connect to the high-level emotion prediction via a layer of easily interpretable perceptual features. However, that scheme lacks intuitive musical comprehensibility at the spectrogram level. In the present work, we bridge this gap by merging audioLIME -- a source-separation based explainer -- with mid-level perceptual features, thus forming an intuitive connection chain between the input audio and the output emotion predictions. We demonstrate the usefulness of this method by applying it to debug a biased emotion prediction model.","url_abs":"https://arxiv.org/abs/2106.07787v2","url_pdf":"https://arxiv.org/pdf/2106.07787v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"tracing-back-music-emotion-predictions-to","repo_url":"https://github.com/CPJKU/audioLIME","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}},{"paper_slug":"tracing-back-music-emotion-predictions-to","repo_url":"https://github.com/shreyanc/model_debugging","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"emotion-recognition","task_name":"Emotion Recognition"},{"task_slug":"information-retrieval","task_name":"Information Retrieval"},{"task_slug":"music-emotion-recognition","task_name":"Music Emotion Recognition"},{"task_slug":"music-information-retrieval","task_name":"Music Information Retrieval"},{"task_slug":"prediction","task_name":"Prediction"},{"task_slug":"retrieval","task_name":"Retrieval"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2106.07787","atlas_url":"https://app.syntology.ai/?focus=2106.07787","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2106.07787"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/CPJKU/audioLIME","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/shreyanc/model_debugging","reach":null}],"summary":{"ran_honours":1,"ran_fixture":2,"ran_draft_wrong":2},"by_repo_kind":{"official":{"samples":5,"ran":5,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":5,"samples":[{"code_sha256_prefix":"64cc06029bdc345d","entry":"calc_padding","repo":"shreyanc/model_debugging","repo_kind":"official","path":"model.py","file_url":"https://github.com/shreyanc/model_debugging/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"64cc06029bdc345d"}},{"code_sha256_prefix":"351ba5badfb5705d","entry":"find_index_of_song_id","repo":"shreyanc/model_debugging","repo_kind":"official","path":"nb_helpers.py","file_url":"https://github.com/shreyanc/model_debugging/blob/HEAD/nb_helpers.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"351ba5badfb5705d"}},{"code_sha256_prefix":"c21b2a6b3fd265a4","entry":"get_preds","repo":"shreyanc/model_debugging","repo_kind":"official","path":"nb_helpers.py","file_url":"https://github.com/shreyanc/model_debugging/blob/HEAD/nb_helpers.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c21b2a6b3fd265a4"}},{"code_sha256_prefix":"5b15082b3526031a","entry":"getpad","repo":"shreyanc/model_debugging","repo_kind":"official","path":"model.py","file_url":"https://github.com/shreyanc/model_debugging/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5b15082b3526031a"}},{"code_sha256_prefix":"cf81ed11c32b9c5f","entry":"predict_fn_ml_emo","repo":"shreyanc/model_debugging","repo_kind":"official","path":"nb_helpers.py","file_url":"https://github.com/shreyanc/model_debugging/blob/HEAD/nb_helpers.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"cf81ed11c32b9c5f"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}