/Speech-Enhancement-Using-Time-Domain-Loss

This is an adaptation of the paper "Two-Stage Deep Learning for Noisy-Reverberant Speech Enhancement". It uses Time Domain Reconstruction (TDR) as an additional loss function to make use of clean phase in the enhancement process. https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6519714/

Primary LanguagePython

TRAINING SCRIPT

Init (To set global variables in terminal)

# See the requirements in this file
. path.sh

Dataprep

## step1_dataprep_raw2dict : saving train/val/test
nohup bash ./run_Dataprep.sh --stage 0 --stage_v 1 --data_type $trn_type $curr_opts &> $log_dir_dataprep/run_Dataprep.${trn_type}.0.1.log &
nohup bash ./run_Dataprep.sh --stage 0 --stage_v 1 --data_type $val_type $curr_opts &> $log_dir_dataprep/run_Dataprep.${val_type}.0.1.log &
nohup bash ./run_Dataprep.sh --stage 0 --stage_v 1 --data_type $tst_type $curr_opts &> $log_dir_dataprep/run_Dataprep.${tst_type}.0.1.log &

## step1_dataprep_raw2dict : saving nse
nohup bash ./run_Dataprep.sh --stage 0 --stage_v 2 --data_type $degrade_type $curr_opts &> $log_dir_dataprep/run_Dataprep.${degrade_type}.0.2.log &

## step1_dataprep_raw2dict : saving rir
nohup bash ./run_Dataprep.sh --stage 0 --stage_v 3 --data_type $degrade_type $curr_opts &> $log_dir_dataprep/run_Dataprep.${degrade_type}.0.3.log &

Model Setup

## Setup model
nohup bash ./run_DNN.sh --stage 1 --stage_v 1 $curr_opts &> $log_dir_DNN/run_DNN.1.1.log &
nohup bash ./run_DNN.sh --stage 1 --stage_v 2 $curr_opts &> $log_dir_DNN/run_DNN.1.2.log &

Training

## Train model (Denoise)
nohup bash ./run_DNN.sh --stage 3 --stage_v 1 $curr_opts &> $log_dir_DNN/run_DNN.3.1.log &

## Train model (Dereverb)
nohup bash ./run_DNN.sh --stage 3 --stage_v 2 $curr_opts &> $log_dir_DNN/run_DNN.3.2.log &

## Train model (Joint)
wait # wait for previous two jobs to finish first, before you run the joint training
nohup bash ./run_DNN.sh --stage 3 --stage_v 3 $curr_opts &> $log_dir_DNN/run_DNN.3.3.log &

Inference

## Inference (denoise) 
nohup bash ./run_DNN.sh --stage 4 --stage_v 1 --data_type $trn_type $curr_opts &> $log_dir_DNN/run_DNN.4.1.log

# Inference (dereverb) 
nohup bash ./run_DNN.sh --stage 4 --stage_v 2 --data_type $trn_type $curr_opts &> $log_dir_DNN/run_DNN.4.2.log

# Inference (Joint) 
nohup bash ./run_DNN.sh --stage 4 --stage_v 3 --data_type $trn_type $curr_opts &> $log_dir_DNN/run_DNN.4.3.log