{"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/arxiv-2602-15491","title":"The Equalizer: Introducing Shape-Gain Decomposition in Neural Audio Codecs","arxiv_id":"2602.15491","date":"2026-02-17","proceeding":null,"authors":["Samir Sadok","Laurent Girin","Xavier Alameda-Pineda"],"abstract":"Neural audio codecs (NACs) typically encode the short-term energy (gain) and normalized structure (shape) of speech/audio signals jointly within the same latent space. As a result, they are poorly robust to a global variation of the input signal level in the sense that such a variation has a strong influence on the embedding vectors at the output of the encoder and their quantization. This methodology is inherently inefficient, leading to codebook redundancy and suboptimal bitrate-distortion performance. To address these limitations, we propose to introduce shape-gain decomposition, widely used in classical speech and audio coding, into the NAC framework. The principle of the proposed Equalizer methodology, easily applicable to any NAC, is to decompose the input signal---before the NAC encoder---into gain and normalized shape vector on a short-term basis. The shape vector is processed by the NAC, while the gain is quantized with scalar quantization and transmitted separately. The output (decoded) signal is reconstructed from the normalized output of the NAC and the quantized gain. Our experiments conducted on speech signals with four different prominent codecs show that this general methodology enables a substantial gain in bitrate-distortion performance, as well as a massive reduction in quantizer complexity.","url_abs":"https://arxiv.org/abs/2602.15491","url_pdf":"https://arxiv.org/pdf/2602.15491","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2602.15491","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2602.15491"}},"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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/facebookresearch/encodec","reach":null},{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/descriptinc/descript-audio-codec","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_fixture":1,"unverified":9},"by_repo_kind":{"found_in_text":{"samples":10,"ran":1,"repositories":2}},"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":"f247e4748f379a76","entry":"snake","repo":"descriptinc/descript-audio-codec","repo_kind":"found_in_text","path":"dac/nn/layers.py","file_url":"https://github.com/descriptinc/descript-audio-codec/blob/HEAD/dac/nn/layers.py","link_basis":"plan_row","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f247e4748f379a76"}},{"code_sha256_prefix":"193e4cb06c7034a4","entry":"all_reduce","repo":"facebookresearch/encodec","repo_kind":"found_in_text","path":"encodec/distrib.py","file_url":"https://github.com/facebookresearch/encodec/blob/HEAD/encodec/distrib.py","link_basis":"first_harvest_node","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":"193e4cb06c7034a4"}},{"code_sha256_prefix":"6c82cd3d9b6dba51","entry":"apply_parametrization_norm","repo":"facebookresearch/encodec","repo_kind":"found_in_text","path":"encodec/modules/conv.py","file_url":"https://github.com/facebookresearch/encodec/blob/HEAD/encodec/modules/conv.py","link_basis":"first_harvest_node","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":"6c82cd3d9b6dba51"}},{"code_sha256_prefix":"a80c481df180560f","entry":"average_metrics","repo":"facebookresearch/encodec","repo_kind":"found_in_text","path":"encodec/distrib.py","file_url":"https://github.com/facebookresearch/encodec/blob/HEAD/encodec/distrib.py","link_basis":"first_harvest_node","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":"a80c481df180560f"}},{"code_sha256_prefix":"ed1f44e26b8871ff","entry":"averager","repo":"facebookresearch/encodec","repo_kind":"found_in_text","path":"encodec/balancer.py","file_url":"https://github.com/facebookresearch/encodec/blob/HEAD/encodec/balancer.py","link_basis":"first_harvest_node","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":"ed1f44e26b8871ff"}},{"code_sha256_prefix":"5969591b5acad09f","entry":"create_sin_embedding","repo":"facebookresearch/encodec","repo_kind":"found_in_text","path":"encodec/modules/transformer.py","file_url":"https://github.com/facebookresearch/encodec/blob/HEAD/encodec/modules/transformer.py","link_basis":"first_harvest_node","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":"5969591b5acad09f"}},{"code_sha256_prefix":"35ac4a3a2d0faeac","entry":"get_2d_padding","repo":"facebookresearch/encodec","repo_kind":"found_in_text","path":"encodec/msstftd.py","file_url":"https://github.com/facebookresearch/encodec/blob/HEAD/encodec/msstftd.py","link_basis":"first_harvest_node","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":"35ac4a3a2d0faeac"}},{"code_sha256_prefix":"8d9aa381c6147164","entry":"get_extra_padding_for_conv1d","repo":"facebookresearch/encodec","repo_kind":"found_in_text","path":"encodec/modules/conv.py","file_url":"https://github.com/facebookresearch/encodec/blob/HEAD/encodec/modules/conv.py","link_basis":"first_harvest_node","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":"8d9aa381c6147164"}},{"code_sha256_prefix":"9b33ed59d8d8736e","entry":"get_norm_module","repo":"facebookresearch/encodec","repo_kind":"found_in_text","path":"encodec/modules/conv.py","file_url":"https://github.com/facebookresearch/encodec/blob/HEAD/encodec/modules/conv.py","link_basis":"first_harvest_node","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":"9b33ed59d8d8736e"}},{"code_sha256_prefix":"ceb9db5dc46e3669","entry":"read_ecdc_header","repo":"facebookresearch/encodec","repo_kind":"found_in_text","path":"encodec/binary.py","file_url":"https://github.com/facebookresearch/encodec/blob/HEAD/encodec/binary.py","link_basis":"first_harvest_node","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":"ceb9db5dc46e3669"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.AI","source":"arxiv_2026.jsonl"},"syntology_extracted_results":null}