Giter VIP home page Giter VIP logo

seril's Introduction

SERIL: Noise Adaptive Speech Enhancement using Regularization based Incremental Learning - Official PyTorch Implementation

This is the original Pytorch implementation for our paper. Our work focuses on building a noise adaptive speech enhancement technique with an incremental strategy to reduce catastrophic forgetting problem, complementing existing noise adaptation strategies without using additional storage.

Contents

Installation

In order to install SERIL, clone the repo and install it using pip or python :

git clone https://github.com/ChangLee0903/SERIL
cd SERIL
# Install install-required deps
pip install numpy Cython
# Install all the necessary packages
pip install -r requirements.txt

Steps and Usages

  1. Data Preprocess:

    You can mix your own data by using adnoise function in util.py and set the data path in config/config.yaml.

    • Prepare noisy wavs directory, e.g. "../train/noisy_T0/", "../dev/noisy_T0/", "../test/noisy_T0/"
    • Prepare clean wavs directory, e.g. "../train/clean_T0/", "../dev/clean_T0/", "../test/clean_T0/"
    train: 
     noisy:
       ['../train/noisy_T0', '../train/noisy_T1', '../train/noisy_T2', '../train/noisy_T3', '../train/noisy_T4']
     clean:
       ['../train/clean_T0', '../train/clean_T1', '../train/clean_T2', '../train/clean_T3', '../train/clean_T4']
     ...
     

    Make sure that both noisy and clean directory have the same wave file names.

    ../train/noisy_T0/p226_006.wav
    ../train/clean_T0/p226_006.wav
    ...
  2. Train the networks for each domain sequentially:

    Note that the utterances of first domain will be taken as the training data of pretrain task which will train much longer than other domains, and both --mode finetune and --mode seril will share the same pretrain model.

    • Check log directory
    • Choose seril/naive fine-tuning mode
    • Run:
    python main.py --logdir log --do train --mode finetune
    python main.py --logdir log --do train --mode seril
    
  3. Inference:

    Make sure your --logdir log setting is the same with the training step.

    • Check log directory
    • Choose seril/naive fine-tuning mode
    • Run:
    python main.py --logdir log --do test --mode finetune
    python main.py --logdir log --do test --mode seril

Citation

If you find the code helpful in your research, please do consider cite us!

@inproceedings{SERIL,
  author={Chi-Chang Lee, Yu-Chen Lin, Hsuan-Tien Lin, Hsin-Min Wang, Yu Tsao},
  title={{SERIL:} Noise Adaptive Speech Enhancement using Regularization-based Incremental Learning},
  year=2020,
  booktitle={Proc. Interspeech},
}

Contact

Any bug report or improvement suggestion will be appreciated!

seril's People

Contributors

changlee0903 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

seril's Issues

UnboundLocalError

Hi, thanks for your code sharing. I meet an error during the inference.
Traceback (most recent call last):
File "main.py", line 87, in
main()
File "main.py", line 84, in main
test(args, config)
File "~/Pycharmproject/SERIL/evaluation.py", line 151, in test
results[i][0, Ti] = score[i]
UnboundLocalError: local variable 'results' referenced before assignment

Does anyone know how to fix that?

Loss函数是否没有提供?

你好,你们所做的工作很棒!我也很感兴趣~论文中描述的loss函数有点复杂,所以想看一下你们是怎么实现的,不过没有找到,请问是否没有上传loss函数呢?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.