Lightweight Noise Suppression for Audio Processing
rnnoise_light is a streamlined, minimalistic version of the Xiph RNNoise library, designed for efficient real-time noise suppression on embedded systems, desktop UIs, or constrained environments.
Unlike the full RNNoise implementation, this version reduces dependencies and computational overhead while retaining usable audio quality. For integration into Flutter or real-time streaming systems, see my other project: dgofman/audiostreamer.
RNN (Recurrent Neural Network) is a type of artificial neural network designed for processing sequential data such as audio. It uses memory of previous inputs to inform future predictions, making it suitable for speech and noise modeling.
-
Sample from YouTube:
https://www.youtube.com/shorts/nRLKJq1eF0Q -
Dataset:
Google's Noisy Speech Commands Dataset
Includes samples like:speech_commands_v0.02/_background_noise_/running_tap.wav
Use ffmpeg to record your microphone with injected background noise:
ffmpeg -f dshow -i audio="{{MICROPHONE NAME}}" -t 13 -filter:a "volume=1.0" -ar 48000 -ac 1 test_input.wavTo list your available microphone devices:
ffmpeg -list_devices true -f dshow -i dummymakeexamples/rnnoise_demo.exe docs/test_input.wav docs/test_output.rawffmpeg -f s16le -ar 48000 -ac 1 -i docs/test_output.raw docs/test_output.wav- The
test_output.rawis 16-bit PCM (mono, 48 kHz). - Noise suppression is performed using a lightweight RNN-based model.
- Reduced
rnnoise_tablescan be used for performance experiments.