RNNoise: Using Deep Learning for Noise Suppression

banner

The Mozilla Research RRNoise project shows how to apply deep learning to noise suppression. It combines classic signal processing with deep learning, but it’s small and fast. No expensive GPUs required — it runs easily on a Raspberry Pi. The result is easier to tune and sounds better than traditional noise suppression systems (been there!).

RNNoise will help improve the quality of WebRTC calls, especially for multiple speakers in noisy rooms. It is also small enough and fast enough to be executed directly in JavaScript, making it possible for Web developers to embed it directly in Web pages when recording audio.

RNNoise audio samples

Screenshot of the player that evaluates the effect of RNNoise. Play the demo.

You can improve RNNoise by donating your noise to science. We’re interested in noise from any environment where you might communicate using voice. That can be your office, your car, on the street, or anywhere you might use your phone or computer. The more realistic noise we have, the better the models we can build and the better the output.

Read in depth about the RNNoise project.

About Jean-Marc Valin

Jean-Marc Valin has a B.S., M.S., and PhD in Electrical Engineering from the University of Sherbrooke. He is the primary author of the Speex codec and one of the main authors of the Opus codec. His expertise includes speech and audio coding, speech recognition, echo cancellation, and other audio-related topics. He is currently employed by Mozilla to work on next-generation multimedia codecs.

More articles by Jean-Marc Valin…


3 comments

  1. Jeff hinty

    Freaky awesome!

    September 29th, 2017 at 00:13

  2. Gustavo Garcia

    This is more than awesome. Are there specific plans on when/how to integrate it in WebRTC?

    In the context of RTC I think similar approaches could be also applied for other problems like audio PLC, video enhancement, optimising video encoding….

    September 29th, 2017 at 12:30

    1. Jean-Marc Valin

      We’re currently looking at WebRTC integration. It will probably take some time to make sure it works well all the time.

      September 29th, 2017 at 12:54

Comments are closed for this article.