{"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/a-diffusion-based-generative-equalizer-for","title":"A Diffusion-Based Generative Equalizer for Music Restoration","arxiv_id":"2403.18636","date":"2024-03-27","proceeding":null,"authors":["Eloi Moliner","Maija Turunen","Filip Elvander","Vesa Välimäki"],"abstract":"This paper presents a novel approach to audio restoration, focusing on the enhancement of low-quality music recordings, and in particular historical ones. Building upon a previous algorithm called BABE, or Blind Audio Bandwidth Extension, we introduce BABE-2, which presents a series of improvements. This research broadens the concept of bandwidth extension to \\emph{generative equalization}, a novel task that, to the best of our knowledge, has not been explicitly addressed in previous studies. BABE-2 is built around an optimization algorithm utilizing priors from diffusion models, which are trained or fine-tuned using a curated set of high-quality music tracks. The algorithm simultaneously performs two critical tasks: estimation of the filter degradation magnitude response and hallucination of the restored audio. The proposed method is objectively evaluated on historical piano recordings, showing an enhancement over the prior version. The method yields similarly impressive results in rejuvenating the works of renowned vocalists Enrico Caruso and Nellie Melba. This research represents an advancement in the practical restoration of historical music.","url_abs":"https://arxiv.org/abs/2403.18636v2","url_pdf":"https://arxiv.org/pdf/2403.18636v2.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":"a-diffusion-based-generative-equalizer-for","repo_url":"https://github.com/eloimoliner/babe2","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"bandwidth-extension","task_name":"Bandwidth Extension"},{"task_slug":"hallucination","task_name":"Hallucination"}],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"},{"method_slug":"set","method_name":"SET"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2403.18636","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2403.18636"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+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/eloimoliner/babe2","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":5,"ran_draft_wrong":2,"ran_fixture":1,"unverified":1},"by_repo_kind":{"official":{"samples":9,"ran":8,"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":0,"samples":[{"code_sha256_prefix":"fb82da2f3594f544","entry":"apply_filter","repo":"eloimoliner/babe2","repo_kind":"official","path":"utils/blind_bwe_utils.py","file_url":"https://github.com/eloimoliner/babe2/blob/HEAD/utils/blind_bwe_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"fb82da2f3594f544"}},{"code_sha256_prefix":"674eca7b9e1b6439","entry":"format_time","repo":"eloimoliner/babe2","repo_kind":"official","path":"utils/dnnlib/util.py","file_url":"https://github.com/eloimoliner/babe2/blob/HEAD/utils/dnnlib/util.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"674eca7b9e1b6439"}},{"code_sha256_prefix":"32af001972a0699f","entry":"format_time_brief","repo":"eloimoliner/babe2","repo_kind":"official","path":"utils/dnnlib/util.py","file_url":"https://github.com/eloimoliner/babe2/blob/HEAD/utils/dnnlib/util.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"32af001972a0699f"}},{"code_sha256_prefix":"ef3bbf76b4e5fc56","entry":"get_FIR_high_pass","repo":"eloimoliner/babe2","repo_kind":"official","path":"utils/bandwidth_extension.py","file_url":"https://github.com/eloimoliner/babe2/blob/HEAD/utils/bandwidth_extension.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ef3bbf76b4e5fc56"}},{"code_sha256_prefix":"738fe3789883750b","entry":"get_FIR_lowpass","repo":"eloimoliner/babe2","repo_kind":"official","path":"utils/bandwidth_extension.py","file_url":"https://github.com/eloimoliner/babe2/blob/HEAD/utils/bandwidth_extension.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"738fe3789883750b"}},{"code_sha256_prefix":"16e4f29b6b9f674b","entry":"prepare_filter","repo":"eloimoliner/babe2","repo_kind":"official","path":"utils/bandwidth_extension.py","file_url":"https://github.com/eloimoliner/babe2/blob/HEAD/utils/bandwidth_extension.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"16e4f29b6b9f674b"}},{"code_sha256_prefix":"f9f6a2abd0b08bbe","entry":"smooth_LTAS","repo":"eloimoliner/babe2","repo_kind":"official","path":"utils/blind_bwe_utils.py","file_url":"https://github.com/eloimoliner/babe2/blob/HEAD/utils/blind_bwe_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f9f6a2abd0b08bbe"}},{"code_sha256_prefix":"d41a4250066bce93","entry":"weight_init","repo":"eloimoliner/babe2","repo_kind":"official","path":"networks/cqtdiff.py","file_url":"https://github.com/eloimoliner/babe2/blob/HEAD/networks/cqtdiff.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d41a4250066bce93"}},{"code_sha256_prefix":"9d31d2c4cd16bb2d","entry":"ask_yes_no","repo":"eloimoliner/babe2","repo_kind":"official","path":"utils/dnnlib/util.py","file_url":"https://github.com/eloimoliner/babe2/blob/HEAD/utils/dnnlib/util.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9d31d2c4cd16bb2d"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}