Skip to content

athanatos96/Complex-CNN-DeepLab-v3-with-STFT-for-audio-denoising

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Complex Deep-Lab V3

PyTorch Implementation of Complex Convolution Neural Network model (Complex DeepLab v3) on STFT time-varying frequency components for audio denoising, (A. C. Parra, 2022)

Original Code

Original Code from https://github.com/sweetcocoa/DeepComplexUNetPyTorch/

Deep Lab V3

Code was adapted to work for Deep Lab V3 Rethinking Atrous Convolution for Semantic Image Segmentation, (L-C. Chen et al., 2017)

Reimplementation of DeepLabV3 to work with complex numbers

DeepLabv3 base code: https://github.com/pytorch/vision/blob/0dceac025615a1c2df6ec1675d8f9d7757432a49/torchvision/models/segmentation/deeplabv3.py

FCN head base code: https://github.com/pytorch/vision/blob/0dceac025615a1c2df6ec1675d8f9d7757432a49/torchvision/models/segmentation/fcn.py#L36

Resnet base code: https://github.com/pytorch/vision/blob/0dceac025615a1c2df6ec1675d8f9d7757432a49/torchvision/models/resnet.py#L166

Complex Layers

New functions adapted from https://github.com/wavefrontshaping/complexPyTorch/blob/70a511c1bedc4c7eeba0d571638b35ff0d8347a2/complexPyTorch/complexFunctions.py

They were built to run with complex types for pytorch. I had to change them to work with floats with 1 extra dimension of size 2 (Real, Imaginary)

New Functions and classes: ComplexAdaptiveAvgPool2d ComplexMaxPool2d ComplexReLU ComplexDropout complex_interpolate

Requirements

See file requirements.txt

Train

Download Datasets:

Train

python ComplexDeepLabV3/train_dcunet.py \
					--batch_size 2 \
					--train_signal Data/DS_10283_2791/Train/clean_trainset_28spk_wav \
					--train_noise Data/DS_10283_2791/Train/noisy_trainset_28spk_wav \
					--test_signal Data/DS_10283_2791/Test/clean_testset_wav \
					--test_noise Data/DS_10283_2791/Test/noisy_testset_wav \
					--ckpt checkpoints/checkpoint.pth \
					--num_step 300 \
					--validation_interval 150\
					--complex