Skip to main content
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.

Metadata

Release files for nara-wpe 0.0.11

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nara-wpe 0.0.11
File Size Uploaded Provenance
nara_wpe-0.0.11.tar.gz 39.2 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for nara-wpe 0.0.11
File Interpreter ABI Platform
nara_wpe-0.0.11-py3-none-any.whl Python 3 none any Details

Total release size: 73.8 kB

Release files / nara_wpe-0.0.11.tar.gz

Download URL nara_wpe-0.0.11.tar.gz
Size 39.2 kB
Tags Source
SHA-256 checksum
How to use checksums
e0321457319e01bc4967da8df1223056b0de5c467a212d4e1802f4abf1153a10
BLAKE2b-256 checksum
How to use checksums
509ceffbaffa119c453005a79ffaf4d4a4b78735da568ec74da1ad5894c131e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.4

Release files / nara_wpe-0.0.11-py3-none-any.whl

Download URL nara_wpe-0.0.11-py3-none-any.whl
Size 34.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ce5f51478da5fa87925c85b8f5fecc784d2b4775488ada64e7b36099d3438711
BLAKE2b-256 checksum
How to use checksums
4ad0ae3750a1cd1c283f69b05ca819659dc8be4c44ae340998229aeb0f2f246a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.4

Security for nara-wpe 0.0.11

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page