Git Product home page Git Product logo

nara_wpe's Introduction

nara_wpe

Documentation Status Tests PyPI PyPI MIT License

Weighted Prediction Error for speech dereverberation

Background noise and signal reverberation due to reflections in an enclosure are the two main impairments in acoustic signal processing and far-field speech recognition. This work addresses signal dereverberation techniques based on WPE for speech recognition and other far-field applications. WPE is a compelling algorithm to blindly dereverberate acoustic signals based on long-term linear prediction.

The main algorithm is based on the following paper: Yoshioka, Takuya, and Tomohiro Nakatani. "Generalization of multi-channel linear prediction methods for blind MIMO impulse response shortening." IEEE Transactions on Audio, Speech, and Language Processing 20.10 (2012): 2707-2720.

Content

  • Iterative offline WPE/ block-online WPE/ recursive frame-online WPE
  • All algorithms implemented both in Numpy and in TensorFlow (works with version 1.12.0).
  • Continuously tested with Python 3.7, 3.8, 3.9 and 3.10.
  • Automatically built documentation: nara-wpe.readthedocs.io
  • Modular design to facilitate changes for further research

Installation

Install it directly with Pip, if you just want to use it:

pip install nara_wpe

If you want to make changes or want the most recent version: Clone the repository and install it as follows:

git clone https://github.com/fgnt/nara_wpe.git
cd nara_wpe
pip install --editable .

Check the example notebook for further details. If you download the example notebook, you can listen to the input audio examples and to the dereverberated output too.

Citation

To cite this implementation, you can cite the following paper:

@InProceedings{Drude2018NaraWPE,
  Title     = {{NARA-WPE}: A Python package for weighted prediction error dereverberation in {Numpy} and {Tensorflow} for online and offline processing},
  Author    = {Drude, Lukas and Heymann, Jahn and Boeddeker, Christoph and Haeb-Umbach, Reinhold},
  Booktitle = {13. ITG Fachtagung Sprachkommunikation (ITG 2018)},
  Year      = {2018},
  Month     = {Oct},
}

To view the paper see IEEE Xplore (PDF) or for a preview see Paderborn University RIS (PDF).

Comparision with the NTT WPE implementation

The fairly recent John Hopkins University paper (Manohar, Vimal: Acoustic Modeling for Overlapping Speech Recognition: JHU CHiME-5 Challenge System, ICASSP 2019) reporting on their CHiME 5 challenge results dedicate an entire table to the comparison of the Nara-WPE implementation and the NTT WPE implementation. Their result is, that the Nara-WPE implementation is as least as good as the NTT WPE implementation in all their reported conditions.

Development history

Since 2017-09-05 a TensorFlow implementation has been added to nara_wpe. It has been tested with a few test cases against the Numpy implementation.

The first version of the Numpy implementation was written in June 2017 while Lukas Drude and Kateřina Žmolíková resided in Nara, Japan. The aim was to have a publicly available implementation of Takuya Yoshioka's 2012 paper.

nara_wpe's People

Contributors

lukasdrude avatar boeddeker avatar danielhkl avatar sibange avatar jazcarretao avatar jheymann85 avatar lzljbsc avatar

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.