├── README.md ├── data ├── blind_test_track1.lst ├── clean_cv.lst ├── clean_tr.lst ├── noise_cv.lst ├── noise_tr.lst ├── rir_cv.lst └── rir_tr.lst ├── model ├── __pycache__ │ ├── conv_stft_new.cpython-36.pyc │ ├── conv_stft_new.cpython-37.pyc │ ├── dnnet.cpython-36.pyc │ ├── loss.cpython-36.pyc │ ├── sddnet.cpython-36.pyc │ ├── sddnet_decode.cpython-36.pyc │ ├── sddnet_freeze_dnnet.cpython-36.pyc │ ├── sddnet_no_freeze.cpython-36.pyc │ ├── sddnet_v2.cpython-36.pyc │ ├── sddnet_v2_decode.cpython-36.pyc │ ├── show.cpython-36.pyc │ ├── show.cpython-37.pyc │ ├── srnet.cpython-36.pyc │ └── srnet_v2.cpython-36.pyc ├── conv_stft.py ├── dnnet.py ├── log.txt ├── loss.py ├── sddnet.py ├── show.py └── srnet.py ├── run.sh ├── steps └── run_sddnet.py └── tools ├── misc.py ├── sigproc ├── beamforming.py └── dsp.py ├── speech_processing_toolbox ├── README.md └── voicetool │ ├── addnoise.py │ ├── base.py │ ├── multiworkers.py │ └── utils.py └── time_dataset_dereverb.py /README.md: -------------------------------------------------------------------------------- 1 | # SDDNet 2 | Coarse implement of the paper "A Simultaneous Denoising and Dereverberation Framework with Target Decoupling", On DNS-2020 dataset, the DNSMOS of the first stage is 3.42 and the second stage is 3.47. For the third stage, the DNSMOS is low, but the Noise reduction ability and speech quality is improvement. 3 | -------------------------------------------------------------------------------- /data/blind_test_track1.lst: -------------------------------------------------------------------------------- 1 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_earphone_A25UMKJS7PC293_chips_near_yelling_fileid_4.wav 2 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_earphone_A25UMKJS7PC293_clatter_near_amazed_fileid_6.wav 3 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_earphone_A25UMKJS7PC293_clatter_near_crying_fileid_3.wav 4 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_earphone_A25UMKJS7PC293_kitchenvessels_near_surprise_fileid_7.wav 5 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_earphones_A25UMKJS7PC293_typing_near_laughter_fileid_2.wav 6 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A1EK8YNHZHTW1J_car_far_Amazed_fileid_8.wav 7 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A1EK8YNHZHTW1J_car_far_Amazed_fileid_9.wav 8 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A1EK8YNHZHTW1J_Clatter_Noise_far_Crying_fileid_7.wav 9 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A1EK8YNHZHTW1J_Door_shutting_far_Yelling_fileid_5.wav 10 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A1EK8YNHZHTW1J_Door_shutting_far_Yelling_fileid_6.wav 11 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A1EK8YNHZHTW1J_fan_far_laughter_fileid_1.wav 12 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A1EK8YNHZHTW1J_fan_far_laughter_fileid_2.wav 13 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A1EK8YNHZHTW1J_Kitchen_Vessels_far_Surprised_fileid_10.wav 14 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A1EK8YNHZHTW1J_Running_Water_far_Laughter_fileid_11.wav 15 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A1EK8YNHZHTW1J_Running_Water_far_Laughter_fileid_12.wav 16 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A1EK8YNHZHTW1J_typing_far_Shouting_fileid_3.wav 17 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A1EK8YNHZHTW1J_typing_far_Shouting_fileid_4.wav 18 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A2AHXGFXPG6ZSR_car_far_Amazed_fileid_8.wav 19 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A2AHXGFXPG6ZSR_car_far_Amazed_fileid_9.wav 20 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A2AHXGFXPG6ZSR_Clatter_Noise_far_Crying_fileid_7.wav 21 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A2AHXGFXPG6ZSR_Door_shutting_far_Yelling_fileid_5.wav 22 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A2AHXGFXPG6ZSR_Door_shutting_far_Yelling_fileid_6.wav 23 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A2AHXGFXPG6ZSR_Kitchen_Vessels_far_Surprised_fileid_10.wav 24 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A2AHXGFXPG6ZSR_Running_Water_far_Laughter_fileid_11.wav 25 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A2AHXGFXPG6ZSR_Running_Water_far_Laughter_fileid_12.wav 26 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A2AHXGFXPG6ZSR_typing_far_Shouting_fileid_3.wav 27 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A2AHXGFXPG6ZSR_typing_far_Shouting_fileid_4.wav 28 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A2Y2RVQO2UVFV1_car_far_Amazed_fileid_8.wav 29 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A2Y2RVQO2UVFV1_car_far_Amazed_fileid_9.wav 30 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A2Y2RVQO2UVFV1_Clatter_Noise_far_Crying_fileid_7.wav 31 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A2Y2RVQO2UVFV1_Door_shutting_far_Yelling_fileid_5.wav 32 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A2Y2RVQO2UVFV1_Door_shutting_far_Yelling_fileid_6.wav 33 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A2Y2RVQO2UVFV1_fan_far_laughter_fileid_1.wav 34 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A2Y2RVQO2UVFV1_fan_far_laughter_fileid_2.wav 35 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A2Y2RVQO2UVFV1_Kitchen_Vessels_far_Surprised_fileid_10.wav 36 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A2Y2RVQO2UVFV1_Running_Water_far_Crying_fileid_12.wav 37 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A2Y2RVQO2UVFV1_Running_Water_far_Laughter_fileid_11.wav 38 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A2Y2RVQO2UVFV1_Running_Water_far_Laughter_fileid_12.wav 39 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A2Y2RVQO2UVFV1_typing_far_Shouting_fileid_3.wav 40 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A2Y2RVQO2UVFV1_typing_far_Shouting_fileid_4.wav 41 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A3KSAP865D3L7D_car_near_crying_fileid_6.wav 42 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A3KSAP865D3L7D_car_near_surprised_fileid_7.wav 43 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A3KSAP865D3L7D_dog_barking_far_shouting_fileid_8.wav 44 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A3KSAP865D3L7D_dog_barking_near_shouting_fileid_1.wav 45 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A3KSAP865D3L7D_running_water_far_crying_fileid_10.wav 46 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_headset_A3KSAP865D3L7D_running_water_far_laughter_fileid_9.wav 47 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_laptopmic_A3VBNWON5XOUVS_clatter_far_sx31_3.wav 48 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_laptopmic_A3VBNWON5XOUVS_clatter_near_si1753_9.wav 49 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_laptopmic_A3VBNWON5XOUVS_doorclosing_far_si820_6.wav 50 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_laptopmic_A3VBNWON5XOUVS_heavybreathing_near_si2322_7.wav 51 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_laptopmic_A3VBNWON5XOUVS_openpacket_far_si2234_5.wav 52 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_laptopmic_A3VBNWON5XOUVS_typing_far_si2192_8.wav 53 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_laptopmic_A3VBNWON5XOUVS_typing_near_si1129_10.wav 54 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_laptopmic_A3VBNWON5XOUVS_typing_near_si1805_2.wav 55 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_openspeaker_ASEW6NZHLI41K_doorshutting_near_cry_fileid_5.wav 56 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_openspeaker_ASEW6NZHLI41K_fan_far_cry_fileid_7.wav 57 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_openspeaker_ASEW6NZHLI41K_heavybreathing_far_surprise_fileid_1.wav 58 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_openspeaker_ASEW6NZHLI41K_heavybreathing_near_surprise_fileid_2.wav 59 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_openspeaker_ASEW6NZHLI41K_kitchenvessels_far_shouting_fileid_11.wav 60 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_openspeaker_ASEW6NZHLI41K_kitchenvessels_near_shouting_fileid_12.wav 61 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_openspeaker_ASEW6NZHLI41K_openingchipspacket_far_laugh_fileid_3.wav 62 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_openspeaker_ASEW6NZHLI41K_openingchipspacket_near_laugh_fileid_4.wav 63 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_openspeaker_ASEW6NZHLI41K_runningwater_near_shouting_fileid_6.wav 64 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_openspeaker_ASEW6NZHLI41K_typing_far_shouting_fileid_9.wav 65 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_openspeaker_ASEW6NZHLI41K_typing_near_shouting_fileid_10.wav 66 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_speaker_A25UMKJS7PC293_chips_near_shouting_fileid_5.wav 67 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_speaker_A25UMKJS7PC293_doorclosing_far_amazed_fileid_9.wav 68 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_speaker_A25UMKJS7PC293_kitchenvessels_far_shouting_fileid_10.wav 69 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_speaker_A25UMKJS7PC293_runningwater_far_surprised_fileid_8.wav 70 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_speaker_A25UMKJS7PC293_typing_far_laughter_fileid_11.wav 71 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_stationary_headset_A1EK8YNHZHTW1J_fan_far_laughter_fileid_1.wav 72 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_stationary_headset_A1EK8YNHZHTW1J_fan_far_laughter_fileid_2.wav 73 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_stationary_headset_A2AHXGFXPG6ZSR_fan_far_laughter_fileid_1.wav 74 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_stationary_headset_A2AHXGFXPG6ZSR_fan_far_laughter_fileid_2.wav 75 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_stationary_headset_A2Y2RVQO2UVFV1_fan_far_laughter_fileid_1.wav 76 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_stationary_headset_A2Y2RVQO2UVFV1_fan_far_laughter_fileid_2.wav 77 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_stationary_headset_A3KSAP865D3L7D_air_conditioner_near_crying_fileid_5.wav 78 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_stationary_headset_A3KSAP865D3L7D_air_conditioner_near_laughter_fileid_4.wav 79 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_stationary_headset_A3KSAP865D3L7D_fan_far_surprised_fileid_11.wav 80 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_stationary_headset_A3KSAP865D3L7D_fan_far_surprised_fileid_12.wav 81 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_stationary_laptopmic_A3VBNWON5XOUVS_airconditioner_far_si1159_1.wav 82 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_stationary_laptopmic_A3VBNWON5XOUVS_airconditioner_near_sx61_11.wav 83 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_stationary_laptopmic_A3VBNWON5XOUVS_fan_near_si2318_4.wav 84 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_stationary_laptopmic_A3VBNWON5XOUVS_fan_near_sx293_12.wav 85 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_stationary_openspeaker_ASEW6NZHLI41K_fan_near_cry_fileid_8.wav 86 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_stationary_speaker_A25UMKJS7PC293_fan_far_surprised_fileid_12.wav 87 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_emotional_stationary_speaker_A25UMKJS7PC293_fan_near_laughter_fileid_1.wav 88 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_headset_A1XUZFDVKP95VC_Clattering_Sounds_Near_fileid_10.wav 89 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_headset_A1XUZFDVKP95VC_Door_Shutting_Near_fileid_12.wav 90 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_headset_A1XUZFDVKP95VC_Kitchen_Vessels_Near_fileid_11.wav 91 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_headset_A1XUZFDVKP95VC_Opening_chips_packet_Near_fileid_1.wav 92 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_headset_A1XUZFDVKP95VC_Typing_Near_fileid_3.wav 93 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_headset_A1XUZFDVKP95VC_Water_Runnimg_Near_fileid_6.wav 94 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_headset_A1XUZFDVKP95VC_Water_Running__far_fileid_7.wav 95 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_headset_A2H95JVPEKRUWA_CAR_far_fileid_3.wav 96 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_headset_A2H95JVPEKRUWA_child_crying_far_fileid_11.wav 97 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_headset_A2H95JVPEKRUWA_clatter_noise_far_fileid_4.wav 98 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_headset_A2H95JVPEKRUWA_creaking_chair_far_fileid_12.wav 99 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_headset_A2H95JVPEKRUWA_dog_barking_far_fileid_5.wav 100 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_headset_A2H95JVPEKRUWA_door_shutting_far_fileid_6.wav 101 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_headset_A2H95JVPEKRUWA_kitchen_vesseles_far_fileid_8.wav 102 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_headset_A2H95JVPEKRUWA_opening_chips_packet_far_fileid_10.wav 103 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_headset_A2H95JVPEKRUWA_running_water_far_fileid_9.wav 104 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_headset_A2H95JVPEKRUWA_typing_far_fileid_1.wav 105 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_headset_car_sound_near.wav 106 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_headset_clatter.wav 107 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_headset_copymachine_near.wav 108 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_headset_dishwasher_far.wav 109 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_headset_door_near.wav 110 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_headset_kitchen-01.wav 111 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_headset_kitchen-02.wav 112 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_headset_typing.wav 113 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_headset_waterfall-01.wav 114 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_headset_waterfall-02.wav 115 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_laptop_A2VMGYCS5VHQNZ_airconditioner_far_fileid_12.wav 116 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_laptop_A2VMGYCS5VHQNZ_babycrying_near_fileid_5.wav 117 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_laptop_A2VMGYCS5VHQNZ_babycrying_near_fileid_6.wav 118 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_laptop_A2VMGYCS5VHQNZ_car_near_fileid_3.wav 119 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_laptop_A2VMGYCS5VHQNZ_car_near_fileid_4.wav 120 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_laptop_A2VMGYCS5VHQNZ_dogbarking_near_fileid_8.wav 121 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_laptop_A2VMGYCS5VHQNZ_doorshutting_far_fileid_9.wav 122 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_laptop_A2VMGYCS5VHQNZ_openingchipspacket_far_fileid_11.wav 123 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_laptop_A2VMGYCS5VHQNZ_runningwater_far_fileid_7.wav 124 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_laptop_A2VMGYCS5VHQNZ_typing_far_fileid_10.wav 125 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_laptop_A3ER6R66WYYS9R_vehicles_horn_far_10_12.wav 126 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_laptop_A3ER6R66WYYS9R_vehicles_horn_far_11_14.wav 127 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_laptop_A3ER6R66WYYS9R_vehicles_horn_far_12_12.wav 128 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_Laptop_A8PJHNOLEDTZI_Clapping_hands_far_fileid_10.wav.wav 129 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_Laptop_A8PJHNOLEDTZI_Crackers_far_fileid_8.wav.wav 130 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_Laptop_A8PJHNOLEDTZI_Creaking_chair_far_fileid_3.wav.wav 131 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_Laptop_A8PJHNOLEDTZI_Fan_far_fileid_12.wav.wav 132 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_Laptop_A8PJHNOLEDTZI_Finger_tapping_far_fileid_11.wav.wav 133 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_Laptop_A8PJHNOLEDTZI_Hammer_far_fileid_1.wav.wav 134 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_Laptop_A8PJHNOLEDTZI_Kids_talk_far_fileid_2.wav.wav 135 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_Laptop_A8PJHNOLEDTZI_Munching_far_fileid_7.wav.wav 136 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_Laptop_A8PJHNOLEDTZI_Opening_chips_packet_far_fileid_9.wav.wav 137 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_Laptop_A8PJHNOLEDTZI_steel_drill_far_fileid_5.wav.wav 138 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_Laptop_A8PJHNOLEDTZI_talking_noise_far_fileid_4.wav.wav 139 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_Laptop_A8PJHNOLEDTZI_vessel_far_fileid_6.wav.wav 140 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_Laptop_microphone_A1Q7VWUBIJOK17_Air_conditioner_near_fileid_2.wav 141 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_Laptop_microphone_A1Q7VWUBIJOK17_Creaking_chair_near_fileid_5.wav 142 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_Laptop_microphone__A1Q7VWUBIJOK17_Door_shutting_Far_fileid_9.wav 143 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_Laptop_microphone__A1Q7VWUBIJOK17_Door_shutting_near_fileid_4.wav 144 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_Laptop_microphone_A1Q7VWUBIJOK17_Heavy_Breathing_Far_fileid_12.wav 145 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_Laptop_microphone_A1Q7VWUBIJOK17_Heavy_Breathing_near_fileid_7.wav 146 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_Laptop_microphone_A1Q7VWUBIJOK17_Running_Water_Far_fileid_11.wav 147 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_Laptop_microphone_A1Q7VWUBIJOK17_Running_Water_near_fileid_6.wav 148 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_Laptop_microphone__A1Q7VWUBIJOK17_stationary_Fan_Far_fileid_8.wav 149 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_Laptop_microphone_A1Q7VWUBIJOK17_Typing_Far_fileid_10.wav 150 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_Laptop_microphone_A1Q7VWUBIJOK17_Typing_near_fileid_3.wav 151 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_laptop_microphone_A2JA19C4Y5JZD3_Babycrying_near_fileid_10.wav 152 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_laptop_microphone_A2JA19C4Y5JZD3_Babycrying_near_fileid_11.wav 153 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_laptop_microphone_A2JA19C4Y5JZD3_ClatterNoise_near_fileid_2.wav 154 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_laptop_microphone_A2JA19C4Y5JZD3_copymachine__near_fileid_3.wav 155 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_laptop_microphone_A2JA19C4Y5JZD3_DishWasher_far_fileid_8.wav 156 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_laptop_microphone_A2JA19C4Y5JZD3_DishWasher_near_fileid_4.wav 157 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_laptop_microphone_A2JA19C4Y5JZD3_dogbarking_far_fileid_5.wav 158 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_laptop_microphone_A2JA19C4Y5JZD3_dogbarking_far_fileid_6.wav 159 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_laptop_microphone_A2JA19C4Y5JZD3_Doorshutting_far_fileid_7.wav 160 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_laptop_microphone_A2JA19C4Y5JZD3_Openingchipspacket_near_fileid_9.wav 161 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_laptopMicrophone_A3P4XZJM2DEATZ_ClatterNoise_near_fileid_3.wav 162 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_laptopMicrophone_A3P4XZJM2DEATZ_ClatterNoise_near_fileid_4.wav 163 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_laptopMicrophone_A3P4XZJM2DEATZ_DoorShutting_far_fileid_11.wav 164 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_laptopMicrophone_A3P4XZJM2DEATZ_Fan_far_fileid_10.wav 165 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_laptopMicrophone_A3P4XZJM2DEATZ_KitchenVessels_far_fileid_7.wav 166 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_laptopMicrophone_A3P4XZJM2DEATZ_KitchenVessels_far_fileid_8.wav 167 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_laptopMicrophone_A3P4XZJM2DEATZ_OpeningChipsPacket_near_fileid_5.wav 168 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_laptopMicrophone_A3P4XZJM2DEATZ_OpeningChipsPacket_near_fileid_6.wav 169 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_laptopMicrophone_A3P4XZJM2DEATZ_RunningWater_near_fileid_12.wav 170 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_laptopMicrophone_A3P4XZJM2DEATZ_typing_near_fileid_1.wav 171 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_laptopMicrophone_A3P4XZJM2DEATZ_typing_near_fileid_2.wav 172 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_macbook_A1RK5KQQ320OH4_Air_Conditioner_Far_02.wav 173 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_macbook_A1RK5KQQ320OH4_Baby_Crying_Near_11.wav 174 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_macbook_A1RK5KQQ320OH4_Car_Near_06.wav 175 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_macbook_A1RK5KQQ320OH4_Clutter_Noise_Far_05.wav 176 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_macbook_A1RK5KQQ320OH4_Dish_Washer_Near_08.wav 177 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_macbook_A1RK5KQQ320OH4_Dogs_Barking_Near_12.wav 178 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_macbook_A1RK5KQQ320OH4_Door_Closing_Far_04.wav 179 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_macbook_A1RK5KQQ320OH4_Fan_Far_01.wav 180 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_macbook_A1RK5KQQ320OH4_Kitcher_Vessels_Near_07.wav 181 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_macbook_A1RK5KQQ320OH4_Opening_Chips_Packet_Near_10.wav 182 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_macbook_A1RK5KQQ320OH4_Running_Water_Near_09.wav 183 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_macbook_A1RK5KQQ320OH4_Typing_Far_03.wav 184 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_MicrophoneArray_A1DCG37N0Y8BN0_babycrying_far_7.wav 185 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_MicrophoneArray_A1DCG37N0Y8BN0_car_far_fileid_6.wav 186 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_MicrophoneArray_A1DCG37N0Y8BN0_dogbarking_far_fileid_9.wav 187 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_MicrophoneArray_A1DCG37N0Y8BN0_doorshutting_far_fileid_4.wav 188 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_MicrophoneArray_A1DCG37N0Y8BN0_runningwater_near_fileid_3.wav 189 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_MicrophoneArray_A1DCG37N0Y8BN0_typing_near_fileid_1.wav 190 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_openspeaker_ASEW6NZHLI41K_doorshutting_near_fileid_7.wav 191 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_openspeaker_ASEW6NZHLI41K_heavybreathing_far_fileid_12.wav 192 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_openspeaker_ASEW6NZHLI41K_heavybreathing_near_fileid_6.wav 193 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_openspeaker_ASEW6NZHLI41K_kitchenvessels_far_fileid_10.wav 194 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_openspeaker_ASEW6NZHLI41K_kitchenvessels_near_fileid_4.wav 195 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_openspeaker_ASEW6NZHLI41K_openingchipspacket_near_fileid_1.wav 196 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_openspeaker_ASEW6NZHLI41K_runningwater_far_fileid_8.wav 197 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_openspeaker_ASEW6NZHLI41K_runningwater_near_fileid_5.wav 198 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_openspeaker_ASEW6NZHLI41K_typing_far_fileid_9.wav 199 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_openspeaker_ASEW6NZHLI41K_typing_near_fileid_3.wav 200 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_PCLogitechwebcamC615_A28O8I1SYFZO7A_ACfan_near_fileid_2.wav 201 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_PCLogitechwebcamC615_A28O8I1SYFZO7A_ACfan_near_fileid_3.wav 202 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_PCLogitechwebcamC615_A28O8I1SYFZO7A_chipbag_near_fileid_4.wav 203 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_PCLogitechwebcamC615_A28O8I1SYFZO7A_chipbag_near_fileid_5.wav 204 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_PCLogitechwebcamC615_A28O8I1SYFZO7A_crunchingeating_near_fileid_9.wav 205 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_PCLogitechwebcamC615_A28O8I1SYFZO7A_dishesclanking_near_fileid_7.wav 206 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_PCLogitechwebcamC615_A28O8I1SYFZO7A_dishesclanking_near_fileid_8.wav 207 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_PCLogitechwebcamC615_A28O8I1SYFZO7A_doorslamming_near_fileid_10.wav 208 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_PCLogitechwebcamC615_A28O8I1SYFZO7A_doorslamming_near_fileid_11.wav 209 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_PCLogitechwebcamC615_A28O8I1SYFZO7A_heavybreathing_near_fileid_12.wav 210 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_PCLogitechwebcamC615_A28O8I1SYFZO7A_typing_near_fileid_1.wav 211 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_PCLogitechwebcamC615_A28O8I1SYFZO7A_typing_near_fileid_6.wav 212 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_speaker_A1XUZFDVKP95VC_Clattering_Sounds_Far_fileid_2.wav 213 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_speaker_A1XUZFDVKP95VC_Opening_chips_packet_Far_fileid_8.wav 214 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_speaker_A1XUZFDVKP95VC_Typing_Far_fileid_9.wav 215 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_stationary_headphone_A2H95JVPEKRUWA_air_conditioner_fileid_2.wav 216 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_stationary_headset_A1XUZFDVKP95VC_Fan_Near_fileid_4.wav 217 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_stationary_headset_A2H95JVPEKRUWA_fan_far_fileid_7.wav 218 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_stationary_headset_aircondtionar-01.wav 219 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_stationary_headset_aircondtionar-02.wav 220 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_stationary_headset_aircondtionar-03.wav 221 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_stationary_headset_fan_neat-01.wav 222 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_stationary_headset_fan_neat-02.wav 223 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_stationary_laptop_A2VMGYCS5VHQNZ_fan_near_fileid_1.wav 224 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_stationary_laptop_A2VMGYCS5VHQNZ_fan_near_fileid_2.wav 225 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_stationary_Laptop_microphone__A1Q7VWUBIJOK17_Fan_near_fileid_1.wav 226 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_stationary_laptop_microphone_A2JA19C4Y5JZD3_airconditioner_far_fileid_1.wav 227 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_stationary_laptop_microphone_A2JA19C4Y5JZD3_airconditioner_near_fileid_12.wav 228 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_stationary_laptopMicrophone_A3P4XZJM2DEATZ_Fan_far_fileid_9.wav 229 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_stationary_MicrophoneArray_A1DCG37N0Y8BN0_airconditioner_near_fileid_5.wav 230 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_stationary_MicrophoneArray_A1DCG37N0Y8BN0_fan_far_8.wav 231 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_stationary_MicrophoneArray_A1DCG37N0Y8BN0_fan_near_fileid_10.wav 232 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_stationary_MicrophoneArray_A1DCG37N0Y8BN0_fan_near_fileid_11.wav 233 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_stationary_MicrophoneArray_A1DCG37N0Y8BN0_fan_near_fileid_12.wav 234 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_stationary_MicrophoneArray_A1DCG37N0Y8BN0_fan_near_fileid_2.wav 235 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_stationary_openspeaker_ASEW6NZHLI41K_fan_far_fileid_11.wav 236 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_stationary_openspeaker_ASEW6NZHLI41K_fan_near_fileid_2.wav 237 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_stationary_speaker_A1XUZFDVKP95VC_Fan_Far_fileid_5.wav 238 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_windows_ASQ82PJ9L4O3R_baby_crying_far_fileid_11.wav 239 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_windows_ASQ82PJ9L4O3R_baby_crying__near_fileid_3.wav 240 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_windows_ASQ82PJ9L4O3R_car__near_fileid_4.wav 241 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_windows_ASQ82PJ9L4O3R_creaking_chair_far_fileid_7.wav 242 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_windows_ASQ82PJ9L4O3R_creaking_chair__near_fileid_7.wav 243 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_windows_ASQ82PJ9L4O3R_dog_barking_far_fileid_12.wav 244 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_windows_ASQ82PJ9L4O3R_dog_barking_near_fileid_6.wav 245 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_windows_ASQ82PJ9L4O3R_door_shutting__near_fileid_1.wav 246 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_windows_ASQ82PJ9L4O3R__running_water_far_fileid_10.wav 247 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_windows_ASQ82PJ9L4O3R_running_water__near_fileid_5.wav 248 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_windows_ASQ82PJ9L4O3R_typing_far_fileid_9.wav 249 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_english_windows_ASQ82PJ9L4O3R__typing__near_fileid_2.wav 250 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_headset_A14A5PT5LISHA3__piano_far_fileid_10.wav 251 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_headset_A14A5PT5LISHA3__piano_far_fileid_11.wav 252 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_headset_A14A5PT5LISHA3__piano_far_fileid_12.wav 253 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_headset_A14A5PT5LISHA3__piano_far_fileid_6.wav 254 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_headset_A14A5PT5LISHA3__piano_far_fileid_7.wav 255 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_headset_A14A5PT5LISHA3__piano_far_fileid_8.wav 256 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_headset_A14A5PT5LISHA3__piano_far_fileid_9.wav 257 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_headset_A14A5PT5LISHA3__piano_near_fileid_1.wav 258 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_headset_A14A5PT5LISHA3__piano_near_fileid_2.wav 259 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_headset_A14A5PT5LISHA3__piano_near_fileid_3.wav 260 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_headset_A14A5PT5LISHA3__piano_near_fileid_4.wav 261 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_headset_A14A5PT5LISHA3__piano_near_fileid_5.wav 262 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_headset_A2H95JVPEKRUWA_accordion_far_fileid_11.wav 263 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_headset_A2H95JVPEKRUWA_cello_far_fileid_7.wav 264 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_headset_A2H95JVPEKRUWA_clarinet_far_fileid_8.wav 265 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_headset_A2H95JVPEKRUWA_drums_far_fileid_4.wav 266 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_headset_A2H95JVPEKRUWA_flute_far_fileid_6.wav 267 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_headset_A2H95JVPEKRUWA_guitar_far_fileid_2.wav 268 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_headset_A2H95JVPEKRUWA_harp_far_fileid_10.wav 269 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_headset_A2H95JVPEKRUWA_piano_far_fileid_1.wav 270 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_headset_A2H95JVPEKRUWA_saxophone_far_fileid_5.wav 271 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_headset_A2H95JVPEKRUWA_sitar_far_fileid_12.wav 272 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_headset_A2H95JVPEKRUWA_trumpet_far_fileid_9.wav 273 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_headset_A2H95JVPEKRUWA_violin_far_fileid_3.wav 274 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptop_A2ZK5I1MDWNPRU_far_fileid_9-01.wav 275 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptop_A2ZK5I1MDWNPRU_far_fileid_9-02.wav 276 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptop_A2ZK5I1MDWNPRU_far_fileid_9-03.wav 277 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptop_A2ZK5I1MDWNPRU_far_fileid_9-04.wav 278 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptop_A2ZK5I1MDWNPRU_far_fileid_9-05.wav 279 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptop_A2ZK5I1MDWNPRU_far_fileid_9-06.wav 280 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptop_A9AP3ED0K8LS8_guitar_far_fileid_10.wav 281 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptop_A9AP3ED0K8LS8_guitar_far_fileid_11.wav 282 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptop_A9AP3ED0K8LS8_guitar_far_fileid_12.wav 283 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptop_A9AP3ED0K8LS8_guitar_far_fileid_7.wav 284 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptop_A9AP3ED0K8LS8_guitar_far_fileid_8.wav 285 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptop_A9AP3ED0K8LS8_guitar_far_fileid_9.wav 286 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptop_A9AP3ED0K8LS8_guitar_near_fileid_1.wav 287 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptop_A9AP3ED0K8LS8_guitar_near_fileid_2.wav 288 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptop_A9AP3ED0K8LS8_guitar_near_fileid_3.wav 289 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptop_A9AP3ED0K8LS8_guitar_near_fileid_4.wav 290 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptop_A9AP3ED0K8LS8_guitar_near_fileid_5.wav 291 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptop_A9AP3ED0K8LS8_guitar_near_fileid_6.wav 292 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptop_microphone_A2UTUL6ZW905WI_drums_far_fileid_7.wav 293 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptop_microphone_A2UTUL6ZW905WI_drums_near_fileid_8.wav 294 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptop_microphone_A2UTUL6ZW905WI_guitar_far_fileid_3.wav 295 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptop_microphone_A2UTUL6ZW905WI_guitar_near_fileid_4.wav 296 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptop_microphone_A2UTUL6ZW905WI_harp_far_fileid_11.wav 297 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptop_microphone_A2UTUL6ZW905WI_harp_near_fileid_12.wav 298 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptop_microphone_A2UTUL6ZW905WI_piano_far_fileid_1.wav 299 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptop_microphone_A2UTUL6ZW905WI_piano_near_fileid_2.wav 300 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptop_microphone_A2UTUL6ZW905WI_saxophone_far_fileid_9.wav 301 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptop_microphone_A2UTUL6ZW905WI_saxophone_near_fileid_10.wav 302 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptop_microphone_A2UTUL6ZW905WI_violin_far_fileid_5.wav 303 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptop_microphone_A2UTUL6ZW905WI_violin_near_fileid_6.wav 304 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptopSpeaker_A3P4XZJM2DEATZ_guitar_far_10.wav 305 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptopSpeaker_A3P4XZJM2DEATZ_guitar_far_11.wav 306 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptopSpeaker_A3P4XZJM2DEATZ_guitar_far_12.wav 307 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptopSpeaker_A3P4XZJM2DEATZ_guitar_far_7.wav 308 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptopSpeaker_A3P4XZJM2DEATZ_guitar_far_8.wav 309 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptopSpeaker_A3P4XZJM2DEATZ_guitar_far_9.wav 310 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptopSpeaker_A3P4XZJM2DEATZ_guitar_near_1.wav 311 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptopSpeaker_A3P4XZJM2DEATZ_guitar_near_2.wav 312 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptopSpeaker_A3P4XZJM2DEATZ_guitar_near_3.wav 313 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptopSpeaker_A3P4XZJM2DEATZ_guitar_near_4.wav 314 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptopSpeaker_A3P4XZJM2DEATZ_guitar_near_5.wav 315 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_laptopSpeaker_A3P4XZJM2DEATZ_guitar_near_6.wav 316 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_macbookpro_XMQ6Y5VEXRUU_piano_far_fileid_10.wav 317 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_macbookpro_XMQ6Y5VEXRUU_piano_far_fileid_11.wav 318 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_macbookpro_XMQ6Y5VEXRUU_piano_far_fileid_12.wav 319 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_macbookpro_XMQ6Y5VEXRUU_piano_far_fileid_1.wav 320 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_macbookpro_XMQ6Y5VEXRUU_piano_far_fileid_2.wav 321 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_macbookpro_XMQ6Y5VEXRUU_piano_far_fileid_3.wav 322 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_macbookpro_XMQ6Y5VEXRUU_piano_far_fileid_4.wav 323 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_macbookpro_XMQ6Y5VEXRUU_piano_far_fileid_5.wav 324 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_macbookpro_XMQ6Y5VEXRUU_piano_far_fileid_6.wav 325 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_macbookpro_XMQ6Y5VEXRUU_piano_far_fileid_7.wav 326 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_macbookpro_XMQ6Y5VEXRUU_piano_far_fileid_8.wav 327 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_musical_macbookpro_XMQ6Y5VEXRUU_piano_far_fileid_9.wav 328 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_cantonese_headphone_hehengli_clatternoise_fileid_12part_1.wav 329 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_cantonese_headphone_hehengli_kitchen_fileid_10part_1.wav 330 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_cantonese_headphone_hehengli_outdoorvichiclenoise_fileid_9part_1.wav 331 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_cantonese_headphone_hehengli_typing_fileid_11part_1.wav 332 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_cantonese_internalmic_hehengli_clatternoise_fileid_8part_1.wav 333 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_cantonese_internalmic_hehengli_creakingchair_fileid_3part_1.wav 334 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_cantonese_internalmic_hehengli_creakingchair_fileid_5part_1.wav 335 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_cantonese_internalmic_hehengli_kitchen_fileid_7part_1.wav 336 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_cantonese_internalmic_hehengli_outdoorvichiclenoise_fileid_1part_1.wav 337 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_cantonese_internalmic_hehengli_outdoorvichiclenoise_fileid_2part_1.wav 338 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_cantonese_internalmic_hehengli_outdoorvichiclenoise_fileid_6part_1.wav 339 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_cantonese_internalmic_hehengli_typing_fileid_4part_1.wav 340 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_Headphone_Punjabi_Clapping.wav 341 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_Headphone_Punjabi_FeetStomping-01.wav 342 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_Headphone_Punjabi_FeetStomping-02.wav 343 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_Headphone_Punjabi_FingersTaping.wav 344 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_Headphone_Punjabi_FlippingPages.wav 345 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_Headphone_Punjabi_Knocking.wav 346 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_Headphone_Punjabi_PaperCracking.wav 347 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_Headphone_Punjabi_PlasticBag.wav 348 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_Headphone_Punjabi_TypingOnPhone.wav 349 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_Headphone_Punjabi_UsingBookAsFan.wav 350 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_headset_christa_fileid_10_spanishpart_1.wav 351 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_headset_christa_fileid_6_spanishpart_1.wav 352 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_headset_christa_fileid_7_spanishpart_0.wav 353 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_headset_christa_fileid_7_spanishpart_1.wav 354 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_laptop_mic_Anna_clean_speech_fileid_1_PLpart_0.wav 355 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_laptop_mic_Anna_clean_speech_fileid_1_PLpart_1.wav 356 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_laptop_mic_Anna_speech_noise_fileid_2_PLpart_0.wav 357 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_laptop_mic_Anna_speech_noise_fileid_2_PLpart_1.wav 358 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_laptop_mic_Anna_speech_noise_fileid_3_PLpart_0.wav 359 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_laptop_mic_Anna_speech_noise_fileid_3_PLpart_1.wav 360 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_laptop_mic_Anna_speech_noise_fileid_3_PLpart_2.wav 361 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_laptop_mic_Anna_speech_noise_fileid_5_PLpart_0.wav 362 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_laptop_mic_Anna_speech_noise_fileid_5_PLpart_1.wav 363 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_laptop_mic_Anna_speech_noise_fileid_6_PLpart_0.wav 364 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_laptop_mic_Anna_speech_noise_fileid_6_PLpart_1.wav 365 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_laptop_mic_Anna_speech_noise_music_fileid_4_PLpart_0.wav 366 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_laptop_mic_Anna_speech_noise_music_fileid_4_PLpart_1.wav 367 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_laptop_mic_Anna_speech_noise_music_fileid_4_PLpart_2.wav 368 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_laptopmic_christa_fileid_1_spanishpart_0.wav 369 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_laptopmic_christa_fileid_1_spanishpart_1.wav 370 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_laptopmic_christa_fileid_2_spanishpart_0.wav 371 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_laptopmic_christa_fileid_2_spanishpart_1.wav 372 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_laptopmic_christa_fileid_3_spanishpart_1.wav 373 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_mandarin_headphone_hehengli_kitchen_fileid_11part_1.wav 374 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_mandarin_headphone_hehengli_outdoorvichiclenoise_fileid_1part_1.wav 375 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_mandarin_headphone_hehengli_outdoorvichiclenoise_fileid_2part_1.wav 376 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_mandarin_headphone_hehengli_typing_fileid_10part_1.wav 377 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_mandarin_headphone_hehengli_typing_fileid_12part_1.wav 378 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_mandarin_internalmic_hehengli_clatternoise_fileid_9part_1.wav 379 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_mandarin_internalmic_hehengli_creakingchair_fileid_3part_1.wav 380 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_mandarin_internalmic_hehengli_creakingchair_fileid_6part_1.wav 381 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_mandarin_internalmic_hehengli_creakingchair_fileid_7part_1.wav 382 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_mandarin_internalmic_hehengli_outdoorvichiclenoise_fileid_4part_1.wav 383 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_mandarin_internalmic_hehengli_outdoorvichiclenoise_fileid_5part_1.wav 384 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_mandarin_internalmic_hehengli_typing_fileid_8part_1.wav 385 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_mandarin_surface_QiaofeiYe_airConditioner_fileid_2part_1.wav 386 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_mandarin_surface_QiaofeiYe_babyCrying_fileid_1part_1.wav 387 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_mandarin_surface_QiaofeiYe_babyCrying_fileid_2part_1.wav 388 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_mandarin_surface_QiaofeiYe_dog_fileid_1part_1.wav 389 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_mandarin_surface_QiaofeiYe_dog_fileid_2part_1.wav 390 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_mandarin_surface_QiaofeiYe_dog_fileid_3part_1.wav 391 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_mandarin_surface_QiaofeiYe_door_fileid_3part_1.wav 392 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_mandarin_surface_QiaofeiYe_fan_fileid_1part_1.wav 393 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_mandarin_surface_QiaofeiYe_neighborTalking_fileid_1part_1.wav 394 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_mandarin_surface_QiaofeiYe_typing_fileid_1part_1.wav 395 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_mandarin_surface_QiaofeiYe_typing_fileid_2part_1.wav 396 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_mandarin_surface_QiaofeiYe_typing_fileid_3part_1.wav 397 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_Punjabi_Laptop_Garima_Baby_Cryingpart_1.wav 398 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_punjabipart_0.wav 399 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_punjabipart_1.wav 400 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_punjabipart_2.wav 401 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_punjabipart_3.wav 402 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_punjabipart_4.wav 403 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_punjabipart_5.wav 404 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_punjabipart_6.wav 405 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_punjabipart_7.wav 406 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_surfacebook_seung_musicinstrumental_fildeid_1_koreanpart_0.wav 407 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_surfacebook_seung_musicinstrumental_fildeid_1_koreanpart_1.wav 408 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_surfacebook_seung_musicinstrumental_fildeid_1_koreanpart_2.wav 409 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_surfacebook_seung_musicinstrumental_fildeid_1_koreanpart_3.wav 410 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_surfacebook_seung_musicinstrumental_fildeid_1_koreanpart_4.wav 411 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_surfacebook_seung_musicinstrumental_fildeid_1_koreanpart_5.wav 412 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_surfacebook_seung_piano_fildeid_1_koreanpart_0.wav 413 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_surfacebook_seung_piano_fildeid_1_koreanpart_1.wav 414 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_surfacebook_seung_piano_fildeid_1_koreanpart_2.wav 415 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_surfacebook_seung_piano_fildeid_1_koreanpart_3.wav 416 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_surfacebook_seung_piano_fildeid_1_koreanpart_4.wav 417 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_surfacebook_seung_piano_fildeid_1_koreanpart_5.wav 418 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_surfacebook_seung_singing_fildeid_1_koreanpart_0.wav 419 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_surfacebook_seung_singing_fildeid_1_koreanpart_1.wav 420 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_surfacebook_seung_singing_fildeid_1_koreanpart_2.wav 421 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_surfacebook_seung_singing_fildeid_1_koreanpart_3.wav 422 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_surfacebook_seung_singing_fildeid_1_koreanpart_4.wav 423 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_surfacebook_seung_singing_fildeid_1_koreanpart_5.wav 424 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_surfacebook_seung_softelectronic_fildeid_1_koreanpart_0.wav 425 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_surfacebook_seung_softelectronic_fildeid_1_koreanpart_1.wav 426 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_surfacebook_seung_softelectronic_fildeid_1_koreanpart_2.wav 427 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_surfacebook_seung_softelectronic_fildeid_1_koreanpart_3.wav 428 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_surfacebook_seung_softelectronic_fildeid_1_koreanpart_4.wav 429 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_surfacebook_seung_softelectronic_fildeid_1_koreanpart_5.wav 430 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_surfacebook_seung_softrock_fildeid_1_koreanpart_0.wav 431 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_surfacebook_seung_softrock_fildeid_1_koreanpart_1.wav 432 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_surfacebook_seung_softrock_fildeid_1_koreanpart_2.wav 433 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_surfacebook_seung_softrock_fildeid_1_koreanpart_3.wav 434 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_surfacebook_seung_softrock_fildeid_1_koreanpart_4.wav 435 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_surfacebook_seung_softrock_fildeid_1_koreanpart_5.wav 436 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_surfacebook_seung_urban_fildeid_1_koreanpart_0.wav 437 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_surfacebook_seung_urban_fildeid_1_koreanpart_1.wav 438 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_surfacebook_seung_urban_fildeid_1_koreanpart_2.wav 439 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_surfacebook_seung_urban_fildeid_1_koreanpart_3.wav 440 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/ms_realrec_nonenglish_tonal_vietnamese_headphone_EvelynLe_typing_fileidpart_1.wav 441 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_french _fileid_0.wav 442 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_french _fileid_10.wav 443 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_french _fileid_11.wav 444 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_french _fileid_12.wav 445 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_french _fileid_13.wav 446 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_french _fileid_14.wav 447 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_french _fileid_15.wav 448 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_french _fileid_1.wav 449 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_french _fileid_2.wav 450 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_french _fileid_3.wav 451 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_french _fileid_4.wav 452 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_french _fileid_5.wav 453 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_french _fileid_6.wav 454 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_french _fileid_7.wav 455 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_french _fileid_8.wav 456 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_french _fileid_9.wav 457 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_german _fileid_0.wav 458 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_german _fileid_10.wav 459 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_german _fileid_11.wav 460 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_german _fileid_12.wav 461 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_german _fileid_13.wav 462 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_german _fileid_14.wav 463 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_german _fileid_15.wav 464 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_german _fileid_1.wav 465 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_german _fileid_2.wav 466 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_german _fileid_3.wav 467 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_german _fileid_4.wav 468 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_german _fileid_5.wav 469 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_german _fileid_6.wav 470 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_german _fileid_7.wav 471 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_german _fileid_8.wav 472 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_german _fileid_9.wav 473 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_italian _fileid_0.wav 474 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_italian _fileid_10.wav 475 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_italian _fileid_11.wav 476 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_italian _fileid_12.wav 477 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_italian _fileid_13.wav 478 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_italian _fileid_14.wav 479 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_italian _fileid_1.wav 480 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_italian _fileid_2.wav 481 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_italian _fileid_3.wav 482 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_italian _fileid_4.wav 483 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_italian _fileid_5.wav 484 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_italian _fileid_6.wav 485 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_italian _fileid_7.wav 486 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_italian _fileid_8.wav 487 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_italian _fileid_9.wav 488 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_portuguese _fileid_0.wav 489 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_portuguese _fileid_10.wav 490 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_portuguese _fileid_1.wav 491 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_portuguese _fileid_2.wav 492 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_portuguese _fileid_3.wav 493 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_portuguese _fileid_4.wav 494 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_portuguese _fileid_5.wav 495 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_portuguese _fileid_6.wav 496 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_portuguese _fileid_7.wav 497 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_portuguese _fileid_8.wav 498 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_synthetic_portuguese _fileid_9.wav 499 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_chinese _fileid_0.wav 500 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_chinese _fileid_10.wav 501 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_chinese _fileid_11.wav 502 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_chinese _fileid_12.wav 503 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_chinese _fileid_13.wav 504 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_chinese _fileid_14.wav 505 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_chinese _fileid_15.wav 506 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_chinese _fileid_16.wav 507 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_chinese _fileid_17.wav 508 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_chinese _fileid_18.wav 509 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_chinese _fileid_19.wav 510 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_chinese _fileid_1.wav 511 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_chinese _fileid_2.wav 512 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_chinese _fileid_3.wav 513 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_chinese _fileid_4.wav 514 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_chinese _fileid_5.wav 515 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_chinese _fileid_6.wav 516 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_chinese _fileid_7.wav 517 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_chinese _fileid_8.wav 518 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_chinese _fileid_9.wav 519 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_punjabi _fileid_0.wav 520 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_punjabi _fileid_10.wav 521 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_punjabi _fileid_11.wav 522 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_punjabi _fileid_12.wav 523 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_punjabi _fileid_13.wav 524 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_punjabi _fileid_14.wav 525 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_punjabi _fileid_15.wav 526 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_punjabi _fileid_1.wav 527 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_punjabi _fileid_2.wav 528 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_punjabi _fileid_3.wav 529 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_punjabi _fileid_4.wav 530 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_punjabi _fileid_5.wav 531 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_punjabi _fileid_6.wav 532 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_punjabi _fileid_7.wav 533 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_punjabi _fileid_8.wav 534 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_punjabi _fileid_9.wav 535 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_vietnamese _fileid_0.wav 536 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_vietnamese _fileid_10.wav 537 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_vietnamese _fileid_11.wav 538 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_vietnamese _fileid_12.wav 539 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_vietnamese _fileid_13.wav 540 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_vietnamese _fileid_14.wav 541 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_vietnamese _fileid_15.wav 542 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_vietnamese _fileid_1.wav 543 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_vietnamese _fileid_2.wav 544 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_vietnamese _fileid_3.wav 545 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_vietnamese _fileid_4.wav 546 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_vietnamese _fileid_5.wav 547 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_vietnamese _fileid_6.wav 548 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_vietnamese _fileid_7.wav 549 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_vietnamese _fileid_8.wav 550 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/nonenglish_tonal_synthetic_vietnamese _fileid_9.wav 551 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_1903_voss_5_snr21_tl-23_fileid_27.wav 552 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_2045_white_7_snr10_tl-24_fileid_28.wav 553 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_2086_colored_12_snr6_tl-31_fileid_29.wav 554 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_2127_white_15_snr20_tl-32_fileid_30.wav 555 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_2206_colored_4_snr15_tl-32_fileid_32.wav 556 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_2236_white_8_snr23_tl-23_fileid_33.wav 557 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_2253_colored_3_snr21_tl-21_fileid_34.wav 558 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_2274_white_17_snr5_tl-26_fileid_35.wav 559 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_2286_voss_5_snr0_tl-30_fileid_36.wav 560 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_2289_voss_18_snr0_tl-18_fileid_37.wav 561 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_2305_white_18_snr4_tl-33_fileid_38.wav 562 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_2309_white_16_snr3_tl-33_fileid_39.wav 563 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_2391_voss_9_snr21_tl-26_fileid_41.wav 564 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_2414_colored_0_snr10_tl-25_fileid_42.wav 565 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_2428_white_11_snr23_tl-33_fileid_43.wav 566 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_2458_white_7_snr2_tl-32_fileid_44.wav 567 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_2489_voss_18_snr3_tl-24_fileid_45.wav 568 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_2524_white_14_snr3_tl-20_fileid_46.wav 569 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_2538_white_18_snr14_tl-26_fileid_47.wav 570 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_2541_white_8_snr1_tl-31_fileid_48.wav 571 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_2548_colored_18_snr22_tl-24_fileid_49.wav 572 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_2576_white_0_snr11_tl-33_fileid_50.wav 573 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_2581_white_19_snr16_tl-35_fileid_51.wav 574 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_2634_white_4_snr0_tl-29_fileid_52.wav 575 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_2695_colored_9_snr14_tl-25_fileid_53.wav 576 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_2725_white_19_snr24_tl-27_fileid_54.wav 577 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_2742_colored_3_snr24_tl-33_fileid_55.wav 578 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_2845_colored_11_snr2_tl-24_fileid_56.wav 579 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_2874_colored_3_snr16_tl-27_fileid_57.wav 580 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_2956_colored_16_snr19_tl-27_fileid_58.wav 581 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_2960_voss_14_snr2_tl-32_fileid_59.wav 582 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_3004_white_12_snr14_tl-35_fileid_60.wav 583 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_3047_colored_12_snr3_tl-22_fileid_61.wav 584 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_3085_colored_19_snr22_tl-22_fileid_62.wav 585 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_3087_white_7_snr13_tl-24_fileid_63.wav 586 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_3096_white_6_snr16_tl-21_fileid_64.wav 587 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_3102_voss_13_snr16_tl-22_fileid_65.wav 588 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_3137_voss_3_snr8_tl-35_fileid_66.wav 589 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_3189_voss_6_snr6_tl-22_fileid_67.wav 590 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_3232_colored_15_snr24_tl-21_fileid_68.wav 591 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_3268_white_1_snr18_tl-27_fileid_69.wav 592 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_3293_white_4_snr15_tl-24_fileid_70.wav 593 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_3300_voss_8_snr15_tl-34_fileid_71.wav 594 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_3316_voss_19_snr22_tl-23_fileid_72.wav 595 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_3336_voss_12_snr24_tl-32_fileid_73.wav 596 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_3383_colored_8_snr15_tl-32_fileid_74.wav 597 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_3437_white_10_snr12_tl-29_fileid_75.wav 598 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_3468_voss_5_snr22_tl-30_fileid_76.wav 599 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_3525_voss_11_snr11_tl-35_fileid_77.wav 600 | /home/work_nfs4_ssd/lvshubo/data/DNS-2022/blind_test/wideband_16kHz/noisy_clips_wb_16kHz/stationary_english_tug_3543_colored_19_snr8_tl-25_fileid_78.wav 601 | -------------------------------------------------------------------------------- /model/__pycache__/conv_stft_new.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IMYBo/SDDNet/08288c5238ba17d3c0d4fef1dfd585470d4a55a7/model/__pycache__/conv_stft_new.cpython-36.pyc -------------------------------------------------------------------------------- /model/__pycache__/conv_stft_new.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IMYBo/SDDNet/08288c5238ba17d3c0d4fef1dfd585470d4a55a7/model/__pycache__/conv_stft_new.cpython-37.pyc -------------------------------------------------------------------------------- /model/__pycache__/dnnet.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IMYBo/SDDNet/08288c5238ba17d3c0d4fef1dfd585470d4a55a7/model/__pycache__/dnnet.cpython-36.pyc -------------------------------------------------------------------------------- /model/__pycache__/loss.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IMYBo/SDDNet/08288c5238ba17d3c0d4fef1dfd585470d4a55a7/model/__pycache__/loss.cpython-36.pyc -------------------------------------------------------------------------------- /model/__pycache__/sddnet.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IMYBo/SDDNet/08288c5238ba17d3c0d4fef1dfd585470d4a55a7/model/__pycache__/sddnet.cpython-36.pyc -------------------------------------------------------------------------------- /model/__pycache__/sddnet_decode.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IMYBo/SDDNet/08288c5238ba17d3c0d4fef1dfd585470d4a55a7/model/__pycache__/sddnet_decode.cpython-36.pyc -------------------------------------------------------------------------------- /model/__pycache__/sddnet_freeze_dnnet.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IMYBo/SDDNet/08288c5238ba17d3c0d4fef1dfd585470d4a55a7/model/__pycache__/sddnet_freeze_dnnet.cpython-36.pyc -------------------------------------------------------------------------------- /model/__pycache__/sddnet_no_freeze.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IMYBo/SDDNet/08288c5238ba17d3c0d4fef1dfd585470d4a55a7/model/__pycache__/sddnet_no_freeze.cpython-36.pyc -------------------------------------------------------------------------------- /model/__pycache__/sddnet_v2.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IMYBo/SDDNet/08288c5238ba17d3c0d4fef1dfd585470d4a55a7/model/__pycache__/sddnet_v2.cpython-36.pyc -------------------------------------------------------------------------------- /model/__pycache__/sddnet_v2_decode.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IMYBo/SDDNet/08288c5238ba17d3c0d4fef1dfd585470d4a55a7/model/__pycache__/sddnet_v2_decode.cpython-36.pyc -------------------------------------------------------------------------------- /model/__pycache__/show.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IMYBo/SDDNet/08288c5238ba17d3c0d4fef1dfd585470d4a55a7/model/__pycache__/show.cpython-36.pyc -------------------------------------------------------------------------------- /model/__pycache__/show.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IMYBo/SDDNet/08288c5238ba17d3c0d4fef1dfd585470d4a55a7/model/__pycache__/show.cpython-37.pyc -------------------------------------------------------------------------------- /model/__pycache__/srnet.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IMYBo/SDDNet/08288c5238ba17d3c0d4fef1dfd585470d4a55a7/model/__pycache__/srnet.cpython-36.pyc -------------------------------------------------------------------------------- /model/__pycache__/srnet_v2.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IMYBo/SDDNet/08288c5238ba17d3c0d4fef1dfd585470d4a55a7/model/__pycache__/srnet_v2.cpython-36.pyc -------------------------------------------------------------------------------- /model/conv_stft.py: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | import torch 5 | import torch.nn as nn 6 | import numpy as np 7 | import torch.nn.functional as F 8 | from scipy.signal import get_window 9 | 10 | 11 | def init_kernels(win_len, win_inc, fft_len, win_type=None, invers=False): 12 | if win_type == 'None' or win_type is None: 13 | window = np.ones(win_len) 14 | else: 15 | window = get_window(win_type, win_len, fftbins=True)#**0.5 16 | 17 | N = fft_len 18 | fourier_basis = np.fft.rfft(np.eye(N))[:win_len] 19 | real_kernel = np.real(fourier_basis) 20 | imag_kernel = np.imag(fourier_basis) 21 | kernel = np.concatenate([real_kernel, imag_kernel], 1).T 22 | 23 | if invers : 24 | kernel = np.linalg.pinv(kernel).T 25 | 26 | kernel = kernel*window 27 | kernel = kernel[:, None, :] 28 | return torch.from_numpy(kernel.astype(np.float32)), torch.from_numpy(window[None,:,None].astype(np.float32)) 29 | 30 | 31 | class ConvSTFT(nn.Module): 32 | 33 | def __init__(self, win_len, win_inc, fft_len=None, win_type='hamming', feature_type='real', fix=True): 34 | super(ConvSTFT, self).__init__() 35 | 36 | if fft_len == None: 37 | self.fft_len = np.int(2**np.ceil(np.log2(win_len))) 38 | else: 39 | self.fft_len = fft_len 40 | 41 | kernel, _ = init_kernels(win_len, win_inc, self.fft_len, win_type) 42 | #self.weight = nn.Parameter(kernel, requires_grad=(not fix)) 43 | self.register_buffer('weight', kernel) 44 | self.feature_type = feature_type 45 | self.stride = win_inc 46 | self.win_len = win_len 47 | self.dim = self.fft_len 48 | 49 | def forward(self, inputs): 50 | if inputs.dim() == 2: 51 | inputs = torch.unsqueeze(inputs, 1) 52 | inputs = F.pad(inputs,[self.win_len-self.stride, self.win_len-self.stride]) 53 | outputs = F.conv1d(inputs, self.weight, stride=self.stride) 54 | 55 | if self.feature_type == 'complex': 56 | return outputs 57 | else: 58 | dim = self.dim//2+1 59 | real = outputs[:, :dim, :] 60 | imag = outputs[:, dim:, :] 61 | mags = torch.sqrt(real**2+imag**2) 62 | phase = torch.atan2(imag, real) 63 | return mags, phase 64 | 65 | class ConviSTFT(nn.Module): 66 | 67 | def __init__(self, win_len, win_inc, fft_len=None, win_type='hamming', feature_type='real', fix=True): 68 | super(ConviSTFT, self).__init__() 69 | if fft_len == None: 70 | self.fft_len = np.int(2**np.ceil(np.log2(win_len))) 71 | else: 72 | self.fft_len = fft_len 73 | kernel, window = init_kernels(win_len, win_inc, self.fft_len, win_type, invers=True) 74 | #self.weight = nn.Parameter(kernel, requires_grad=(not fix)) 75 | self.register_buffer('weight', kernel) 76 | self.feature_type = feature_type 77 | self.win_type = win_type 78 | self.win_len = win_len 79 | self.stride = win_inc 80 | self.stride = win_inc 81 | self.dim = self.fft_len 82 | self.register_buffer('window', window) 83 | self.register_buffer('enframe', torch.eye(win_len)[:,None,:]) 84 | 85 | def forward(self, inputs, phase=None): 86 | """ 87 | inputs : [B, N+2, T] (complex spec) or [B, N//2+1, T] (mags) 88 | phase: [B, N//2+1, T] (if not none) 89 | """ 90 | 91 | if phase is not None: 92 | real = inputs*torch.cos(phase) 93 | imag = inputs*torch.sin(phase) 94 | inputs = torch.cat([real, imag], 1) 95 | outputs = F.conv_transpose1d(inputs, self.weight, stride=self.stride) 96 | 97 | # this is from torch-stft: https://github.com/pseeth/torch-stft 98 | t = self.window.repeat(1,1,inputs.size(-1))**2 99 | coff = F.conv_transpose1d(t, self.enframe, stride=self.stride) 100 | outputs = outputs/(coff+1e-8) 101 | #outputs = torch.where(coff == 0, outputs, outputs/coff) 102 | outputs = outputs[...,self.win_len-self.stride:-(self.win_len-self.stride)] 103 | 104 | return outputs 105 | 106 | def test_fft(): 107 | torch.manual_seed(20) 108 | win_len = 320 109 | win_inc = 160 110 | fft_len = 512 111 | inputs = torch.randn([1, 1, 16000*4]) 112 | fft = ConvSTFT(win_len, win_inc, fft_len, win_type='hanning', feature_type='real') 113 | import librosa 114 | 115 | outputs1 = fft(inputs)[0] 116 | outputs1 = outputs1.numpy()[0] 117 | np_inputs = inputs.numpy().reshape([-1]) 118 | librosa_stft = librosa.stft(np_inputs, win_length=win_len, n_fft=fft_len, hop_length=win_inc, center=False) 119 | print(np.mean((outputs1 - np.abs(librosa_stft))**2)) 120 | 121 | 122 | def test_ifft1(): 123 | import soundfile as sf 124 | N = 100 125 | inc = 75 126 | fft_len=512 127 | torch.manual_seed(N) 128 | data = np.random.randn(N*30)[None,None,:] 129 | # data = sf.read('../ori.wav')[0] 130 | inputs = data.reshape([1,1,-1]) 131 | fft = ConvSTFT(N, inc, fft_len=fft_len, win_type='hanning', feature_type='complex') 132 | ifft = ConviSTFT(N, inc, fft_len=fft_len, win_type='hanning', feature_type='complex') 133 | 134 | inputs = torch.from_numpy(inputs.astype(np.float32)) 135 | outputs1 = fft(inputs) 136 | outputs2 = ifft(outputs1) 137 | sf.write('conv_stft.wav', outputs2.numpy()[0,0,:],16000) 138 | print('wav MSE', torch.mean(torch.abs(inputs[...,:outputs2.size(2)]-outputs2)**2)) 139 | 140 | 141 | def test_ifft2(): 142 | N = 400 143 | inc = 100 144 | fft_len=512 145 | np.random.seed(20) 146 | torch.manual_seed(20) 147 | t = np.random.randn(16000*4)*0.001 148 | t = np.clip(t, -1, 1) 149 | #input = torch.randn([1,16000*4]) 150 | input = torch.from_numpy(t[None,None,:].astype(np.float32)) 151 | 152 | fft = ConvSTFT(N, inc, fft_len=fft_len, win_type='hanning', feature_type='complex') 153 | ifft = ConviSTFT(N, inc, fft_len=fft_len, win_type='hanning', feature_type='complex') 154 | 155 | out1 = fft(input) 156 | output = ifft(out1) 157 | print('random MSE', torch.mean(torch.abs(input-output)**2)) 158 | import soundfile as sf 159 | sf.write('zero.wav', output[0,0].numpy(),16000) 160 | 161 | 162 | if __name__ == '__main__': 163 | #test_fft() 164 | test_ifft1() 165 | #test_ifft2() -------------------------------------------------------------------------------- /model/dnnet.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # coding=utf-8 3 | 4 | import torch 5 | import torch.nn as nn 6 | import os 7 | import sys 8 | sys.path.append(os.path.dirname(sys.path[0]) + '/model') 9 | from show import show_params, show_model 10 | import torch.nn.functional as F 11 | from conv_stft_new import ConvSTFT, ConviSTFT 12 | import math 13 | 14 | 15 | class smoothed_dilated_conv1d_GI(nn.Module): 16 | """docstring for smoothed_dilated_conv1d_GI""" 17 | def __init__(self, in_channels, out_channels, kernel_size, dilation, bias=True): 18 | super(smoothed_dilated_conv1d_GI, self).__init__() 19 | self.kernel_size = kernel_size 20 | self.dilation = dilation 21 | self.conv_block = nn.Conv1d(in_channels=in_channels, out_channels=out_channels, kernel_size=kernel_size) 22 | self.fix_w = nn.Parameter(torch.eye(dilation)) 23 | self.bias = bias 24 | if bias: 25 | self.bias_block = nn.Parameter(torch.zeros(1, out_channels, 1), requires_grad=True) 26 | def forward(self, inputs): 27 | """ 28 | inputs: B x C x T 29 | """ 30 | #print('dilation', self.dilation) 31 | o_inputs = inputs 32 | #inputs = F.pad(inputs, [(self.dilation)*(self.kernel_size-1), 0, 0, 0])##pad 33 | B, C, T = inputs.size() 34 | #print('inputs1: ', inputs.shape) 35 | pad_t = (self.dilation - T % self.dilation) if T % self.dilation != 0 else 0 36 | inputs = F.pad(inputs, [pad_t, 0, 0, 0]) 37 | B, C, T = inputs.size() 38 | #print('inputs2: ', inputs.shape) 39 | inputs = inputs.transpose(1, 2)##B x T x C 40 | inputs = inputs.contiguous().view(B * self.dilation, T//self.dilation, C).transpose(1, 2)##(B*d) x C x (T/d) 41 | inputs = F.pad(inputs, [(self.kernel_size-1), 0, 0, 0])##pad 42 | 43 | outs_conv = self.conv_block(inputs) 44 | #print('outs_conv: ', outs_conv.shape) 45 | outs_conv = torch.chunk(outs_conv, self.dilation, 0) 46 | out = [] 47 | for i in range(self.dilation): 48 | out.append(self.fix_w[0, i] * outs_conv[i]) 49 | for j in range(1, self.dilation): 50 | out[i] += self.fix_w[j, i] * outs_conv[i] 51 | 52 | out = torch.cat(out, 0)##(B*d) x C x (T/d) 53 | out = out.transpose(1, 2) 54 | out = out.contiguous().view(B, T, C) 55 | out = out[:, :o_inputs.shape[2], :].transpose(1, 2) 56 | if self.bias: 57 | out = out + self.bias_block 58 | 59 | return out 60 | 61 | class Gated_D_Conv(nn.Module): 62 | """docstring for Gated_D_Conv""" 63 | def __init__(self, channels, kernel_size, dilation): 64 | super(Gated_D_Conv, self).__init__() 65 | self.main_conv = nn.Sequential( 66 | nn.PReLU(64), 67 | nn.InstanceNorm1d(channels, affine=True), 68 | nn.ConstantPad1d([(kernel_size-1)*dilation, 0, 0, 0], 0), 69 | nn.Conv1d(in_channels=channels, out_channels=channels, kernel_size=kernel_size, dilation=dilation, bias=False), 70 | ) 71 | self.gate_conv = nn.Sequential( 72 | nn.PReLU(64), 73 | nn.InstanceNorm1d(channels, affine=True), 74 | nn.ConstantPad1d([(kernel_size-1)*dilation, 0, 0, 0], 0), 75 | nn.Conv1d(in_channels=channels, out_channels=channels, kernel_size=kernel_size, dilation=dilation, bias=False), 76 | nn.Sigmoid() 77 | ) 78 | def forward(self, inputs): 79 | outputs = self.main_conv(inputs) * self.gate_conv(inputs) 80 | return outputs 81 | 82 | 83 | 84 | class DMG_TCM(nn.Module): 85 | """docstring for TCM""" 86 | def __init__(self, in_channels, out_channels, dilation, kernel_size=5): 87 | super(DMG_TCM, self).__init__() 88 | self.in_channels = in_channels 89 | self.out_channels = out_channels 90 | self.conpress_conv = nn.Conv1d(in_channels=in_channels, out_channels=out_channels, kernel_size=1, bias=False) 91 | self.primal_domain = Gated_D_Conv(out_channels, kernel_size, dilation) 92 | #self.dual_domain = Gated_D_Conv(out_channels, kernel_size, int(2**(5 - math.log2(dilation)))) 93 | self.out_conv = nn.Sequential( 94 | nn.PReLU(64), 95 | nn.InstanceNorm1d(out_channels, affine=True), 96 | nn.Conv1d(in_channels=out_channels, out_channels=in_channels, kernel_size=1, bias=False), 97 | ) 98 | 99 | 100 | self.dilation = dilation 101 | self.kernel_size = kernel_size 102 | def forward(self, inputs): 103 | """ 104 | inputs: B x C x T 105 | outputs: B x C x T 106 | """ 107 | outputs = self.conpress_conv(inputs) 108 | outputs = self.primal_domain(outputs)#torch.cat([self.primal_domain(outputs), self.dual_domain(outputs)], 1) 109 | outputs = self.out_conv(outputs) 110 | return outputs + inputs 111 | 112 | class TcmBlocks(nn.Module): 113 | """docstring for TcmBlocks""" 114 | def __init__(self, in_channels=256, hidden_channels=64, dilation=[1, 2, 4, 8, 16, 32]): 115 | super(TcmBlocks, self).__init__() 116 | self.TCMBlocks = nn.ModuleList() 117 | for i in range(len(dilation)): 118 | #if i == 0: 119 | self.TCMBlocks.append(DMG_TCM(in_channels=in_channels, out_channels=hidden_channels, dilation=dilation[i])) 120 | #elif i != len(dilation)-1: 121 | # self.TCMBlocks.append(TCM(in_channels=hidden_channels, out_channels=hidden_channels, dilation=dilation[i])) 122 | #else: 123 | # self.TCMBlocks.append(TCM(in_channels=hidden_channels, out_channels=in_channels, dilation=dilation[i])) 124 | 125 | def forward(self, inputs): 126 | """ 127 | inputs: B x C x T 128 | outputs: B x C x T 129 | """ 130 | for i in range(len(self.TCMBlocks)): 131 | inputs = self.TCMBlocks[i](inputs) 132 | return inputs 133 | 134 | class DN_Net(nn.Module): 135 | """ 136 | 线性谱降噪去混网络 137 | """ 138 | def __init__(self, win_len=320, win_inc=160, fft_len=320, win_type='hanning', I=5, dereverb=False): 139 | super(DN_Net, self).__init__() 140 | #self.stft = ConvSTFT(win_len=win_len, win_inc=win_inc, fft_len=fft_len, win_type=win_type, feature_type='complex') 141 | #self.istft = ConviSTFT(win_len=win_len, win_inc=win_inc, fft_len=fft_len, win_type=win_type, feature_type='complex') 142 | self.encoder = nn.ModuleList() 143 | self.decoder = nn.ModuleList() 144 | self.tcmlayer_num = 3 145 | self.dereverb = dereverb 146 | self.I = I 147 | self.tcmlayer = nn.ModuleList() 148 | dilation = [1, 2, 4, 8, 16, 32] 149 | kernel_num = [1, 64, 64, 64, 64, 64] if not dereverb else [2, 64, 64, 64, 64, 64] 150 | self.frq_dim = 161 151 | for i in range(len(kernel_num) - 1): 152 | self.encoder.append( 153 | nn.Sequential( 154 | nn.ConstantPad2d([1, 0, 0, 0], 0), 155 | nn.Conv2d( 156 | in_channels=kernel_num[i], 157 | out_channels=kernel_num[i+1], 158 | kernel_size=(5, 2) if i == 0 else (3, 2),#F, T 159 | stride=(2, 1), 160 | padding=(0, 0)), 161 | #print(self.frq_dim//(2**(i+1)) - 1) 162 | #nn.InstanceNorm2d([kernel_num[i+1], self.frq_dim//(2**(i+1)) - 1]), 163 | nn.InstanceNorm2d(kernel_num[i+1], affine=True), 164 | nn.PReLU(kernel_num[i+1]), 165 | ) 166 | ) 167 | for i in range(self.tcmlayer_num): 168 | self.tcmlayer.append(TcmBlocks(dilation=dilation)) 169 | for i in range(len(kernel_num)-1, 0, -1): 170 | self.decoder.append( 171 | nn.Sequential( 172 | nn.ConvTranspose2d( 173 | in_channels=kernel_num[i], 174 | out_channels=kernel_num[i-1] if i != 1 else I, 175 | kernel_size=(3, 2) if i != 1 else (5, 2), 176 | stride=(2, 1), 177 | #padding=(0, 1), 178 | ), 179 | nn.InstanceNorm2d(kernel_num[i-1], affine=True) if i != 1 else nn.InstanceNorm2d(I, affine=True), 180 | nn.PReLU(kernel_num[i-1]) if i != 1 else nn.PReLU(I) 181 | ) 182 | ) 183 | show_model(self) 184 | show_params(self) 185 | def multiframe_filtering(self, inputs, mask): 186 | """ 187 | inputs: B x I x F x T 188 | mask: B x I x F x T 189 | """ 190 | outputs = [] 191 | for i in range(self.I): 192 | outputs.append(F.pad(inputs, [i, 0, 0, 0])[:, :, :-i] if i != 0 else inputs) 193 | #print(len(outputs), outputs[0].shape) 194 | outputs = torch.stack(outputs, 1)##B xI x F x T 195 | #print(outputs.shape) 196 | #print(mask.shape) 197 | outputs = outputs * mask 198 | return torch.sum(outputs, 1) 199 | def forward(self, inputs, denoise_out=None): 200 | """ 201 | inputs: B x F x T 202 | """ 203 | #cspecs = self.stft(inputs)##B x (2F) x T 204 | #real, imag = torch.chunk(cspecs, 2, 1) 205 | specs = inputs#torch.sqrt(real**2 + imag**2) 206 | #phase = torch.atan2(imag, real) 207 | if self.dereverb: 208 | outs = torch.stack([inputs, denoise_out], 1) 209 | else: 210 | outs = specs.unsqueeze(1) 211 | encoder_out = [] 212 | for i in range(len(self.encoder)): 213 | outs = self.encoder[i](outs) 214 | #print(f"encoder layer {i} : shape {outs.shape}") 215 | encoder_out.append(outs) 216 | 217 | B, C, D, T = outs.size() 218 | outs = outs.view(B, -1, T) 219 | #print(outs.shape) 220 | for i in range(len(self.tcmlayer)): 221 | outs = self.tcmlayer[i](outs) 222 | 223 | outs = outs.view(B, C, D, T) 224 | #print(outs.shape) 225 | for i in range(len(self.decoder)): 226 | outs = self.decoder[i](outs + encoder_out[-1-i]) 227 | #print(f"decoder layer {i} : shape {outs.shape}") 228 | outs = outs[..., :-1] 229 | if self.dereverb: 230 | outs = self.multiframe_filtering(denoise_out, outs) 231 | else: 232 | outs = self.multiframe_filtering(inputs, outs) 233 | return outs 234 | 235 | if __name__ == "__main__": 236 | Net = DN_Net(dereverb=True) 237 | inputs = torch.randn([10, 161, 1000]) 238 | outs = Net(inputs, inputs) 239 | print(outs.shape) 240 | 241 | 242 | 243 | -------------------------------------------------------------------------------- /model/loss.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # coding=utf-8 3 | 4 | import torch 5 | import torch.nn.functional as F 6 | 7 | 8 | def remove_dc(data): 9 | mean = torch.mean(data, -1, keepdim=True) 10 | data = data - mean 11 | return data 12 | 13 | def pow_p_norm(signal): 14 | """Compute 2 Norm""" 15 | return torch.pow(torch.norm(signal, p=2, dim=-1, keepdim=True), 2) 16 | 17 | def pow_norm(s1, s2): 18 | return torch.sum(s1 * s2, dim=-1, keepdim=True) 19 | 20 | def si_snr(estimated, original,EPS=1e-8): 21 | # estimated = remove_dc(estimated) 22 | # original = remove_dc(original) 23 | target = pow_norm(estimated, original) * original / (pow_p_norm(original) + EPS) 24 | noise = estimated - target 25 | sdr = 10 * torch.log10(pow_p_norm(target) / (pow_p_norm(noise) + EPS) + EPS) 26 | return torch.mean(sdr) 27 | 28 | def sd_snr(estimated, original, EPS=1e-8): 29 | target = pow_norm(estimated, original) * original / (pow_p_norm(original) + EPS) 30 | noise = estimated - original 31 | sdr = 10 * torch.log10(pow_p_norm(target) / (pow_p_norm(noise) + EPS) + EPS) 32 | return torch.mean(sdr) 33 | 34 | def GD(inputs, labels): 35 | gth_real, gth_imag = torch.chunk(inputs, 2, 1) 36 | est_real, est_imag = torch.chunk(labels, 2, 1) 37 | 38 | gth_phase = torch.atan2(gth_imag, gth_real+1e-8) 39 | est_phase = torch.atan2(est_imag, est_real+1e-8) 40 | 41 | gth_gd = gth_phase[:,1:] - gth_phase[:,:-1] 42 | est_gd = est_phase[:,1:] - est_phase[:,:-1] 43 | 44 | gth_gd = torch.cos(gth_gd) 45 | est_gd = torch.cos(est_gd) 46 | 47 | return F.mse_loss(est_gd, gth_gd) 48 | 49 | def kl(estimated, labels): 50 | est_real, est_imag = torch.chunk(estimated, 2, 1) 51 | gth_real, gth_imag = torch.chunk(labels, 2, 1) 52 | 53 | est_mag = torch.sqrt(est_real**2+est_imag**2+1e-8) 54 | gth_mag = torch.sqrt(gth_real**2+gth_imag**2+1e-8) 55 | 56 | loss = est_mag*torch.log(est_mag/(gth_mag+1e-12)+1e-12)# - (est_mag - est_mag) 57 | return torch.mean(loss) 58 | 59 | def mix(inputs, labels,weight=[1,1,1]): 60 | est_spec, est_wav = inputs 61 | gth_spec, gth_wav = labels 62 | #nse_wav, nse_spec = gth_wav-est_wav, gth_spec - est_spec 63 | loss1 = -si_snr(est_wav, gth_wav) 64 | loss2 = F.mse_loss(est_spec, gth_spec) 65 | #loss3 = rgkl(est_spec, gth_spec) 66 | loss = loss1*weight[0]+loss2*weight[1]#+loss3*weight[2] 67 | return loss 68 | 69 | def delta(inputs): 70 | return inputs[...,1:]-inputs[...,:-1] 71 | 72 | def mix_loss(inputs,labels): 73 | return inputs[...,1:]-labels[...,:-1] 74 | 75 | def gd(inputs): 76 | return inputs[:,1:]-inputs[:,:-1] 77 | -------------------------------------------------------------------------------- /model/sddnet.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # coding=utf-8 3 | 4 | import torch 5 | import torch.nn as nn 6 | import os 7 | import sys 8 | sys.path.append(os.path.dirname(sys.path[0]) + '/model') 9 | from show import show_params, show_model 10 | import torch.nn.functional as F 11 | from conv_stft import ConvSTFT, ConviSTFT 12 | from dnnet import DN_Net 13 | from srnet import SR_Net 14 | from loss import si_snr, sd_snr, GD, kl, mix 15 | 16 | class SDDNet(nn.Module): 17 | """docstring for SDDNet""" 18 | def __init__(self, win_len=320, win_inc=160, fft_len=320, win_type='hanning', stage='DRNet'): 19 | """ 20 | stage: DNNet, DRNet, SRNet 21 | """ 22 | super(SDDNet, self).__init__() 23 | self.stage = stage 24 | self.dnnet = DN_Net(win_len=win_len, win_inc=win_inc, fft_len=fft_len, win_type=win_type, I=5, dereverb=False) 25 | if stage == 'DRNet': 26 | for param in self.parameters(): 27 | param.requires_grad = False 28 | self.drnet = DN_Net(win_len=win_len, win_inc=win_inc, fft_len=fft_len, win_type=win_type, I=5, dereverb=True) 29 | if stage == 'SRNet': 30 | for param in self.parameters(): 31 | param.requires_grad = False 32 | self.srnet = SR_Net(win_len=win_len, win_inc=win_inc, fft_len=fft_len, win_type=win_type) 33 | 34 | self.stft = ConvSTFT(win_len=win_len, win_inc=win_inc, fft_len=fft_len, win_type=win_type, feature_type='complex') 35 | self.istft = ConviSTFT(win_len=win_len, win_inc=win_inc, fft_len=fft_len, win_type=win_type, feature_type='complex') 36 | show_model(self) 37 | show_params(self) 38 | 39 | def forward(self, inputs, labels=None): 40 | """ 41 | inputs: B x T 42 | """ 43 | inputs_cspecs = self.stft(inputs)#B x F x T 44 | B, D, T = inputs_cspecs.size() 45 | inputs_phase = torch.atan2(inputs_cspecs[:, D//2:], inputs_cspecs[:, :D//2] + 1e-8) 46 | inputs_specs = torch.sqrt(inputs_cspecs[:, D//2:]**2 + inputs_cspecs[:, :D//2]**2)**0.5 47 | outs_specs = self.dnnet(inputs_specs) 48 | outs_phase = inputs_phase 49 | if self.stage == 'DRNet' or self.stage == 'SRNet': 50 | denoise_specs = outs_specs 51 | outs_specs = self.drnet(inputs_specs, denoise_specs)###去混模块线性谱要压缩 52 | 53 | if self.stage == 'SRNet': 54 | denoise_cspecs = torch.cat([denoise_specs*torch.cos(inputs_phase), denoise_specs*torch.sin(inputs_phase)], 1) 55 | dereverb_cspecs = torch.cat([outs_specs*torch.cos(inputs_phase), outs_specs*torch.sin(inputs_phase)], 1) 56 | inputs_cspecs = torch.cat([inputs_specs*torch.cos(inputs_phase), inputs_specs*torch.sin(inputs_phase)], 1) 57 | outs = self.srnet(inputs_cspecs, dereverb_cspecs, denoise_cspecs) 58 | real, imag = torch.chunk(outs, 2, 1) 59 | outs_specs = torch.sqrt(real**2 + imag**2 + 1e-8) 60 | outs_phase = torch.atan2(imag, real + 1e-8) 61 | 62 | 63 | raw_wav = self.istft(torch.cat([(outs_specs**2)*torch.cos(outs_phase), (outs_specs**2)*torch.sin(outs_phase)], 1))##wav 64 | 65 | outs_cspecs = torch.cat([(outs_specs)*torch.cos(outs_phase), (outs_specs)*torch.sin(outs_phase)], 1) 66 | raw_wav = torch.squeeze(raw_wav, 1) 67 | 68 | 69 | if labels is not None: 70 | gth_sepc = self.stft(labels) 71 | B, D, T = gth_sepc.size() 72 | gth_sepc[:, 0] = 0 73 | gth_sepc[:, D//2] = 0 74 | if self.stage == 'DNNet': 75 | mag_labels = torch.sqrt(gth_sepc[:, :D//2]**2 + gth_sepc[:, D//2:]**2) 76 | else: 77 | mag_labels = torch.sqrt(gth_sepc[:, :D//2]**2 + gth_sepc[:, D//2:]**2)**0.5 78 | 79 | phase_labels = torch.atan2(gth_sepc[:, D//2:], gth_sepc[:, :D//2] + 1e-8) 80 | gth_csepc = torch.cat([mag_labels*torch.cos(phase_labels), mag_labels*torch.sin(phase_labels)], 1) 81 | return [outs_cspecs,gth_csepc], raw_wav 82 | else: 83 | return raw_wav 84 | 85 | def norm(self, inputs): 86 | inputs = inputs / torch.clamp(inputs**2, 1e-30) #* inputs.shape[1] 87 | return inputs 88 | 89 | def wav2f(self, inputs): 90 | cspecs = self.stft(inputs) 91 | B, D, T = cspecs.size() 92 | #cspecs[:, 0] = 0 93 | #cspecs[:, D//2] = 0 94 | mags = torch.sqrt(cspecs[:, D//2:]**2 + cspecs[:, :D//2]**2 + 1e-8) 95 | return mags, cspecs 96 | 97 | def sisnr(self, inputs, labels): 98 | return -(si_snr(inputs, labels)) 99 | 100 | def loss(self, inputs, labels, complex=True, loss_mode='MSE'): 101 | 102 | if loss_mode == 'MSE': 103 | B,D,T = inputs.size() 104 | inputs_mags = torch.sqrt(inputs[:, :D//2]**2 + inputs[:, D//2:]**2 + 1e-8) 105 | labels_mags = torch.sqrt(labels[:, :D//2]**2 + labels[:, D//2:]**2 + 1e-8) 106 | inputs_cspecs = inputs 107 | labels_cspecs = labels 108 | loss_mag = F.mse_loss((inputs_mags), (labels_mags)) 109 | loss_RI = F.mse_loss(labels_cspecs[:, :D//2], inputs_cspecs[:, :D//2]) + F.mse_loss(labels_cspecs[:, D//2:], inputs_cspecs[:, D//2:]) 110 | if complex: 111 | loss = loss_RI + loss_mag 112 | else: 113 | loss = loss_mag 114 | #print(loss) 115 | return loss 116 | elif loss_mode == 'SI-SNR': 117 | #return -torch.mean(si_snr(inputs, labels)) 118 | length = min(inputs.shape[1], labels.shape[1]) 119 | return -(si_snr(inputs[:, :length], labels[:, :length])) 120 | elif loss_mode == 'rGKL': 121 | return kl(inputs, labels) 122 | 123 | def get_params(self, weight_decay=0.0): 124 | # add L2 penalty 125 | weights, biases = [], [] 126 | for name, param in self.named_parameters(): 127 | if 'bias' in name: 128 | biases += [param] 129 | else: 130 | weights += [param] 131 | params = [{ 132 | 'params': weights, 133 | 'weight_decay': weight_decay, 134 | }, { 135 | 'params': biases, 136 | 'weight_decay': 0.0, 137 | }] 138 | return params 139 | 140 | def l2_norm(s1, s2): 141 | #norm = torch.sqrt(torch.sum(s1*s2, 1, keepdim=True)) 142 | #norm = torch.norm(s1*s2, 1, keepdim=True) 143 | 144 | norm = torch.sum(s1*s2, -1, keepdim=True) 145 | return norm 146 | 147 | def si_snr(s1, s2, eps=1e-8): 148 | #s1 = remove_dc(s1) 149 | #s2 = remove_dc(s2) 150 | s1_s2_norm = l2_norm(s1, s2) 151 | s2_s2_norm = l2_norm(s2, s2) 152 | s_target = s1_s2_norm/(s2_s2_norm+eps)*s2 153 | e_nosie = s1 - s_target 154 | target_norm = l2_norm(s_target, s_target) 155 | noise_norm = l2_norm(e_nosie, e_nosie) 156 | snr = 10*torch.log10((target_norm)/(noise_norm+eps)+eps) 157 | return torch.mean(snr) 158 | 159 | 160 | if __name__ == '__main__': 161 | Net = SDDNet(stage='SRNet') 162 | inputs = torch.randn([1, 16000]) 163 | labels = inputs 164 | [outs_cspecs,gth_csepc], raw_wav = Net(inputs, labels) 165 | print(Net.loss(outs_cspecs, gth_csepc, complex=True)) 166 | #print(len(outs), outs[0].shape, outs[1].shape, outs[-1].shape) 167 | 168 | -------------------------------------------------------------------------------- /model/show.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python -u 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright 2018 Northwestern Polytechnical University (author: Ke Wang) 5 | 6 | from __future__ import absolute_import 7 | from __future__ import division 8 | from __future__ import print_function 9 | 10 | 11 | def show_params(nnet): 12 | print("=" * 40, "Model Parameters", "=" * 40) 13 | num_params = 0 14 | for module_name, m in nnet.named_modules(): 15 | if module_name == '': 16 | for name, params in m.named_parameters(): 17 | print(name, params.size()) 18 | i = 1 19 | for j in params.size(): 20 | i = i * j 21 | num_params += i 22 | print('[*] Parameter Size: {}'.format(num_params)) 23 | print("=" * 98) 24 | 25 | 26 | def show_model(nnet): 27 | print("=" * 40, "Model Structures", "=" * 40) 28 | for module_name, m in nnet.named_modules(): 29 | if module_name == '': 30 | print(m) 31 | print("=" * 98) 32 | -------------------------------------------------------------------------------- /model/srnet.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # coding=utf-8 3 | 4 | import torch 5 | import torch.nn as nn 6 | import os 7 | import sys 8 | sys.path.append(os.path.dirname(sys.path[0]) + '/model') 9 | from show import show_params, show_model 10 | import torch.nn.functional as F 11 | from conv_stft_new import ConvSTFT, ConviSTFT 12 | import math 13 | class RealConv2d(nn.Module): 14 | """docstring for Conv2dReal""" 15 | def __init__(self, in_channels, out_channels, kernel_size, stride, padding): 16 | super(RealConv2d, self).__init__() 17 | self.in_channels = in_channels 18 | self.out_channels = out_channels 19 | self.kernel_size = kernel_size 20 | self.stride = stride 21 | self.padding = padding 22 | padding = (self.padding[0], 0) 23 | self.conv = nn.Conv2d(in_channels=in_channels, out_channels=out_channels, kernel_size=kernel_size, \ 24 | stride=stride, padding=padding) 25 | def forward(self, inputs): 26 | """ 27 | inputs: B x C x F x T 28 | """ 29 | if self.padding[1] != 0: 30 | inputs = F.pad(inputs, [self.padding[1], 0, 0, 0]) # padding T 31 | return self.conv(inputs) 32 | 33 | class RealConvtranspose2d(nn.Module): 34 | """docstring for Conv2dReal""" 35 | def __init__(self, in_channels, out_channels, kernel_size, stride, padding): 36 | super(RealConvtranspose2d, self).__init__() 37 | self.in_channels = in_channels 38 | self.out_channels = out_channels 39 | self.kernel_size = kernel_size 40 | self.stride = stride 41 | self.padding = padding 42 | padding = (self.padding[0], 0) 43 | self.conv = nn.Conv2d(in_channels=in_channels, out_channels=out_channels, kernel_size=kernel_size, \ 44 | stride=stride, padding=padding) 45 | def forward(self, inputs): 46 | """ 47 | inputs: B x C x F x T 48 | """ 49 | if self.padding[1] != 0: 50 | inputs = F.pad(inputs, [self.padding[1], 0, 0, 0]) # padding T 51 | return self.conv(inputs) 52 | 53 | class Gated_D_Conv(nn.Module): 54 | """docstring for Gated_D_Conv""" 55 | def __init__(self, channels, kernel_size, dilation): 56 | super(Gated_D_Conv, self).__init__() 57 | self.main_conv = nn.Sequential( 58 | nn.PReLU(64), 59 | nn.InstanceNorm1d(channels, affine=True), 60 | nn.ConstantPad1d([(kernel_size-1)*dilation, 0, 0, 0], 0), 61 | nn.Conv1d(in_channels=channels, out_channels=channels, kernel_size=kernel_size, dilation=dilation, bias=False), 62 | ) 63 | self.gate_conv = nn.Sequential( 64 | nn.PReLU(64), 65 | nn.InstanceNorm1d(channels, affine=True), 66 | nn.ConstantPad1d([(kernel_size-1)*dilation, 0, 0, 0], 0), 67 | nn.Conv1d(in_channels=channels, out_channels=channels, kernel_size=kernel_size, dilation=dilation, bias=False), 68 | nn.Sigmoid() 69 | ) 70 | def forward(self, inputs): 71 | outputs = self.main_conv(inputs) * self.gate_conv(inputs) 72 | return outputs 73 | 74 | 75 | 76 | class DMG_TCM(nn.Module): 77 | """docstring for TCM""" 78 | def __init__(self, in_channels, out_channels, dilation, kernel_size=5): 79 | super(DMG_TCM, self).__init__() 80 | self.in_channels = in_channels 81 | self.out_channels = out_channels 82 | self.conpress_conv = nn.Conv1d(in_channels=in_channels, out_channels=out_channels, kernel_size=1, bias=False) 83 | self.primal_domain = Gated_D_Conv(out_channels, kernel_size, dilation) 84 | self.dual_domain = Gated_D_Conv(out_channels, kernel_size, int(2**(5 - math.log2(dilation)))) 85 | self.out_conv = nn.Sequential( 86 | nn.PReLU(64*2), 87 | nn.InstanceNorm1d(out_channels*2, affine=True), 88 | nn.Conv1d(in_channels=out_channels*2, out_channels=in_channels, kernel_size=1, bias=False), 89 | ) 90 | self.dilation = dilation 91 | self.kernel_size = kernel_size 92 | def forward(self, inputs): 93 | """ 94 | inputs: B x C x T 95 | outputs: B x C x T 96 | """ 97 | outputs = self.conpress_conv(inputs) 98 | outputs = torch.cat([self.primal_domain(outputs), self.dual_domain(outputs)], 1) 99 | #outputs = self.primal_domain(outputs) #torch.cat([self.primal_domain(outputs), self.dual_domain(outputs)], 1) 100 | outputs = self.out_conv(outputs) 101 | return outputs + inputs 102 | 103 | class TcmBlocks(nn.Module): 104 | """docstring for TcmBlocks""" 105 | def __init__(self, in_channels=256, hidden_channels=64, dilation=[1, 2, 4, 8, 16, 32]): 106 | super(TcmBlocks, self).__init__() 107 | self.TCMBlocks = nn.ModuleList() 108 | for i in range(len(dilation)): 109 | #if i == 0: 110 | self.TCMBlocks.append(DMG_TCM(in_channels=in_channels, out_channels=hidden_channels, dilation=dilation[i])) 111 | #elif i != len(dilation)-1: 112 | # self.TCMBlocks.append(TCM(in_channels=hidden_channels, out_channels=hidden_channels, dilation=dilation[i])) 113 | #else: 114 | # self.TCMBlocks.append(TCM(in_channels=hidden_channels, out_channels=in_channels, dilation=dilation[i])) 115 | 116 | def forward(self, inputs): 117 | """ 118 | inputs: B x C x T 119 | outputs: B x C x T 120 | """ 121 | for i in range(len(self.TCMBlocks)): 122 | inputs = self.TCMBlocks[i](inputs) 123 | return inputs 124 | 125 | class SR_Net(nn.Module): 126 | """ 127 | 复数谱谱降噪网络 128 | """ 129 | def __init__(self, win_len=320, win_inc=160, fft_len=320, win_type='hanning'): 130 | super(SR_Net, self).__init__() 131 | self.encoder = nn.ModuleList() 132 | self.real_decoder = nn.ModuleList() 133 | self.imag_decoder = nn.ModuleList() 134 | self.tcmlayer_num = 3 135 | self.tcmlayer = nn.ModuleList() 136 | dilation = [1, 2, 4, 8, 16, 32] 137 | kernel_num = [6, 64, 64, 64, 64, 64] 138 | #self.stft = ConvSTFT(win_len, win_inc, fft_len, win_type, 'complex', fix=fix) 139 | #self.istft = ConviSTFT(win_len, win_inc, fft_len, win_type, 'complex', fix=fix) 140 | for i in range(len(kernel_num) - 1): 141 | self.encoder.append( 142 | nn.Sequential( 143 | RealConv2d( 144 | in_channels=kernel_num[i], 145 | out_channels=kernel_num[i+1], 146 | kernel_size=(5, 2) if i == 0 else (3, 2),#F, T 147 | stride=(2, 1), 148 | padding=(0, 1)), 149 | nn.InstanceNorm2d(kernel_num[i+1]), 150 | nn.PReLU(), 151 | ) 152 | ) 153 | for i in range(self.tcmlayer_num): 154 | self.tcmlayer.append(TcmBlocks(dilation=dilation)) 155 | for i in range(len(kernel_num)-1, 0, -1): 156 | self.real_decoder.append( 157 | nn.Sequential( 158 | nn.ConvTranspose2d( 159 | in_channels=kernel_num[i], 160 | out_channels=kernel_num[i-1] if i != 1 else 1, 161 | kernel_size=(3, 2) if i != 1 else (5, 2), 162 | stride=(2, 1), 163 | #padding=(0, 1), 164 | ), 165 | nn.InstanceNorm2d(kernel_num[i-1]) if i != 1 else nn.InstanceNorm2d(1), 166 | nn.PReLU() 167 | ) 168 | ) 169 | self.imag_decoder.append( 170 | nn.Sequential( 171 | nn.ConvTranspose2d( 172 | in_channels=kernel_num[i], 173 | out_channels=kernel_num[i-1] if i != 1 else 1, 174 | kernel_size=(3, 2) if i != 1 else (5, 2), 175 | stride=(2, 1), 176 | #padding=(0, 1), 177 | ), 178 | nn.InstanceNorm2d(kernel_num[i-1]) if i != 1 else nn.InstanceNorm2d(1), 179 | nn.PReLU() 180 | ) 181 | ) 182 | 183 | def multiframe_filtering(self, inputs, mask): 184 | """ 185 | inputs: B x I x F x T 186 | mask: B x I x F x T 187 | """ 188 | outputs = [] 189 | for i in range(self.I): 190 | outputs.append(F.pad(inputs, [i, 0, 0, 0])[:, :, :-i] if i != 0 else inputs) 191 | #print(len(outputs), outputs[0].shape) 192 | outputs = torch.stack(outputs, 1)##B xI x F x T 193 | #print(outputs.shape) 194 | #print(mask.shape) 195 | outputs = outputs * mask 196 | return torch.sum(outputs, 1) 197 | def forward(self, inputs, dereverb_out, denoise_out): 198 | """ 199 | inputs: B x F x T 200 | """ 201 | #cspecs = self.stft(inputs)##B x (2F) x T 202 | #real, imag = torch.chunk(cspecs, 2, 1) 203 | outs = torch.chunk(inputs, 2, 1) + torch.chunk(dereverb_out, 2, 1) + torch.chunk(denoise_out, 2, 1) 204 | outs = torch.stack(outs, 1) # B x C x F x T 205 | encoder_out = [] 206 | for i in range(len(self.encoder)): 207 | outs = self.encoder[i](outs) 208 | #print(f"encoder layer {i} : shape {outs.shape}") 209 | encoder_out.append(outs) 210 | 211 | B, C, D, T = outs.size() 212 | outs = outs.view(B, -1, T) 213 | for i in range(len(self.tcmlayer)): 214 | outs = self.tcmlayer[i](outs) 215 | 216 | outs = outs.view(B, C, D, T) 217 | #outs_real, outs_imag = torch.chunk(outs, 2, 1) 218 | #print(outs.shape) 219 | outs_real, outs_imag = outs, outs 220 | for i in range(len(self.real_decoder)): 221 | #real_encoder, imag_encoder = torch.chunk(encoder_out[-1-i], 2, 1) 222 | outs_real = self.real_decoder[i](outs_real + encoder_out[-1-i]) 223 | outs_real = outs_real[..., :-1] 224 | outs_imag = self.imag_decoder[i](outs_imag + encoder_out[-1-i]) 225 | outs_imag = outs_imag[..., :-1] 226 | #print(f"decoder layer {i} : shape {outs_imag.shape}") 227 | outs = dereverb_out + torch.cat([outs_real.squeeze(1), outs_imag.squeeze(1)], 1) 228 | return outs 229 | 230 | if __name__ == "__main__": 231 | Net = SR_Net() 232 | inputs = torch.randn([10, 161*2, 1000]) 233 | outs = Net(inputs, inputs, inputs) 234 | print(outs.shape) 235 | 236 | 237 | 238 | -------------------------------------------------------------------------------- /run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | input_dim=257 3 | output_dim=257 4 | left_context=0 5 | right_context=0 6 | lr=0.001 7 | 8 | win_len=320 9 | win_inc=160 10 | fft_len=320 11 | 12 | win_type=hanning 13 | batch_size=2 14 | max_epoch=100 15 | rnn_units=256 16 | rnn_layers=2 17 | 18 | 19 | tr_clean_list='./data/clean_cv.lst' 20 | tr_noise_list='./data/noise_cv.lst' 21 | 22 | cv_noise_list='./data/noise_cv.lst' 23 | cv_clean_list='./data/clean_cv.lst' 24 | 25 | tr_rir_list='./data/rir_cv.lst' 26 | cv_rir_list='./data/rir_cv.lst' 27 | 28 | tt_list='./data/blind_test_track1.lst' 29 | 30 | dropout=0.0 31 | kernel_size=6 32 | kernel_num=9 33 | nropout=0.2 34 | retrain=1 35 | sample_rate=16k 36 | num_gpu=1 37 | batch_size=$[num_gpu*batch_size] 38 | 39 | 40 | 41 | stage=SRNet 42 | exp_dir=exp/sddnet/${stage} 43 | 44 | if [ ! -d ${exp_dir} ] ; then 45 | mkdir -p ${exp_dir} 46 | fi 47 | 48 | train_stage=2 49 | 50 | if [ $train_stage -le 1 ] ; then 51 | #/home/work_nfs/common/tools/pyqueue_asr.pl \ 52 | #-q g.q --gpu 1 --num-threads ${num_gpu} \ 53 | #${exp_dir}/${save_name}.log \ 54 | CUDA_VISIBLE_DEVICES=0,1 nohup python -u ./steps/run_sddnet.py \ 55 | --decode=0 \ 56 | --stage=${stage} \ 57 | --fft-len=${fft_len} \ 58 | --input-dim=${input_dim} \ 59 | --output-dim=${output_dim} \ 60 | --window-len=${win_len} \ 61 | --window-inc=${win_inc} \ 62 | --exp-dir=${exp_dir} \ 63 | --tr-noise-list=${tr_noise_list} \ 64 | --tr-clean-list=${tr_clean_list} \ 65 | --tr-rir-list=${tr_rir_list} \ 66 | --cv-noise-list=${cv_noise_list} \ 67 | --cv-clean-list=${cv_clean_list} \ 68 | --cv-rir-list=${cv_rir_list} \ 69 | --tt-list=${tt_list} \ 70 | --retrain=${retrain} \ 71 | --rnn-layers=${rnn_layers} \ 72 | --rnn-units=${rnn_units} \ 73 | --learn-rate=${lr} \ 74 | --max-epoch=${max_epoch} \ 75 | --dropout=${dropout} \ 76 | --input-dim=${input_dim} \ 77 | --output-dim=${output_dim} \ 78 | --left-context=${left_context} \ 79 | --right-context=${right_context} \ 80 | --batch-size=${batch_size} \ 81 | --kernel-size=${kernel_size} \ 82 | --kernel-num=${kernel_num} \ 83 | --sample-rate=${sample_rate} \ 84 | --window-type=${win_type} > ${exp_dir}/${stage}.log & 85 | exit 0 86 | fi 87 | ###decode 88 | if [ $train_stage -le 2 ] ; then 89 | CUDA_VISIBLE_DEVICES='0' python -u ./steps/run_sddnet.py\ 90 | --decode=1 \ 91 | --stage=${stage} \ 92 | --fft-len=${fft_len} \ 93 | --input-dim=${input_dim} \ 94 | --output-dim=${output_dim} \ 95 | --window-len=${win_len} \ 96 | --window-inc=${win_inc} \ 97 | --exp-dir=${exp_dir} \ 98 | --tr-noise-list=${tr_noise_list} \ 99 | --tr-clean-list=${tr_clean_list} \ 100 | --tr-rir-list=${tr_rir_list} \ 101 | --cv-noise-list=${cv_noise_list} \ 102 | --cv-clean-list=${cv_clean_list} \ 103 | --cv-rir-list=${cv_rir_list} \ 104 | --tt-list=${tt_list} \ 105 | --retrain=${retrain} \ 106 | --rnn-layers=${rnn_layers} \ 107 | --rnn-units=${rnn_units} \ 108 | --learn-rate=${lr} \ 109 | --max-epoch=${max_epoch} \ 110 | --dropout=${dropout} \ 111 | --input-dim=${input_dim} \ 112 | --output-dim=${output_dim} \ 113 | --left-context=${left_context} \ 114 | --right-context=${right_context} \ 115 | --batch-size=${batch_size} \ 116 | --kernel-size=${kernel_size} \ 117 | --kernel-num=${kernel_num} \ 118 | --sample-rate=${sample_rate} \ 119 | exit 0 120 | fi 121 | -------------------------------------------------------------------------------- /steps/run_sddnet.py: -------------------------------------------------------------------------------- 1 | 2 | import torch 3 | import torch.nn as nn 4 | from tensorboardX import SummaryWriter 5 | import sys 6 | import os 7 | import argparse 8 | import torch.nn.parallel.data_parallel as data_parallel 9 | import numpy as np 10 | import scipy 11 | import scipy.io as sio 12 | import torch.optim as optim 13 | import time 14 | import multiprocessing 15 | sys.path.append(os.path.dirname(sys.path[0])) 16 | sys.path.append( 17 | os.path.dirname(sys.path[0]) + '/tools/speech_processing_toolbox') 18 | 19 | #from model.dc_crn import CRN as Model 20 | #from model.dc_crn_crnn import CRN as Model #crnn 21 | from model.sddnet import SDDNet as Model###ccat 22 | from tools.misc import get_learning_rate, save_checkpoint, reload_for_eval, reload_model 23 | from tools.time_dataset_dereverb import make_loader, Processer, DataReader 24 | 25 | import soundfile as sf 26 | import warnings 27 | warnings.filterwarnings("ignore") 28 | 29 | #os.environ['CUDA_VISIBLE_DEVICES'] = '1' 30 | 31 | def train(model, args, device, writer): 32 | print('preparing data...') 33 | dataloader, _ = make_loader( 34 | clean_scp=args.tr_clean, 35 | noise_scp=args.tr_noise, 36 | rir_scp=args.tr_rir, 37 | segement_length=args.segement_length, 38 | repeat=2, 39 | sample_rate=args.sample_rate, 40 | batch_size=args.batch_size, 41 | num_workers=args.num_threads, 42 | processer=Processer() 43 | ) 44 | print_freq = 200 45 | num_batch = len(dataloader) 46 | params = model.get_params(args.weight_decay) 47 | optimizer = optim.Adam(params, lr=args.learn_rate) 48 | scheduler = optim.lr_scheduler.ReduceLROnPlateau( 49 | optimizer, 'min', factor=0.5, patience=1, verbose=True) 50 | 51 | if args.retrain: 52 | start_epoch, step = reload_model(model, optimizer, args.exp_dir, 53 | args.use_cuda) 54 | else: 55 | start_epoch, step = 0, 0 56 | print('---------PRERUN-----------') 57 | lr = get_learning_rate(optimizer) 58 | print('(Initialization)') 59 | val_loss, val_sisnr = 50,50 #validation(model, args, lr, -1, device) 60 | writer.add_scalar('Loss/Train', val_loss, step) 61 | writer.add_scalar('Loss/Cross-Validation', val_loss, step) 62 | 63 | writer.add_scalar('SISNR/Train', -val_sisnr, step) 64 | writer.add_scalar('SISNR/Cross-Validation', -val_sisnr, step) 65 | 66 | for epoch in range(start_epoch, args.max_epoch): 67 | torch.manual_seed(args.seed + epoch) 68 | if args.use_cuda: 69 | torch.cuda.manual_seed(args.seed + epoch) 70 | model.train() 71 | loss_total = 0.0 72 | loss_print = 0.0 73 | 74 | sisnr_total = 0.0 75 | sisnr_print = 0.0 76 | 77 | freloss_total = 0.0 78 | freloss_print = 0.0 79 | 80 | stime = time.time() 81 | lr = get_learning_rate(optimizer) 82 | for idx, data in enumerate(dataloader): 83 | torch.cuda.empty_cache() 84 | inputs, labels_full, labels_direct, labels_late = data 85 | inputs = inputs.to(device) 86 | labels_full = labels_full.to(device) 87 | labels_direct = labels_direct.to(device) 88 | labels_late = labels_late.to(device) 89 | 90 | model.zero_grad() 91 | [est_spec,gth_spec], est_wav = data_parallel(model, (inputs,labels_direct)) 92 | #loss = model.loss(est_wav, labels, 'SiSNR') 93 | #loss.backward() 94 | spec_loss = model.loss(est_spec, gth_spec, loss_mode='MSE') 95 | rgkl_loss = model.loss(est_spec, gth_spec, loss_mode='rGKL') 96 | sisnr = model.loss(est_wav, labels_direct, loss_mode='SI-SNR') 97 | #mae_loss = model.loss(est_spec, gth_spec, loss_mode='MAE') 98 | loss = sisnr + spec_loss + rgkl_loss 99 | 100 | 101 | with torch.autograd.set_detect_anomaly(True): 102 | loss.backward() 103 | #print(loss) 104 | nn.utils.clip_grad_norm_(model.parameters(), args.clip_grad_norm) 105 | optimizer.step() 106 | 107 | step += 1 108 | 109 | loss_total += loss.data.cpu() 110 | loss_print += loss.data.cpu() 111 | 112 | sisnr_total += sisnr.data.cpu() 113 | sisnr_print += sisnr.data.cpu() 114 | 115 | freloss_total += spec_loss.data.cpu() 116 | freloss_print += spec_loss.data.cpu() 117 | 118 | if (idx+1) % 3000 == 0: 119 | save_checkpoint(model, optimizer, -1, step, args.exp_dir) 120 | if (idx + 1) % print_freq == 0: 121 | eplashed = time.time() - stime 122 | speed_avg = eplashed / (idx+1) 123 | loss_print_avg = loss_print / print_freq 124 | sisnr_print_avg = sisnr_print / print_freq 125 | freloss_print_avg = freloss_print / print_freq 126 | print('Epoch {:3d}/{:3d} | batches {:5d}/{:5d} | lr {:1.4e} |' 127 | '{:2.3f}s/batches | loss {:2.6f} | freloss {:2.6f} |' 128 | 'SI-SNR {:2.4f} '.format( 129 | epoch, args.max_epoch, idx + 1, num_batch, lr, 130 | speed_avg, 131 | loss_print_avg, 132 | freloss_print_avg, 133 | -sisnr_print_avg, 134 | 135 | )) 136 | sys.stdout.flush() 137 | writer.add_scalar('Loss/Train', loss_print_avg, step) 138 | writer.add_scalar('SISNR/Train', -sisnr_print_avg, step) 139 | loss_print = 0.0 140 | sisnr_print=0.0 141 | freloss_print = 0.0 142 | eplashed = time.time() - stime 143 | loss_total_avg = loss_total / num_batch 144 | sisnr_total_avg = sisnr_total / num_batch 145 | freloss_total_avg = freloss_total / num_batch 146 | print( 147 | 'Training AVG.LOSS |' 148 | ' Epoch {:3d}/{:3d} | lr {:1.4e} |' 149 | ' {:2.3f}s/batch | time {:3.2f}mins |' 150 | ' loss {:2.6f} |' 151 | ' freloss {:2.6f} |' 152 | ' SISNR {:2.4f}|' 153 | .format( 154 | epoch + 1, 155 | args.max_epoch, 156 | lr, 157 | eplashed/num_batch, 158 | eplashed/60.0, 159 | loss_total_avg.item(), 160 | freloss_total_avg.item(), 161 | -sisnr_total_avg.item() 162 | )) 163 | val_loss, val_sisnr= validation(model, args, lr, epoch, device) 164 | writer.add_scalar('Loss/Cross-Validation', val_loss, step) 165 | writer.add_scalar('SISNR/Cross-Validation', -val_sisnr, step) 166 | writer.add_scalar('learn_rate', lr, step) 167 | if val_loss > scheduler.best: 168 | print('Rejected !!! The best is {:2.6f}'.format(scheduler.best)) 169 | else: 170 | save_checkpoint(model, optimizer, epoch + 1, step, args.exp_dir) 171 | scheduler.step(val_loss) 172 | sys.stdout.flush() 173 | stime = time.time() 174 | 175 | 176 | def validation(model, args, lr, epoch, device): 177 | dataloader, _ = make_loader( 178 | clean_scp=args.cv_clean, 179 | noise_scp=args.cv_noise, 180 | rir_scp=args.cv_rir, 181 | segement_length=args.segement_length, 182 | repeat=2, 183 | sample_rate=args.sample_rate, 184 | batch_size=args.batch_size, 185 | num_workers=args.num_threads, 186 | processer=Processer() 187 | ) 188 | model.eval() 189 | loss_total = 0.0 190 | sisnr_total = 0.0 191 | freloss_total = 0.0 192 | num_batch = len(dataloader) 193 | stime = time.time() 194 | with torch.no_grad(): 195 | for idx, data in enumerate(dataloader): 196 | inputs, labels_full, labels_direct, labels_late = data 197 | inputs = inputs.to(device) 198 | labels_full = labels_full.to(device) 199 | labels_direct = labels_direct.to(device) 200 | labels_late = labels_late.to(device) 201 | 202 | [est_spec,gth_spec], est_wav = data_parallel(model, (inputs,labels_direct)) 203 | #gth_spec = data_parallel(model.stft, (labels)) 204 | spec_loss = model.loss(est_spec, gth_spec, loss_mode='MSE') 205 | sisnr = model.loss(est_wav, labels_direct, loss_mode='SI-SNR') 206 | rgkl_loss = model.loss(est_spec, gth_spec, loss_mode='rGKL') 207 | loss = sisnr + spec_loss + rgkl_loss 208 | #print(loss) 209 | loss_total += loss.data.cpu() 210 | freloss_total += spec_loss.data.cpu() 211 | sisnr_total += sisnr.data.cpu() 212 | #loss_total=sisnr_total 213 | 214 | etime = time.time() 215 | eplashed = (etime - stime) / num_batch 216 | loss_total_avg = loss_total / num_batch 217 | sisnr_total_avg = sisnr_total / num_batch 218 | freloss_total_avg = freloss_total / num_batch 219 | 220 | print('CROSSVAL AVG.LOSS | Epoch {:3d}/{:3d} ' 221 | '| lr {:.4e} | {:2.3f}s/batch| time {:2.1f}mins ' 222 | '| loss {:2.6f} |' 223 | '| freloss {:2.6f} |' 224 | '| SISNR {:2.4f} '.format( 225 | epoch + 1, 226 | args.max_epoch, 227 | lr, 228 | eplashed, 229 | (etime - stime)/60.0, 230 | loss_total_avg, 231 | freloss_total_avg, 232 | -sisnr_total_avg, 233 | )) 234 | sys.stdout.flush() 235 | return loss_total_avg, sisnr_total_avg 236 | 237 | 238 | def decode(model, args, snr, device): 239 | model.eval() 240 | with torch.no_grad(): 241 | 242 | data_reader = DataReader( 243 | args.tt_list, 244 | win_len=args.win_len, 245 | win_inc=args.win_inc, 246 | left_context=args.left_context, 247 | right_context=args.right_context, 248 | fft_len=args.fft_len, 249 | window_type=args.win_type, 250 | target_mode=args.target_mode, 251 | sample_rate=args.sample_rate) 252 | PATH = os.path.join(args.exp_dir, 'DNS-challenge-2021/') 253 | if not os.path.isdir(PATH): 254 | os.mkdir(PATH) 255 | 256 | filename = args.tt_list.split('/')[-1] 257 | filename = filename.split('.')[0] 258 | ''' 259 | if snr is not None: 260 | filename = 'out_noisy_' + str(snr)### 261 | ''' 262 | if not os.path.isdir(os.path.join(PATH, filename)): 263 | os.mkdir(os.path.join(PATH, filename)) 264 | 265 | num_samples = len(data_reader) 266 | print('Decoding...') 267 | for idx in range(num_samples): 268 | inputs, utt_id, nsamples = data_reader[idx] 269 | inputs = torch.from_numpy(inputs) 270 | inputs = inputs.to(device) 271 | inputs = inputs.type(torch.FloatTensor) 272 | inputs = inputs.to(device) 273 | outputs = model(inputs, ) 274 | outputs = outputs / torch.max(torch.abs(outputs)) * torch.max(torch.abs(inputs)) 275 | if outputs.dim() != 1: 276 | outputs = torch.squeeze(outputs).cpu().data.numpy() 277 | else: 278 | outputs = outputs.cpu().data.numpy() 279 | outputs = outputs[:nsamples] 280 | 281 | sf.write(os.path.join(PATH, filename + '/' + utt_id), outputs, args.sample_rate) 282 | #sf.write('fuck.wav', outputs, args.sample_rate) 283 | del outputs, inputs 284 | print('Decode Done!!!') 285 | 286 | 287 | def main(args): 288 | device = torch.device('cuda' if args.use_cuda else 'cpu') 289 | args.sample_rate = { 290 | '8k':8000, 291 | '16k':16000, 292 | '24k':24000, 293 | '48k':48000, 294 | }[args.sample_rate] 295 | model = Model(win_len=args.win_len, 296 | win_inc=args.win_inc, 297 | fft_len=args.fft_len, 298 | stage=args.stage) 299 | if not args.log_dir: 300 | writer = SummaryWriter(os.path.join(args.exp_dir, 'tensorboard')) 301 | else: 302 | writer = SummaryWriter(args.log_dir) 303 | model.to(device) 304 | #path = '/home/work_nfs3/lvshubo/workspace/Project/senior_project/DNS-challenge/se-dccrn/exp/MSA_DCCRN_Time-SiSNR_DNS_RealSpec_0.001_2_256_16k_400_100/'#FLAGS.exp_dir - "_retrain" 305 | #print(path) 306 | #path = '/home/work_nfs/lvshubo/workspace/Project/DNS-Challenge_2021/dccrn_dns/exp/MSA_DCCRN_ComplexCat_Time-SiSNR_DNS_RealSpec_0.001_2_256_16k_320_160/ori/' 307 | #path = '/home/work_nfs/lvshubo/workspace/Project/DNS-Challenge_2021/dccrn_experiment/exp/MSA_DCCRN_ComplexCat_Time-SiSNR_DNS_RealSpec_0.001_2_256_16k_320_160_multiband_mmdensenet_biquad/ori/' 308 | #path = '/home/work_nfs/lvshubo/workspace/Project/DNS-Challenge_2021/dccrn_experiment/exp/MSA_DCCRN_ComplexCat_Time-SiSNR_DNS_RealSpec_0.001_2_256_16k_320_160_multiband_dplstm/ori/' 309 | #path = '/home/work_nfs/lvshubo/workspace/Project/DNS-Challenge_2021/dccrn_experiment/exp/MSA_DCCRN_ComplexCat_Time-SiSNR_DNS_RealSpec_0.001_2_256_16k_320_160_multiband_complex_dplstm/ori/' 310 | #path = '/home/work_nfs/lvshubo/workspace/Project/DNS-Challenge_2021/dccrn_experiment/exp/MSA_DCCRN_ComplexCat_Time-SiSNR_DNS_RealSpec_0.001_2_256_16k_320_160_multiband_complex_dplstm_skipcnn/ori/' 311 | #path = '/home/work_nfs/lvshubo/workspace/Project/DNS-Challenge_2021/dccrn_experiment/exp/MSA_DCCRN_ComplexCat_Time-SiSNR_DNS_RealSpec_0.001_2_256_16k_320_160_multiband_complex_dplstm_skipcnn_cprelu/sec/' 312 | #path = '/home/work_nfs/lvshubo/workspace/Project/DNS-Challenge_2022/acas_method/exp/SDDNet_320_160_320/DNNet/ori/'#'/home/work_nfs/lvshubo/workspace/Project/DNS-Challenge_2022/acas_method/exp/SDDNet_320_160_320/DNNet/ori/' 313 | #path = '/home/work_nfs/lvshubo/workspace/Project/DNS-Challenge_2022/acas_method/exp/SDDNet_320_160_320/SRNet/ori/' 314 | #reload_for_eval(model, '/home/work_nfs/lvshubo/workspace/Project/DNS-Challenge_2022/acas_method_new/exp/SDDNet_320_160_320/SRNet_new/ori/', FLAGS.use_cuda, True)###导入之前的模型 315 | if not args.decode: 316 | train(model, FLAGS, device, writer) 317 | reload_for_eval(model, FLAGS.exp_dir, FLAGS.use_cuda, True) 318 | ''' 319 | path = '/home/work_nfs3/lvshubo/dasan/lstm/sruc_16k_auto_noise/test_data/lst/'#'/home/work_nfs3/lvshubo/workspace/Project/senior_project/DNS-challenge/se-dccrn/test_data/' 320 | for snr in [-5, 0, 5, 10, 15, 20]: 321 | args.tt_list = path + 'test_' + str(snr) + '.lst' 322 | #file = 'out_noisy_' + str(snr 323 | decode(model, args, snr, device) 324 | ''' 325 | decode(model, args, None, device) 326 | 327 | #args.tt_list = '/home/work_nfs3/lvshubo/dasan/lstm/sruc_16k_auto_noise/data/hw_project_test.lst' 328 | #decode(model, args, None, device) 329 | 330 | 331 | if __name__ == "__main__": 332 | parser = argparse.ArgumentParser('PyTorch Version ENhancement') 333 | parser.add_argument('--decode', type=int, default=0, help='if decode') 334 | parser.add_argument( 335 | '--exp-dir', 336 | dest='exp_dir', 337 | type=str, 338 | default='', 339 | help='the exp dir') 340 | parser.add_argument( 341 | '--stage', 342 | dest='stage', 343 | type=str, 344 | default='DNNet', 345 | help='the exp dir') 346 | parser.add_argument( 347 | '--segement-length', 348 | dest='segement_length', 349 | type=int, 350 | default=8, 351 | help='the segement length') 352 | parser.add_argument( 353 | '--tr-clean', 354 | dest='tr_clean', 355 | type=str, 356 | default='/home/work_nfs/lvshubo/workspace/Project/DNS-Challenge_2021/dccrn_experiment/data_2020/clean_tr.lst', 357 | help='the train clean data list') 358 | parser.add_argument( 359 | '--tr-noise', 360 | dest='tr_noise', 361 | type=str, 362 | default='/home/work_nfs/lvshubo/workspace/Project/DNS-Challenge_2021/dccrn_experiment/data_2020/noise_tr.lst', 363 | help='the train noise data list') 364 | parser.add_argument( 365 | '--cv-clean', 366 | dest='cv_clean', 367 | type=str, 368 | default='/home/work_nfs/lvshubo/workspace/Project/DNS-Challenge_2021/dccrn_experiment/data_2020/clean_cv.lst', 369 | help='the validation clean data list') 370 | parser.add_argument( 371 | '--cv-noise', 372 | dest='cv_noise', 373 | type=str, 374 | default='/home/work_nfs/lvshubo/workspace/Project/DNS-Challenge_2021/dccrn_experiment/data_2020/noise_cv.lst', 375 | help='the validation noise data list') 376 | parser.add_argument( 377 | '--tr-rir', 378 | dest='tr_rir', 379 | type=str, 380 | default='/home/work_nfs/lvshubo/workspace/Project/DNS-Challenge_2021/dccrn_experiment/data_2020/rir_tr.lst', 381 | help='the train rir data list') 382 | parser.add_argument( 383 | '--cv-rir', 384 | dest='cv_rir', 385 | type=str, 386 | default='/home/work_nfs/lvshubo/workspace/Project/DNS-Challenge_2021/dccrn_experiment/data_2020/rir_cv.lst', 387 | help='the validation rir data list') 388 | parser.add_argument( 389 | '--tt-list', dest='tt_list', type=str,default='/home/work_nfs3/lvshubo/workspace/Project/senior_project/DNS-challenge/se-dccrn/exp/MSA_DCCRN_ComplexCat_Time-SiSNR_DNS_RealSpec_0.001_2_256_16k_400_100/aishell/wav.lst', help='the test data list') 390 | parser.add_argument( 391 | '--rnn-layers', 392 | dest='rnn_layers', 393 | type=int, 394 | default=2, 395 | help='the num hidden rnn layers') 396 | parser.add_argument( 397 | '--rnn-units', 398 | dest='rnn_units', 399 | type=int, 400 | default=256, 401 | help='the num hidden rnn units') 402 | parser.add_argument( 403 | '--learn-rate', 404 | dest='learn_rate', 405 | type=float, 406 | default=0.000035, 407 | help='the learning rate in training') 408 | parser.add_argument( 409 | '--max-epoch', 410 | dest='max_epoch', 411 | type=int, 412 | default=45, 413 | help='the max epochs') 414 | 415 | parser.add_argument( 416 | '--dropout', 417 | dest='dropout', 418 | type=float, 419 | default=0.2, 420 | help='the probility of dropout') 421 | parser.add_argument( 422 | '--left-context', 423 | dest='left_context', 424 | type=int, 425 | default=0, 426 | help='the left context to add') 427 | parser.add_argument( 428 | '--right-context', 429 | dest='right_context', 430 | type=int, 431 | default=0, 432 | help='the right context to add') 433 | parser.add_argument( 434 | '--input-dim', 435 | dest='input_dim', 436 | type=int, 437 | default=257, 438 | help='the input dim') 439 | parser.add_argument( 440 | '--output-dim', 441 | dest='output_dim', 442 | type=int, 443 | default=257, 444 | help='the output dim') 445 | parser.add_argument( 446 | '--batch-size', 447 | dest='batch_size', 448 | type=int, 449 | default=36, 450 | help='the batch size in train') 451 | parser.add_argument( 452 | '--use-cuda', dest='use_cuda', default=1, type=int, help='use cuda') 453 | parser.add_argument( 454 | '--seed', dest='seed', type=int, default=20, help='the random seed') 455 | parser.add_argument( 456 | '--log-dir', 457 | dest='log_dir', 458 | type=str, 459 | default='/home/work_nfs/lvshubo/workspace/Project/DNS-Challenge_2022/acas_method_new/exp/SDDNet_320_160_320/SRNet_new/log/', 460 | help='the random seed') 461 | parser.add_argument( 462 | '--num-threads', dest='num_threads', type=int, default=10) 463 | parser.add_argument( 464 | '--window-len', 465 | dest='win_len', 466 | type=int, 467 | default=320, 468 | help='the window-len in enframe') 469 | parser.add_argument( 470 | '--window-inc', 471 | dest='win_inc', 472 | type=int, 473 | default=160, 474 | help='the window include in enframe') 475 | parser.add_argument( 476 | '--fft-len', 477 | dest='fft_len', 478 | type=int, 479 | default=320, 480 | help='the fft length when in extract feature') 481 | parser.add_argument( 482 | '--window-type', 483 | dest='win_type', 484 | type=str, 485 | default='hanning', 486 | help='the window type in enframe, include hamming and None') 487 | parser.add_argument( 488 | '--kernel-size', 489 | dest='kernel_size', 490 | type=int, 491 | default=6, 492 | help='the kernel_size') 493 | parser.add_argument( 494 | '--kernel-num', 495 | dest='kernel_num', 496 | type=int, 497 | default=9, 498 | help='the kernel_num') 499 | parser.add_argument( 500 | '--num-gpu', 501 | dest='num_gpu', 502 | type=int, 503 | default=1, 504 | help='the num gpus to use') 505 | parser.add_argument( 506 | '--target-mode', 507 | dest='target_mode', 508 | type=str, 509 | default='RealSpec', 510 | help='the type of target, MSA, PSA, PSM, IBM, IRM...') 511 | 512 | parser.add_argument( 513 | '--weight-decay', dest='weight_decay', type=float, default=0.00001) 514 | parser.add_argument( 515 | '--clip-grad-norm', dest='clip_grad_norm', type=float, default=5.) 516 | parser.add_argument( 517 | '--sample-rate', dest='sample_rate', type=str, default='16k') 518 | parser.add_argument('--retrain', dest='retrain', type=int, default=0) 519 | FLAGS, _ = parser.parse_known_args() 520 | FLAGS.use_cuda = FLAGS.use_cuda and torch.cuda.is_available() 521 | os.makedirs(FLAGS.exp_dir, exist_ok=True) 522 | np.random.seed(FLAGS.seed) 523 | torch.manual_seed(FLAGS.seed) 524 | 525 | torch.backends.cudnn.benchmark = True 526 | torch.backends.cudnn.deterministic = True 527 | if FLAGS.use_cuda: 528 | torch.cuda.manual_seed(FLAGS.seed) 529 | import pprint 530 | pp = pprint.PrettyPrinter() 531 | pp.pprint(FLAGS.__dict__) 532 | print(FLAGS.win_type) 533 | main(FLAGS) 534 | -------------------------------------------------------------------------------- /tools/misc.py: -------------------------------------------------------------------------------- 1 | 2 | #!/usr/bin/env python -u 3 | # -*- coding: utf-8 -*- 4 | 5 | # Copyright 2018 Northwestern Polytechnical University (author: Ke Wang) 6 | # modified Yanxin Hu 7 | from __future__ import absolute_import 8 | from __future__ import division 9 | from __future__ import print_function 10 | import torch 11 | import torch.nn as nn 12 | import numpy as np 13 | import os 14 | import sys 15 | 16 | def read_and_config_file(wave_list, decode=0): 17 | processed_list = [] 18 | 19 | with open(wave_list) as fid: 20 | if decode: 21 | for line in fid: 22 | tmp = line.strip().split(' ') 23 | #print(len(tmp)) 24 | if len(tmp)!= 1: 25 | sample = {'inputs': tmp[0] + ' ' + tmp[1]} 26 | else: 27 | sample = {'inputs': tmp[0]} 28 | processed_list.append(sample) 29 | 30 | else: 31 | for line in fid: 32 | tmp = line.strip().split(' ') 33 | # 34 | #print(tmp[0]) 35 | # print(tmp[1]) 36 | # print(tmp[2]) 37 | if len(tmp) == 2: 38 | sample = {'inputs': tmp[0], 'duration':float(tmp[1])} 39 | elif len(tmp) == 1: 40 | sample = {'inputs': tmp[0]} 41 | else: 42 | tmp = line.strip().split('.wav') 43 | #print(tmp) 44 | tmp[0] += '.wav' 45 | #print(tmp[0]) 46 | #print(len(tmp)) 47 | sample = {'inputs': tmp[0], 'duration':float(tmp[1].split(' ')[-1])} 48 | processed_list.append(sample) 49 | return processed_list 50 | 51 | def load_checkpoint(checkpoint_path, use_cuda): 52 | if use_cuda: 53 | try: 54 | checkpoint = torch.load(checkpoint_path) 55 | except RuntimeError: 56 | checkpoint = torch.jit.load(checkpoint_path) 57 | else: 58 | checkpoint = torch.load( 59 | checkpoint_path, map_location=lambda storage, loc: storage) 60 | return checkpoint 61 | 62 | def get_learning_rate(optimizer): 63 | """Get learning rate""" 64 | return optimizer.param_groups[0]["lr"] 65 | 66 | 67 | def reload_for_eval(model, checkpoint_dir, use_cuda,load_strict): 68 | ckpt_name = os.path.join(checkpoint_dir, 'checkpoint') 69 | if os.path.isfile(ckpt_name): 70 | with open(ckpt_name, 'r') as f: 71 | model_name = f.readline().strip() 72 | checkpoint_path = os.path.join(checkpoint_dir, model_name) 73 | checkpoint = load_checkpoint(checkpoint_path, use_cuda) 74 | print(checkpoint['model'].keys()) 75 | model.load_state_dict(checkpoint['model'], strict=load_strict) 76 | print('=> Reload well-trained model {} for decoding.'.format( 77 | model_name)) 78 | 79 | def reload_model(model, optimizer, checkpoint_dir, use_cuda=True, strict=True): 80 | ckpt_name = os.path.join(checkpoint_dir, 'checkpoint') 81 | if os.path.isfile(ckpt_name): 82 | with open(ckpt_name, 'r') as f: 83 | model_name = f.readline().strip() 84 | checkpoint_path = os.path.join(checkpoint_dir, model_name) 85 | checkpoint = load_checkpoint(checkpoint_path, use_cuda) 86 | model.load_state_dict(checkpoint['model'], strict=strict) 87 | optimizer.load_state_dict(checkpoint['optimizer']) 88 | epoch = checkpoint['epoch'] 89 | step = checkpoint['step'] 90 | print('=> Reload previous model and optimizer.') 91 | else: 92 | print('[!] checkpoint directory is empty. Train a new model ...') 93 | epoch = 0 94 | step = 0 95 | return epoch, step 96 | 97 | def save_checkpoint(model, optimizer, epoch, step, checkpoint_dir): 98 | checkpoint_path = os.path.join( 99 | checkpoint_dir, 'model.ckpt-{}.pt'.format(epoch)) 100 | torch.save({'model': model.state_dict(), 101 | 'optimizer': optimizer.state_dict(), 102 | 'epoch': epoch, 103 | 'step': step}, checkpoint_path) 104 | with open(os.path.join(checkpoint_dir, 'checkpoint'), 'w') as f: 105 | f.write('model.ckpt-{}.pt'.format(epoch)) 106 | print("=> Save checkpoint:", checkpoint_path) 107 | 108 | def setup_lr(opt, lr): 109 | for param_group in opt.param_groups: 110 | param_group['lr'] = lr 111 | -------------------------------------------------------------------------------- /tools/sigproc/beamforming.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | from numpy.linalg import solve 3 | from scipy.linalg import eig 4 | from scipy.linalg import eigh 5 | 6 | 7 | def get_power_spectral_density_matrix(observation, mask=None, normalize=True): 8 | """ 9 | Calculates the weighted power spectral density matrix. 10 | 11 | This does not yet work with more than one target mask. 12 | 13 | :param observation: Complex observations with shape (bins, sensors, frames) 14 | :param mask: Masks with shape (bins, frames) or (bins, 1, frames) 15 | :return: PSD matrix with shape (bins, sensors, sensors) 16 | """ 17 | bins, sensors, frames = observation.shape 18 | 19 | if mask is None: 20 | mask = np.ones((bins, frames)) 21 | if mask.ndim == 2: 22 | mask = mask[:, np.newaxis, :] 23 | 24 | psd = np.einsum('...dt,...et->...de', mask * observation, 25 | observation.conj()) 26 | if normalize: 27 | normalization = np.sum(mask, axis=-1, keepdims=True) 28 | psd /= normalization 29 | return psd 30 | 31 | 32 | def condition_covariance(x, gamma): 33 | """see https://stt.msu.edu/users/mauryaas/Ashwini_JPEN.pdf (2.3)""" 34 | scale = gamma * np.trace(x) / x.shape[-1] 35 | scaled_eye = np.eye(x.shape[-1]) * scale 36 | return (x + scaled_eye) / (1 + gamma) 37 | 38 | 39 | def get_pca_vector(target_psd_matrix): 40 | """ 41 | Returns the beamforming vector of a PCA beamformer. 42 | :param target_psd_matrix: Target PSD matrix 43 | with shape (..., sensors, sensors) 44 | :return: Set of beamforming vectors with shape (..., sensors) 45 | """ 46 | # Save the shape of target_psd_matrix 47 | shape = target_psd_matrix.shape 48 | 49 | # Reduce independent dims to 1 independent dim 50 | target_psd_matrix = np.reshape(target_psd_matrix, (-1,) + shape[-2:]) 51 | 52 | # Calculate eigenvals/vecs 53 | eigenvals, eigenvecs = np.linalg.eigh(target_psd_matrix) 54 | # Find max eigenvals 55 | vals = np.argmax(eigenvals, axis=-1) 56 | # Select eigenvec for max eigenval 57 | beamforming_vector = np.array( 58 | [eigenvecs[i, :, vals[i]] for i in range(eigenvals.shape[0])]) 59 | # Reconstruct original shape 60 | beamforming_vector = np.reshape(beamforming_vector, shape[:-1]) 61 | 62 | return beamforming_vector 63 | 64 | 65 | def get_mvdr_vector(atf_vector, noise_psd_matrix): 66 | """ 67 | Returns the MVDR beamforming vector. 68 | 69 | :param atf_vector: Acoustic transfer function vector 70 | with shape (..., bins, sensors) 71 | :param noise_psd_matrix: Noise PSD matrix 72 | with shape (bins, sensors, sensors) 73 | :return: Set of beamforming vectors with shape (..., bins, sensors) 74 | """ 75 | 76 | while atf_vector.ndim > noise_psd_matrix.ndim - 1: 77 | noise_psd_matrix = np.expand_dims(noise_psd_matrix, axis=0) 78 | 79 | # Make sure matrix is hermitian 80 | noise_psd_matrix = 0.5 * ( 81 | noise_psd_matrix + np.conj(noise_psd_matrix.swapaxes(-1, -2))) 82 | 83 | numerator = solve(noise_psd_matrix, atf_vector) 84 | denominator = np.einsum('...d,...d->...', atf_vector.conj(), numerator) 85 | beamforming_vector = numerator / np.expand_dims(denominator, axis=-1) 86 | 87 | return beamforming_vector 88 | 89 | def get_gev_vector(target_psd_matrix, noise_psd_matrix): 90 | """ 91 | Returns the GEV beamforming vector. 92 | :param target_psd_matrix: Target PSD matrix 93 | with shape (bins, sensors, sensors) 94 | :param noise_psd_matrix: Noise PSD matrix 95 | with shape (bins, sensors, sensors) 96 | :return: Set of beamforming vectors with shape (bins, sensors) 97 | """ 98 | bins, sensors, _ = target_psd_matrix.shape 99 | beamforming_vector = np.empty((bins, sensors), dtype=np.complex) 100 | for f in range(bins): 101 | try: 102 | eigenvals, eigenvecs = eigh(target_psd_matrix[f, :, :], 103 | noise_psd_matrix[f, :, :]) 104 | beamforming_vector[f, :] = eigenvecs[:, -1] 105 | except np.linalg.LinAlgError: 106 | print('LinAlg error for frequency {}'.format(f)) 107 | beamforming_vector[f, :] = ( 108 | np.ones((sensors,)) / np.trace(noise_psd_matrix[f]) * sensors 109 | ) 110 | return beamforming_vector 111 | 112 | def blind_analytic_normalization_legacy(vector, noise_psd_matrix): 113 | bins, sensors = vector.shape 114 | normalization = np.zeros(bins) 115 | for f in range(bins): 116 | normalization[f] = np.abs(np.sqrt(np.dot( 117 | np.dot(np.dot(vector[f, :].T.conj(), noise_psd_matrix[f]), 118 | noise_psd_matrix[f]), vector[f, :]))) 119 | normalization[f] /= np.abs(np.dot( 120 | np.dot(vector[f, :].T.conj(), noise_psd_matrix[f]), 121 | vector[f, :])) 122 | 123 | return vector * normalization[:, np.newaxis] 124 | 125 | def blind_analytic_normalization(vector, noise_psd_matrix, eps=0): 126 | """Reduces distortions in beamformed ouptput. 127 | 128 | :param vector: Beamforming vector 129 | with shape (..., sensors) 130 | :param noise_psd_matrix: 131 | with shape (..., sensors, sensors) 132 | :return: Scaled Deamforming vector 133 | with shape (..., sensors) 134 | 135 | >>> vector = np.random.normal(size=(5, 6)).view(np.complex128) 136 | >>> vector.shape 137 | (5, 3) 138 | >>> noise_psd_matrix = np.random.normal(size=(5, 3, 6)).view(np.complex128) 139 | >>> noise_psd_matrix = noise_psd_matrix + noise_psd_matrix.swapaxes(-2, -1) 140 | >>> noise_psd_matrix.shape 141 | (5, 3, 3) 142 | >>> w1 = blind_analytic_normalization_legacy(vector, noise_psd_matrix) 143 | >>> w2 = blind_analytic_normalization(vector, noise_psd_matrix) 144 | >>> np.testing.assert_allclose(w1, w2) 145 | 146 | """ 147 | nominator = np.einsum( 148 | '...a,...ab,...bc,...c->...', 149 | vector.conj(), noise_psd_matrix, noise_psd_matrix, vector 150 | ) 151 | nominator = np.abs(np.sqrt(nominator)) 152 | 153 | denominator = np.einsum( 154 | '...a,...ab,...b->...', vector.conj(), noise_psd_matrix, vector 155 | ) 156 | denominator = np.abs(denominator) 157 | 158 | normalization = nominator / (denominator + eps) 159 | return vector * normalization[..., np.newaxis] 160 | 161 | def apply_beamforming_vector(vector, mix): 162 | return np.einsum('...a,...at->...t', vector.conj(), mix) 163 | 164 | def phase_correction(vector): 165 | """Phase correction to reduce distortions due to phase inconsistencies. 166 | Args: 167 | vector: Beamforming vector with shape (..., bins, sensors). 168 | Returns: Phase corrected beamforming vectors. Lengths remain. 169 | """ 170 | w = vector.copy() 171 | F, D = w.shape 172 | for f in range(1, F): 173 | w[f, :] *= np.exp(-1j*np.angle( 174 | np.sum(w[f, :] * w[f-1, :].conj(), axis=-1, keepdims=True))) 175 | return w 176 | 177 | def gev_wrapper_on_masks(mix, noise_mask=None, target_mask=None,normalization=False): 178 | if noise_mask is None and target_mask is None: 179 | raise ValueError('At least one mask needs to be present.') 180 | 181 | org_dtype = mix.dtype 182 | mix = mix.astype(np.complex128) 183 | mix = mix.T 184 | if noise_mask is not None: 185 | noise_mask = noise_mask.T 186 | if target_mask is not None: 187 | target_mask = target_mask.T 188 | 189 | target_psd_matrix = get_power_spectral_density_matrix( 190 | mix, target_mask, normalize=False) 191 | noise_psd_matrix = get_power_spectral_density_matrix( 192 | mix, noise_mask, normalize=True) 193 | noise_psd_matrix = condition_covariance(noise_psd_matrix, 1e-6) 194 | noise_psd_matrix /= np.trace( 195 | noise_psd_matrix, axis1=-2, axis2=-1)[..., None, None] 196 | W_gev = get_gev_vector(target_psd_matrix, noise_psd_matrix) 197 | W_gev = phase_correction(W_gev) 198 | 199 | if normalization: 200 | W_gev = blind_analytic_normalization(W_gev, noise_psd_matrix) 201 | 202 | output = apply_beamforming_vector(W_gev, mix) 203 | output = output.astype(org_dtype) 204 | 205 | return output.T 206 | def mvdr_wrapper_on_masks(mix, noise_mask=None, target_mask=None, normalization=False): 207 | #get pca vector as steering vector 208 | if noise_mask is None and target_mask is None: 209 | raise ValueError('At least one mask needs to be present.') 210 | 211 | org_dtype = mix.dtype 212 | mix = mix.astype(np.complex128) 213 | mix = mix.T 214 | if noise_mask is not None: 215 | noise_mask = noise_mask.T 216 | if target_mask is not None: 217 | target_mask = target_mask.T 218 | target_psd_matrix = get_power_spectral_density_matrix( 219 | mix, target_mask, normalize=False) 220 | noise_psd_matrix = get_power_spectral_density_matrix( 221 | mix, noise_mask, normalize=True) 222 | noise_psd_matrix = condition_covariance(noise_psd_matrix, 1e-6) 223 | noise_psd_matrix /= np.trace( 224 | noise_psd_matrix, axis1=-2, axis2=-1)[..., None, None] 225 | pca_vector = get_pca_vector(target_psd_matrix) 226 | W_mvdr = get_mvdr_vector(pca_vector, noise_psd_matrix) 227 | W_mvdr = phase_correction(W_mvdr) 228 | if normalization: 229 | W_mvdr = blind_analytic_normalization(W_mvdr, noise_psd_matrix) 230 | output = apply_beamforming_vector(W_mvdr, mix) 231 | output = output.astype(org_dtype) 232 | 233 | return output.T 234 | 235 | def compute_directional_feats(mix, target_mask): 236 | """ 237 | input: 238 | the mix must be the complex spectrum 239 | mix shape is T* N* F 240 | the maks shape is T * F 241 | Return: 242 | directional_feats: T x F 243 | """ 244 | org_dtype = mix.dtype 245 | mix = mix.astype(np.complex128) 246 | mix = mix.T 247 | target_mask = target_mask.T 248 | target_psd_matrix = get_power_spectral_density_matrix( 249 | mix, target_mask, normalize=False) 250 | pca_vector = get_pca_vector(target_psd_matrix) 251 | # convert the shape to N * F 252 | pca_vector = pca_vector.T 253 | 254 | #compute the directional feats 255 | #print(mix.shape) 256 | mix = mix.transpose(1, 0, 2) 257 | N, F, T = mix.shape 258 | arg_s, arg_t = np.angle(mix), np.angle(pca_vector) 259 | df = np.zeros([N * (N - 1) // 2, F, T]) 260 | idx = 0 261 | for i in range(N): 262 | for j in range(i + 1, N): 263 | # F x T 264 | delta_s = arg_s[i] - arg_s[j] 265 | # 1 x T 266 | delta_t = np.expand_dims(arg_t[i] - arg_t[j], 1) 267 | # F x T 268 | df[idx] = np.cos(delta_s - delta_t) 269 | idx += 1 270 | df = np.average(df, axis=0) 271 | return df.T 272 | -------------------------------------------------------------------------------- /tools/sigproc/dsp.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | # Copyright 2018 ASLP@NPU Ke Wang 5 | 6 | from __future__ import absolute_import 7 | from __future__ import division 8 | from __future__ import print_function 9 | 10 | import math 11 | import os 12 | import sys 13 | 14 | import librosa 15 | import numpy as np 16 | import soundfile as sf 17 | from scipy.io import wavfile 18 | 19 | sys.path.append(os.path.dirname(sys.path[0])) 20 | from mtxing_misc.logger import logger 21 | log = logger(__file__, 'debug') 22 | 23 | 24 | MAX_INT16 = np.iinfo(np.int16).max 25 | EPSILON = np.finfo(np.float32).eps 26 | MAX_EXP = np.log(np.finfo(np.float32).max - 10.0) 27 | 28 | 29 | def wavread(path): 30 | #wav, sample_rate = sf.read(path, dtype='float32') 31 | wav, sample_rate = sf.read(path) 32 | return wav, sample_rate 33 | 34 | 35 | def wavwrite(signal, sample_rate, path): 36 | signal = (signal * MAX_INT16).astype(np.int16) 37 | wavfile.write(path, sample_rate, signal) 38 | 39 | 40 | def get_window(window_size, window_type, square_root_window=True): 41 | """Return the window""" 42 | window = { 43 | 'hamming': np.hamming(window_size), 44 | 'hanning': np.hanning(window_size), 45 | }[window_type] 46 | if square_root_window: 47 | window = np.sqrt(window) 48 | return window 49 | 50 | 51 | def fft_point(dim): 52 | assert dim > 0 53 | num = math.log(dim, 2) 54 | num_point = 2**(math.ceil(num)) 55 | return num_point 56 | 57 | 58 | def pre_emphasis(signal, coefficient=0.97): 59 | """Pre-emphasis original signal 60 | y(n) = x(n) - a*x(n-1) 61 | """ 62 | return np.append(signal[0], signal[1:] - coefficient * signal[:-1]) 63 | 64 | 65 | def de_emphasis(signal, coefficient=0.97): 66 | """De-emphasis original signal 67 | y(n) = x(n) + a*x(n-1) 68 | """ 69 | length = signal.shape[0] 70 | for i in range(1, length): 71 | signal[i] = signal[i] + coefficient * signal[i - 1] 72 | return signal 73 | 74 | 75 | def stft(signal, 76 | sample_rate, 77 | frame_length=32, 78 | frame_shift=8, 79 | window_type="hanning", 80 | preemphasis=0.0, 81 | square_root_window=True): 82 | """Compute the Short Time Fourier Transform. 83 | 84 | Args: 85 | signal: input speech signal 86 | sample_rate: waveform data sample frequency (Hz) 87 | frame_length: frame length in milliseconds 88 | frame_shift: frame shift in milliseconds 89 | window_type: type of window 90 | square_root_window: square root window 91 | Return: 92 | fft: (n/2)+1 dim complex STFT restults 93 | """ 94 | if preemphasis != 0.0: 95 | signal = pre_emphasis(signal, preemphasis) 96 | hop_length = int(sample_rate * frame_shift / 1000) 97 | win_length = int(sample_rate * frame_length / 1000) 98 | num_point = fft_point(win_length) 99 | window = get_window(num_point, window_type, square_root_window) 100 | feat = librosa.stft(signal, n_fft=num_point, hop_length=hop_length, 101 | win_length=win_length, window=window) 102 | return np.transpose(feat) 103 | 104 | 105 | def get_phase(signal, 106 | sample_rate, 107 | frame_length=32, 108 | frame_shift=8, 109 | window_type="hanning", 110 | preemphasis=0.0, 111 | square_root_window=True): 112 | """Compute phase imformation. 113 | 114 | Args: 115 | signal: input speech signal 116 | sample_rate: waveform data sample frequency (Hz) 117 | frame_length: frame length in milliseconds 118 | frame_shift: frame shift in milliseconds 119 | window_type: type of window 120 | square_root_window: square root window 121 | """ 122 | feat = stft(signal, sample_rate, frame_length, frame_shift, 123 | window_type, preemphasis, square_root_window) 124 | phase = np.angle(feat) 125 | return phase 126 | 127 | 128 | def overlap_and_add(spectrum, 129 | signal, 130 | sample_rate, 131 | frame_length=32, 132 | frame_shift=8, 133 | window_type="hanning", 134 | preemphasis=0.0, 135 | use_log=False, 136 | use_power=False, 137 | square_root_window=True): 138 | """Convert frames to signal using overlap-and-add systhesis. 139 | Args: 140 | spectrum: magnitude spectrum 141 | signal: wave signal to supply phase information 142 | Return: 143 | wav: synthesied output waveform 144 | """ 145 | if use_log: 146 | spectrum = np.clip(spectrum, a_min=None, a_max=MAX_EXP) 147 | spectrum = np.exp(spectrum) 148 | if use_power: 149 | spectrum = np.sqrt(spectrum) 150 | phase = get_phase(signal, sample_rate, frame_length, frame_shift, 151 | window_type, preemphasis, square_root_window) 152 | spectrum = spectrum * np.exp(1.0j * phase) 153 | if spectrum.shape != phase.shape: 154 | log.show(('Wave and Spectrum are not the same length, ' 155 | 'phase.shape = {}, spectrum.shape = {}').format( 156 | spectrum.shape, phase.shape), 'error') 157 | spectrum = np.transpose(spectrum) 158 | hop_length = int(sample_rate * frame_shift / 1000) 159 | win_length = int(sample_rate * frame_length / 1000) 160 | num_point = fft_point(win_length) 161 | window = get_window(num_point, window_type, square_root_window) 162 | wav = librosa.istft(spectrum, hop_length=hop_length, 163 | win_length=num_point, window=window) 164 | if preemphasis != 0.0: 165 | wav = de_emphasis(wav, preemphasis) 166 | return wav 167 | -------------------------------------------------------------------------------- /tools/speech_processing_toolbox/README.md: -------------------------------------------------------------------------------- 1 | # speech_processing_toolbox 2 | some tools adout speech processing 3 | -------------------------------------------------------------------------------- /tools/speech_processing_toolbox/voicetool/addnoise.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import os 3 | 4 | import scipy.io as sio 5 | import scipy 6 | import numpy as np 7 | import multiprocessing 8 | import wave 9 | 10 | def activelev(data): 11 | ''' 12 | need to update like matlab 13 | ''' 14 | max_amp = np.max(np.abs(data)) 15 | return data/max_amp 16 | 17 | def add_noisem(clean_path, noise_path, out_clean_dir, out_noisy_dir, start, scale, snr): 18 | clean = read(clean_path) 19 | noise = read(noise_path) 20 | 21 | cname = clean_path.split('/')[-1].split('.wav')[0] 22 | nname = noise_path.split('/')[-1].split('.wav')[0] 23 | name = cname+'_'+str(snr)+'_'+nname+'_'+str(-snr)+'.wav' 24 | clean_size = clean.shape[0] 25 | noise_selected = noise[start:start+clean_size] 26 | clean_n = activelev(clean) 27 | noise_n = activelev(noise_selected) 28 | clean_snr = snr 29 | noise_snr = -snr 30 | clean_weight = 10**(clean_snr/20) 31 | noise_weight = 10**(noise_snr/20) 32 | clean = clean_n * clean_weight 33 | noise = noise_n * noise_weight 34 | noisy = clean + noise 35 | max_amp = np.max(np.abs([noise, clean, noisy])) 36 | mix_scale = 1/max_amp*scale 37 | X = clean * mix_scale 38 | # N = noise * mix_scale 39 | Y = noisy * mix_scale 40 | 41 | write(out_clean_dir+'/'+name, X) 42 | write(out_noisy_dir+'/'+name, Y) 43 | 44 | 45 | def read(path): 46 | """ 47 | read wave data like matlab's audioread 48 | """ 49 | fid = wave.open(path, 'rb') 50 | params = fid.getparams() 51 | nchannels, samplewidth, framerate, nframes = params[:4] 52 | strdata = fid.readframes(nframes*nchannels) 53 | fid.close() 54 | wavedata = np.fromstring(strdata, dtype=np.int16) 55 | wavedata = wavedata*1.0/(32767.0*samplewidth/2) 56 | return np.reshape(wavedata, [-1]) 57 | 58 | def write(path, data): 59 | 60 | nchannels = 1 61 | samplewidth=2 62 | sample_rate=16000 63 | data = np.reshape(data, [-1, 1]) 64 | nframes = data.shape[0] 65 | fid = wave.open(path, 'wb') 66 | data *= 32767.0 67 | fid.setparams((nchannels, samplewidth, sample_rate, nframes, "NONE", "not compressed")) 68 | fid.writeframes(np.array(data, dtype=np.int16).tostring()) 69 | fid.close() 70 | 71 | def AddNoise(mix_list, out_clean_dir, out_noisy_dir, num_threads=12): 72 | pool = multiprocessing.Pool(num_threads) 73 | if not os.path.isdir(out_clean_dir): 74 | os.mkdir(out_clean_dir) 75 | if not os.path.isdir(out_noisy_dir): 76 | os.mkdir(out_noisy_dir) 77 | with open(mix_list) as fid: 78 | for line in fid: 79 | tmp = line.strip().split() 80 | cname, nname, start, snr, scale = tmp 81 | start = int(start) 82 | scale = float(scale) 83 | snr = float(snr) 84 | pool.apply_async( 85 | add_noisem, args=( 86 | cname, 87 | nname, 88 | out_clean_dir, 89 | out_noisy_dir, 90 | start, 91 | scale, 92 | snr,) 93 | ) 94 | 95 | pool.close() 96 | pool.join() 97 | 98 | 99 | def generate_mix_list(cwav_list, nwav_list, output_list, snr_range=[-5,5]): 100 | ''' 101 | cwav_list: include clean wav path list 102 | nwav_list: include noise wav path list 103 | output_list: output cwav path, nwav_path, start_time, scale snr 104 | ''' 105 | noise_lists = [] 106 | 107 | with open(nwav_list) as nfid: 108 | for line in nfid: 109 | noise_lists.append(line.strip()) 110 | 111 | noise_lists_length = len(noise_lists) 112 | with open(cwav_list) as cfid: 113 | with open(output_list, 'w') as outfid: 114 | for line in cfid: 115 | cpath = line.strip() 116 | cwav_len = read(cpath).shape[0] 117 | while True: 118 | nid = np.random.randint(noise_lists_length) 119 | nwav_len = read(noise_lists[nid]).shape[0] 120 | if nwav_len < cwav_len: 121 | continue 122 | else: 123 | break 124 | if cwav_len < nwav_len: 125 | stime = np.random.randint(nwav_len-cwav_len) 126 | else: 127 | stime = 0 128 | if isinstance(snr_range, list): 129 | snr = (snr_range[1]-snr_range[0])*np.random.ranf()+snr_range[0] 130 | else: 131 | snr = snr_range 132 | #while True: 133 | # the vol scale is N(0.9,0.2) 134 | # scale = np.random.randn()*.2 + 0.9 135 | # if scale <= 1.0 and scale > 0: 136 | # break; 137 | scale = 0.9 138 | outfid.writelines(cpath+' '+ noise_lists[nid] +' ' + str(stime)+' {:.3f}'.format(snr)+' {:.3f}'.format(scale)+'\n') 139 | sys.stdout.flush() 140 | 141 | if __name__ == '__main__': 142 | test_clean = './clean_testset.lst' 143 | test_noise = './noise_testset' 144 | name = sys.argv[1] 145 | snr = int(sys.argv[2]) 146 | generate_mix_list(test_clean, test_noise, name, snr_range=snr) 147 | print('generated mix list') 148 | AddNoise(name, 'out_clean_'+str(snr), 'out_noisy_'+str(snr), num_threads=12) 149 | 150 | 151 | -------------------------------------------------------------------------------- /tools/speech_processing_toolbox/voicetool/base.py: -------------------------------------------------------------------------------- 1 | 2 | """ 3 | some tool func about speech processing 4 | 5 | author: yxhu 6 | """ 7 | ''' 8 | 读取文件方式修改为soundfile 9 | 单通道 10 | ''' 11 | 12 | import scipy 13 | import scipy.signal as signal 14 | import numpy as np 15 | import wave 16 | import soundfile as sf 17 | import scipy.io as sio 18 | 19 | def audioread(path, sample_rate=16000, selected_channels=[1]): 20 | """ 21 | read wave data like matlab's audioread 22 | selected_channels: for multichannel wave, return selected_channels' data 23 | """ 24 | selected_channels = [ x - 1 for x in selected_channels] 25 | #print(path) 26 | wavedata,sample_rate = sf.read(path) 27 | nchannels = 1 28 | if nchannels == 1: 29 | return np.reshape(wavedata,[-1]) 30 | else: 31 | wavedata = np.reshape(wavedata, [nframes,nchannels]) 32 | return wavedata[:, selected_channels] 33 | 34 | def audiowrite(path, data, nchannels=1, samplewidth=2, sample_rate=16000): 35 | 36 | data = np.reshape(data, [-1, nchannels]) 37 | nframes = data.shape[0] 38 | fid = wave.open(path, 'wb') 39 | data *= 32767.0 40 | fid.setparams((nchannels, samplewidth, sample_rate, nframes,"NONE", "not compressed")) 41 | fid.writeframes(np.array(data, dtype=np.int16).tostring()) 42 | fid.close() 43 | 44 | def enframe(data, window, win_len, inc): 45 | data_len = data.shape[0] 46 | if data_len <= win_len : 47 | nf = 1 48 | else: 49 | nf = int((data_len-win_len+inc)/inc) 50 | # 2019-3-29: 51 | # remove the padding, the last points will be discard 52 | 53 | #pad_length = int((nf-1)*inc+win_len) 54 | #zeros = np.zeros((pad_length - data_len, )) 55 | #pad_signal = np.concatenate((data, zeros)) 56 | 57 | indices = np.tile(np.arange(0,win_len), (nf,1))+ np.tile(np.arange(0,nf*inc, inc), (win_len,1)).T 58 | indices = np.array(indices, dtype=np.int32) 59 | frames = data[indices] 60 | windows = np.reshape(np.tile(window, nf),[nf,win_len]) 61 | return frames*windows 62 | 63 | def fft(data, fft_len): 64 | return np.abs(np.fft.rfft(data, n=fft_len)) 65 | 66 | def activelev(data,fs): 67 | """ 68 | Normalize data to 0db 69 | now is a little func, 70 | furthermore it will be 71 | transplantated from matlab version 72 | """ 73 | max_amp = np.std(data)#np.max(np.abs(data)) 74 | return (data+1e-6)/(max_amp+1e-6) 75 | 76 | def resample(src, fs, tfs): 77 | if fs == tfs: 78 | return src 79 | if fs > tfs: 80 | down_sample(src, fs, tfs) 81 | else: 82 | up_sample(src, fs, tfs) 83 | 84 | def up_sample(src, fs, tfs): 85 | """ 86 | up sample 87 | """ 88 | pass 89 | 90 | def down_sample(src, fs, tfs): 91 | """ 92 | down sample 93 | """ 94 | pass 95 | 96 | 97 | if __name__ == '__main__': 98 | wave_data = audioread('/home//work_nfs2/yxhu/workspace/se-cldnn-torhc/exp/500_with_clip_grad_no_sampler_cldnn_1_1_0.0005_16k_6_9/test_3k/speaker079_10801018.wav').reshape([-1]) 99 | win = np.hamming(400)/1.2607934 100 | en_data = enframe(wave_data,win,400, 100) 101 | fft_data=fft(en_data,512) 102 | sio.savemat('test.mat', {'py_en':en_data, 'py_fft':fft_data, 'py_wave':wave_data}) 103 | -------------------------------------------------------------------------------- /tools/speech_processing_toolbox/voicetool/multiworkers.py: -------------------------------------------------------------------------------- 1 | 2 | import multiprocessing 3 | import numpy as np 4 | 5 | class Workers(object): 6 | 7 | def __init__(self, job_list, worker=None, num_workers=20): 8 | 9 | self.mgr = multiprocessing.Manager() 10 | self.ans = self.mgr.list() 11 | self.worker=worker 12 | self.num_workers = num_workers 13 | self.num_jobs = len(job_list) 14 | self.job_list = job_list 15 | 16 | 17 | def run(self, other_args=None): 18 | workers = [] 19 | per_worker_jobs = self.num_jobs // self.num_workers + 1 20 | for i in range(self.num_workers): 21 | start = i * per_worker_jobs 22 | if i != self.num_workers-1: 23 | end = (i + 1) * per_worker_jobs 24 | else: 25 | end = self.num_jobs 26 | args={ 27 | 'start':start, 28 | 'end':end, 29 | 'job_list':self.job_list, 30 | 'ans':self.ans, 31 | 'others':other_args 32 | } 33 | p = multiprocessing.Process(target=self.worker, 34 | args=( 35 | args,) 36 | ) 37 | p.start() 38 | workers.append(p) 39 | for p in workers: 40 | p.join() 41 | 42 | def __call__(self): 43 | return self.ans 44 | -------------------------------------------------------------------------------- /tools/speech_processing_toolbox/voicetool/utils.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import numpy as np 3 | import scipy.io as sio 4 | import scipy.signal as signal 5 | import struct 6 | def read_binary_file(filename, offset=0): 7 | """Read data from matlab binary file (row, col and matrix). 8 | 9 | Returns: 10 | A numpy matrix containing data of the given binary file. 11 | """ 12 | read_buffer = open(filename, 'rb') 13 | read_buffer.seek(int(offset), 0) 14 | header = struct.unpack(' 1: 82 | wave_data = wave_data[:,0] 83 | return wave_data 84 | 85 | def activelev(data):### 86 | # max_val = np.max(np.abs(data)) 87 | eps = np.finfo(np.float32).eps 88 | max_val = (1. + eps) /( np.std(data) + eps) 89 | data = data * max_val 90 | return data 91 | ''' 92 | def add_reverb(cln_wav, rir_wav): 93 | """ 94 | Args: 95 | :@param cln_wav: the clean wav 96 | :@param rir_wav: the rir wav 97 | Return: 98 | :@param wav_tgt: the reverberant signal 99 | """ 100 | rir_wav = np.array(rir_wav) 101 | rir_wav = np.squeeze(rir_wav) 102 | wav_tgt = sps.oaconvolve(cln_wav, rir_wav)#sp.convolve(cln_wav, rir_wav) 103 | wav_tgt = np.transpose(wav_tgt) 104 | return wav_tgt 105 | ''' 106 | 107 | def add_reverb(cln_wav, rir_wav, return_direct = False): 108 | """ 109 | Args: 110 | :@param cln_wav: the clean wav 111 | :@param rir_wav: the rir wav 112 | Return: 113 | :@param wav_tgt: the reverberant signal 114 | """ 115 | 116 | rir_wav = np.array(rir_wav) 117 | rir = rir_wav 118 | wav_tgt = sps.oaconvolve(cln_wav, rir) 119 | #### generate dereverb label for training data 120 | if(return_direct is True): 121 | rir_direct = np.zeros(rir_wav.shape) 122 | rir_late = np.zeros(rir_wav.shape) 123 | clean_len = len(cln_wav) 124 | #cln_wav = cln_wav[:, np.newaxis] 125 | predelay_ms = 100 126 | dt = np.argmax(rir_wav) 127 | dt = int(dt + (predelay_ms * 16000 / 1000)) 128 | rir_direct[:dt] = rir_wav[:dt] 129 | rir_late[dt:] = rir_wav[dt:] 130 | #print(rir_direct.shape) 131 | #print(cln_wav.shape) 132 | wav_tgt_direct = sps.oaconvolve(cln_wav, rir_direct, mode='full')[:clean_len] 133 | wav_tgt_late = sps.oaconvolve(cln_wav, rir_late, mode='full')[:clean_len] 134 | return wav_tgt, wav_tgt_direct, wav_tgt_late 135 | else: 136 | return wav_tgt 137 | 138 | def addnoise(clean, noise, rir_path, scale, snr): 139 | ''' 140 | if rir is not None, the speech of noisy has reverberation 141 | and return the clean with reverberation 142 | else no reverberation 143 | Args: 144 | :@param clean_path: the path of a clean wav 145 | :@param noise_path: the path of a noise wav 146 | :@param start: the start point of the noise wav 147 | :@param scale: the scale factor to control volume 148 | :@param snr: the snr when add noise 149 | Return: 150 | :@param Y: noisy wav 151 | :@oaram X: clean wav 152 | ''' 153 | ####八个通道选哪个? 154 | 155 | noise_length = noise.shape[0] 156 | clean_length = clean.shape[0] 157 | clean_snr = snr / 2 158 | noise_snr = -snr / 2 159 | clean_weight = 10**(clean_snr/20) 160 | noise_weight = 10**(noise_snr/20) 161 | ###### 162 | if clean_length < noise_length: 163 | start = np.random.randint(noise_length - clean_length) 164 | noise_selected = np.zeros(clean_length) 165 | noise_selected = noise[start : start+clean_length] 166 | clean_selected = clean 167 | else: 168 | noise_selected = noise 169 | clean_selected = clean 170 | 171 | if rir_path is not None: 172 | rir = audioread(rir_path) 173 | if len(rir.shape) != 1: 174 | rir1 = rir[:,0] 175 | rir2 = rir[:,0] 176 | else: 177 | rir1 = rir 178 | rir2 = rir 179 | #print(rir1.shape) 180 | #print(rir2.shape) 181 | #print('noise_selected', noise_selected.shape) 182 | #print('clean_selected', clean_selected.shape) 183 | #print('rir1', rir1.shape) 184 | #print('rir2', rir2.shape) 185 | #print(clean_selected.shape) 186 | rir_clean, clean_direct, clean_late = add_reverb(clean_selected, rir1, True) 187 | rir_noise, noise_direct, noise_late = add_reverb(noise_selected, rir2, True) 188 | #print('cnm') 189 | #return rir_clean, rir_clean, clean_direct, clean_late 190 | else: 191 | rir_clean = clean_selected 192 | rir_noise = noise_selected 193 | clean_direct = rir_clean 194 | noise_direct = rir_noise 195 | 196 | rir_noise_n_1 = activelev(rir_noise) 197 | rir_clean_n_1 = activelev(rir_clean) 198 | clean_direct = activelev(clean_direct) 199 | clean_late = activelev(clean_late) 200 | rir_clean = rir_clean_n_1 * clean_weight 201 | rir_noise = rir_noise_n_1 * noise_weight 202 | clean_direct = clean_direct * clean_weight 203 | clean_late = clean_late * clean_weight 204 | if(rir_path is not None): 205 | rir_clean = rir_clean[:len(rir_clean) - len(rir1) + 1] 206 | rir_noise = rir_noise[:len(rir_noise) - len(rir2) + 1] 207 | clean_direct = clean_direct[:len(rir_clean)] 208 | clean_late = clean_late[:len(rir_clean)] 209 | noisy = rir_clean + rir_noise 210 | max_amp_0 = np.max(np.abs([rir_noise, rir_clean, noisy, clean_direct, clean_late])) 211 | if max_amp_0 == 0: 212 | max_amp_0 = 1 213 | mix_scale_0 = 1/max_amp_0*scale 214 | direct_clean = np.empty((clean_direct.shape)) 215 | late_clean = np.empty((clean_late.shape)) 216 | Y = np.empty((noisy.shape)) 217 | direct_clean = clean_direct * mix_scale_0 218 | late_clean = clean_late * mix_scale_0 219 | clean = rir_clean * mix_scale_0 220 | Y = noisy * mix_scale_0 221 | return Y, clean, direct_clean, late_clean 222 | 223 | class Processer(object): 224 | 225 | def __init__(self, win_len=400, win_inc=100,left_context=0,right_context=0, fft_len=512, window_type='hamming', target_mode='Time'): 226 | self.left_context = left_context 227 | self.right_context = right_context 228 | self.win_len = win_len 229 | self.win_inc = win_inc 230 | self.fft_len = fft_len 231 | self.window = { 232 | 'hamming':np.hamming(self.win_len)/1.2607934, 233 | 'none':np.ones(self.win_len) 234 | }[window_type] 235 | self.label_type = target_mode 236 | 237 | def process(self, clean_path, noise_path, rir_path, start_time, segement_length, randstat): 238 | #print('noise :', noise_path) 239 | #print('clean: ', clean_path) 240 | #print('rir: ', rir_path) 241 | 242 | wave_clean = get_firstchannel_read(clean_path) 243 | wave_noise = get_firstchannel_read(noise_path) 244 | 245 | if start_time == -1: 246 | wave_clean = np.concatenate([wave_clean, wave_clean[:segement_length-wave_clean.shape[0]]]) 247 | else: 248 | wave_clean = wave_clean[start_time:start_time+segement_length] 249 | 250 | # I find some sample are not fixed to segement_length, 251 | # so i padding zero it into segement_length 252 | if wave_clean.shape[0] != segement_length: 253 | padded_inputs = np.zeros(segement_length, dtype=np.float32) 254 | padded_inputs[:wave_clean.shape[0]] = wave_clean 255 | else: 256 | padded_inputs = wave_clean 257 | 258 | if wave_noise.shape[0] < segement_length: 259 | padded_noise = np.zeros(segement_length, dtype=np.float32) 260 | padded_noise[:wave_noise.shape[0]] = wave_noise 261 | wave_noise = padded_noise 262 | 263 | method = randstat.random() 264 | scale = randstat.uniform(0.3, 0.9) 265 | snr = randstat.uniform(-5, 20) 266 | 267 | inputs, labels_full, labels_direct, labels_late = addnoise(padded_inputs, wave_noise, rir_path, scale, snr) 268 | 269 | return inputs, labels_full, labels_direct, labels_late 270 | 271 | class TFDataset(Dataset): 272 | 273 | def __init__(self, 274 | clean_scp, 275 | noise_scp, 276 | rir_scp, 277 | processer, 278 | repeat, 279 | segement_length=4, 280 | sample_rate=16000, 281 | gender2spk=None 282 | ): 283 | ''' 284 | scp_file_name: the list include:[input_wave_path, output_wave_path, duration] 285 | spk_emb_scp: a speaker embedding ark's scp 286 | segement_length: to clip data in a fix length segment, default: 4s 287 | sample_rate: the sample rate of wav, default: 16000 288 | processer: a processer class to handle wave data 289 | gender2spk: a list include gender2spk, default: None 290 | ''' 291 | self.clean_list = read_and_config_file(clean_scp) 292 | self.noise_list = read_and_config_file(noise_scp) 293 | self.rir_list = read_and_config_file(rir_scp) 294 | self.repeat = repeat 295 | self.processer = processer 296 | mgr = mp.Manager() 297 | self.index =mgr.list()#[d for b in buckets for d in b] 298 | self.index *= repeat 299 | self.segement_length = segement_length * sample_rate 300 | self._dochunk(SAMPLE_RATE=sample_rate) 301 | self.randstats = [ np.random.RandomState(idx) for idx in range(3000)] 302 | 303 | def __len__(self): 304 | return len(self.index) 305 | 306 | def __getitem__(self, index): 307 | data_info, start_time = self.index[index] 308 | len_noise = len(self.noise_list) 309 | len_rir = len(self.rir_list) 310 | randstat = self.randstats[(index + 11) % 3000] 311 | cnt_noise = randstat.randint(0, len_noise-1) 312 | cnt_rir = randstat.randint(0, len_rir-1) 313 | inputs, labels_full, labels_direct, labels_late = self.processer.process(data_info['inputs'], self.noise_list[cnt_noise]['inputs'], self.rir_list[cnt_rir]['inputs'],start_time, self.segement_length, randstat) 314 | return inputs, labels_full, labels_direct, labels_late 315 | 316 | def _dochunk(self, SAMPLE_RATE=16000, num_threads=12): 317 | # mutliproccesing 318 | def worker(target_list, result_list, start, end, segement_length, SAMPLE_RATE): 319 | for item in target_list[start:end]: 320 | duration = item['duration'] 321 | length = duration*SAMPLE_RATE 322 | if length < segement_length: 323 | if length * 2 < segement_length: 324 | continue 325 | result_list.append([item, -1]) 326 | else: 327 | sample_index = 0 328 | while sample_index + segement_length < length: 329 | result_list.append( 330 | [item, sample_index]) 331 | sample_index += segement_length 332 | if sample_index != length - 1: 333 | result_list.append([ 334 | item, 335 | int(length - segement_length), 336 | ]) 337 | pc_list = [] 338 | stride = len(self.clean_list) // num_threads 339 | if stride < 100: 340 | p = mp.Process( 341 | target=worker, 342 | args=( 343 | self.clean_list, 344 | self.index, 345 | 0, 346 | len(self.clean_list), 347 | self.segement_length, 348 | SAMPLE_RATE, 349 | ) 350 | ) 351 | p.start() 352 | pc_list.append(p) 353 | else: 354 | for idx in range(num_threads): 355 | if idx == num_threads-1: 356 | end = len(self.clean_list) 357 | else: 358 | end = (idx+1)*stride 359 | p = mp.Process( 360 | target=worker, 361 | args=( 362 | self.clean_list, 363 | self.index, 364 | idx*stride, 365 | end, 366 | self.segement_length, 367 | SAMPLE_RATE, 368 | ) 369 | ) 370 | p.start() 371 | pc_list.append(p) 372 | for p in pc_list: 373 | p.join() 374 | p.terminate() 375 | 376 | class Sampler(tud.sampler.Sampler): 377 | ''' 378 | 379 | ''' 380 | def __init__(self, data_source, batch_size): 381 | #print(len(data_source)) 382 | #print(batch_size) 383 | it_end = len(data_source) - batch_size + 1 384 | self.batches = [range(i, i+batch_size) 385 | for i in range(0, it_end, batch_size)] 386 | self.data_source = data_source 387 | 388 | def __iter__(self): 389 | random.shuffle(self.batches) 390 | return (i for b in self.batches for i in b) 391 | 392 | def __len__(self): 393 | return len(self.data_source) 394 | 395 | 396 | def zero_pad_concat(inputs): 397 | max_t = max(inp.shape[0] for inp in inputs) 398 | shape = np.array([len(inputs), max_t, inputs[0].shape[1]]) 399 | inputs_mat = np.zeros(shape, np.float32) 400 | for idx, inp in enumerate(inputs): 401 | inputs_mat[idx, :inp.shape[0],:] = inp 402 | return inputs_mat 403 | 404 | def collate_fn(data): 405 | inputs, s, s1, s2 = zip(*data) 406 | #print 407 | #cnt = 0 408 | #for a in inputs: 409 | # print(cnt, ' ', a.shape) 410 | # cnt = cnt + 1 411 | #print(inputs.shape) 412 | inputs = np.array(inputs, dtype=np.float32) 413 | s = np.array(s, dtype=np.float32) 414 | s1 = np.array(s1, dtype=np.float32) 415 | s2 = np.array(s2, dtype=np.float32) 416 | return torch.from_numpy(inputs), torch.from_numpy(s), torch.from_numpy(s1), torch.from_numpy(s2) 417 | 418 | def make_loader(clean_scp, noise_scp, rir_scp=None, batch_size=8, repeat=2, num_workers=12, segement_length = 8, sample_rate=16000, processer=Processer()): 419 | dataset = TFDataset( 420 | clean_scp=clean_scp, 421 | noise_scp=noise_scp, 422 | rir_scp=rir_scp, 423 | repeat=repeat, 424 | segement_length=segement_length, 425 | sample_rate=sample_rate, 426 | processer=processer 427 | ) 428 | sampler = Sampler(dataset, batch_size) 429 | loader = tud.DataLoader(dataset, 430 | batch_size=batch_size, 431 | num_workers=num_workers, 432 | collate_fn=collate_fn, 433 | #sampler=sampler, 434 | drop_last=False, 435 | shuffle=True 436 | ) 437 | #shuffle=True, 438 | return loader, None #, Dataset 439 | if __name__ == '__main__': 440 | laoder,_ = make_loader(clean_scp = '../data/clean_cv.lst',#'/home/work_nfs3/lvshubo/dasan/lstm/sruc_16k_auto_noise/data/clean_tr.lst', 441 | noise_scp = '../data/noise_cv.lst',#'/home/work_nfs3/lvshubo/dasan/lstm/sruc_16k_auto_noise/data/noise_tr.lst', 442 | rir_scp = '../data/rir_cv.lst',#'/home/work_nfs3/lvshubo/dasan/lstm/sruc_16k_auto_noise/data/rir_tr.lst', 443 | batch_size = 1, 444 | repeat = 2, 445 | num_workers=16) 446 | 447 | #os.environ['CUDA_VISIBLE_DEVICES'] = '1' 448 | import time 449 | import soundfile as sf 450 | stime = time.time() 451 | cnt = 0 452 | os.mkdir('test_wav/input') 453 | os.mkdir('test_wav/label') 454 | os.mkdir('test_wav/label_early') 455 | os.mkdir('test_wav/label_lately') 456 | for epoch in range(10): 457 | for idx, data in enumerate(laoder): 458 | print(len(data)) 459 | inputs, labels, labels1, labels2= data 460 | sf.write('test_wav/input/inputs_' + str(cnt) + '.wav', inputs[0], 16000) 461 | sf.write('test_wav/label/inputs_' + str(cnt) + '.wav', labels[0], 16000) 462 | sf.write('test_wav/label_early/inputs_' + str(cnt) + '.wav', labels1[0], 16000) 463 | sf.write('test_wav/label_lately/inputs_' + str(cnt) + '.wav', labels2[0], 16000) 464 | cnt = cnt + 1 465 | #inputs.cuda() 466 | #labels.cuda() 467 | if idx%100 == 0: 468 | etime = time.time() 469 | print(epoch, idx, labels1.size(), (etime-stime)/100) 470 | stime = etime 471 | --------------------------------------------------------------------------------