{"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/dual-path-rnn-efficient-long-sequence","title":"Dual-path RNN: efficient long sequence modeling for time-domain single-channel speech separation","arxiv_id":"1910.06379","date":"2019-10-14","proceeding":null,"authors":["Yi Luo","Zhuo Chen","Takuya Yoshioka"],"abstract":"Recent studies in deep learning-based speech separation have proven the superiority of time-domain approaches to conventional time-frequency-based methods. Unlike the time-frequency domain approaches, the time-domain separation systems often receive input sequences consisting of a huge number of time steps, which introduces challenges for modeling extremely long sequences. Conventional recurrent neural networks (RNNs) are not effective for modeling such long sequences due to optimization difficulties, while one-dimensional convolutional neural networks (1-D CNNs) cannot perform utterance-level sequence modeling when its receptive field is smaller than the sequence length. In this paper, we propose dual-path recurrent neural network (DPRNN), a simple yet effective method for organizing RNN layers in a deep structure to model extremely long sequences. DPRNN splits the long sequential input into smaller chunks and applies intra- and inter-chunk operations iteratively, where the input length can be made proportional to the square root of the original sequence length in each operation. Experiments show that by replacing 1-D CNN with DPRNN and apply sample-level modeling in the time-domain audio separation network (TasNet), a new state-of-the-art performance on WSJ0-2mix is achieved with a 20 times smaller model than the previous best system.","url_abs":"https://arxiv.org/abs/1910.06379v2","url_pdf":"https://arxiv.org/pdf/1910.06379v2.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":"dual-path-rnn-efficient-long-sequence","repo_url":"https://github.com/JusperLee/Dual-Path-RNN-Pytorch","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"dual-path-rnn-efficient-long-sequence","repo_url":"https://github.com/ZhangYu-x/dprnn_mindspore","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"mindspore","reach":{"status":"ok"}},{"paper_slug":"dual-path-rnn-efficient-long-sequence","repo_url":"https://github.com/fgnt/padertorch","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"dual-path-rnn-efficient-long-sequence","repo_url":"https://github.com/mpariente/asteroid","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"dual-path-rnn-efficient-long-sequence","repo_url":"https://github.com/saurjya/asteroid","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"dual-path-rnn-efficient-long-sequence","repo_url":"https://github.com/sp-uhh/dual-path-rnn","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"dual-path-rnn-efficient-long-sequence","repo_url":"https://github.com/yluo42/TAC","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"dual-path-rnn-efficient-long-sequence","repo_url":"https://github.com/lyqcom/dprnn","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"mindspore","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"speech-separation","task_name":"Speech Separation"}],"methods":[{"method_slug":"bilstm","method_name":"BiLSTM"},{"method_slug":"lstm","method_name":"LSTM"},{"method_slug":"sigmoid-activation","method_name":"Sigmoid Activation"},{"method_slug":"tanh-activation","method_name":"Tanh Activation"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/speech-separation-on-wsj0-2mix","task":"Speech Separation","dataset":"WSJ0-2mix","model":"Dual-path RNN","rank_in_archive_order":29,"of":40,"metrics":{"SI-SDRi":"18.8"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1910.06379","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1910.06379"}},"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/fgnt/padertorch","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ZhangYu-x/dprnn_mindspore","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/JusperLee/Dual-Path-RNN-Pytorch","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/mpariente/asteroid","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/sp-uhh/dual-path-rnn","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/lyqcom/dprnn","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/saurjya/asteroid","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/yluo42/TAC","reach":{"status":"ok"}}],"summary":{"ran_violates":1,"ran_honours":1,"ran_draft_wrong":2,"unverified":18},"by_repo_kind":{"listed":{"samples":22,"ran":4,"repositories":4}},"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":"faac9c0b7e1a08c5","entry":"cal_SISNR","repo":"lyqcom/dprnn","repo_kind":"listed","path":"src/evaluate.py","file_url":"https://github.com/lyqcom/dprnn/blob/HEAD/src/evaluate.py","link_basis":"harvester_set","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"faac9c0b7e1a08c5"}},{"code_sha256_prefix":"b19791aa06bb7b9b","entry":"cal_SISNRi","repo":"lyqcom/dprnn","repo_kind":"listed","path":"src/evaluate.py","file_url":"https://github.com/lyqcom/dprnn/blob/HEAD/src/evaluate.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b19791aa06bb7b9b"}},{"code_sha256_prefix":"b448dde01277a441","entry":"make_optimizer","repo":"JusperLee/Dual-Path-RNN-Pytorch","repo_kind":"listed","path":"train_rnn.py","file_url":"https://github.com/JusperLee/Dual-Path-RNN-Pytorch/blob/HEAD/train_rnn.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b448dde01277a441"}},{"code_sha256_prefix":"d7a32d1e19ee3c3c","entry":"select_norm","repo":"JusperLee/Dual-Path-RNN-Pytorch","repo_kind":"listed","path":"model/model_rnn.py","file_url":"https://github.com/JusperLee/Dual-Path-RNN-Pytorch/blob/HEAD/model/model_rnn.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":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"d7a32d1e19ee3c3c"}},{"code_sha256_prefix":"fc587f8fbdac1258","entry":"dataclass_to_config","repo":"fgnt/padertorch","repo_kind":"listed","path":"padertorch/configurable.py","file_url":"https://github.com/fgnt/padertorch/blob/HEAD/padertorch/configurable.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":"fc587f8fbdac1258"}},{"code_sha256_prefix":"bbe5f26fed1e537e","entry":"dumps_config","repo":"fgnt/padertorch","repo_kind":"listed","path":"padertorch/io.py","file_url":"https://github.com/fgnt/padertorch/blob/HEAD/padertorch/io.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":"bbe5f26fed1e537e"}},{"code_sha256_prefix":"21022703fec0e252","entry":"dynamic_lr","repo":"lyqcom/dprnn","repo_kind":"listed","path":"src/lr_sch.py","file_url":"https://github.com/lyqcom/dprnn/blob/HEAD/src/lr_sch.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":"21022703fec0e252"}},{"code_sha256_prefix":"4c311e7c82e652b3","entry":"fix_doctext_import_class","repo":"fgnt/padertorch","repo_kind":"listed","path":"padertorch/configurable.py","file_url":"https://github.com/fgnt/padertorch/blob/HEAD/padertorch/configurable.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":"4c311e7c82e652b3"}},{"code_sha256_prefix":"64824c28c3db576f","entry":"import_class","repo":"fgnt/padertorch","repo_kind":"listed","path":"padertorch/configurable.py","file_url":"https://github.com/fgnt/padertorch/blob/HEAD/padertorch/configurable.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":"64824c28c3db576f"}},{"code_sha256_prefix":"77067b06b04d7030","entry":"load_config","repo":"fgnt/padertorch","repo_kind":"listed","path":"padertorch/io.py","file_url":"https://github.com/fgnt/padertorch/blob/HEAD/padertorch/io.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":"77067b06b04d7030"}},{"code_sha256_prefix":"51efffa5a60c50da","entry":"log10","repo":"sp-uhh/dual-path-rnn","repo_kind":"listed","path":"src/loss.py","file_url":"https://github.com/sp-uhh/dual-path-rnn/blob/HEAD/src/loss.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":"51efffa5a60c50da"}},{"code_sha256_prefix":"f947a5b97bfeeae2","entry":"normalize_axis","repo":"fgnt/padertorch","repo_kind":"listed","path":"padertorch/utils.py","file_url":"https://github.com/fgnt/padertorch/blob/HEAD/padertorch/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":"f947a5b97bfeeae2"}},{"code_sha256_prefix":"61842f44f2c99c11","entry":"num_parameters","repo":"fgnt/padertorch","repo_kind":"listed","path":"padertorch/summary/model_info.py","file_url":"https://github.com/fgnt/padertorch/blob/HEAD/padertorch/summary/model_info.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":"61842f44f2c99c11"}},{"code_sha256_prefix":"5ecc05344e08fef2","entry":"overlap_add","repo":"fgnt/padertorch","repo_kind":"listed","path":"padertorch/modules/dual_path_rnn.py","file_url":"https://github.com/fgnt/padertorch/blob/HEAD/padertorch/modules/dual_path_rnn.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":"5ecc05344e08fef2"}},{"code_sha256_prefix":"27419265dcbf8198","entry":"pack","repo":"fgnt/padertorch","repo_kind":"listed","path":"padertorch/modules/dual_path_rnn.py","file_url":"https://github.com/fgnt/padertorch/blob/HEAD/padertorch/modules/dual_path_rnn.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":"27419265dcbf8198"}},{"code_sha256_prefix":"4e2cb218ceb2833d","entry":"pad_list","repo":"lyqcom/dprnn","repo_kind":"listed","path":"src/data_test1.py","file_url":"https://github.com/lyqcom/dprnn/blob/HEAD/src/data_test1.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":"4e2cb218ceb2833d"}},{"code_sha256_prefix":"6562d5d49cd2bbfd","entry":"permutation_invariant_loss","repo":"sp-uhh/dual-path-rnn","repo_kind":"listed","path":"src/loss.py","file_url":"https://github.com/sp-uhh/dual-path-rnn/blob/HEAD/src/loss.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":"6562d5d49cd2bbfd"}},{"code_sha256_prefix":"5fc1af7ade37a222","entry":"sisnr","repo":"sp-uhh/dual-path-rnn","repo_kind":"listed","path":"src/loss.py","file_url":"https://github.com/sp-uhh/dual-path-rnn/blob/HEAD/src/loss.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":"5fc1af7ade37a222"}},{"code_sha256_prefix":"bdae77c463a833ba","entry":"text_file_2_list","repo":"sp-uhh/dual-path-rnn","repo_kind":"listed","path":"src/utils.py","file_url":"https://github.com/sp-uhh/dual-path-rnn/blob/HEAD/src/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":"bdae77c463a833ba"}},{"code_sha256_prefix":"9bb35d2d16d87796","entry":"to_list","repo":"fgnt/padertorch","repo_kind":"listed","path":"padertorch/utils.py","file_url":"https://github.com/fgnt/padertorch/blob/HEAD/padertorch/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":"9bb35d2d16d87796"}},{"code_sha256_prefix":"84e8db0cb51a0bbc","entry":"to_numpy","repo":"fgnt/padertorch","repo_kind":"listed","path":"padertorch/utils.py","file_url":"https://github.com/fgnt/padertorch/blob/HEAD/padertorch/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":"84e8db0cb51a0bbc"}},{"code_sha256_prefix":"b1f2043a92e934a3","entry":"torch_dataclass","repo":"fgnt/padertorch","repo_kind":"listed","path":"padertorch/base.py","file_url":"https://github.com/fgnt/padertorch/blob/HEAD/padertorch/base.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":"b1f2043a92e934a3"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}