├── .gitignore ├── LICENSE ├── README.md ├── config ├── 20200105_lisen.json5 ├── 20200323_joint_simple_cnn.json5 ├── 20200323_simple_cnn.json5 └── __init__.py ├── dataset ├── __init__.py ├── train.txt ├── val.txt └── waveform_dataset.py ├── joint_train.py ├── model ├── __init__.py ├── simple_cnn.py └── unet_zoo │ ├── __init__.py │ ├── multi_scale.py │ ├── unet_models.py │ └── unet_parts.py ├── requirement.txt ├── test.py ├── train.py ├── trainer ├── __init__.py ├── base_trainer.py ├── tester.py └── trainer.py └── util ├── __init__.py ├── loss.py ├── stoi_utils.py ├── utils.py └── visualization.py /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | pip-wheel-metadata/ 24 | share/python-wheels/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | MANIFEST 29 | 30 | # PyInstaller 31 | # Usually these files are written by a python script from a template 32 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 33 | *.manifest 34 | *.spec 35 | 36 | # Installer logs 37 | pip-log.txt 38 | pip-delete-this-directory.txt 39 | 40 | # Unit test / coverage reports 41 | htmlcov/ 42 | .tox/ 43 | .nox/ 44 | .coverage 45 | .coverage.* 46 | .cache 47 | nosetests.xml 48 | coverage.xml 49 | *.cover 50 | *.py,cover 51 | .hypothesis/ 52 | .pytest_cache/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | target/ 76 | 77 | # Jupyter Notebook 78 | .ipynb_checkpoints 79 | 80 | # IPython 81 | profile_default/ 82 | ipython_config.py 83 | 84 | # pyenv 85 | .python-version 86 | 87 | # pipenv 88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 91 | # install all needed dependencies. 92 | #Pipfile.lock 93 | 94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 95 | __pypackages__/ 96 | 97 | # Celery stuff 98 | celerybeat-schedule 99 | celerybeat.pid 100 | 101 | # SageMath parsed files 102 | *.sage.py 103 | 104 | # Environments 105 | .env 106 | .venv 107 | env/ 108 | venv/ 109 | ENV/ 110 | env.bak/ 111 | venv.bak/ 112 | .idea/ 113 | 114 | # Spyder project settings 115 | .spyderproject 116 | .spyproject 117 | 118 | # Rope project settings 119 | .ropeproject 120 | 121 | # mkdocs documentation 122 | /site 123 | 124 | # mypy 125 | .mypy_cache/ 126 | .dmypy.json 127 | dmypy.json 128 | 129 | # Pyre type checker 130 | .pyre/ 131 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## 语音增强 2 | 语音增强模型的处理和实现 3 | 4 | ## 环境配置数据集准备 5 | ### 环境配置 6 | 基于Anaconda创建环境`py37SE` 7 | ```bash 8 | conda create -n py37SE python=3.7 9 | ``` 10 | ```bash 11 | conda install tensorboard 12 | pip install -r requirement.txt 13 | ``` 14 | 环境依赖 15 | ```bash 16 | Python 3.7.x 17 | CUDA 10.1 18 | torch 1.4.0 19 | ``` 20 | 21 | ### 数据集 22 | 语音数据集:[TIMIT语音](https://github.com/philipperemy/timit) 23 | 训练集4620条,测试集1680条,共6300条 24 | 25 | 噪声数据集[Noisex-92](http://spib.linse.ufsc.br/noise.html) 26 | 27 | TIMIT数据集下载之后可能无法使用,需要将原来的格式进行转换一下,转换函数`timit_trans`在`util\utils.py`中 28 | 29 | ## Usage 30 | 31 | ### Clone 32 | 33 | ```shell script 34 | git clone git@github.com:PandoraLS/SpeechEnhancement.git 35 | ``` 36 | 37 | ### Train(train.py) 38 | 39 | 使用 `train.py` 训练模型,接收如下参数: 40 | 41 | - `-h`,显示帮助信息 42 | - `-C`, `--config`, 指定训练相关的配置文件。它们通常被存放于`config/train/`目录下,拓展名为`json5` 43 | - `-R`, `--resume`, 从最近一次保存的模型断点处继续训练 44 | 45 | 语法:`python train.py [-h] -C CONFIG [-R]`,例如: 46 | 47 | ```shell script 48 | python train.py -C config/20121212_noALoss.json5 49 | # 训练模型所用的配置文件为 config/20121212_noALoss.json5 50 | # 默认使用所有的GPU训练。若没有GPU,则使用CPU 51 | 52 | CUDA_VISIBLE_DEVICES=1,2 python train.py -C config/20121212_noALoss.json5 53 | # 训练模型所用的配置文件为 config/20121212_noALoss.json5 54 | # 使用索引为1、2的GPU训练 55 | 56 | CUDA_VISIBLE_DEVICES=1,2 python train.py -C config/20121212_noALoss.json5 -R 57 | # 训练模型所用的配置文件为 config/20121212_noALoss.json5 58 | # 使用索引为1、2的GPU训练 59 | # 从最近一次保存的模型断点处继续训练 60 | ``` 61 | 62 | 补充说明: 63 | - 一般训练所需要的配置文件都放置在`config/`目录下,配置文件拓展名为`json5` 64 | - 配置文件中的参数作用见“参数说明”部分 65 | 66 | ### Enhancement(enhancement.py) 67 | 68 | TODO 69 | 70 | ### Test(test.py) 71 | 72 | TODO 73 | 74 | ### Visualization 75 | 76 | 训练过程中产生的所有日志信息都会存储在`//`目录下。这里的``指配置文件中的 `root_dir`参数的值,``指配置文件名。 77 | 78 | 假设用于训练的配置文件为`config/train/sample_16384.json5`,`sample_16384.json`中`root_dir`参数的值为`/home/Exp/UNetGAN/`,那么训练过程中产生的日志文件会存储在 `/home/Exp/UNetGAN/sample_16384/` 目录下。该目录包含以下内容: 79 | 80 | - `logs/`: 存储`Tensorboard`相关的数据,包含损失曲线,语音波形,语音文件等 81 | - `checkpoints/`: 存储模型训练过程中产生的所有断点,后续可通过这些断点来重启训练或进行语音增强 82 | - `.json`文件: 训练时使用的配置文件的备份 83 | 84 | ## 参数说明 85 | 86 | 在训练,测试与增强时都需要指定具体的配置文件,本节来说明配置文件中的参数。 87 | 88 | ### 训练参数 89 | 90 | 训练过程中产生的日志信息会存放在`//`目录下 91 | 92 | ```json5 93 | { 94 | "seed": 0, // 为Numpy,PyTorch设置随机种子,尽可能保证实验的可重复性 95 | "description": "描述部分", // 实验描述,会限制在 tensorboard 的 text 面板 中 96 | "root_dir": "~/uestc/xiaomi_code/SpeechEnhancement", // 项目根目录 97 | "cudnn_deterministic": false, // 开启可保证实验的可重复性,但影响性能 98 | "trainer": { 99 | "epochs": 1200, // 实验进行的总轮次 100 | "save_checkpoint_interval": 10, // 存储模型断点的间隔 101 | "joint": { 102 | "stoi_factor": 1., // 联合损失函数的stoi_factor 103 | "sdr_factor": 5000., // 联合损失函数 sdr_factor 104 | "rmse_factor": 10. // 联合损失函数 rmse_factor 105 | }, 106 | "validation": { 107 | "interval": 10, // 在验证集上进行验证的间隔,每做一次验证都会消耗大量的时间 108 | "find_max": true, 109 | "custom": { 110 | "visualize_audio_limit": 20, // 验证时 Tensorboard 中可视化音频文件的数量 111 | "visualize_waveform_limit": 20, // 验证时 Tensorboard 中可视化语音波形的数量 112 | "visualize_spectrogram_limit": 20, // 验证时 Tensorboard 中可视化语谱图的数量 113 | "sample_length": 16384 // 验证时的采样长度,与模型训练时指定的采样长度有关 114 | } 115 | } 116 | }, 117 | "model": { 118 | "module": "model.simple_cnn", // 存放模型的文件 119 | "main": "BaseCNN", // 模型的类 120 | "args": {} // 传递给模型的参数 121 | }, 122 | "loss_function": { 123 | "module": "util.loss", // 在joint train中不起作用,该部分需要进一步修改 124 | "main": "rmse_loss", // 具体损失函数 125 | "args": {} // 传给该函数的参数 126 | }, 127 | "optimizer": { 128 | "lr": 0.0006, // 模型学习率 129 | "beta1": 0.9, // Adam动量参数1 130 | "beta2": 0.999 // Adam动量参数2 131 | }, 132 | "train_dataset": { 133 | "module": "dataset.waveform_dataset", 134 | "main": "WaveformDataset", 135 | "args": { 136 | "dataset": "~/uestc/xiaomi_code/SpeechEnhancement/dataset/train.txt", 137 | "limit": null, 138 | "offset": 0, 139 | "sample_length": 16384, 140 | "train": true 141 | } 142 | }, 143 | "validation_dataset": { 144 | "module": "dataset.waveform_dataset", 145 | "main": "WaveformDataset", 146 | "args": { 147 | "dataset": "~/uestc/xiaomi_code/SpeechEnhancement/dataset/val.txt", 148 | "limit": 400, 149 | "offset": 0, 150 | "train": false 151 | } 152 | }, 153 | "train_dataloader": { 154 | "batch_size": 100, 155 | "num_workers": 40, 156 | "shuffle": true, 157 | "pin_memory": true 158 | } 159 | } 160 | ``` 161 | 162 | ## 可重复性 163 | 164 | 本项目已经将可以设置随机种子的位置抽离成了可配置的参数,这保证了基本的可重复性。 165 | 如果你使用 CuDNN 作为后端,还可以进一步指定确定性参数,但这会影响性能。 166 | 167 | 本项目抽离出了部分随机种子,来尽可能保证实验的可重复性。 168 | 169 | - CPU 训练后,GPU 接着训练,反之亦然 170 | - 使用 N 个 GPU 训练一定 epochs 后,使用 M 个 GPU 继续训练,这里的 N 不等于 M 171 | - 项目使用了随机上插值,目前未找到任何方法来保证这个操作的可重复性。 172 | 173 | ## Contributing 174 | 175 | This is a open-source project. Fork the project, complete the code and send pull request. 176 | -------------------------------------------------------------------------------- /config/20200105_lisen.json5: -------------------------------------------------------------------------------- 1 | { 2 | "seed": 0, 3 | "description": "", 4 | "root_dir": "~/uestc/Research/SpeechEnhancement", 5 | "cudnn_deterministic": false, 6 | "trainer": { 7 | "epochs": 900, 8 | "additional_loss_factor": 20, 9 | "adversarial_loss_factor": 1, 10 | "soft_label": true, 11 | "save_checkpoint_interval": 20, 12 | "validation": { 13 | "interval": 20, 14 | "find_max": true, 15 | "custom": { 16 | "visualize_audio_limit": 20, 17 | "visualize_waveform_limit": 20, 18 | "visualize_spectrogram_limit": 20, 19 | "sample_length": 16384 20 | } 21 | } 22 | }, 23 | "generator_model": { 24 | "module": "model.generator_basic_model", 25 | "main": "GeneratorBasicModel", 26 | "args": {} 27 | }, 28 | "discriminator_model": { 29 | "module": "model.discriminator_basic_model", 30 | "main": "DiscriminatorBasicModel", 31 | "args": {} 32 | }, 33 | "additional_loss_function": { 34 | "module": "util.loss", 35 | "main": "mse_loss", 36 | "args": {} 37 | }, 38 | "optimizer": { 39 | "G_lr": 0.0002, 40 | "D_lr": 0.0002, 41 | "beta1": 0.9, 42 | "beta2": 0.999 43 | }, 44 | "train_dataset": { 45 | "module": "dataset.waveform_dataset", 46 | "main": "WaveformDataset", 47 | "args": { 48 | "dataset": "~/uestc/code/UNetGAN-master/dataset/train.txt", 49 | "limit": null, 50 | "offset": 0, 51 | "sample_length": 16384, 52 | "train": true 53 | } 54 | }, 55 | "validation_dataset": { 56 | "module": "dataset.waveform_dataset", 57 | "main": "WaveformDataset", 58 | "args": { 59 | "dataset": "~/uestc/code/UNetGAN-master/dataset/val.txt", 60 | "limit": 400, 61 | "offset": 0, 62 | "train": false 63 | } 64 | }, 65 | "train_dataloader": { 66 | "batch_size": 50, 67 | "num_workers": 40, 68 | "shuffle": true, 69 | "pin_memory": true 70 | } 71 | } -------------------------------------------------------------------------------- /config/20200323_joint_simple_cnn.json5: -------------------------------------------------------------------------------- 1 | { 2 | "seed": 0, 3 | "description": "", 4 | "root_dir": "~/uestc/xiaomi_code/SpeechEnhancement", 5 | "cudnn_deterministic": false, 6 | "trainer": { 7 | "epochs": 200, 8 | "save_checkpoint_interval": 10, 9 | "joint": { 10 | "stoi_factor": 1., 11 | "sdr_factor": 5000., 12 | "rmse_factor": 10. 13 | }, 14 | "validation": { 15 | "interval": 10, 16 | "find_max": true, 17 | "custom": { 18 | "visualize_audio_limit": 20, 19 | "visualize_waveform_limit": 20, 20 | "visualize_spectrogram_limit": 20, 21 | "sample_length": 16384 22 | } 23 | } 24 | }, 25 | "model": { 26 | "module": "model.simple_cnn", 27 | "main": "BaseCNN", 28 | "args": {} 29 | }, 30 | "loss_function": { 31 | "module": "util.loss", 32 | "main": "rmse_loss", 33 | "args": {} 34 | }, 35 | "optimizer": { 36 | "lr": 1e-4, 37 | "beta1": 0.9, 38 | "beta2": 0.999 39 | }, 40 | "train_dataset": { 41 | "module": "dataset.waveform_dataset", 42 | "main": "WaveformDataset", 43 | "args": { 44 | "dataset": "~/uestc/xiaomi_code/SpeechEnhancement/dataset/train.txt", 45 | "limit": null, 46 | "offset": 0, 47 | "sample_length": 16384, 48 | "train": true 49 | } 50 | }, 51 | "validation_dataset": { 52 | "module": "dataset.waveform_dataset", 53 | "main": "WaveformDataset", 54 | "args": { 55 | "dataset": "~/uestc/xiaomi_code/SpeechEnhancement/dataset/val.txt", 56 | "limit": 400, 57 | "offset": 0, 58 | "train": false 59 | } 60 | }, 61 | "train_dataloader": { 62 | "batch_size": 100, 63 | "num_workers": 40, 64 | "shuffle": true, 65 | "pin_memory": true 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /config/20200323_simple_cnn.json5: -------------------------------------------------------------------------------- 1 | { 2 | "seed": 0, 3 | "description": "", 4 | "root_dir": "~/uestc/xiaomi_code/SpeechEnhancement", 5 | "cudnn_deterministic": false, 6 | "trainer": { 7 | "epochs": 200, 8 | "save_checkpoint_interval": 10, 9 | "validation": { 10 | "interval": 10, 11 | "find_max": true, 12 | "custom": { 13 | "visualize_audio_limit": 20, 14 | "visualize_waveform_limit": 20, 15 | "visualize_spectrogram_limit": 20, 16 | "sample_length": 16384 17 | } 18 | } 19 | }, 20 | "model": { 21 | "module": "model.simple_cnn", 22 | "main": "BaseCNN", 23 | "args": {} 24 | }, 25 | "loss_function": { 26 | "module": "util.loss", 27 | "main": "rmse_loss", 28 | "args": {} 29 | }, 30 | "optimizer": { 31 | "lr": 1e-4, 32 | "beta1": 0.9, 33 | "beta2": 0.999 34 | }, 35 | "train_dataset": { 36 | "module": "dataset.waveform_dataset", 37 | "main": "WaveformDataset", 38 | "args": { 39 | "dataset": "~/uestc/xiaomi_code/SpeechEnhancement/dataset/train.txt", 40 | "limit": null, 41 | "offset": 0, 42 | "sample_length": 16384, 43 | "train": true 44 | } 45 | }, 46 | "validation_dataset": { 47 | "module": "dataset.waveform_dataset", 48 | "main": "WaveformDataset", 49 | "args": { 50 | "dataset": "~/uestc/xiaomi_code/SpeechEnhancement/dataset/val.txt", 51 | "limit": 400, 52 | "offset": 0, 53 | "train": false 54 | } 55 | }, 56 | "train_dataloader": { 57 | "batch_size": 600, 58 | "num_workers": 40, 59 | "shuffle": true, 60 | "pin_memory": true 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /config/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PandoraLS/SpeechEnhancement/f548eaafbe524a40c8cfd2221f7adf3a444b7a7d/config/__init__.py -------------------------------------------------------------------------------- /dataset/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PandoraLS/SpeechEnhancement/f548eaafbe524a40c8cfd2221f7adf3a444b7a7d/dataset/__init__.py -------------------------------------------------------------------------------- /dataset/train.txt: -------------------------------------------------------------------------------- 1 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_FAKS0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_FAKS0_SA1.wav 2 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_FAKS0_SX133.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_FAKS0_SX133.wav 3 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_FDAC1_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_FDAC1_SA1.wav 4 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_FDAW0_SX56.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_FDAW0_SX56.wav 5 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_FETB0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_FETB0_SA2.wav 6 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_FETB0_SX338.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_FETB0_SX338.wav 7 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_FJEM0_SI1264.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_FJEM0_SI1264.wav 8 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_FJEM0_SX274.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_FJEM0_SX274.wav 9 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_FJSP0_SX174.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_FJSP0_SX174.wav 10 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_FSAH0_SX164.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_FSAH0_SX164.wav 11 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_FSJK1_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_FSJK1_SA1.wav 12 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_FSJK1_SI2285.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_FSJK1_SI2285.wav 13 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_FSJK1_SX305.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_FSJK1_SX305.wav 14 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_FSMA0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_FSMA0_SA1.wav 15 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_FSMA0_SX361.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_FSMA0_SX361.wav 16 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_FTBR0_SI921.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_FTBR0_SI921.wav 17 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_FTBR0_SX381.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_FTBR0_SX381.wav 18 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_FVFB0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_FVFB0_SA2.wav 19 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_FVMH0_SX386.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_FVMH0_SX386.wav 20 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_MCPM0_SX204.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_MCPM0_SX204.wav 21 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_MCPM0_SX24.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_MCPM0_SX24.wav 22 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_MDAB0_SX229.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_MDAB0_SX229.wav 23 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_MDAC0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_MDAC0_SA1.wav 24 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_MDAC0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_MDAC0_SA2.wav 25 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_MDAC0_SI1261.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_MDAC0_SI1261.wav 26 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_MDPK0_SI552.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_MDPK0_SI552.wav 27 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_MEDR0_SX114.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_MEDR0_SX114.wav 28 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_MJWT0_SX31.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_MJWT0_SX31.wav 29 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_MKLW0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_MKLW0_SA2.wav 30 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_MMGG0_SI1079.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_MMGG0_SI1079.wav 31 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_MMGG0_SX449.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_MMGG0_SX449.wav 32 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_MMRP0_SI2034.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_MMRP0_SI2034.wav 33 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_MPGH0_SX294.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_MPGH0_SX294.wav 34 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_MRAI0_SI2052.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_MRAI0_SI2052.wav 35 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_MRAI0_SX72.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_MRAI0_SX72.wav 36 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_MRCG0_SX78.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_MRCG0_SX78.wav 37 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_MRDD0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_MRDD0_SA2.wav 38 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_MREB0_SX385.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_MREB0_SX385.wav 39 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_MRJO0_SI1624.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_MRJO0_SI1624.wav 40 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_MRJO0_SX194.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_MRJO0_SX194.wav 41 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_MRJO0_SX374.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_MRJO0_SX374.wav 42 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_MRSO0_SX309.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_MRSO0_SX309.wav 43 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_MRWS0_SI1732.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_MRWS0_SI1732.wav 44 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_MTJS0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_MTJS0_SA1.wav 45 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_MTJS0_SX22.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_MTJS0_SX22.wav 46 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_MWAD0_SX342.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_MWAD0_SX342.wav 47 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_MWAD0_SX72.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_MWAD0_SX72.wav 48 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR1_MWBT0_SI1553.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR1_MWBT0_SI1553.wav 49 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_FAJW0_SX273.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_FAJW0_SX273.wav 50 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_FAJW0_SX363.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_FAJW0_SX363.wav 51 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_FCAJ0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_FCAJ0_SA2.wav 52 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_FCAJ0_SI849.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_FCAJ0_SI849.wav 53 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_FCMM0_SI1083.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_FCMM0_SI1083.wav 54 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_FCMM0_SI453.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_FCMM0_SI453.wav 55 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_FCMM0_SX183.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_FCMM0_SX183.wav 56 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_FCYL0_SI667.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_FCYL0_SI667.wav 57 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_FDAS1_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_FDAS1_SA2.wav 58 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_FEAC0_SX255.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_FEAC0_SX255.wav 59 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_FEAC0_SX345.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_FEAC0_SX345.wav 60 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_FEAC0_SX435.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_FEAC0_SX435.wav 61 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_FHLM0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_FHLM0_SA2.wav 62 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_FJAS0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_FJAS0_SA2.wav 63 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_FJAS0_SI1400.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_FJAS0_SI1400.wav 64 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_FJKL0_SX212.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_FJKL0_SX212.wav 65 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_FJKL0_SX302.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_FJKL0_SX302.wav 66 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_FJRE0_SX36.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_FJRE0_SX36.wav 67 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_FJWB0_SI635.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_FJWB0_SI635.wav 68 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_FKAA0_SX308.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_FKAA0_SX308.wav 69 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_FKAA0_SX398.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_FKAA0_SX398.wav 70 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_FLMA0_SX433.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_FLMA0_SX433.wav 71 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_FLMA0_SX73.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_FLMA0_SX73.wav 72 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_FLMC0_SI742.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_FLMC0_SI742.wav 73 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_FMJB0_SI1177.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_FMJB0_SI1177.wav 74 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_FPJF0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_FPJF0_SA1.wav 75 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_FPJF0_SX352.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_FPJF0_SX352.wav 76 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_FRAM1_SX370.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_FRAM1_SX370.wav 77 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_FSCN0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_FSCN0_SA1.wav 78 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_FSCN0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_FSCN0_SA2.wav 79 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_FSKL0_SX449.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_FSKL0_SX449.wav 80 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_FSRH0_SX311.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_FSRH0_SX311.wav 81 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MABW0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MABW0_SA2.wav 82 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MABW0_SI1664.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MABW0_SI1664.wav 83 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MABW0_SX404.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MABW0_SX404.wav 84 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MARC0_SX288.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MARC0_SX288.wav 85 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MBJV0_SX77.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MBJV0_SX77.wav 86 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MCTM0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MCTM0_SA2.wav 87 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MCTM0_SI720.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MCTM0_SI720.wav 88 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MCTM0_SX270.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MCTM0_SX270.wav 89 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MDBB0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MDBB0_SA1.wav 90 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MDBB0_SI565.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MDBB0_SI565.wav 91 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MDBP0_SI1158.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MDBP0_SI1158.wav 92 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MDEM0_SI608.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MDEM0_SI608.wav 93 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MDLB0_SI1306.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MDLB0_SI1306.wav 94 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MDLB0_SX46.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MDLB0_SX46.wav 95 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MDLC2_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MDLC2_SA1.wav 96 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MDMT0_SI2341.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MDMT0_SI2341.wav 97 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MDMT0_SX122.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MDMT0_SX122.wav 98 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MDPS0_SX359.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MDPS0_SX359.wav 99 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MDPS0_SX449.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MDPS0_SX449.wav 100 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MDSS0_SX171.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MDSS0_SX171.wav 101 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MDWD0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MDWD0_SA1.wav 102 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MDWD0_SX270.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MDWD0_SX270.wav 103 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MEFG0_SX105.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MEFG0_SX105.wav 104 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MHRM0_SX148.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MHRM0_SX148.wav 105 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MJAE0_SI2154.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MJAE0_SI2154.wav 106 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MJAR0_SX278.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MJAR0_SX278.wav 107 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MJAR0_SX98.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MJAR0_SX98.wav 108 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MJEB0_SX296.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MJEB0_SX296.wav 109 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MJHI0_SI1328.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MJHI0_SI1328.wav 110 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MJMA0_SX55.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MJMA0_SX55.wav 111 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MJMD0_SI2288.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MJMD0_SI2288.wav 112 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MJRP0_SX225.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MJRP0_SX225.wav 113 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MJRP0_SX315.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MJRP0_SX315.wav 114 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MKAH0_SX448.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MKAH0_SX448.wav 115 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MKAJ0_SI2044.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MKAJ0_SI2044.wav 116 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MKAJ0_SX64.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MKAJ0_SX64.wav 117 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MKDT0_SX83.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MKDT0_SX83.wav 118 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MKJO0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MKJO0_SA2.wav 119 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MMAA0_SX305.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MMAA0_SX305.wav 120 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MMAG0_SI496.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MMAG0_SI496.wav 121 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MMDM2_SI1452.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MMDM2_SI1452.wav 122 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MMDM2_SI1555.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MMDM2_SI1555.wav 123 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MMXS0_SX426.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MMXS0_SX426.wav 124 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MPDF0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MPDF0_SA1.wav 125 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MPGL0_SI1099.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MPGL0_SI1099.wav 126 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MPPC0_SX242.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MPPC0_SX242.wav 127 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MPPC0_SX62.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MPPC0_SX62.wav 128 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MPRB0_SX305.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MPRB0_SX305.wav 129 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MRAB0_SI1224.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MRAB0_SI1224.wav 130 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MRAB0_SX234.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MRAB0_SX234.wav 131 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MRAB0_SX324.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MRAB0_SX324.wav 132 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MRCZ0_SI1541.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MRCZ0_SI1541.wav 133 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MRCZ0_SX11.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MRCZ0_SX11.wav 134 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MRGS0_SI1986.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MRGS0_SI1986.wav 135 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MRHL0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MRHL0_SA2.wav 136 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MRHL0_SX255.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MRHL0_SX255.wav 137 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MRJH0_SX79.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MRJH0_SX79.wav 138 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MRJM0_SI1095.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MRJM0_SI1095.wav 139 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MRJM1_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MRJM1_SA1.wav 140 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MRJM1_SI1928.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MRJM1_SI1928.wav 141 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MRLJ0_SI1420.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MRLJ0_SI1420.wav 142 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MRLR0_SI1196.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MRLR0_SI1196.wav 143 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MRLR0_SI1826.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MRLR0_SI1826.wav 144 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MRLR0_SX386.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MRLR0_SX386.wav 145 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MRMS0_SX120.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MRMS0_SX120.wav 146 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MSAT0_SX176.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MSAT0_SX176.wav 147 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MTAS1_SI2098.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MTAS1_SI2098.wav 148 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MTAT1_SX59.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MTAT1_SX59.wav 149 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MTDB0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MTDB0_SA1.wav 150 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MTDB0_SI1401.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MTDB0_SI1401.wav 151 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MTJG0_SI2157.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MTJG0_SI2157.wav 152 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MTMR0_SI1303.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MTMR0_SI1303.wav 153 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MTMR0_SI1933.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MTMR0_SI1933.wav 154 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MWEW0_SI1361.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MWEW0_SI1361.wav 155 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MWEW0_SI1991.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MWEW0_SI1991.wav 156 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MWEW0_SI731.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MWEW0_SI731.wav 157 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR2_MWSB0_SX366.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR2_MWSB0_SX366.wav 158 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_FCMH0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_FCMH0_SA2.wav 159 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_FCMH0_SI824.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_FCMH0_SI824.wav 160 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_FCMH0_SX374.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_FCMH0_SX374.wav 161 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_FDJH0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_FDJH0_SA1.wav 162 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_FEME0_SI875.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_FEME0_SI875.wav 163 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_FEME0_SX65.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_FEME0_SX65.wav 164 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_FJLG0_SX359.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_FJLG0_SX359.wav 165 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_FKMS0_SX410.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_FKMS0_SX410.wav 166 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_FLJD0_SI2146.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_FLJD0_SI2146.wav 167 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_FLJD0_SX256.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_FLJD0_SX256.wav 168 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_FLTM0_SX260.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_FLTM0_SX260.wav 169 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_FMJF0_SX444.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_FMJF0_SX444.wav 170 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_FSJW0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_FSJW0_SA1.wav 171 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_FSJW0_SX73.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_FSJW0_SX73.wav 172 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MADC0_SI1997.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MADC0_SI1997.wav 173 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MADC0_SX17.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MADC0_SX17.wav 174 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MAKB0_SI1016.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MAKB0_SI1016.wav 175 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MBDG0_SX203.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MBDG0_SX203.wav 176 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MBWM0_SX404.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MBWM0_SX404.wav 177 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MCAL0_SX418.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MCAL0_SX418.wav 178 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MCDC0_SX212.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MCDC0_SX212.wav 179 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MCDD0_SI883.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MCDD0_SI883.wav 180 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MCDD0_SX163.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MCDD0_SX163.wav 181 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MCDD0_SX343.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MCDD0_SX343.wav 182 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MCTW0_SI1373.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MCTW0_SI1373.wav 183 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MDDC0_SX429.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MDDC0_SX429.wav 184 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MDJM0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MDJM0_SA1.wav 185 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MDJM0_SI825.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MDJM0_SI825.wav 186 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MDLC0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MDLC0_SA1.wav 187 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MDLC0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MDLC0_SA2.wav 188 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MDLH0_SX250.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MDLH0_SX250.wav 189 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MDLH0_SX340.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MDLH0_SX340.wav 190 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MDSS1_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MDSS1_SA1.wav 191 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MDSS1_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MDSS1_SA2.wav 192 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MDSS1_SI1327.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MDSS1_SI1327.wav 193 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MDSS1_SX67.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MDSS1_SX67.wav 194 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MFMC0_SI502.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MFMC0_SI502.wav 195 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MFMC0_SX412.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MFMC0_SX412.wav 196 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MGAF0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MGAF0_SA2.wav 197 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MGJF0_SX191.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MGJF0_SX191.wav 198 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MILB0_SX273.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MILB0_SX273.wav 199 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MILB0_SX363.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MILB0_SX363.wav 200 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MJES0_SI2014.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MJES0_SI2014.wav 201 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MJES0_SX124.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MJES0_SX124.wav 202 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MJJB0_SI1277.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MJJB0_SI1277.wav 203 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MJJG0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MJJG0_SA1.wav 204 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MJKR0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MJKR0_SA2.wav 205 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MJLG1_SI1012.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MJLG1_SI1012.wav 206 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MJLG1_SI1642.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MJLG1_SI1642.wav 207 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MJLG1_SX202.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MJLG1_SX202.wav 208 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MJMP0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MJMP0_SA1.wav 209 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MJMP0_SX95.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MJMP0_SX95.wav 210 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MJRH1_SI1558.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MJRH1_SI1558.wav 211 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MJRH1_SX64.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MJRH1_SX64.wav 212 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MJVW0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MJVW0_SA2.wav 213 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MJVW0_SX383.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MJVW0_SX383.wav 214 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MKCH0_SI2008.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MKCH0_SI2008.wav 215 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MKLS1_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MKLS1_SA2.wav 216 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MKLS1_SI915.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MKLS1_SI915.wav 217 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MKLS1_SX195.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MKLS1_SX195.wav 218 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MKXL0_SX105.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MKXL0_SX105.wav 219 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MLNS0_SI777.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MLNS0_SI777.wav 220 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MLNT0_SX282.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MLNT0_SX282.wav 221 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MMAB0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MMAB0_SA1.wav 222 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MMAM0_SI1597.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MMAM0_SI1597.wav 223 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MMAR0_SX76.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MMAR0_SX76.wav 224 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MMEB0_SI1357.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MMEB0_SI1357.wav 225 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MMEB0_SX187.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MMEB0_SX187.wav 226 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MMJB1_SX58.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MMJB1_SX58.wav 227 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MMJR0_SX118.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MMJR0_SX118.wav 228 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MMJR0_SX388.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MMJR0_SX388.wav 229 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MMSM0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MMSM0_SA2.wav 230 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MMSM0_SX26.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MMSM0_SX26.wav 231 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MMSM0_SX296.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MMSM0_SX296.wav 232 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MMWH0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MMWH0_SA2.wav 233 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MMWH0_SX9.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MMWH0_SX9.wav 234 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MPRD0_SX261.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MPRD0_SX261.wav 235 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MPRD0_SX441.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MPRD0_SX441.wav 236 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MRDS0_SX177.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MRDS0_SX177.wav 237 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MRDS0_SX267.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MRDS0_SX267.wav 238 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MREE0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MREE0_SA1.wav 239 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MREE0_SX204.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MREE0_SX204.wav 240 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MREE0_SX24.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MREE0_SX24.wav 241 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MREH1_SI2229.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MREH1_SI2229.wav 242 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MRJB1_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MRJB1_SA1.wav 243 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MRJB1_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MRJB1_SA2.wav 244 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MRJB1_SX120.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MRJB1_SX120.wav 245 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MRTJ0_SI1551.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MRTJ0_SI1551.wav 246 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MRTJ0_SI772.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MRTJ0_SI772.wav 247 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MRTK0_SX103.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MRTK0_SX103.wav 248 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MRWA0_SX433.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MRWA0_SX433.wav 249 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MTAA0_SX25.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MTAA0_SX25.wav 250 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MTDT0_SX184.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MTDT0_SX184.wav 251 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MTDT0_SX4.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MTDT0_SX4.wav 252 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MTHC0_SX25.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MTHC0_SX25.wav 253 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MTLB0_SX234.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MTLB0_SX234.wav 254 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MTPP0_SX68.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MTPP0_SX68.wav 255 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MWDK0_SX176.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MWDK0_SX176.wav 256 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR3_MWGR0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR3_MWGR0_SA2.wav 257 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_FADG0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_FADG0_SA2.wav 258 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_FALR0_SI1325.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_FALR0_SI1325.wav 259 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_FBAS0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_FBAS0_SA1.wav 260 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_FBAS0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_FBAS0_SA2.wav 261 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_FBMJ0_SX156.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_FBMJ0_SX156.wav 262 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_FCFT0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_FCFT0_SA2.wav 263 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_FCFT0_SX98.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_FCFT0_SX98.wav 264 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_FCRH0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_FCRH0_SA1.wav 265 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_FEDW0_SX94.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_FEDW0_SX94.wav 266 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_FEEH0_SI471.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_FEEH0_SI471.wav 267 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_FEEH0_SX122.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_FEEH0_SX122.wav 268 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_FGJD0_SI818.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_FGJD0_SI818.wav 269 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_FJWB1_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_FJWB1_SA2.wav 270 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_FJWB1_SX435.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_FJWB1_SX435.wav 271 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_FKDW0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_FKDW0_SA1.wav 272 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_FKDW0_SX307.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_FKDW0_SX307.wav 273 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_FMCM0_SX190.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_FMCM0_SX190.wav 274 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_FPAF0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_FPAF0_SA2.wav 275 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_FPAF0_SX154.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_FPAF0_SX154.wav 276 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_FRNG0_SX95.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_FRNG0_SX95.wav 277 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_FSSB0_SI1082.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_FSSB0_SI1082.wav 278 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_FSSB0_SI1712.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_FSSB0_SI1712.wav 279 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_FSSB0_SI2342.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_FSSB0_SI2342.wav 280 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_FSSB0_SX452.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_FSSB0_SX452.wav 281 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MAEB0_SI990.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MAEB0_SI990.wav 282 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MARW0_SX349.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MARW0_SX349.wav 283 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MBMA0_SX142.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MBMA0_SX142.wav 284 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MCDR0_SX164.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MCDR0_SX164.wav 285 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MCDR0_SX434.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MCDR0_SX434.wav 286 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MDCD0_SX335.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MDCD0_SX335.wav 287 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MDLS0_SI998.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MDLS0_SI998.wav 288 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MGAG0_SI1321.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MGAG0_SI1321.wav 289 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MGAG0_SI691.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MGAG0_SI691.wav 290 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MGJC0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MGJC0_SA1.wav 291 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MGMM0_SI1129.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MGMM0_SI1129.wav 292 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MGRP0_SI1947.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MGRP0_SI1947.wav 293 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MGRP0_SX237.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MGRP0_SX237.wav 294 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MGXP0_SX7.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MGXP0_SX7.wav 295 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MJDC0_SX441.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MJDC0_SX441.wav 296 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MJDM1_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MJDM1_SA1.wav 297 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MJDM1_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MJDM1_SA2.wav 298 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MJEE0_SX337.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MJEE0_SX337.wav 299 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MJLB0_SI986.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MJLB0_SI986.wav 300 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MJLB0_SX266.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MJLB0_SX266.wav 301 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MJLS0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MJLS0_SA2.wav 302 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MJMM0_SX355.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MJMM0_SX355.wav 303 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MJPM1_SX41.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MJPM1_SX41.wav 304 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MJRH0_SX135.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MJRH0_SX135.wav 305 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MJRH0_SX225.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MJRH0_SX225.wav 306 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MJSR0_SI1424.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MJSR0_SI1424.wav 307 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MKAM0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MKAM0_SA1.wav 308 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MKAM0_SI1316.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MKAM0_SI1316.wav 309 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MKCL0_SI1721.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MKCL0_SI1721.wav 310 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MKCL0_SX11.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MKCL0_SX11.wav 311 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MKCL0_SX191.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MKCL0_SX191.wav 312 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MLEL0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MLEL0_SA1.wav 313 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MLEL0_SI616.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MLEL0_SI616.wav 314 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MLJB0_SX50.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MLJB0_SX50.wav 315 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MLJH0_SI694.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MLJH0_SI694.wav 316 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MLSH0_SI787.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MLSH0_SI787.wav 317 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MMBS0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MMBS0_SA1.wav 318 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MMDM0_SX411.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MMDM0_SX411.wav 319 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MPEB0_SI600.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MPEB0_SI600.wav 320 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MPLB0_SI2024.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MPLB0_SI2024.wav 321 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MPWM0_SI2279.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MPWM0_SI2279.wav 322 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MPWM0_SX317.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MPWM0_SX317.wav 323 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MRGM0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MRGM0_SA1.wav 324 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MRSP0_SI2059.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MRSP0_SI2059.wav 325 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MRSP0_SX439.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MRSP0_SX439.wav 326 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MSFH0_SX406.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MSFH0_SX406.wav 327 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MSMC0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MSMC0_SA1.wav 328 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MSMS0_SX173.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MSMS0_SX173.wav 329 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MSMS0_SX443.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MSMS0_SX443.wav 330 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MSTF0_SI1396.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MSTF0_SI1396.wav 331 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MTAS0_SX305.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MTAS0_SX305.wav 332 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MTEB0_SI1133.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MTEB0_SI1133.wav 333 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MTEB0_SX233.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MTEB0_SX233.wav 334 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MTLS0_SX110.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MTLS0_SX110.wav 335 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MTQC0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MTQC0_SA1.wav 336 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MTQC0_SX361.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MTQC0_SX361.wav 337 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MTQC0_SX451.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MTQC0_SX451.wav 338 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MTRC0_SX363.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MTRC0_SX363.wav 339 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MTRT0_SX237.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MTRT0_SX237.wav 340 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR4_MTRT0_SX417.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR4_MTRT0_SX417.wav 341 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FASW0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FASW0_SA2.wav 342 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FBJL0_SI2182.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FBJL0_SI2182.wav 343 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FBJL0_SX202.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FBJL0_SX202.wav 344 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FCAL1_SX323.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FCAL1_SX323.wav 345 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FCDR1_SX16.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FCDR1_SX16.wav 346 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FDMY0_SI567.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FDMY0_SI567.wav 347 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FDTD0_SX121.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FDTD0_SX121.wav 348 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FDTD0_SX321.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FDTD0_SX321.wav 349 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FEAR0_SX82.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FEAR0_SX82.wav 350 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FEXM0_SI1731.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FEXM0_SI1731.wav 351 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FGMD0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FGMD0_SA1.wav 352 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FGMD0_SI683.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FGMD0_SI683.wav 353 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FGMD0_SX413.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FGMD0_SX413.wav 354 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FHES0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FHES0_SA1.wav 355 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FHES0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FHES0_SA2.wav 356 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FHES0_SI1739.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FHES0_SI1739.wav 357 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FHES0_SI479.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FHES0_SI479.wav 358 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FJCS0_SX229.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FJCS0_SX229.wav 359 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FJSA0_SI2009.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FJSA0_SI2009.wav 360 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FJSA0_SX209.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FJSA0_SX209.wav 361 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FJSA0_SX29.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FJSA0_SX29.wav 362 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FLJA0_SX178.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FLJA0_SX178.wav 363 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FLJA0_SX358.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FLJA0_SX358.wav 364 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FLOD0_SX171.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FLOD0_SX171.wav 365 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FMAH0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FMAH0_SA1.wav 366 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FMPG0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FMPG0_SA1.wav 367 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FPMY0_SX196.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FPMY0_SX196.wav 368 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FPMY0_SX73.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FPMY0_SX73.wav 369 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FSAG0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FSAG0_SA2.wav 370 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FSDC0_SX142.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FSDC0_SX142.wav 371 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FSJG0_SI940.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FSJG0_SI940.wav 372 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FSJG0_SX310.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FSJG0_SX310.wav 373 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FSMM0_SI684.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FSMM0_SI684.wav 374 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FTBW0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FTBW0_SA2.wav 375 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FTBW0_SX265.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FTBW0_SX265.wav 376 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_FUTB0_SX124.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_FUTB0_SX124.wav 377 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MBGT0_SX441.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MBGT0_SX441.wav 378 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MBGT0_SX81.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MBGT0_SX81.wav 379 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MCLM0_SI2086.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MCLM0_SI2086.wav 380 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MCMB0_SI638.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MCMB0_SI638.wav 381 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MDAS0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MDAS0_SA2.wav 382 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MDAS0_SI1896.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MDAS0_SI1896.wav 383 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MDAS0_SX186.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MDAS0_SX186.wav 384 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MDHL0_SX89.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MDHL0_SX89.wav 385 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MDSJ0_SI832.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MDSJ0_SI832.wav 386 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MDWH0_SX305.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MDWH0_SX305.wav 387 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MDWK0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MDWK0_SA1.wav 388 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MDWK0_SX190.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MDWK0_SX190.wav 389 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MEGJ0_SI707.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MEGJ0_SI707.wav 390 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MEWM0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MEWM0_SA1.wav 391 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MFER0_SX232.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MFER0_SX232.wav 392 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MFGK0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MFGK0_SA2.wav 393 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MFGK0_SI1451.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MFGK0_SI1451.wav 394 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MGES0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MGES0_SA2.wav 395 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MGES0_SI1481.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MGES0_SI1481.wav 396 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MGES0_SX41.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MGES0_SX41.wav 397 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MGSH0_SI1176.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MGSH0_SI1176.wav 398 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MHIT0_SX83.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MHIT0_SX83.wav 399 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MHMG0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MHMG0_SA1.wav 400 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MHMG0_SI1365.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MHMG0_SI1365.wav 401 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MHMG0_SI1995.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MHMG0_SI1995.wav 402 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MHMG0_SX15.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MHMG0_SX15.wav 403 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MJDM0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MJDM0_SA1.wav 404 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MJDM0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MJDM0_SA2.wav 405 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MJDM0_SX170.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MJDM0_SX170.wav 406 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MJDM0_SX80.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MJDM0_SX80.wav 407 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MJPG0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MJPG0_SA2.wav 408 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MJXA0_SI2137.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MJXA0_SI2137.wav 409 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MMCC0_SI1338.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MMCC0_SI1338.wav 410 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MMDM1_SX243.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MMDM1_SX243.wav 411 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MMVP0_SX294.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MMVP0_SX294.wav 412 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MMVP0_SX347.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MMVP0_SX347.wav 413 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MPMB0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MPMB0_SA1.wav 414 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MRAM0_SX195.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MRAM0_SX195.wav 415 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MREW1_SI1500.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MREW1_SI1500.wav 416 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MREW1_SI2130.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MREW1_SI2130.wav 417 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MREW1_SX330.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MREW1_SX330.wav 418 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MREW1_SX420.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MREW1_SX420.wav 419 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MRJM3_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MRJM3_SA1.wav 420 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MRJM3_SX8.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MRJM3_SX8.wav 421 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MRLD0_SI1594.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MRLD0_SI1594.wav 422 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MRPP0_SX194.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MRPP0_SX194.wav 423 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MRVG0_SX150.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MRVG0_SX150.wav 424 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MRVG0_SX420.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MRVG0_SX420.wav 425 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MSAS0_SX116.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MSAS0_SX116.wav 426 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MSDH0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MSDH0_SA2.wav 427 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MSFH1_SX100.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MSFH1_SX100.wav 428 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MTDP0_SI1521.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MTDP0_SI1521.wav 429 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MWAC0_SX251.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MWAC0_SX251.wav 430 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MWCH0_SX272.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MWCH0_SX272.wav 431 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MWEM0_SI1950.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MWEM0_SI1950.wav 432 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR5_MWSH0_SX346.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR5_MWSH0_SX346.wav 433 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_FBCH0_SI956.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_FBCH0_SI956.wav 434 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_FBCH0_SI959.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_FBCH0_SI959.wav 435 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_FBCH0_SX236.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_FBCH0_SX236.wav 436 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_FDRW0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_FDRW0_SA2.wav 437 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_FJDM2_SX322.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_FJDM2_SX322.wav 438 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_FKLC1_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_FKLC1_SA1.wav 439 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_FKLC1_SI1678.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_FKLC1_SI1678.wav 440 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_FKLC1_SX328.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_FKLC1_SX328.wav 441 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_FLAG0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_FLAG0_SA2.wav 442 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_FLNH0_SI1214.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_FLNH0_SI1214.wav 443 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_FLNH0_SX134.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_FLNH0_SX134.wav 444 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_FPAD0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_FPAD0_SA2.wav 445 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_FPAD0_SX356.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_FPAD0_SX356.wav 446 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_FSBK0_SI1069.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_FSBK0_SI1069.wav 447 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_FSBK0_SX79.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_FSBK0_SX79.wav 448 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_FSGF0_SX27.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_FSGF0_SX27.wav 449 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_FSGF0_SX387.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_FSGF0_SX387.wav 450 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_FTAJ0_SI699.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_FTAJ0_SI699.wav 451 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_FTAJ0_SX249.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_FTAJ0_SX249.wav 452 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_FTAJ0_SX429.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_FTAJ0_SX429.wav 453 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_MABC0_SX61.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_MABC0_SX61.wav 454 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_MBMA1_SX54.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_MBMA1_SX54.wav 455 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_MCAE0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_MCAE0_SA2.wav 456 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_MCMJ0_SI602.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_MCMJ0_SI602.wav 457 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_MCMJ0_SX14.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_MCMJ0_SX14.wav 458 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_MDRD0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_MDRD0_SA1.wav 459 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_MDSC0_SI967.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_MDSC0_SI967.wav 460 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_MEJL0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_MEJL0_SA1.wav 461 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_MESD0_SI1632.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_MESD0_SI1632.wav 462 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_MESD0_SX372.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_MESD0_SX372.wav 463 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_MJDH0_SX94.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_MJDH0_SX94.wav 464 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_MJFC0_SI1663.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_MJFC0_SI1663.wav 465 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_MJRK0_SX70.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_MJRK0_SX70.wav 466 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_MKES0_SI623.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_MKES0_SI623.wav 467 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_MKES0_SX443.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_MKES0_SX443.wav 468 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_MKLN0_SX68.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_MKLN0_SX68.wav 469 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_MMDB0_SI1617.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_MMDB0_SI1617.wav 470 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_MPAM1_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_MPAM1_SA1.wav 471 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_MPAM1_SX126.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_MPAM1_SX126.wav 472 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_MPAM1_SX216.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_MPAM1_SX216.wav 473 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_MPAM1_SX306.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_MPAM1_SX306.wav 474 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_MRJS0_SI1444.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_MRJS0_SI1444.wav 475 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_MRMB0_SI2211.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_MRMB0_SI2211.wav 476 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_MRXB0_SI1585.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_MRXB0_SI1585.wav 477 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_MRXB0_SI955.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_MRXB0_SI955.wav 478 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_MSDS0_SX177.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_MSDS0_SX177.wav 479 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_MSJK0_SI2226.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_MSJK0_SI2226.wav 480 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_MSJK0_SX336.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_MSJK0_SX336.wav 481 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR6_MSMR0_SX325.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR6_MSMR0_SX325.wav 482 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_FCAU0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_FCAU0_SA2.wav 483 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_FCJS0_SX347.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_FCJS0_SX347.wav 484 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_FDHC0_SX389.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_FDHC0_SX389.wav 485 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_FGWR0_SX228.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_FGWR0_SX228.wav 486 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_FGWR0_SX48.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_FGWR0_SX48.wav 487 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_FJEN0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_FJEN0_SA1.wav 488 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_FJEN0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_FJEN0_SA2.wav 489 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_FJEN0_SX417.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_FJEN0_SX417.wav 490 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_FJHK0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_FJHK0_SA2.wav 491 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_FJSK0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_FJSK0_SA2.wav 492 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_FJSK0_SX332.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_FJSK0_SX332.wav 493 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_FKDE0_SI2221.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_FKDE0_SI2221.wav 494 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_FKSR0_SX366.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_FKSR0_SX366.wav 495 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_FLAS0_SX318.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_FLAS0_SX318.wav 496 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_FLEH0_SX331.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_FLEH0_SX331.wav 497 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_FLET0_SI507.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_FLET0_SI507.wav 498 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_FLET0_SX57.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_FLET0_SX57.wav 499 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_FMKC0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_FMKC0_SA1.wav 500 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_FMKC0_SX352.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_FMKC0_SX352.wav 501 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_FMKC0_SX442.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_FMKC0_SX442.wav 502 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_FPAB1_SI2101.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_FPAB1_SI2101.wav 503 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_FPAC0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_FPAC0_SA2.wav 504 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_FPAC0_SI2011.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_FPAC0_SI2011.wav 505 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_FPAC0_SX391.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_FPAC0_SX391.wav 506 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_FREH0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_FREH0_SA1.wav 507 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_FREH0_SI1945.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_FREH0_SI1945.wav 508 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_FSPM0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_FSPM0_SA1.wav 509 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_FSPM0_SI1241.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_FSPM0_SI1241.wav 510 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_FTLH0_SX19.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_FTLH0_SX19.wav 511 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MADD0_SX88.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MADD0_SX88.wav 512 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MBAR0_SX149.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MBAR0_SX149.wav 513 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MBAR0_SX419.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MBAR0_SX419.wav 514 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MBBR0_SX65.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MBBR0_SX65.wav 515 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MBML0_SI1169.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MBML0_SI1169.wav 516 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MCLK0_SI2290.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MCLK0_SI2290.wav 517 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MCRE0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MCRE0_SA2.wav 518 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MCTH0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MCTH0_SA2.wav 519 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MDCM0_SX400.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MDCM0_SX400.wav 520 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MDED0_SX360.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MDED0_SX360.wav 521 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MDED0_SX90.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MDED0_SX90.wav 522 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MDKS0_SX346.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MDKS0_SX346.wav 523 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MDLC1_SX175.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MDLC1_SX175.wav 524 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MDLF0_SI2213.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MDLF0_SI2213.wav 525 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MDLF0_SX233.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MDLF0_SX233.wav 526 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MDLM0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MDLM0_SA2.wav 527 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MDLR1_SX39.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MDLR1_SX39.wav 528 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MDPB0_SX146.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MDPB0_SX146.wav 529 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MDVC0_SX36.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MDVC0_SX36.wav 530 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MERS0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MERS0_SA2.wav 531 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MERS0_SX389.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MERS0_SX389.wav 532 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MFXV0_SX195.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MFXV0_SX195.wav 533 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MJAI0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MJAI0_SA2.wav 534 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MJDG0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MJDG0_SA1.wav 535 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MJJM0_SI1251.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MJJM0_SI1251.wav 536 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MKAG0_SX439.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MKAG0_SX439.wav 537 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MKDR0_SI1903.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MKDR0_SI1903.wav 538 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MKJL0_SI1100.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MKJL0_SI1100.wav 539 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MKJL0_SX290.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MKJL0_SX290.wav 540 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MKLR0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MKLR0_SA2.wav 541 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MMDG0_SI520.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MMDG0_SI520.wav 542 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MMDG0_SX340.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MMDG0_SX340.wav 543 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MMWS1_SI1701.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MMWS1_SI1701.wav 544 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MNJM0_SI2210.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MNJM0_SI2210.wav 545 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MNLS0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MNLS0_SA2.wav 546 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MNLS0_SX223.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MNLS0_SX223.wav 547 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MNTW0_SX168.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MNTW0_SX168.wav 548 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MPAB0_SX318.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MPAB0_SX318.wav 549 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MPFU0_SX268.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MPFU0_SX268.wav 550 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MPFU0_SX358.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MPFU0_SX358.wav 551 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MRCS0_SI593.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MRCS0_SI593.wav 552 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MREM0_SI511.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MREM0_SI511.wav 553 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MRLJ1_SI1671.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MRLJ1_SI1671.wav 554 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MRMG0_SX90.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MRMG0_SX90.wav 555 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MRMS1_SI857.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MRMS1_SI857.wav 556 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MRPC0_SI493.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MRPC0_SI493.wav 557 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MRPC0_SX313.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MRPC0_SX313.wav 558 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MSDB0_SX17.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MSDB0_SX17.wav 559 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MSES0_SX239.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MSES0_SX239.wav 560 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MTER0_SX17.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MTER0_SX17.wav 561 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MTER0_SX257.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MTER0_SX257.wav 562 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MTKD0_SX17.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MTKD0_SX17.wav 563 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MTML0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MTML0_SA2.wav 564 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MTML0_SX255.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MTML0_SX255.wav 565 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MTMN0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MTMN0_SA1.wav 566 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MTMN0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MTMN0_SA2.wav 567 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MTPR0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MTPR0_SA1.wav 568 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MTPR0_SX340.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MTPR0_SX340.wav 569 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MTWH1_SX252.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MTWH1_SX252.wav 570 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MVRW0_SI2115.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MVRW0_SI2115.wav 571 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MVRW0_SX225.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MVRW0_SX225.wav 572 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MWRE0_SX247.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MWRE0_SX247.wav 573 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR7_MWRE0_SX67.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR7_MWRE0_SX67.wav 574 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR8_FCEG0_SX78.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR8_FCEG0_SX78.wav 575 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR8_FCMH1_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR8_FCMH1_SA1.wav 576 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR8_FJRB0_SI672.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR8_FJRB0_SI672.wav 577 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR8_FJSJ0_SI854.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR8_FJSJ0_SI854.wav 578 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR8_FMBG0_SX440.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR8_FMBG0_SX440.wav 579 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR8_FMLD0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR8_FMLD0_SA2.wav 580 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR8_FPLS0_SI960.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR8_FPLS0_SI960.wav 581 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR8_MAJC0_SI835.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR8_MAJC0_SI835.wav 582 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR8_MAJC0_SX295.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR8_MAJC0_SX295.wav 583 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR8_MBSB0_SX363.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR8_MBSB0_SX363.wav 584 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR8_MEJS0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR8_MEJS0_SA1.wav 585 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR8_MEJS0_SX160.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR8_MEJS0_SX160.wav 586 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR8_MJLN0_SI1449.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR8_MJLN0_SI1449.wav 587 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR8_MJLN0_SX279.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR8_MJLN0_SX279.wav 588 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR8_MJTC0_SI830.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR8_MJTC0_SI830.wav 589 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR8_MJTC0_SX110.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR8_MJTC0_SX110.wav 590 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR8_MJTH0_SI1296.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR8_MJTH0_SI1296.wav 591 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR8_MJTH0_SX396.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR8_MJTH0_SX396.wav 592 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR8_MKDD0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR8_MKDD0_SA1.wav 593 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR8_MKRG0_SI2121.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR8_MKRG0_SI2121.wav 594 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR8_MMPM0_SX161.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR8_MMPM0_SX161.wav 595 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR8_MMPM0_SX341.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR8_MMPM0_SX341.wav 596 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR8_MPAM0_SX199.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR8_MPAM0_SX199.wav 597 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR8_MRES0_SX227.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR8_MRES0_SX227.wav 598 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR8_MRLK0_SI2140.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR8_MRLK0_SI2140.wav 599 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR8_MRRE0_SI1334.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR8_MRRE0_SI1334.wav 600 | /home/lisen/uestc/Research/Dataset/ToyData/train_babble_0db/DR8_MRRE0_SX254.wav /home/lisen/uestc/Research/Dataset/ToyData/train_clean/DR8_MRRE0_SX254.wav 601 | -------------------------------------------------------------------------------- /dataset/val.txt: -------------------------------------------------------------------------------- 1 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR1_FDAC1_SI2104.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR1_FDAC1_SI2104.wav 2 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR1_MEDR0_SX24.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR1_MEDR0_SX24.wav 3 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR1_MJWT0_SX211.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR1_MJWT0_SX211.wav 4 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR1_MMRP0_SI717.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR1_MMRP0_SI717.wav 5 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR1_MPSW0_SI1067.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR1_MPSW0_SI1067.wav 6 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR1_MSTK0_SX214.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR1_MSTK0_SX214.wav 7 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR2_FCYL0_SX349.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR2_FCYL0_SX349.wav 8 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR2_FRLL0_SI805.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR2_FRLL0_SI805.wav 9 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR2_MBJV0_SI617.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR2_MBJV0_SI617.wav 10 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR2_MDBB0_SI1195.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR2_MDBB0_SI1195.wav 11 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR2_MGWT0_SX99.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR2_MGWT0_SX99.wav 12 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR2_MPRB0_SX215.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR2_MPRB0_SX215.wav 13 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR2_MWVW0_SI1476.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR2_MWVW0_SI1476.wav 14 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR3_FCMH0_SI2084.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR3_FCMH0_SI2084.wav 15 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR3_FPAZ0_SX423.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR3_FPAZ0_SX423.wav 16 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR3_MAKB0_SX206.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR3_MAKB0_SX206.wav 17 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR3_MAPV0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR3_MAPV0_SA2.wav 18 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR3_MDDC0_SI789.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR3_MDDC0_SI789.wav 19 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR3_MGAF0_SX202.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR3_MGAF0_SX202.wav 20 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR3_MGJF0_SX281.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR3_MGJF0_SX281.wav 21 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR3_MLNT0_SX12.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR3_MLNT0_SX12.wav 22 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR3_MMJR0_SX298.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR3_MMJR0_SX298.wav 23 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR4_MDMA0_SX440.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR4_MDMA0_SX440.wav 24 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR4_MDRM0_SX23.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR4_MDRM0_SX23.wav 25 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR4_MGMM0_SI1759.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR4_MGMM0_SI1759.wav 26 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR4_MRSP0_SX196.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR4_MRSP0_SX196.wav 27 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR4_MSMS0_SA1.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR4_MSMS0_SA1.wav 28 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR4_MSMS0_SI2063.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR4_MSMS0_SI2063.wav 29 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR4_MSTF0_SX46.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR4_MSTF0_SX46.wav 30 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR5_FASW0_SX110.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR5_FASW0_SX110.wav 31 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR5_FCAL1_SX143.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR5_FCAL1_SX143.wav 32 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR5_FHEW0_SX313.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR5_FHEW0_SX313.wav 33 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR5_FLMK0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR5_FLMK0_SA2.wav 34 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR5_FSMS1_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR5_FSMS1_SA2.wav 35 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR5_MCRC0_SI1092.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR5_MCRC0_SI1092.wav 36 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR5_MDRB0_SI544.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR5_MDRB0_SI544.wav 37 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR5_MPMB0_SI871.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR5_MPMB0_SI871.wav 38 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR6_FJDM2_SX232.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR6_FJDM2_SX232.wav 39 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR6_FLAG0_SX24.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR6_FLAG0_SX24.wav 40 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR6_MEAL0_SX347.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR6_MEAL0_SX347.wav 41 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR6_MJDH0_SI724.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR6_MJDH0_SI724.wav 42 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR6_MSMR0_SI1150.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR6_MSMR0_SI1150.wav 43 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR7_FISB0_SX409.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR7_FISB0_SX409.wav 44 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR7_FREH0_SX55.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR7_FREH0_SX55.wav 45 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR7_MDPB0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR7_MDPB0_SA2.wav 46 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR7_MHXL0_SI612.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR7_MHXL0_SI612.wav 47 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR7_MNLS0_SI1610.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR7_MNLS0_SI1610.wav 48 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR7_MPAR0_SI1576.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR7_MPAR0_SI1576.wav 49 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR8_FCEG0_SX168.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR8_FCEG0_SX168.wav 50 | /home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db/DR8_MJTC0_SA2.wav /home/lisen/uestc/Research/Dataset/ToyData/val_clean/DR8_MJTC0_SA2.wav 51 | -------------------------------------------------------------------------------- /dataset/waveform_dataset.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Author:lisen 3 | # Date:20-3-8 下午3:33 4 | import os 5 | import librosa 6 | import numpy as np 7 | from torch.utils.data import Dataset 8 | from util.utils import sample_fixed_length_data_aligned 9 | 10 | 11 | class WaveformDataset(Dataset): 12 | def __init__(self, dataset, limit=None, offset=0, sample_length=16384, train=True): 13 | """ 14 | Construct training dataset 15 | Args: 16 | dataset (str): the path of dataset list,see "Notes" 17 | limit (int): the limit of dataset 18 | offset (int): the offset of dataset 19 | sample_length(int): the model only support fixed-length input in training, this parameter specify the input size of the model. 20 | train(bool): In training, the model need fixed-length input; in test, the model need fully-length input. 21 | 22 | Notes: 23 | the format of the waveform dataset is as follows. 24 | 25 | In list file: 26 | 27 | 28 | ... 29 | 30 | 31 | e.g. 32 | In "dataset.txt": 33 | /home/dog/train/noisy/a.wav /home/dog/train/clean/a.wav 34 | /home/dog/train/noisy/b.wav /home/dog/train/clean/b.wav 35 | ... 36 | /home/dog/train/noisy/x.wav /home/dog/train/clean/x.wav 37 | 38 | Return: 39 | mixture signals, clean signals, filename 40 | """ 41 | super(WaveformDataset, self).__init__() 42 | dataset_list = [line.rstrip('\n') for line in open(os.path.abspath(os.path.expanduser(dataset)))] 43 | dataset_list = dataset_list[offset:] # 取前offset行数据 44 | if limit: 45 | dataset_list = dataset_list[:limit] 46 | self.length = len(dataset_list) 47 | self.dataset_list = dataset_list 48 | self.sample_length = sample_length 49 | self.train = train 50 | 51 | def __len__(self): 52 | return self.length 53 | 54 | def __getitem__(self, item): 55 | noisy_path, clean_path = self.dataset_list[item].split(" ") 56 | name = os.path.splitext(os.path.basename(noisy_path))[0] 57 | 58 | noisy, _ = librosa.load(noisy_path, sr=None) 59 | clean, _ = librosa.load(clean_path, sr=None) 60 | 61 | if self.train: 62 | noisy, clean = sample_fixed_length_data_aligned(noisy, clean, self.sample_length) 63 | noisy = 2 * (noisy - np.min(noisy)) / (np.max(noisy) - np.min(noisy)) - 1 # 将音频数据归一化到[-1.0,1.0] 64 | clean = 2 * (clean - np.min(clean)) / (np.max(clean) - np.min(clean)) - 1 65 | 66 | # 语音的shape(1, length) 67 | return noisy.reshape(1, -1), clean.reshape(1, -1), name 68 | 69 | if __name__ == '__main__': 70 | from pprint import pprint 71 | wave_data = WaveformDataset( 72 | dataset="train.txt", 73 | sample_length=16384, 74 | train=True 75 | ) 76 | dataset_list_length = wave_data.__len__() 77 | dataset_list = wave_data.dataset_list 78 | pprint(dataset_list_length) 79 | pprint(dataset_list) 80 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /joint_train.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Author:sen 3 | # Date:2020/3/22 15:47 4 | 5 | import argparse 6 | import os 7 | import json5 8 | import torch 9 | import numpy as np 10 | from torch.utils.data import DataLoader 11 | from util.utils import initialize_config 12 | from trainer.trainer import JointTrainer 13 | 14 | # TODO 目前还未将joint_loss_function写成一个总的Class,只是嵌入到了JointTrainer中了, 15 | # 下一步需要调整为一个大的class,并且匹配BaseTrainer中的loss_function 16 | # TODO 训练过程实际上可以修改为学习率逐渐减小的过程 17 | # TODO 增强后的语音如何保存下来 18 | # TODO UNet系列方法的原理与效果 19 | def main(config, resume): 20 | 21 | torch.manual_seed(int(config["seed"])) # both CPU and CUDA 22 | np.random.seed(config["seed"]) 23 | 24 | train_dataloader = DataLoader( 25 | dataset=initialize_config(config["train_dataset"]), 26 | batch_size=config["train_dataloader"]["batch_size"], 27 | num_workers=config["train_dataloader"]["num_workers"], 28 | shuffle=config["train_dataloader"]["shuffle"], 29 | pin_memory=config["train_dataloader"]["pin_memory"] # Very small data set False 30 | ) 31 | 32 | validation_dataloader = DataLoader( 33 | dataset=initialize_config(config["validation_dataset"]), 34 | batch_size=1, 35 | num_workers=1 36 | ) 37 | 38 | model = initialize_config(config["model"]) 39 | 40 | optimizer = torch.optim.Adam( 41 | params=model.parameters(), 42 | lr=config["optimizer"]["lr"], 43 | betas=(config["optimizer"]["beta1"], config["optimizer"]["beta2"]) 44 | ) 45 | 46 | loss_function = initialize_config(config["loss_function"]) 47 | 48 | trainer = JointTrainer( 49 | config=config, 50 | resume=resume, 51 | model=model, 52 | optim=optimizer, 53 | loss_function=loss_function, 54 | train_dl=train_dataloader, 55 | validation_dl=validation_dataloader 56 | ) 57 | 58 | trainer.train() 59 | 60 | 61 | if __name__ == '__main__': 62 | # parser = argparse.ArgumentParser(description="SimpleCNN") 63 | # parser.add_argument("-C", "--configuration", required=True, type=str, default='config/simple_cnn.json5', 64 | # help="Configuration (*.json).") 65 | # parser.add_argument("-R", "--resume", action="store_true", default=False, 66 | # help="Resume experiment from latest checkpoint.") 67 | # args = parser.parse_args() 68 | 69 | config_path = "config/20200323_joint_simple_cnn.json5" 70 | 71 | configuration = json5.load(open(config_path)) 72 | configuration["experiment_name"], _ = os.path.splitext(os.path.basename(config_path)) 73 | configuration["config_path"] = config_path 74 | 75 | main(configuration, resume=False) 76 | -------------------------------------------------------------------------------- /model/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PandoraLS/SpeechEnhancement/f548eaafbe524a40c8cfd2221f7adf3a444b7a7d/model/__init__.py -------------------------------------------------------------------------------- /model/simple_cnn.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Author:lisen 3 | # Date:20-3-8 下午2:43 4 | 5 | import torch 6 | import torch.nn as nn 7 | 8 | 9 | class BaseCNN(nn.Module): 10 | def __init__(self): 11 | super(BaseCNN, self).__init__() 12 | 13 | self.conv = nn.Conv1d(in_channels=1, out_channels=512, kernel_size=64, 14 | stride=32, padding=16) 15 | self.deconv = nn.ConvTranspose1d(in_channels=512, out_channels=1, kernel_size=64, 16 | stride=32, padding=16) 17 | 18 | def forward(self, x): 19 | # x torch.size([batch_size, 1, 16384]) 20 | batch_size = x.size(0) # batchsize 21 | time_stamp = x.size(2) # length of x 22 | 23 | ft_ly = self.conv(x) # torch.size([batch_size, 512, 512]) 24 | output = self.deconv(ft_ly) 25 | return output 26 | 27 | 28 | if __name__ == '__main__': 29 | # 默认情况下是使用gpu的方式 30 | inpt = torch.rand(2, 1, 16384).cuda() 31 | Model = BaseCNN().cuda() 32 | output = Model(inpt) 33 | print(output.shape) 34 | -------------------------------------------------------------------------------- /model/unet_zoo/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PandoraLS/SpeechEnhancement/f548eaafbe524a40c8cfd2221f7adf3a444b7a7d/model/unet_zoo/__init__.py -------------------------------------------------------------------------------- /model/unet_zoo/multi_scale.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Author:sen 3 | # Date:2020/3/23 19:22 4 | 5 | -------------------------------------------------------------------------------- /model/unet_zoo/unet_models.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Author:sen 3 | # Date:2020/3/23 9:31 4 | 5 | import torch.nn.functional as F 6 | 7 | from .unet_parts import * 8 | from .multi_scale import * 9 | 10 | class U_Net(nn.Module): 11 | def __init__(self, img_ch=3, output_ch=1): 12 | super(U_Net, self).__init__() 13 | 14 | self.MaxPool = nn.MaxPool2d(kernel_size=2, stride=2) 15 | 16 | self.Conv1 = ConvBlock(ch_in=img_ch, ch_out=64) 17 | self.Conv2 = ConvBlock(ch_in=64, ch_out=128) 18 | self.Conv3 = ConvBlock(ch_in=128, ch_out=256) 19 | self.Conv4 = ConvBlock(ch_in=256, ch_out=512) 20 | self.Conv5 = ConvBlock(ch_in=512, ch_out=1024) 21 | 22 | self.Up5 = UpConv(ch_in=1024, ch_out=512) 23 | self.Up_conv5 = ConvBlock(ch_in=1024, ch_out=512) 24 | 25 | self.Up4 = UpConv(ch_in=512, ch_out=256) 26 | self.Up_conv4 = ConvBlock(ch_in=512, ch_out=256) 27 | 28 | self.Up3 = UpConv(ch_in=128, ch_out=64) 29 | self.Up_conv3 = ConvBlock(ch_in=256, ch_out=128) 30 | 31 | self.Up2 = UpConv(ch_in=128, ch_out=64) 32 | self.Up_conv2 = ConvBlock(ch_in=128, ch_out=64) 33 | 34 | self.Conv_1x1 = nn.Conv2d(64, output_ch, kernel_size=1, stride=1, padding=0) 35 | 36 | def forward(self, x): 37 | # encoding path 38 | x1 = self.Conv1(x) 39 | 40 | x2 = self.MaxPool(x1) 41 | x2 = self.Conv2(x2) 42 | 43 | x3 = self.MaxPool(x2) 44 | x3 = self.Conv3(x3) 45 | 46 | x4 = self.MaxPool(x3) 47 | x4 = self.Conv4(x4) 48 | 49 | x5 = self.MaxPool(x4) 50 | x5 = self.Conv5(x5) 51 | 52 | # decoding + concat path 53 | d5 = self.Up5(x5) 54 | d5 = torch.cat((x4, d5), dim=1) 55 | d5 = self.Up_conv5(d5) 56 | 57 | d4 = self.Up4(d5) 58 | d4 = torch.cat((x3, d4), dim=1) 59 | d4 = self.Up_conv4(d4) 60 | 61 | d3 = self.Up3(d4) 62 | d3 = torch.cat((x2, d3), dim=1) 63 | d3 = self.Up_conv3(d3) 64 | 65 | d2 = self.Up2(d3) 66 | d2 = torch.cat((x1, d2), dim=1) 67 | d2 = self.Up_conv2(d2) 68 | 69 | d1 = self.Conv_1x1(d2) 70 | 71 | return d1 72 | 73 | # TODO 剩下的UNet网络 74 | -------------------------------------------------------------------------------- /model/unet_zoo/unet_parts.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Author:sen 3 | # Date:2020/3/23 9:31 4 | 5 | import torch 6 | import torch.nn as nn 7 | import torch.nn.functional as F 8 | from torch.nn import init 9 | 10 | 11 | def init_weights(net, init_type='normal', gain=0.02): 12 | def init_func(m): 13 | classname = m.__class__.__name__ 14 | if hasattr(m, 'weight') and (classname.find('Conv') != -1 or classname.find('Linear') != -1): 15 | if init_type == 'normal': 16 | init.normal_(m.weight.data, 0.0, gain) 17 | elif init_type == 'xavier': 18 | init.xavier_normal_(m.weight.data, gain=gain) 19 | elif init_type == 'kaiming': 20 | init.kaiming_normal_(m.weight.data, a=0, mode='fan_in') 21 | elif init_type == 'orthogonal': 22 | init.orthogonal_(m.weight.data, gain=gain) 23 | else: 24 | raise NotImplementedError('initialization method [%s] is not implemented' % init_type) 25 | 26 | if hasattr(m, 'bias') and m.bias is not None: 27 | init.constant_(m.bias.data, 0.0) 28 | elif classname.find('BathNorm2d') != -1: 29 | init.normal_(m.weight.data, 1.0, gain) 30 | init.constant_(m.bias.data, 0.0) 31 | 32 | print('initialize network with %s' % init_type) 33 | net.apply(init_func) 34 | 35 | 36 | class ConvBlock(nn.Module): 37 | def __init__(self, ch_in, ch_out): 38 | super(ConvBlock, self).__init__() 39 | 40 | self.conv = nn.Sequential( 41 | nn.Conv2d(ch_in, ch_out, kernel_size=3, stride=1, padding=1,bias=True), 42 | nn.BatchNorm2d(ch_out), 43 | nn.ReLU(inplace=True), 44 | nn.Conv2d(ch_out, ch_out, kernel_size=3, stride=1, padding=1, bias=True), 45 | nn.BatchNorm2d(ch_out), 46 | nn.ReLU(inplace=True) # inplace=True是什么意思? 47 | ) 48 | 49 | def forward(self, x): 50 | x = self.conv(x) 51 | return x 52 | 53 | class UpConv(nn.Module): 54 | def __init__(self, ch_in, ch_out): 55 | super(UpConv, self).__init__() 56 | self.up = nn.Sequential( 57 | nn.Upsample(scale_factor=2), 58 | nn.Conv2d(ch_in, ch_out, kernel_size=3, stride=1, padding=1, bias=True), 59 | nn.BatchNorm2d(ch_out), 60 | nn.ReLU(inplace=True) 61 | ) 62 | def forward(self, x): 63 | x = self.up(x) 64 | return x 65 | 66 | class RecurrentBlock(nn.Module): 67 | def __init__(self, ch_out, t=2): 68 | super(RecurrentBlock, self).__init__() 69 | self.t = t 70 | self.ch_out = ch_out 71 | self.conv = nn.Sequential( 72 | nn.Conv2d(ch_out, ch_out, kernel_size=3, stride=1, padding=1, bias=True), 73 | nn.BatchNorm2d(ch_out), 74 | nn.ReLU(inplace=True) 75 | ) 76 | 77 | def forward(self, x): 78 | for i in range(self.t): 79 | if i == 0: 80 | x1 = self.conv(x) 81 | 82 | x1 = self.conv(x + x1) 83 | return x1 84 | 85 | 86 | class RRCNNBlock(nn.Module): 87 | def __init__(self, ch_in, ch_out, t=2): 88 | super(RRCNNBlock, self).__init__() 89 | self.RCNN = nn.Sequential( 90 | RecurrentBlock(ch_out, t=t), 91 | RecurrentBlock(ch_out, t=t) 92 | ) 93 | self.Conv_1x1 = nn.Conv2d(ch_in, ch_out, kernel_size=1, stride=1, padding=0) 94 | 95 | def forward(self, x): 96 | x = self.Conv_1x1(x) 97 | x1 = self.RCNN(x) 98 | return x + x1 99 | 100 | class SingleConv(nn.Module): 101 | def __init__(self, ch_in, ch_out): 102 | super(SingleConv, self).__init__() 103 | self.conv = nn.Sequential( 104 | nn.Conv2d(ch_in, ch_out, kernel_size=3, stride=1, padding=1, bias=True), 105 | nn.BatchNorm2d(ch_out), 106 | nn.ReLU(inplace=True) 107 | ) 108 | 109 | def forward(self, x): 110 | x = self.conv(x) 111 | return x 112 | 113 | class AttentionBlock(nn.Module): 114 | def __init__(self, F_g, F_l, F_int): 115 | super(AttentionBlock, self).__init__() 116 | self.W_g = nn.Sequential( 117 | nn.Conv2d(F_g, F_int, kernel_size=1, stride=1, padding=0, bias=True), 118 | nn.BatchNorm2d(F_int) 119 | ) 120 | 121 | self.W_x = nn.Sequential( 122 | nn.Conv2d(F_l, F_int, kernel_size=1, stride=1, padding=0, bias=True), 123 | nn.BatchNorm2d(F_int) 124 | ) 125 | 126 | self.psi = nn.Sequential( 127 | nn.Conv2d(F_int, 1, kernel_size=1, stride=1, padding=0, bias=True), 128 | nn.BatchNorm2d(1), 129 | nn.Sigmoid() 130 | ) 131 | 132 | self.relu = nn.ReLU(inplace=True) 133 | 134 | def forward(self, g, x): 135 | g1 = self.W_g(g) 136 | x1 = self.W_x(x) 137 | psi = self.relu(g1 + x1) 138 | psi = self.psi(psi) 139 | 140 | return x * psi 141 | -------------------------------------------------------------------------------- /requirement.txt: -------------------------------------------------------------------------------- 1 | sphfile 2 | numpy 3 | matplotlib 4 | librosa 5 | json5 6 | torch==1.4.0 7 | pypesq 8 | pystoi -------------------------------------------------------------------------------- /test.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Author:lisen 3 | # Date:20-1-5 下午9:53 4 | 5 | import argparse 6 | import os 7 | 8 | import json5 9 | import numpy as np 10 | import torch 11 | from torch.utils.data import DataLoader 12 | 13 | from trainer.tester import Tester 14 | from util.utils import initialize_config 15 | 16 | def main(config, resume): 17 | torch.manual_seed(config["seed"]) # both CPU and CUDA 18 | np.random.seed(config["seed"]) 19 | 20 | 21 | test_dataloader = DataLoader( 22 | dataset=initialize_config(config["test_dataset"]), 23 | batch_size=1, 24 | num_workers=1, 25 | ) 26 | 27 | generator = initialize_config(config["generator_model"]) 28 | discriminator = initialize_config(config["discriminator_model"]) 29 | 30 | generator_optimizer = torch.optim.Adam( 31 | params=generator.parameters(), 32 | lr=config["optimizer"]["G_lr"], 33 | betas=(config["optimizer"]["beta1"], config["optimizer"]["beta2"]) 34 | ) 35 | discriminator_optimizer = torch.optim.Adam( 36 | params=discriminator.parameters(), 37 | lr=config["optimizer"]["D_lr"], 38 | betas=(config["optimizer"]["beta1"], config["optimizer"]["beta2"]) 39 | ) 40 | 41 | additional_loss_function = initialize_config(config["additional_loss_function"]) 42 | 43 | tester = Tester( 44 | config=config, 45 | resume=resume, 46 | generator=generator, 47 | discriminator=discriminator, 48 | generator_optimizer=generator_optimizer, 49 | discriminator_optimizer=discriminator_optimizer, 50 | additional_loss_function=additional_loss_function, 51 | test_dl=test_dataloader 52 | ) 53 | 54 | tester.test() 55 | 56 | 57 | if __name__ == '__main__': 58 | parser = argparse.ArgumentParser(description="UNetGAN") 59 | parser.add_argument("-C", "--configuration", required=True, type=str, help="Configuration (*.json).",default="config/train/20200105_lisen.json5") 60 | parser.add_argument("-R", "--resume", action="store_true", help="Resume experiment from latest checkpoint.",default=True) 61 | args = parser.parse_args() 62 | 63 | configuration = json5.load(open(args.configuration)) 64 | configuration["experiment_name"], _ = os.path.splitext(os.path.basename(args.configuration)) 65 | configuration["config_path"] = args.configuration 66 | 67 | main(configuration, resume=args.resume) 68 | -------------------------------------------------------------------------------- /train.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Author:sen 3 | # Date:2020/3/22 15:47 4 | 5 | import argparse 6 | import os 7 | import json5 8 | import torch 9 | import numpy as np 10 | from torch.utils.data import DataLoader 11 | from util.utils import initialize_config 12 | from trainer.trainer import GeneralTrainer 13 | 14 | 15 | def main(config, resume): 16 | 17 | torch.manual_seed(int(config["seed"])) # both CPU and CUDA 18 | np.random.seed(config["seed"]) 19 | 20 | train_dataloader = DataLoader( 21 | dataset=initialize_config(config["train_dataset"]), 22 | batch_size=config["train_dataloader"]["batch_size"], 23 | num_workers=config["train_dataloader"]["num_workers"], 24 | shuffle=config["train_dataloader"]["shuffle"], 25 | pin_memory=config["train_dataloader"]["pin_memory"] # Very small data set False 26 | ) 27 | 28 | validation_dataloader = DataLoader( 29 | dataset=initialize_config(config["validation_dataset"]), 30 | batch_size=1, 31 | num_workers=1 32 | ) 33 | 34 | model = initialize_config(config["model"]) 35 | 36 | optimizer = torch.optim.Adam( 37 | params=model.parameters(), 38 | lr=config["optimizer"]["lr"], 39 | betas=(config["optimizer"]["beta1"], config["optimizer"]["beta2"]) 40 | ) 41 | 42 | loss_function = initialize_config(config["loss_function"]) 43 | 44 | trainer = GeneralTrainer( 45 | config=config, 46 | resume=resume, 47 | model=model, 48 | optim=optimizer, 49 | loss_fucntion=loss_function, 50 | train_dl=train_dataloader, 51 | validation_dl=validation_dataloader 52 | ) 53 | 54 | trainer.train() 55 | 56 | 57 | if __name__ == '__main__': 58 | # parser = argparse.ArgumentParser(description="SimpleCNN") 59 | # parser.add_argument("-C", "--configuration", required=True, type=str, default='config/simple_cnn.json5', 60 | # help="Configuration (*.json).") 61 | # parser.add_argument("-R", "--resume", action="store_true", default=False, 62 | # help="Resume experiment from latest checkpoint.") 63 | # args = parser.parse_args() 64 | 65 | config_path = "config/20200323_simple_cnn.json5" 66 | 67 | configuration = json5.load(open(config_path)) 68 | configuration["experiment_name"], _ = os.path.splitext(os.path.basename(config_path)) 69 | configuration["config_path"] = config_path 70 | 71 | main(configuration, resume=False) 72 | -------------------------------------------------------------------------------- /trainer/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PandoraLS/SpeechEnhancement/f548eaafbe524a40c8cfd2221f7adf3a444b7a7d/trainer/__init__.py -------------------------------------------------------------------------------- /trainer/base_trainer.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Author:lisen 3 | # Date:20-3-8 下午4:23 4 | import torch 5 | import numpy as np 6 | import json5 7 | import time 8 | from pathlib import Path 9 | from util import visualization 10 | from util.utils import prepare_empty_dir, ExecutionTime 11 | 12 | 13 | class BaseTrainer: 14 | def __init__(self, 15 | config, 16 | resume, 17 | model, 18 | optim, 19 | loss_function): 20 | self.n_gpu = torch.cuda.device_count() 21 | self.device = self._prepare_device(self.n_gpu, cudnn_deterministic=config["cudnn_deterministic"]) 22 | 23 | self.model = model.to(self.device) 24 | 25 | if self.n_gpu > 1: 26 | self.model = torch.nn.DataParallel(self.model, device_ids=list(range(self.n_gpu))) 27 | 28 | self.optimizer = optim 29 | 30 | self.loss_function = loss_function 31 | 32 | # Trainer 33 | self.epochs = config["trainer"]["epochs"] 34 | self.save_checkpoint_interval = config["trainer"]["save_checkpoint_interval"] 35 | self.validation_config = config["trainer"]["validation"] 36 | self.validation_interval = self.validation_config["interval"] 37 | self.find_max = self.validation_config["find_max"] 38 | self.validation_custom_config = self.validation_config["custom"] 39 | 40 | self.start_epoch = 1 41 | self.best_score = -np.inf if self.find_max else np.inf 42 | self.root_dir = Path(config["root_dir"]).expanduser().absolute() / config["experiment_name"] # 这一步是什么意思 43 | self.checkpoints_dir = self.root_dir / "checkpoints" 44 | self.logs_dir = self.root_dir / "logs" 45 | prepare_empty_dir([self.checkpoints_dir, self.logs_dir], resume=resume) 46 | 47 | self.writer = visualization.writer(self.logs_dir.as_posix()) 48 | self.writer.add_text( 49 | tag="Configuration", 50 | text_string=f"
 \n{json5.dumps(config, indent=4, sort_keys=False)}  \n
", 51 | global_step=1 52 | ) 53 | 54 | if resume: self._resume_checkpoint() 55 | 56 | print("Configurations are as follow: ") 57 | print(json5.dumps(config, indent=2, sort_keys=False)) 58 | 59 | with open((self.root_dir / f"{time.strftime('%Y-%m-%d-%H-%M-%S')}.json").as_posix(), 'w') as handle: 60 | json5.dump(config, handle, indent=2, sort_keys=False) 61 | 62 | self._print_networks([self.model]) 63 | 64 | def _resume_checkpoint(self): 65 | """ 66 | Resume experiment from latest checkpoint. 67 | Notes: To be careful at Loading model. 68 | if model is an instance of DataParallel, we need to set model.module.* 69 | :return: None 70 | """ 71 | latest_model_path = self.checkpoints_dir / "latest_model.tar" 72 | assert latest_model_path.exists(), f"{latest_model_path} does not exist, can't load latest checkpoint." 73 | 74 | checkpoint = torch.load(latest_model_path.as_posix(), map_location=self.device) 75 | 76 | self.start_epoch = checkpoint["epoch"] + 1 77 | self.best_score = checkpoint["best_score"] 78 | self.optimizer.load_state_dict(checkpoint["optimizer"]) 79 | 80 | if isinstance(self.model, torch.nn.DataParallel): 81 | self.model.module.load_state_dict(checkpoint["model"]) 82 | else: 83 | self.model.load_state_dict(checkpoint["model"]) 84 | 85 | print(f"Model checkpoint loaded. Training will begin in {self.start_epoch} epoch.") 86 | 87 | def _save_checkpoint(self, epoch, is_best=False): 88 | """ 89 | Save model checkpoints to /checkpoints directory, which contains: 90 | - current epoch 91 | - best score in history 92 | - optimizer parameters 93 | - model parameters 94 | :param epoch: Epoch 95 | :param is_best(bool): if current checkpoint got the best score, it also will be saved in /checkpoints/best_model.tar. 96 | :return: 97 | """ 98 | print(f"\t Saving {epoch} epoch model checkpoint...") 99 | 100 | # Construct checkpoint tar package 101 | state_dict = { 102 | "epoch": epoch, 103 | "best_score": self.best_score, 104 | "optimizer": self.optimizer.state_dict() 105 | } 106 | 107 | if self.device.type == "cuda" and self.n_gpu > 1: # Parallel 108 | state_dict["model"] = self.model.module.cpu().state_dict() 109 | else: 110 | state_dict["model"] = self.model.cpu().state_dict() 111 | """ 112 | Notes: 113 | - latest_model.tar: 114 | Contains all checkpoint information, including optimizer parameters, model parameters, etc. 115 | New checkpoint will overwrite old one. 116 | - model_.pth: 117 | The parameters of model's network. Follow-up we can specify epoch to inference. 118 | - best_model.tar: 119 | Like latest_model, but only saved when is True. 120 | """ 121 | torch.save(state_dict, (self.checkpoints_dir / "latest_model.tar").as_posix()) 122 | torch.save(state_dict["model"], (self.checkpoints_dir / f"model_{str(epoch).zfill(4)}.pth").as_posix()) 123 | if is_best: 124 | print(f"\t Found best score in {epoch} epoch, saving...") 125 | torch.save(state_dict, (self.checkpoints_dir / "best_model.tar").as_posix()) 126 | 127 | # Use model.cpu(), model.to("cpu") will migrate the model to CPU, at which point we need re-migrate model back. 128 | # No matter tensor.cuda() or torch.to("cuda"), if tensor in CPU, the tensor will not be migrated to GPU, but the model will. 129 | self.model.to(self.device) 130 | 131 | @staticmethod 132 | def _prepare_device(n_gpu: int, cudnn_deterministic=False): 133 | """ 134 | Choose to use CPU or GPU depend on "n_gpu". 135 | :param n_gpu(int): the number of GPUs used in the experiment. 136 | if n_gpu is 0, use CPU; 137 | if n_gpu > 1, use GPU. 138 | :param cudnn_deterministic(bool): 139 | repeatability cudnn.benchmark will find algorithms to optimize training. 140 | if we need to consider the repeatability of experiment, set use_cudnn_deterministic to True 141 | :return: device 142 | """ 143 | if n_gpu == 0: 144 | print("Using CPU in the experiment.") 145 | device = torch.device("cpu") 146 | else: 147 | if cudnn_deterministic: 148 | print("Using CuDNN deterministic mode in the experiment.") 149 | torch.backends.cudnn.deterministic = True 150 | torch.backends.cudnn.benchmark = False 151 | device = torch.device("cuda:0") 152 | return device 153 | 154 | def _is_best(self, score, find_max=True): 155 | """Check if the current model is the best model""" 156 | if find_max and score >= self.best_score: 157 | self.best_score = score 158 | return True 159 | elif not find_max and score <= self.best_score: 160 | self.best_score = score 161 | return True 162 | else: 163 | return False 164 | 165 | @staticmethod 166 | def _transform_pesq_range(pesq_score): 167 | """transform [-0.5 ~ 4.5] to [0 ~ 1]""" 168 | return (pesq_score + 0.5) / 5 169 | 170 | @staticmethod 171 | def _print_networks(nets: list): 172 | print(f"This project contain {len(nets)} networks, the number of the parameters: ") 173 | params_of_all_networks = 0 174 | for i, net in enumerate(nets, start=1): 175 | params_of_network = 0 176 | for param in net.parameters(): 177 | params_of_network += param.numel() 178 | 179 | print(f"\t Network {i}: {params_of_network / 1e6} million.") 180 | params_of_all_networks += params_of_network 181 | 182 | print(f"The amount of parameters in project is {params_of_all_networks / 1e6} million.") 183 | 184 | def _set_models_to_train_mode(self): 185 | self.model.train() 186 | 187 | def _set_models_to_eval_mode(self): 188 | self.model.eval() 189 | 190 | def train(self): 191 | for epoch in range(self.start_epoch, self.epochs + 1): 192 | print(f"================== {epoch} epoch ==================") 193 | print("[0 seconds] Begin training...") 194 | timer = ExecutionTime() 195 | 196 | self._set_models_to_train_mode() 197 | self._train_epoch(epoch) 198 | 199 | if self.save_checkpoint_interval != 0 and (epoch % self.save_checkpoint_interval == 0): 200 | self._save_checkpoint(epoch) 201 | 202 | if self.validation_interval != 0 and epoch % self.validation_interval == 0: 203 | print(f"[{timer.duratioin():.3f} seconds] Training is over, Validation is in progress...") 204 | 205 | self._set_models_to_eval_mode() 206 | score = self._validation_epoch(epoch) 207 | 208 | if self._is_best(score, find_max=self.find_max): 209 | print(f"\t Best score: {score:.4f}") 210 | self._save_checkpoint(epoch, is_best=True) 211 | 212 | print(f"[{timer.duratioin():.3f} seconds] End this epoch.") 213 | 214 | 215 | 216 | 217 | def _train_epoch(self, epoch): 218 | raise NotImplementedError 219 | 220 | def _validation_epoch(self, epoch): 221 | raise NotImplementedError -------------------------------------------------------------------------------- /trainer/tester.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Author:lisen 3 | # Date:20-1-5 下午10:36 4 | 5 | import librosa 6 | import librosa.display 7 | import matplotlib.pyplot as plt 8 | import numpy as np 9 | import torch 10 | from trainer.base_trainer import BaseTrainer 11 | from util.utils import set_requires_grad, compute_STOI, compute_PESQ 12 | 13 | plt.switch_backend("agg") 14 | 15 | 16 | class Tester(BaseTrainer): 17 | def __init__(self, 18 | config: dict, 19 | resume: bool, 20 | generator, 21 | discriminator, 22 | generator_optimizer, 23 | discriminator_optimizer, 24 | additional_loss_function, 25 | test_dl): 26 | super().__init__(config, resume, generator, discriminator, generator_optimizer, discriminator_optimizer, 27 | additional_loss_function) 28 | self.test_dataloader = test_dl 29 | 30 | def _visualize_weights_and_grads(self, model, epoch): 31 | for name, param in model.named_parameters(): 32 | self.writer.add_histogram("WEIGHT_" + name, param.clone().cpu().data.numpy(), epoch) 33 | self.writer.add_histogram("GRAD_" + name, param.grad.cpu().numpy(), epoch) 34 | 35 | def test(self): 36 | # model.eval() 37 | stoi_clean_and_noisy = [] 38 | stoi_clean_and_enhanced = [] 39 | pesq_clean_and_noisy = [] 40 | pesq_clean_and_enhanced = [] 41 | 42 | for i, (noisy, clean, name) in enumerate(self.test_dataloader, start=1): 43 | assert len(name) == 1, "The batch size of test dataloader should be 1." 44 | name = name[0] 45 | 46 | noisy = noisy.to(self.device) 47 | norm_max = torch.max(noisy).item() 48 | norm_min = torch.min(noisy).item() 49 | noisy = 2 * (noisy - norm_min) / (norm_max - norm_min) - 1 50 | 51 | assert noisy.dim() == 3 52 | noisy_chunks = torch.split(noisy, sample_length, dim=2) 53 | if noisy_chunks[-1].shape[-1] != sample_length: 54 | # Delete tail 55 | noisy_chunks = noisy_chunks[:-1] 56 | 57 | enhanced_chunks = [] 58 | for noisy_chunk in noisy_chunks: 59 | enhanced_chunks.append(self.generator(noisy_chunk).detach().cpu().numpy().reshape(-1)) 60 | 61 | enhanced = np.concatenate(enhanced_chunks) 62 | enhanced = (enhanced + 1) * (norm_max - norm_min) / 2 + norm_min 63 | 64 | noisy = noisy.cpu().numpy().reshape(-1)[:len(enhanced)] 65 | clean = clean.cpu().numpy().reshape(-1)[:len(enhanced)] 66 | 67 | 68 | 69 | def _validation_epoch(self, epoch): 70 | 71 | stoi_clean_and_noisy = [] 72 | stoi_clean_and_enhanced = [] 73 | pesq_clean_and_noisy = [] 74 | pesq_clean_and_enhanced = [] 75 | 76 | for i, (noisy, clean, name) in enumerate(self.validation_dataloader, start=1): 77 | assert len(name) == 1, "The batch size of validation dataloader should be 1." 78 | name = name[0] 79 | 80 | noisy = noisy.to(self.device) 81 | norm_max = torch.max(noisy).item() 82 | norm_min = torch.min(noisy).item() 83 | noisy = 2 * (noisy - norm_min) / (norm_max - norm_min) - 1 84 | 85 | assert noisy.dim() == 3 86 | noisy_chunks = torch.split(noisy, sample_length, dim=2) 87 | if noisy_chunks[-1].shape[-1] != sample_length: 88 | # Delete tail 89 | noisy_chunks = noisy_chunks[:-1] 90 | 91 | enhanced_chunks = [] 92 | for noisy_chunk in noisy_chunks: 93 | enhanced_chunks.append(self.generator(noisy_chunk).detach().cpu().numpy().reshape(-1)) 94 | 95 | enhanced = np.concatenate(enhanced_chunks) 96 | enhanced = (enhanced + 1) * (norm_max - norm_min) / 2 + norm_min 97 | 98 | noisy = noisy.cpu().numpy().reshape(-1)[:len(enhanced)] 99 | clean = clean.cpu().numpy().reshape(-1)[:len(enhanced)] 100 | 101 | if i <= visualize_audio_limit: 102 | self.writer.add_audio(f"Speech/{name}_noisy", noisy, epoch, sample_rate=16000) 103 | self.writer.add_audio(f"Speech/{name}_clean", clean, epoch, sample_rate=16000) 104 | self.writer.add_audio(f"Speech/{name}_enhanced", enhanced, epoch, sample_rate=16000) 105 | 106 | if i <= visualize_waveform_limit: 107 | fig, ax = plt.subplots(3, 1) 108 | for j, y in enumerate([noisy, enhanced, clean]): 109 | ax[j].set_title("mean: {:.3f}, std: {:.3f}, max: {:.3f}, min: {:.3f}".format( 110 | np.mean(y), 111 | np.std(y), 112 | np.max(y), 113 | np.min(y) 114 | )) 115 | librosa.display.waveplot(y, sr=16000, ax=ax[j]) 116 | plt.tight_layout() 117 | self.writer.add_figure(f"Waveform/{name}", fig, epoch) 118 | 119 | if i <= visualize_spectrogram_limit: 120 | fig, axes = plt.subplots(3, 1, figsize=(6, 6)) 121 | for j, y in enumerate([noisy, clean, enhanced]): 122 | mag, _ = librosa.magphase(librosa.stft(y, n_fft=320, hop_length=160, win_length=320)) 123 | axes[j].set_title(f"mean: {np.mean(mag):.3f}, " 124 | f"std: {np.std(mag):.3f}, " 125 | f"max: {np.max(mag):.3f}, " 126 | f"min: {np.min(mag):.3f}") 127 | librosa.display.specshow(librosa.amplitude_to_db(mag), cmap="magma", y_axis="linear", ax=axes[j], 128 | sr=16000, hop_length=160) 129 | 130 | plt.tight_layout() 131 | self.writer.add_figure(f"Spectrogram/{name}", fig, epoch) 132 | 133 | # Metrics 134 | stoi_clean_and_noisy.append(compute_STOI(clean, noisy, sr=16000)) 135 | stoi_clean_and_enhanced.append(compute_STOI(clean, enhanced, sr=16000)) 136 | pesq_clean_and_noisy.append(compute_PESQ(clean, noisy, sr=16000)) 137 | pesq_clean_and_enhanced.append(compute_PESQ(clean, enhanced, sr=16000)) 138 | 139 | self.writer.add_scalars(f"Metrics/STOI", { 140 | "clean and noisy": np.mean(stoi_clean_and_noisy), 141 | "clean and enhanced": np.mean(stoi_clean_and_enhanced) 142 | }, epoch) 143 | self.writer.add_scalars(f"Metrics/PESQ", { 144 | "clean and noisy": np.mean(pesq_clean_and_noisy), 145 | "clean and enhanced": np.mean(pesq_clean_and_enhanced) 146 | }, epoch) 147 | 148 | score = (np.mean(stoi_clean_and_enhanced) + self._transform_pesq_range(np.mean(pesq_clean_and_enhanced))) / 2 149 | return score 150 | -------------------------------------------------------------------------------- /trainer/trainer.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Author:sen 3 | # Date:2020/3/22 10:47 4 | 5 | import torch 6 | import librosa 7 | import librosa.display 8 | import numpy as np 9 | import matplotlib.pyplot as plt 10 | from trainer.base_trainer import BaseTrainer 11 | from util.utils import compute_PESQ, compute_STOI 12 | from util.loss import SDRLoss, RMSELoss 13 | from util.stoi_utils import STOICalculator 14 | 15 | 16 | class GeneralTrainer(BaseTrainer): 17 | def __init__(self, 18 | config: dict, 19 | resume: bool, 20 | model, 21 | optim, 22 | loss_fucntion, 23 | train_dl, 24 | validation_dl): 25 | super().__init__(config, resume, model, optim, loss_fucntion) 26 | self.train_dataloader = train_dl 27 | self.validation_dataloader = validation_dl 28 | 29 | def _visualize_weights_and_grads(self, model, epoch): 30 | for name, param in model.named_parameters(): 31 | self.writer.add_histogram("WEIGHT_" + name, param.clone().cpu().data.numpy(), epoch) 32 | self.writer.add_histogram("GRAD_" + name, param.grad.cpu().numpy(), epoch) 33 | 34 | def _train_epoch(self, epoch): 35 | for i, (noisy, clean, name) in enumerate(self.train_dataloader, start=1): 36 | # For visualization 37 | batch_size = self.train_dataloader.batch_size 38 | n_batch = len(self.train_dataloader) 39 | n_iter = n_batch * batch_size * (epoch - 1) + i * batch_size 40 | 41 | noisy = noisy.to(self.device) # [batch_size, 1, sample_length] eg.[600,1,16384] 42 | clean = clean.to(self.device) # [600,1,16384] 43 | enhanced = self.model(noisy) # [600, 1, 16384] 44 | 45 | """================ Optimize model ================""" 46 | self.optimizer.zero_grad() 47 | loss = self.loss_function(enhanced, clean) 48 | loss.backward() 49 | self.optimizer.step() 50 | 51 | with torch.no_grad(): 52 | enhanced = self.model(noisy) 53 | 54 | self.writer.add_scalars(f"模型/损失值", { 55 | "模型优化前": loss, 56 | "模型优化后": self.loss_function(enhanced, clean) 57 | }, n_iter) 58 | 59 | def _validation_epoch(self, epoch): 60 | visualize_audio_limit = self.validation_custom_config["visualize_audio_limit"] 61 | visualize_waveform_limit = self.validation_custom_config["visualize_waveform_limit"] 62 | visualize_spectrogram_limit = self.validation_custom_config["visualize_spectrogram_limit"] 63 | 64 | sample_length = self.validation_custom_config["sample_length"] 65 | 66 | stoi_clean_and_noisy = [] 67 | stoi_clean_and_enhanced = [] 68 | pesq_clean_and_noisy = [] 69 | pesq_clean_and_enhanced = [] 70 | 71 | for i, (noisy, clean, name) in enumerate(self.validation_dataloader, start=1): 72 | assert len(name) == 1, "The batch size of validation dataloader should be 1." 73 | name = name[0] 74 | 75 | noisy = noisy.to(self.device) 76 | norm_max = torch.max(noisy).item() 77 | norm_min = torch.min(noisy).item() 78 | noisy = 2 * (noisy - norm_min) / (norm_max - norm_min) - 1 # 将音频数据归一化到[-1.0,1.0] 79 | 80 | assert noisy.dim() == 3 81 | noisy_chunks = torch.split(noisy, sample_length, dim=2) 82 | if noisy_chunks[-1].shape[-1] != sample_length: 83 | # Delete tail 84 | noisy_chunks = noisy_chunks[:-1] 85 | 86 | enhanced_chunks = [] 87 | for noisy_chunk in noisy_chunks: 88 | enhanced_chunks.append(self.model(noisy_chunk).detach().cpu().numpy().reshape(-1)) 89 | 90 | enhanced = np.concatenate(enhanced_chunks) 91 | enhanced = (enhanced + 1) * (norm_max - norm_min) / 2 + norm_min 92 | 93 | noisy = noisy.cpu().numpy().reshape(-1)[:len(enhanced)] 94 | clean = clean.cpu().numpy().reshape(-1)[:len(enhanced)] 95 | 96 | if i <= visualize_audio_limit: 97 | self.writer.add_audio(f"Speech/{name}_noisy", noisy, epoch, sample_rate=16000) 98 | self.writer.add_audio(f"Speech/{name}_clean", clean, epoch, sample_rate=16000) 99 | self.writer.add_audio(f"Speech/{name}_enhanced", enhanced, epoch, sample_rate=16000) 100 | 101 | if i <= visualize_waveform_limit: 102 | fig, ax = plt.subplots(3, 1) 103 | for j, y in enumerate([noisy, enhanced, clean]): 104 | ax[j].set_title("mean: {:.3f}, std: {:.3f}, max: {:.3f}, min: {:.3f}".format( 105 | np.mean(y), 106 | np.std(y), 107 | np.max(y), 108 | np.min(y) 109 | )) 110 | librosa.display.waveplot(y, sr=16000, ax=ax[j]) 111 | plt.tight_layout() 112 | self.writer.add_figure(f"Waveform/{name}", fig, epoch) 113 | 114 | if i <= visualize_spectrogram_limit: 115 | fig, axes = plt.subplots(3, 1, figsize=(6, 6)) 116 | for j, y in enumerate([noisy, clean, enhanced]): 117 | mag, _ = librosa.magphase((librosa.stft(y, n_fft=320, hop_length=160, win_length=320))) 118 | axes[j].set_title(f"mean: {np.mean(mag):.3f}, " 119 | f"std: {np.std(mag):.3f}, " 120 | f"max: {np.max(mag):.3f}, " 121 | f"min: {np.min(mag):.3f}") 122 | librosa.display.specshow(librosa.amplitude_to_db(mag), cmap="magma", y_axis="linear", ax=axes[j], 123 | sr=16000, hop_length=160) 124 | 125 | plt.tight_layout() 126 | self.writer.add_figure(f"Spectrogram/{name}", fig, epoch) 127 | 128 | # Metrics 129 | stoi_clean_and_noisy.append(compute_STOI(clean, noisy, sr=16000)) 130 | stoi_clean_and_enhanced.append(compute_STOI(clean, enhanced, sr=16000)) 131 | pesq_clean_and_noisy.append(compute_PESQ(clean, noisy, sr=16000)) 132 | pesq_clean_and_enhanced.append(compute_PESQ(clean, enhanced, sr=16000)) 133 | 134 | self.writer.add_scalars(f"Metrics/STOI", { 135 | "clean and noisy": np.mean(stoi_clean_and_noisy), 136 | "clean and enhanced": np.mean(stoi_clean_and_enhanced) 137 | }, epoch) 138 | self.writer.add_scalars(f"Metrics/PESQ", { 139 | "clean and noisy": np.mean(pesq_clean_and_noisy), 140 | "clean and enhanced": np.mean(pesq_clean_and_enhanced) 141 | }, epoch) 142 | 143 | score = (np.mean(stoi_clean_and_enhanced) + self._transform_pesq_range(np.mean(pesq_clean_and_enhanced))) / 2 144 | return score 145 | 146 | stoi_cal = None 147 | class JointTrainer(BaseTrainer): 148 | def __init__(self, 149 | config: dict, 150 | resume: bool, 151 | model, 152 | optim, 153 | loss_function, 154 | train_dl, 155 | validation_dl): 156 | super().__init__(config, resume, model, optim, loss_function) 157 | self.train_dataloader = train_dl 158 | self.validation_dataloader = validation_dl 159 | 160 | # joint loss function 161 | self.sdr_loss_function = SDRLoss() 162 | self.rmse_loss_fucntion = RMSELoss() 163 | 164 | # joint loss function factor 165 | self.joint_loss_config = config["trainer"]["joint"] 166 | self.joint_stoi_loss_factor = self.joint_loss_config["stoi_factor"] 167 | self.joint_sdr_loss_factor = self.joint_loss_config["sdr_factor"] 168 | self.joint_rmse_loss_factor = self.joint_loss_config["rmse_factor"] 169 | 170 | def _visualize_weights_and_grads(self, model, epoch): 171 | for name, param in model.named_parameters(): 172 | self.writer.add_histogram("WEIGHT_" + name, param.clone().cpu().data.numpy(), epoch) 173 | self.writer.add_histogram("GRAD_" + name, param.grad.cpu().numpy(), epoch) 174 | 175 | def _calc_loss(self, deg, clean): 176 | """ 177 | 用于计算JointLoss的值 178 | :param deg: 带噪语音(可以是noisy,也可以是enhanced) 179 | :param clean: 对应的干净语音 180 | :return: joint loss 181 | """ 182 | global stoi_cal 183 | if stoi_cal is None: 184 | stoi_cal = STOICalculator(windowsize=512, hop=64, requires_grad=False) 185 | stoi_cal.cuda() 186 | loss_all = 0 187 | if self.joint_stoi_loss_factor != 0.: 188 | loss_stoi = -1 * stoi_cal(deg, clean) 189 | loss_all += loss_stoi * self.joint_stoi_loss_factor 190 | if self.joint_sdr_loss_factor != 0.: 191 | loss_sdr = self.sdr_loss_function(deg, clean) 192 | loss_all += loss_sdr * self.joint_sdr_loss_factor 193 | if self.joint_rmse_loss_factor != 0.: 194 | loss_rmse = self.rmse_loss_fucntion(deg, clean) 195 | loss_all += loss_rmse * self.joint_rmse_loss_factor 196 | return loss_all 197 | 198 | def _train_epoch(self, epoch): 199 | for i, (noisy, clean, name) in enumerate(self.train_dataloader, start=1): 200 | # For visualization 201 | batch_size = self.train_dataloader.batch_size 202 | n_batch = len(self.train_dataloader) 203 | n_iter = n_batch * batch_size * (epoch - 1) + i * batch_size 204 | 205 | noisy = noisy.to(self.device) # [batch_size, 1, sample_length] eg.[600,1,16384] 206 | clean = clean.to(self.device) # [600,1,16384] 207 | enhanced = self.model(noisy) # [600, 1, 16384] 208 | 209 | """================ Optimize model ================""" 210 | self.optimizer.zero_grad() 211 | 212 | loss = self._calc_loss(enhanced, clean) 213 | loss.backward() 214 | self.optimizer.step() 215 | 216 | with torch.no_grad(): 217 | self.writer.add_scalars(f"模型/损失值", { 218 | "模型优化过程": loss 219 | }, n_iter) 220 | 221 | def _validation_epoch(self, epoch): 222 | visualize_audio_limit = self.validation_custom_config["visualize_audio_limit"] 223 | visualize_waveform_limit = self.validation_custom_config["visualize_waveform_limit"] 224 | visualize_spectrogram_limit = self.validation_custom_config["visualize_spectrogram_limit"] 225 | 226 | sample_length = self.validation_custom_config["sample_length"] 227 | 228 | stoi_clean_and_noisy = [] 229 | stoi_clean_and_enhanced = [] 230 | pesq_clean_and_noisy = [] 231 | pesq_clean_and_enhanced = [] 232 | 233 | for i, (noisy, clean, name) in enumerate(self.validation_dataloader, start=1): 234 | assert len(name) == 1, "The batch size of validation dataloader should be 1." 235 | name = name[0] 236 | 237 | noisy = noisy.to(self.device) 238 | norm_max = torch.max(noisy).item() 239 | norm_min = torch.min(noisy).item() 240 | noisy = 2 * (noisy - norm_min) / (norm_max - norm_min) - 1 # 将音频数据归一化到[-1.0,1.0] 241 | 242 | assert noisy.dim() == 3 243 | noisy_chunks = torch.split(noisy, sample_length, dim=2) 244 | if noisy_chunks[-1].shape[-1] != sample_length: 245 | # Delete tail 246 | noisy_chunks = noisy_chunks[:-1] 247 | 248 | enhanced_chunks = [] 249 | for noisy_chunk in noisy_chunks: 250 | enhanced_chunks.append(self.model(noisy_chunk).detach().cpu().numpy().reshape(-1)) 251 | 252 | enhanced = np.concatenate(enhanced_chunks) 253 | enhanced = (enhanced + 1) * (norm_max - norm_min) / 2 + norm_min 254 | 255 | noisy = noisy.cpu().numpy().reshape(-1)[:len(enhanced)] 256 | clean = clean.cpu().numpy().reshape(-1)[:len(enhanced)] 257 | 258 | if i <= visualize_audio_limit: 259 | self.writer.add_audio(f"Speech/{name}_noisy", noisy, epoch, sample_rate=16000) 260 | self.writer.add_audio(f"Speech/{name}_clean", clean, epoch, sample_rate=16000) 261 | self.writer.add_audio(f"Speech/{name}_enhanced", enhanced, epoch, sample_rate=16000) 262 | 263 | if i <= visualize_waveform_limit: 264 | fig, ax = plt.subplots(3, 1) 265 | for j, y in enumerate([noisy, enhanced, clean]): 266 | ax[j].set_title("mean: {:.3f}, std: {:.3f}, max: {:.3f}, min: {:.3f}".format( 267 | np.mean(y), 268 | np.std(y), 269 | np.max(y), 270 | np.min(y) 271 | )) 272 | librosa.display.waveplot(y, sr=16000, ax=ax[j]) 273 | plt.tight_layout() 274 | self.writer.add_figure(f"Waveform/{name}", fig, epoch) 275 | 276 | if i <= visualize_spectrogram_limit: 277 | fig, axes = plt.subplots(3, 1, figsize=(6, 6)) 278 | for j, y in enumerate([noisy, clean, enhanced]): 279 | mag, _ = librosa.magphase((librosa.stft(y, n_fft=320, hop_length=160, win_length=320))) 280 | axes[j].set_title(f"mean: {np.mean(mag):.3f}, " 281 | f"std: {np.std(mag):.3f}, " 282 | f"max: {np.max(mag):.3f}, " 283 | f"min: {np.min(mag):.3f}") 284 | librosa.display.specshow(librosa.amplitude_to_db(mag), cmap="magma", y_axis="linear", ax=axes[j], 285 | sr=16000, hop_length=160) 286 | 287 | plt.tight_layout() 288 | self.writer.add_figure(f"Spectrogram/{name}", fig, epoch) 289 | 290 | # Metrics 291 | stoi_clean_and_noisy.append(compute_STOI(clean, noisy, sr=16000)) 292 | stoi_clean_and_enhanced.append(compute_STOI(clean, enhanced, sr=16000)) 293 | pesq_clean_and_noisy.append(compute_PESQ(clean, noisy, sr=16000)) 294 | pesq_clean_and_enhanced.append(compute_PESQ(clean, enhanced, sr=16000)) 295 | 296 | self.writer.add_scalars(f"Metrics/STOI", { 297 | "clean and noisy": np.mean(stoi_clean_and_noisy), 298 | "clean and enhanced": np.mean(stoi_clean_and_enhanced) 299 | }, epoch) 300 | self.writer.add_scalars(f"Metrics/PESQ", { 301 | "clean and noisy": np.mean(pesq_clean_and_noisy), 302 | "clean and enhanced": np.mean(pesq_clean_and_enhanced) 303 | }, epoch) 304 | 305 | score = (np.mean(stoi_clean_and_enhanced) + self._transform_pesq_range(np.mean(pesq_clean_and_enhanced))) / 2 306 | return score 307 | -------------------------------------------------------------------------------- /util/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PandoraLS/SpeechEnhancement/f548eaafbe524a40c8cfd2221f7adf3a444b7a7d/util/__init__.py -------------------------------------------------------------------------------- /util/loss.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Author:lisen 3 | # Date:20-3-8 下午2:27 4 | 5 | import torch 6 | import torch.nn as nn 7 | import numpy as np 8 | 9 | EPS = np.finfo(float).eps 10 | 11 | class RMSELoss(nn.Module): 12 | def __init__(self): 13 | super().__init__() 14 | 15 | def forward(self, deg, clean): 16 | return torch.sqrt(torch.mean(torch.pow((deg - clean), 2)) + EPS) 17 | 18 | 19 | class SDRLoss(nn.Module): 20 | def __init__(self): 21 | super().__init__() 22 | 23 | def forward(self, deg, clean): 24 | loss_sdr = -1. * torch.mean(deg * clean) ** 2 / (torch.mean(deg ** 2) + 2e-7) 25 | return loss_sdr 26 | 27 | 28 | def rmse_loss(): 29 | return RMSELoss() 30 | 31 | 32 | def mse_loss(): 33 | return torch.nn.MSELoss() 34 | -------------------------------------------------------------------------------- /util/stoi_utils.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Author:sen 3 | # Date:2020/3/23 14:35 4 | import torch 5 | import torch.nn as nn 6 | import numpy as np 7 | from numpy import std, vstack, hstack, argsort, argmax, array, hanning, savez, real, imag 8 | import scipy.signal 9 | import torch.nn.functional as F 10 | 11 | EPS = np.finfo(float).eps 12 | 13 | 14 | def pearsonr(x, y, return_batch=False): 15 | """ 16 | Mimics `scipy.stats.pearsonr` 17 | 18 | Arguments 19 | --------- 20 | x : 1D torch.Tensor 21 | y : 1D torch.Tensor 22 | 23 | Returns 24 | ------- 25 | r_val : float 26 | pearsonr correlation coefficient between x and y 27 | 28 | Scipy docs ref: 29 | https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.pearsonr.html 30 | 31 | Scipy code ref: 32 | https://github.com/scipy/scipy/blob/v0.19.0/scipy/stats/stats.py#L2975-L3033 33 | Example: 34 | >>> x = np.random.randn(100) 35 | >>> y = np.random.randn(100) 36 | >>> sp_corr = scipy.stats.pearsonr(x, y)[0] 37 | >>> th_corr = pearsonr(torch.from_numpy(x), torch.from_numpy(y)) 38 | >>> np.allclose(sp_corr, th_corr) 39 | """ 40 | x = x.view(x.size(0), -1) 41 | y = y.view(y.size(0), -1) 42 | mean_x = torch.mean(x, dim=1, keepdim=True) 43 | mean_y = torch.mean(y, dim=1, keepdim=True) 44 | xm = x - mean_x 45 | ym = y - mean_y 46 | r_num = torch.sum(xm * ym, dim=1, keepdim=True) 47 | xm_2_sum = torch.sqrt(torch.sum(torch.pow(xm, 2), dim=1, keepdim=True) + EPS) 48 | ym_2_sum = torch.sqrt(torch.sum(torch.pow(ym, 2), dim=1, keepdim=True) + EPS) 49 | 50 | r_den = xm_2_sum * ym_2_sum + EPS 51 | r_val = r_num / r_den 52 | return r_val if return_batch else torch.mean(r_val) 53 | 54 | 55 | class FourierTransformer(nn.Module): 56 | """ 57 | 用神经网络来模拟STFT变换 58 | """ 59 | 60 | def __init__(self, windowsize=1024, hop=64, window='hann', requires_grad=False): 61 | super().__init__() 62 | 63 | self.windowsize = windowsize 64 | self.hop = hop 65 | 66 | win = scipy.signal.get_window(window, windowsize) # 窗的类型+窗的采样点 67 | f = np.fft.fft(np.eye(windowsize)) # 这里的f实际上表示的是权重W 68 | f *= win # 权重乘以窗 69 | f = vstack((real(f[:int(windowsize / 2 + 1), :]), imag(f[:int(windowsize / 2 + 1), :]))) 70 | # fft后,生成的数据长度有windowsize个采样点,然而傅里叶变换是对称的,为防止数据冗余,只取前半部分 71 | # 先取f的前半部分,vstack 将 real 和 imag 叠加组合, 这样矩阵的大小和原来是一样的 72 | f = f[:, None, :] # 增加一个维度, 这里的f就是kernel 73 | self.ft = torch.nn.Parameter(torch.FloatTensor(f), requires_grad=requires_grad) 74 | 75 | def forward(self, x): 76 | # x torch.size([batch_size, 1, 16384]) 77 | # bt = x.size(0) # batchsize 78 | # T = x.size(2) # x数据的时间采样点 79 | # x = x.view(bt, 1, T) # 16 x 1 x 16000 80 | tx = F.conv1d(x, self.ft, stride=self.hop) 81 | amp = torch.sqrt( 82 | tx[:, :int(self.windowsize / 2) + 1, :] ** 2 + tx[:, int(self.windowsize / 2) + 1:, :] ** 2 + EPS) 83 | ph = torch.atan2(tx[:, int(self.windowsize / 2) + 1:, :], tx[:, :int(self.windowsize / 2) + 1, :]) # 弧度制 84 | amp = torch.transpose(amp, dim0=1, dim1=2).contiguous() 85 | ph = torch.transpose(ph, dim0=1, dim1=2).contiguous() 86 | return amp, ph # batch x num_frame x num_freq 87 | 88 | 89 | class STOICalculator(nn.Module): 90 | """ 91 | 将STOI计算指标融入到损失函数中,该实现来自于Paper: 92 | Fu, Szu-Wei, et al. "End-to-end waveform utterance enhancement for direct evaluation metrics optimization 93 | by fully convolutional neural networks." IEEE/ACM Transactions on Audio, Speech, and Language Processing 94 | 26.9 (2018): 1570-1584. 95 | """ 96 | 97 | def __init__(self, samplerate=16000, windowsize=1024, hop=64, window='hann', 98 | num_bands=15, low_center_freq=150, seg_len=96, seg_hop=1, 99 | requires_grad=False): 100 | super().__init__() 101 | self.seg_len = seg_len 102 | self.seg_hop = seg_hop 103 | self.num_bands = num_bands 104 | self.stft = FourierTransformer(windowsize, hop, window, requires_grad) 105 | oct_m, _ = self._thirdoct(samplerate, windowsize, num_bands, low_center_freq) 106 | oct_m = oct_m.T # num_freq * num_bands 107 | self.oct_m = torch.nn.Parameter(torch.FloatTensor(oct_m), requires_grad=requires_grad) 108 | seg_eye = np.eye(seg_len) 109 | self.seg_eye = torch.nn.Parameter(torch.FloatTensor(seg_eye[:, None, :]), requires_grad=requires_grad) 110 | 111 | def forward(self, deg, clean): 112 | # stft 113 | x_amp, x_ph = self.stft(deg) # batch * num_frame * num_freq 114 | y_amp, y_ph = self.stft(clean) 115 | 116 | batchsize, nframe, nfreq = x_amp.size(0), x_amp.size(1), x_amp.size(2) 117 | 118 | # 1/3 octave band grouping 119 | x_amp = x_amp.view(-1, nfreq) 120 | x_amp = x_amp.mm(self.oct_m) 121 | y_amp = y_amp.view(-1, nfreq) 122 | y_amp = y_amp.mm(self.oct_m) # batchsize * nframe * num_bands 123 | 124 | # segment v3 125 | x_amp = x_amp.view(batchsize, nframe, self.num_bands) 126 | x_amp = torch.transpose(x_amp, dim0=1, dim1=2).contiguous().view(batchsize * self.num_bands, nframe) 127 | y_amp = y_amp.view(batchsize, nframe, self.num_bands) 128 | y_amp = torch.transpose(y_amp, dim0=1, dim1=2).contiguous().view(batchsize * self.num_bands, nframe) 129 | x_amp = F.conv1d(x_amp[:, None, :], self.seg_eye, 130 | stride=self.seg_hop) # batchsize * num_bands * seg_len * num_seg 131 | y_amp = F.conv1d(y_amp[:, None, :], self.seg_eye, stride=self.seg_hop) 132 | 133 | # normalization v2 134 | num_seg = x_amp.size(2) 135 | x_amp = x_amp.view(batchsize, self.num_bands, self.seg_len, num_seg) 136 | y_amp = y_amp.view(batchsize, self.num_bands, self.seg_len, num_seg) 137 | 138 | x_ss = torch.sum(x_amp ** 2, dim=2, keepdim=True) + EPS 139 | y_ss = torch.sum(y_amp ** 2, dim=2, keepdim=True) 140 | alpha = torch.sqrt(y_ss / x_ss + EPS) 141 | 142 | alpha = alpha.expand(-1, -1, self.seg_len, -1) 143 | x_amp = x_amp * alpha # v4, fix bug 144 | 145 | x_amp = torch.transpose(x_amp, dim0=2, dim1=3).contiguous().view(-1, self.seg_len) 146 | y_amp = torch.transpose(y_amp, dim0=2, dim1=3).contiguous().view(-1, self.seg_len) 147 | 148 | stoi = pearsonr(x_amp, y_amp) 149 | return stoi 150 | 151 | def _thirdoct(self, fs, N_fft, numBands, mn): 152 | step = float(fs) / N_fft 153 | f = np.array([i * step for i in range(0, N_fft // 2 + 1)]) 154 | k = np.arange(numBands) 155 | cf = 2 ** (k / 3) * mn 156 | fl = np.sqrt(cf * 2 ** ((k - 1.) / 3) * mn + EPS) 157 | fr = np.sqrt(cf * 2 ** ((k + 1.) / 3) * mn + EPS) 158 | A = [[0 for j in range(len(f))] for i in range(numBands)] 159 | 160 | for i in range(len(cf)): 161 | fl_i = np.argmin((f - fl[i]) ** 2) 162 | fr_i = np.argmin((f - fr[i]) ** 2) 163 | for j in range(fl_i, fr_i): 164 | A[i][j] = 1 165 | A = np.array(A) 166 | rnk = np.sum(A, axis=1) 167 | 168 | for i in range(len(rnk) - 2, 0, -1): 169 | if rnk[i + 1] >= rnk[i] and rnk[i + 1] != 0: 170 | numBands = i + 1 171 | break 172 | 173 | A = A[0: numBands + 1, :] 174 | cf = cf[0: numBands + 1] 175 | return A, cf 176 | -------------------------------------------------------------------------------- /util/utils.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Author:lisen 3 | # Date:20-3-7 下午4:44 4 | import os 5 | import glob 6 | import time 7 | import numpy as np 8 | import importlib 9 | from sphfile import SPHFile 10 | from pypesq import pesq 11 | from pystoi.stoi import stoi 12 | import librosa 13 | 14 | 15 | class ExecutionTime: 16 | """ 17 | Usage: 18 | timer = ExecutionTime() 19 | 20 | 21 | 22 | print(f"Finished in {timer.duration()} seconds.") 23 | """ 24 | 25 | def __init__(self): 26 | self.start_time = time.time() 27 | 28 | def duratioin(self): 29 | return time.time() - self.start_time 30 | 31 | 32 | def initialize_config(module_cfg): 33 | """ 34 | 根据配置项,动态加载对应的模块, 并将参数传入模块内部的制定函数 35 | eg. 配置文件如下: 36 | module_cfg = { 37 | "module": "models.unet", 38 | "main": "UNet", 39 | "args": {...} 40 | } 41 | 1. 加载 type 参数对应的模块 42 | 2. 调用(实例化)模块内部对应 main 参数的函数(类) 43 | 3. 再调用(实例化)时将 args 参数输入函数(类) 44 | 45 | 46 | :param module_cfg: 配置信息, 参见json文件 47 | :return: 实例化后的函数(类) 48 | """ 49 | module = importlib.import_module(module_cfg["module"]) 50 | return getattr(module, module_cfg["main"])(**module_cfg["args"]) 51 | 52 | 53 | def prepare_empty_dir(dirs, resume=False): 54 | """ 55 | if resume experiment, assert the dirs exist, 56 | if not resume experiment, make dirs. 57 | :param dirs (list): directors list 58 | :param resume (bool): 是否继续试验,默认是False 59 | :return: 60 | """ 61 | for dir_path in dirs: 62 | if resume: 63 | assert dir_path.exists() 64 | else: 65 | dir_path.mkdir(parents=True, exist_ok=True) 66 | 67 | 68 | def set_requires_grad(nets, requires_grad=False): 69 | """ 70 | :param nets: list of networks 71 | :param requires_grad: 72 | :return: 73 | """ 74 | if not isinstance(nets, list): 75 | nets = [nets] 76 | 77 | for net in nets: 78 | if net is not None: 79 | for param in net.parameters(): 80 | param.requires_grad = requires_grad 81 | 82 | 83 | def compute_STOI(clean_signal, noisy_signal, sr=16000): 84 | return stoi(clean_signal, noisy_signal, sr, extended=False) 85 | 86 | 87 | def compute_PESQ(clean_signal, noisy_signal, sr=16000): 88 | return pesq(clean_signal, noisy_signal, sr) 89 | 90 | 91 | def create_data_list(cleanRoot, noisyRoot): 92 | """ 93 | 将文件夹中的文件路径整理,并生成dataset.txt文件 94 | :param cleanRoot: 干净语音的路径 95 | :param noisyRoot: 带噪语音的路径 96 | Notes: 97 | the format of the waveform dataset.txt is as follows. 98 | In list file: 99 | 100 | 101 | ... 102 | 103 | 104 | e.g. 105 | In "dataset.txt": 106 | /home/dog/train/noisy/a.wav /home/dog/train/clean/a.wav 107 | /home/dog/train/noisy/b.wav /home/dog/train/clean/b.wav 108 | ... 109 | /home/dog/train/noisy/x.wav /home/dog/train/clean/x.wav 110 | """ 111 | count = 0 112 | txtFile = "dataset.txt" 113 | txtFileList = [] 114 | 115 | for root, dirs, files in sorted(os.walk(noisyRoot)): 116 | for name in sorted(files): 117 | file = os.path.join(root, name) 118 | cleanFile = os.path.join(cleanRoot, name) 119 | txtFileList.append(file + " " + cleanFile) 120 | count += 1 121 | # print(file) 122 | if not os.path.exists(txtFile): 123 | os.mknod(txtFile) 124 | f_dst = open(txtFile, 'w') 125 | for i in txtFileList: 126 | f_dst.write(i) 127 | f_dst.write("\n") 128 | f_dst.close() 129 | print("文件总数量:", count) 130 | 131 | 132 | def sample_fixed_length_data_aligned(data_a, data_b, sample_length): 133 | """ 134 | sampling with fixed-length from tow waveform 135 | :param data_a: numpy形式的audio_a 136 | :param data_b: numpy格式的audio_b 137 | :param sample_length: 裁剪长度 138 | :return: 随机从语音中选取一段长度为sample_length的,用于输入到神经网络中 139 | """ 140 | assert len(data_a) == len(data_b), "Inconsistent data length, unable to sampling." 141 | assert len(data_a) >= sample_length, f"len(data_a) is {len(data_a)}, sample_length is {sample_length}." 142 | 143 | frames_total = len(data_a) 144 | start = np.random.randint(frames_total - sample_length + 1) 145 | end = start + sample_length 146 | return data_a[start:end], data_b[start:end] 147 | 148 | 149 | def timit_trans(): 150 | # 下载的TIMIT可能无法直接使用,需要用此脚本转换一下 151 | path = '/home/lisen/uestc/Research/Dataset/TIMIT/TRAIN/*/*/*.WAV' 152 | sph_files = glob.glob(path) 153 | print(len(sph_files), "train utterences") 154 | for i in sph_files: 155 | sph = SPHFile(i) 156 | sph.write_wav(filename=i.replace(".WAV", "_.wav")) # _不能删除 157 | os.remove(i) 158 | path = '/home/lisen/uestc/Research/Dataset/TIMIT/TEST/*/*/*.WAV' 159 | sph_files_test = glob.glob(path) 160 | print(len(sph_files_test), "test utterences") 161 | for i in sph_files_test: 162 | sph = SPHFile(i) 163 | sph.write_wav(filename=i.replace(".WAV", "_.wav")) # _不能删除 164 | os.remove(i) 165 | print("Completed") 166 | 167 | 168 | if __name__ == '__main__': 169 | pass 170 | # cleanRoot = '/home/lisen/uestc/Research/Dataset/ToyData/train_clean' 171 | # noisyRoot = '/home/lisen/uestc/Research/Dataset/ToyData/val_babble_0db' 172 | # create_data_list(cleanRoot, noisyRoot) 173 | 174 | # timit_trans() 175 | # caculate_length(cleanRoot) 176 | -------------------------------------------------------------------------------- /util/visualization.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Author:sen 3 | # Date:2020/3/14 12:30 4 | 5 | from torch.utils.tensorboard import SummaryWriter 6 | 7 | def writer(logs_dir): 8 | return SummaryWriter(log_dir=logs_dir, max_queue=5, flush_secs=30) --------------------------------------------------------------------------------