tky823/DNN-based_source_separation

A PyTorch implementation of DNN-based source separation.

Python

312

1,773 commits

updated Mar 29, 2022

See the code

README

DNN-based source separation

A PyTorch implementation of DNN-based source separation.

New information

  • v0.7.2
    • Update jupyter notebooks.

Model

ModelReferenceDone
WaveNetWaveNet: A Generative Model for Raw Audio
Wave-U-NetWave-U-Net: A Multi-Scale Neural Network for End-to-End Audio Source Separation
Deep ClusteringDeep Clustering: Discriminative Embeddings for Segmentation and Separation
Deep Clustering++Single-Channel Multi-Speaker Separation using Deep Clustering
ChimeraAlternative Objective Functions for Deep Clustering
DANetDeep Attractor Network for Single-microphone Apeaker Aeparation
ADANetSpeaker-independent Speech Separation with Deep Attractor Network
TasNetTasNet: Time-domain Audio Separation Network for Real-time, Single-channel Speech Separation
Conv-TasNetConv-TasNet: Surpassing Ideal Time-Frequency Magnitude Masking for Speech Separation
DPRNN-TasNetDual-path RNN: Efficient Long Sequence Modeling for Time-domain Single-channel Speech Separation
Gated DPRNN-TasNetVoice Separation with an Unknown Number of Multiple Speakers
FurcaNetFurcaNet: An End-to-End Deep Gated Convolutional, Long Short-term Memory, Deep Neural Networks for Single Channel Speech Separation
FurcaNeXtFurcaNeXt: End-to-End Monaural Speech Separation with Dynamic Gated Dilated Temporal Convolutional Networks
DeepCASADivide and Conquer: A Deep Casa Approach to Talker-independent Monaural Speaker Separation
Conditioned-U-NetConditioned-U-Net: Introducing a Control Mechanism in the U-Net for multiple source separations
MMDenseNetMulti-scale Multi-band DenseNets for Audio Source Separation
MMDenseLSTMMMDenseLSTM: An Efficient Combination of Convolutional and Recurrent Neural Networks for Audio Source Separation
Open-Unmix (UMX)Open-Unmix - A Reference Implementation for Music Source Separation
WavesplitWavesplit: End-to-End Speech Separation by Speaker Clustering
HydranetHydranet: A Real-Time Waveform Separation Network
Dual-Path Transformer Network (DPTNet)Dual-Path Transformer Network: Direct Context-Aware Modeling for End-to-End Monaural Speech Separation
CrossNet-Open-Unmix (X-UMX)All for One and One for All: Improving Music Separation by Bridging Networks
D3NetD3Net: Densely connected multidilated DenseNet for music source separation
LaSAFTLaSAFT: Latent Source Attentive Frequency Transformation for Conditioned Source Separation
SepFormerAttention is All You Need in Speech Separation
GALREffective Low-Cost Time-Domain Audio Separation Using Globally Attentive Locally Reccurent networks
HRNetVocal Melody Extraction via HRNet-Based Singing Voice Separation and Encoder-Decoder-Based F0 Estimation
MRXThe Cocktail Fork Problem: Three-Stem Audio Separation for Real-World Soundtracks

Modules

Example

Open In Colab

LibriSpeech example using Conv-TasNet

You can check other tutorials in <REPOSITORY_ROOT>/egs/tutorials/.

0. Preparation

cd <REPOSITORY_ROOT>/egs/tutorials/common/
. ./prepare_librispeech.sh \
--librispeech_root <LIBRISPEECH_ROOT> \
--n_sources <#SPEAKERS>

1. Training

cd <REPOSITORY_ROOT>/egs/tutorials/conv-tasnet/
. ./train.sh \
--exp_dir <OUTPUT_DIR>

If you want to resume training,

. ./train.sh \
--exp_dir <OUTPUT_DIR> \
--continue_from <MODEL_PATH>

2. Evaluation

cd <REPOSITORY_ROOT>/egs/tutorials/conv-tasnet/
. ./test.sh \
--exp_dir <OUTPUT_DIR>

3. Demo

cd <REPOSITORY_ROOT>/egs/tutorials/conv-tasnet/
. ./demo.sh

Pretrained Models

You need gdown to download pretrained models.

pip install gdown

You can load pretrained models.

from models.conv_tasnet import ConvTasNet

model = ConvTasNet.build_from_pretrained(task="musdb18", sample_rate=44100, target="vocals")

See PRETRAINED.md, egs/tutorials/hub/pretrained.ipynb or click Open In Colab for details.

Time Domain Wrappers for Time-Frequency Domain Models

See egs/tutorials/hub/time-domain_wrapper.ipynb or click Open In Colab.

Speech Separation by Pretrained Models

See egs/tutorials/hub/speech-separation.ipynb or click Open In Colab.

Music Source Separation by Pretrained Models

See egs/tutorials/hub/music-source-separation.ipynb or click Open In Colab.

If you want to separate your own music file, see below:

  • MMDenseLSTM: See egs/tutorials/mm-dense-lstm/separate_music.ipynb or click Open In Colab.
  • Conv-TasNet: See egs/tutorials/conv-tasnet/separate_music.ipynb or click Open In Colab.
  • UMX: See egs/tutorials/umx/separate_music.ipynb or click Open In Colab.
  • X-UMX: See egs/tutorials/x-umx/separate_music.ipynb or click Open In Colab.
  • D3Net: See egs/tutorials/d3net/separate_music.ipynb or click Open In Colab.
audio-separation
conv-tasnet
pytorch
source-separation
speech-separation
tasnet

Contributors

tky823

1,773 commits

tky823/DNN-based_source_separation

A PyTorch implementation of DNN-based source separation.

Python

312

1,773 commits

updated Mar 29, 2022

See the code

README

DNN-based source separation

A PyTorch implementation of DNN-based source separation.

New information

  • v0.7.2
    • Update jupyter notebooks.

Model

ModelReferenceDone
WaveNetWaveNet: A Generative Model for Raw Audio
Wave-U-NetWave-U-Net: A Multi-Scale Neural Network for End-to-End Audio Source Separation
Deep ClusteringDeep Clustering: Discriminative Embeddings for Segmentation and Separation
Deep Clustering++Single-Channel Multi-Speaker Separation using Deep Clustering
ChimeraAlternative Objective Functions for Deep Clustering
DANetDeep Attractor Network for Single-microphone Apeaker Aeparation
ADANetSpeaker-independent Speech Separation with Deep Attractor Network
TasNetTasNet: Time-domain Audio Separation Network for Real-time, Single-channel Speech Separation
Conv-TasNetConv-TasNet: Surpassing Ideal Time-Frequency Magnitude Masking for Speech Separation
DPRNN-TasNetDual-path RNN: Efficient Long Sequence Modeling for Time-domain Single-channel Speech Separation
Gated DPRNN-TasNetVoice Separation with an Unknown Number of Multiple Speakers
FurcaNetFurcaNet: An End-to-End Deep Gated Convolutional, Long Short-term Memory, Deep Neural Networks for Single Channel Speech Separation
FurcaNeXtFurcaNeXt: End-to-End Monaural Speech Separation with Dynamic Gated Dilated Temporal Convolutional Networks
DeepCASADivide and Conquer: A Deep Casa Approach to Talker-independent Monaural Speaker Separation
Conditioned-U-NetConditioned-U-Net: Introducing a Control Mechanism in the U-Net for multiple source separations
MMDenseNetMulti-scale Multi-band DenseNets for Audio Source Separation
MMDenseLSTMMMDenseLSTM: An Efficient Combination of Convolutional and Recurrent Neural Networks for Audio Source Separation
Open-Unmix (UMX)Open-Unmix - A Reference Implementation for Music Source Separation
WavesplitWavesplit: End-to-End Speech Separation by Speaker Clustering
HydranetHydranet: A Real-Time Waveform Separation Network
Dual-Path Transformer Network (DPTNet)Dual-Path Transformer Network: Direct Context-Aware Modeling for End-to-End Monaural Speech Separation
CrossNet-Open-Unmix (X-UMX)All for One and One for All: Improving Music Separation by Bridging Networks
D3NetD3Net: Densely connected multidilated DenseNet for music source separation
LaSAFTLaSAFT: Latent Source Attentive Frequency Transformation for Conditioned Source Separation
SepFormerAttention is All You Need in Speech Separation
GALREffective Low-Cost Time-Domain Audio Separation Using Globally Attentive Locally Reccurent networks
HRNetVocal Melody Extraction via HRNet-Based Singing Voice Separation and Encoder-Decoder-Based F0 Estimation
MRXThe Cocktail Fork Problem: Three-Stem Audio Separation for Real-World Soundtracks

Modules

Example

Open In Colab

LibriSpeech example using Conv-TasNet

You can check other tutorials in <REPOSITORY_ROOT>/egs/tutorials/.

0. Preparation

cd <REPOSITORY_ROOT>/egs/tutorials/common/
. ./prepare_librispeech.sh \
--librispeech_root <LIBRISPEECH_ROOT> \
--n_sources <#SPEAKERS>

1. Training

cd <REPOSITORY_ROOT>/egs/tutorials/conv-tasnet/
. ./train.sh \
--exp_dir <OUTPUT_DIR>

If you want to resume training,

. ./train.sh \
--exp_dir <OUTPUT_DIR> \
--continue_from <MODEL_PATH>

2. Evaluation

cd <REPOSITORY_ROOT>/egs/tutorials/conv-tasnet/
. ./test.sh \
--exp_dir <OUTPUT_DIR>

3. Demo

cd <REPOSITORY_ROOT>/egs/tutorials/conv-tasnet/
. ./demo.sh

Pretrained Models

You need gdown to download pretrained models.

pip install gdown

You can load pretrained models.

from models.conv_tasnet import ConvTasNet

model = ConvTasNet.build_from_pretrained(task="musdb18", sample_rate=44100, target="vocals")

See PRETRAINED.md, egs/tutorials/hub/pretrained.ipynb or click Open In Colab for details.

Time Domain Wrappers for Time-Frequency Domain Models

See egs/tutorials/hub/time-domain_wrapper.ipynb or click Open In Colab.

Speech Separation by Pretrained Models

See egs/tutorials/hub/speech-separation.ipynb or click Open In Colab.

Music Source Separation by Pretrained Models

See egs/tutorials/hub/music-source-separation.ipynb or click Open In Colab.

If you want to separate your own music file, see below:

  • MMDenseLSTM: See egs/tutorials/mm-dense-lstm/separate_music.ipynb or click Open In Colab.
  • Conv-TasNet: See egs/tutorials/conv-tasnet/separate_music.ipynb or click Open In Colab.
  • UMX: See egs/tutorials/umx/separate_music.ipynb or click Open In Colab.
  • X-UMX: See egs/tutorials/x-umx/separate_music.ipynb or click Open In Colab.
  • D3Net: See egs/tutorials/d3net/separate_music.ipynb or click Open In Colab.
audio-separation
conv-tasnet
pytorch
source-separation
speech-separation
tasnet

Contributors

tky823

1,773 commits

Languages

Python

53.9%

Jupyter Notebook

39.6%

Shell

6.5%