{"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/metricgan-an-improved-version-of-metricgan","title":"MetricGAN+: An Improved Version of MetricGAN for Speech Enhancement","arxiv_id":"2104.03538","date":"2021-04-08","proceeding":null,"authors":["Szu-Wei Fu","Cheng Yu","Tsun-An Hsieh","Peter Plantinga","Mirco Ravanelli","Xugang Lu","Yu Tsao"],"abstract":"The discrepancy between the cost function used for training a speech enhancement model and human auditory perception usually makes the quality of enhanced speech unsatisfactory. Objective evaluation metrics which consider human perception can hence serve as a bridge to reduce the gap. Our previously proposed MetricGAN was designed to optimize objective metrics by connecting the metric with a discriminator. Because only the scores of the target evaluation functions are needed during training, the metrics can even be non-differentiable. In this study, we propose a MetricGAN+ in which three training techniques incorporating domain-knowledge of speech processing are proposed. With these techniques, experimental results on the VoiceBank-DEMAND dataset show that MetricGAN+ can increase PESQ score by 0.3 compared to the previous MetricGAN and achieve state-of-the-art results (PESQ score = 3.15).","url_abs":"https://arxiv.org/abs/2104.03538v2","url_pdf":"https://arxiv.org/pdf/2104.03538v2.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":"metricgan-an-improved-version-of-metricgan","repo_url":"https://github.com/speechbrain/speechbrain/tree/develop/recipes/Voicebank/enhance/MetricGAN","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":null},{"paper_slug":"metricgan-an-improved-version-of-metricgan","repo_url":"https://github.com/JasonSWFu/MetricGAN","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}},{"paper_slug":"metricgan-an-improved-version-of-metricgan","repo_url":"https://github.com/wooseok-shin/MetricGAN-plus-pytorch","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"speech-enhancement","task_name":"Speech Enhancement"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/speech-enhancement-on-demand","task":"Speech Enhancement","dataset":"VoiceBank + DEMAND","model":"MetricGAN+","rank_in_archive_order":26,"of":42,"metrics":{"CBAK":"3.16","COVL":"3.64","CSIG":"4.14","PESQ (wb)":"3.15"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2104.03538","atlas_url":"https://app.syntology.ai/?focus=2104.03538","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2104.03538"}},"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/speechbrain/speechbrain/tree/develop/recipes/Voicebank/enhance/MetricGAN","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/JasonSWFu/MetricGAN","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/wooseok-shin/MetricGAN-plus-pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":10,"unverified":1},"by_repo_kind":{"listed":{"samples":11,"ran":10,"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":"fb683a717c75e052","entry":"CMOS_normalize","repo":"wooseok-shin/MetricGAN-plus-pytorch","repo_kind":"listed","path":"metric_functions/compute_metric.py","file_url":"https://github.com/wooseok-shin/MetricGAN-plus-pytorch/blob/HEAD/metric_functions/compute_metric.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"fb683a717c75e052"}},{"code_sha256_prefix":"87b6c8bd6b25280e","entry":"PESQ_normalize","repo":"wooseok-shin/MetricGAN-plus-pytorch","repo_kind":"listed","path":"metric_functions/compute_metric.py","file_url":"https://github.com/wooseok-shin/MetricGAN-plus-pytorch/blob/HEAD/metric_functions/compute_metric.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"87b6c8bd6b25280e"}},{"code_sha256_prefix":"1077627ee114c941","entry":"SSNR","repo":"wooseok-shin/MetricGAN-plus-pytorch","repo_kind":"listed","path":"metric_functions/metric_helper.py","file_url":"https://github.com/wooseok-shin/MetricGAN-plus-pytorch/blob/HEAD/metric_functions/metric_helper.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"1077627ee114c941"}},{"code_sha256_prefix":"3e07e541b703b78b","entry":"collate_fn_G","repo":"wooseok-shin/MetricGAN-plus-pytorch","repo_kind":"listed","path":"dataloader.py","file_url":"https://github.com/wooseok-shin/MetricGAN-plus-pytorch/blob/HEAD/dataloader.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"3e07e541b703b78b"}},{"code_sha256_prefix":"01ffe2e07304ae79","entry":"get_spec_and_phase","repo":"wooseok-shin/MetricGAN-plus-pytorch","repo_kind":"listed","path":"signal_processing.py","file_url":"https://github.com/wooseok-shin/MetricGAN-plus-pytorch/blob/HEAD/signal_processing.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"01ffe2e07304ae79"}},{"code_sha256_prefix":"67f3a00cfe3b0711","entry":"lpcoeff","repo":"wooseok-shin/MetricGAN-plus-pytorch","repo_kind":"listed","path":"metric_functions/metric_helper.py","file_url":"https://github.com/wooseok-shin/MetricGAN-plus-pytorch/blob/HEAD/metric_functions/metric_helper.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"67f3a00cfe3b0711"}},{"code_sha256_prefix":"a8dc14dce213a37b","entry":"pad_sequence","repo":"wooseok-shin/MetricGAN-plus-pytorch","repo_kind":"listed","path":"dataloader.py","file_url":"https://github.com/wooseok-shin/MetricGAN-plus-pytorch/blob/HEAD/dataloader.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"a8dc14dce213a37b"}},{"code_sha256_prefix":"d08f0cbc110051dd","entry":"spectral_magnitude","repo":"wooseok-shin/MetricGAN-plus-pytorch","repo_kind":"listed","path":"signal_processing.py","file_url":"https://github.com/wooseok-shin/MetricGAN-plus-pytorch/blob/HEAD/signal_processing.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"d08f0cbc110051dd"}},{"code_sha256_prefix":"1f6cd6dc5f0af4e4","entry":"trim_mos","repo":"wooseok-shin/MetricGAN-plus-pytorch","repo_kind":"listed","path":"metric_functions/metric_helper.py","file_url":"https://github.com/wooseok-shin/MetricGAN-plus-pytorch/blob/HEAD/metric_functions/metric_helper.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"1f6cd6dc5f0af4e4"}},{"code_sha256_prefix":"77bf89e77ca97f11","entry":"xavier_init_layer","repo":"wooseok-shin/MetricGAN-plus-pytorch","repo_kind":"listed","path":"model.py","file_url":"https://github.com/wooseok-shin/MetricGAN-plus-pytorch/blob/HEAD/model.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"77bf89e77ca97f11"}},{"code_sha256_prefix":"c0f0679c079fa005","entry":"transform_spec_to_wav","repo":"wooseok-shin/MetricGAN-plus-pytorch","repo_kind":"listed","path":"signal_processing.py","file_url":"https://github.com/wooseok-shin/MetricGAN-plus-pytorch/blob/HEAD/signal_processing.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c0f0679c079fa005"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}