{"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/storm-a-diffusion-based-stochastic","title":"StoRM: A Diffusion-based Stochastic Regeneration Model for Speech Enhancement and Dereverberation","arxiv_id":"2212.11851","date":"2022-12-22","proceeding":null,"authors":["Jean-Marie Lemercier","Julius Richter","Simon Welker","Timo Gerkmann"],"abstract":"Diffusion models have shown a great ability at bridging the performance gap between predictive and generative approaches for speech enhancement. We have shown that they may even outperform their predictive counterparts for non-additive corruption types or when they are evaluated on mismatched conditions. However, diffusion models suffer from a high computational burden, mainly as they require to run a neural network for each reverse diffusion step, whereas predictive approaches only require one pass. As diffusion models are generative approaches they may also produce vocalizing and breathing artifacts in adverse conditions. In comparison, in such difficult scenarios, predictive models typically do not produce such artifacts but tend to distort the target speech instead, thereby degrading the speech quality. In this work, we present a stochastic regeneration approach where an estimate given by a predictive model is provided as a guide for further diffusion. We show that the proposed approach uses the predictive model to remove the vocalizing and breathing artifacts while producing very high quality samples thanks to the diffusion model, even in adverse conditions. We further show that this approach enables to use lighter sampling schemes with fewer diffusion steps without sacrificing quality, thus lifting the computational burden by an order of magnitude. Source code and audio examples are available online (https://uhh.de/inf-sp-storm).","url_abs":"https://arxiv.org/abs/2212.11851v2","url_pdf":"https://arxiv.org/pdf/2212.11851v2.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":"storm-a-diffusion-based-stochastic","repo_url":"https://github.com/sp-uhh/sgmse","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"storm-a-diffusion-based-stochastic","repo_url":"https://github.com/sp-uhh/storm","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"speech-dereverberation","task_name":"Speech Dereverberation"},{"task_slug":"speech-enhancement","task_name":"Speech Enhancement"}],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2212.11851","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2212.11851"}},"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/sp-uhh/sgmse","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/sp-uhh/storm","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":1,"unverified":5},"by_repo_kind":{"listed":{"samples":6,"ran":1,"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":"9e802d63089d5d62","entry":"get_window","repo":"sp-uhh/storm","repo_kind":"listed","path":"sgmse/data_module.py","file_url":"https://github.com/sp-uhh/storm/blob/HEAD/sgmse/data_module.py","link_basis":"harvester_set","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":"9e802d63089d5d62"}},{"code_sha256_prefix":"978455cefbcadf36","entry":"buildFFmpegCommand","repo":"sp-uhh/storm","repo_kind":"listed","path":"preprocessing/nonlinear_mixing.py","file_url":"https://github.com/sp-uhh/storm/blob/HEAD/preprocessing/nonlinear_mixing.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":"978455cefbcadf36"}},{"code_sha256_prefix":"8addf142fa578f9c","entry":"numParams","repo":"sp-uhh/storm","repo_kind":"listed","path":"sgmse/backbones/gagnet.py","file_url":"https://github.com/sp-uhh/storm/blob/HEAD/sgmse/backbones/gagnet.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":"8addf142fa578f9c"}},{"code_sha256_prefix":"3957da6e7bfb4ed6","entry":"repackage_hidden","repo":"sp-uhh/storm","repo_kind":"listed","path":"sgmse/backbones/convtasnet.py","file_url":"https://github.com/sp-uhh/storm/blob/HEAD/sgmse/backbones/convtasnet.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":"3957da6e7bfb4ed6"}},{"code_sha256_prefix":"fa549fcbd479aad5","entry":"repackage_hidden","repo":"sp-uhh/storm","repo_kind":"listed","path":"sgmse/backbones/convtasnet_utils/utils.py","file_url":"https://github.com/sp-uhh/storm/blob/HEAD/sgmse/backbones/convtasnet_utils/utils.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":"fa549fcbd479aad5"}},{"code_sha256_prefix":"0f5a306c58c7d92d","entry":"stagewise_com_mag_mse_loss","repo":"sp-uhh/storm","repo_kind":"listed","path":"sgmse/backbones/gagnet.py","file_url":"https://github.com/sp-uhh/storm/blob/HEAD/sgmse/backbones/gagnet.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":"0f5a306c58c7d92d"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}