ReNameNoise - a fork of RNNoise - is a noise suppression library based on a recurrent neural network.
A description of the algorithm is provided in the following paper:
J.-M. Valin, A Hybrid DSP/Deep Learning Approach to Real-Time Full-Band Speech
Enhancement, Proceedings of IEEE Multimedia Signal Processing (MMSP) Workshop,
arXiv:1709.08243, 2018.
https://arxiv.org/pdf/1709.08243.pdf
An interactive demo is available at: https://jmvalin.ca/demo/rnnoise/
To build the library with the existing, pre-trained network data you will need to install the following packages:
- build-essential
- cmake
To compile, open a terminal in the repository root directory and type:
cmake .
make
To compile the library only, without the demo executable:
cmake -DRENAMENOISE_DEMO_EXECUTABLE=OFF .
make
While it is meant to be used as a library, a simple command-line tool is provided as an example. It operates on RAW 16-bit (machine endian) mono PCM files sampled at 48 kHz. It can be used as:
./examples/renamenoise_demo <noisy speech> <output denoised>
The output is also a 16-bit raw PCM file.d
Training is not necessary to use the library as presented in this repository.
However, if you want to train the network on your own samples you need to follow these steps:
cd src ; ./compile.sh
./denoise_training signal.raw noise.raw count > training.f32
# (note the matrix size and replace 500000 87 below)
cd training ; ./bin2hdf5.py ../src/training.f32 500000 87 training.h5
./rnn_train.py
./dump_rnn.py weights.hdf5 ../src/rnn_data.c ../src/rnn_data.h