xiph/rnnoise
FreeRecurrent neural network for audio noise reduction
FreeFree tier
About xiph/rnnoise
RNNoise is an open-source noise suppression library based on a recurrent neural network (RNN). It is designed for real-time full-band speech enhancement and is described in a research paper by J.-M. Valin (IEEE MMSP 2018). The library provides a simple command-line tool that processes raw 16-bit mono PCM audio sampled at 48 kHz. It includes pre-trained models that are automatically downloaded during build, and also supports custom training using separate clean speech and noise datasets. RNNoise is developed under the Xiph.Org foundation and is suitable for integration into VoIP, recording, and speech processing pipelines.
Key Features
Noise suppression based on recurrent neural network (RNN)
Real-time full-band speech enhancement
Library with command-line example tool (rnnoise_demo)
Supports custom training with clean speech and noise datasets
Operates on raw 16-bit mono PCM audio at 48 kHz
Pre-trained models available for immediate use
Pros & Cons
Pros
- Proven algorithm with published peer-reviewed research
- Real-time performance suitable for live communication
- Open source (permissive license) allows customization and integration
- Pre-trained models included, no training required for basic use
- Supports training on custom datasets for domain-specific noise
Cons
- Requires raw 16-bit PCM at 48 kHz input; no built-in container format support
- Limited to mono audio; no stereo processing
- Command-line tool only; no graphical user interface
- Training process requires technical expertise and appropriate datasets
Best For
Real-time audio noise reduction for VoIP applicationsSpeech enhancement for recordings and broadcastsPre-processing for automatic speech recognition systemsAcademic research and experimentation in audio machine learning
FAQ
What audio format does RNNoise accept?
RNNoise operates on RAW 16-bit (machine endian) mono PCM files sampled at 48 kHz. It does not support WAV or other container formats natively.
Can I train my own noise suppression model?
Yes, RNNoise supports custom training. You need clean speech data and noise data, both in 16-bit PCM at 48 kHz. Example datasets are available from Xiph.Org media servers.
Is there an interactive demo available?
An interactive demo of version 0.1 is available at https://jmvalin.ca/demo/rnnoise/.
How do I compile RNNoise from source?
Run './autogen.sh', then './configure', then 'make'. Optionally run 'make install'. It is recommended to enable AVX2 support by setting -march= in CFLAGS or using --enable-x86-rtcd.