NoiseTorch is a real-time microphone noise suppression application for Linux that can filter out unwanted background noise like the sound of your mechanical keyboard, computer fans, trains and so on. It currently only supports PulseAudio, but PipeWire support is planned for a future release.
The application user interface is built with simplicity in mind. If you only have 1 microphone, all you have to do is launch the application, then click on “Load NoiseTorch”. Once you do this, the application creates a virtual microphone called “NoiseTorch Microphone”:
You can select this virtual microphone in any application, be it Zoom, Mumble, Skype, Slack, Discord, TeamSpeak, Microsoft Teams, etc., in order to filter out background noises.
If you have multiple microphones, click on Select Microphone and choose your mic from the list.
Related: Hushboard Mutes Your Microphone While Typing
NoiseTorch only sends the sound input when it detects a voice. In case this doesn’t work properly for you, there’s a Voice Activation Threshold option that you can use to fix this. The developer notes that “with a decent microphone, you can turn this to the maximum of 95%“, but if your microphone cuts out during audio conferences, you’ll want to lower this value until it works properly for you.
After changing the settings, you’ll need to restart NoiseTorch to use them.
The application is also able to do output filtering (Filter Headphones option). This is a patrons-only feature, but you can use it even if you’re not a NoiseTorch patron. However, the developer notes that “you are legally required to feel bad” in that case 😁️.
It’s important to mention that NoiseTorch introduces some latency (about 10ms), this being very low, so it shouldn’t be a problem. Output filtering however, introduces a latency in the order of ~100ms, which is ok in most cases, but not for competitive gaming.
You can test this without actually talking to someone by using
gst-launch-1.0 pulsesrc ! pulsesink for live microphone output (echo test).
Another Linux GUI for real-time background noise removal is Cadmus, so in case you’re not satisfied with NoiseTorch, give this a try.
You may also be interested in: How To Enable Echo / Noise Cancellation Of Microphone Input On Your Linux Desktop (PulseAudio). NoiseTorch can be used in conjunction with the PulseAudio echo cancellation module. In my case though, using NoiseTorch was enough.
Using the official NoiseTorch installation instructions, the application binary is copied to
~/.local/bin. If you don’t have this directory in your PATH (in e.g.
~/.profile), add it there and then logout/login. Or run the application directly from its installation directory:
It’s also possible to start NoiseTorch automatically, using systemd. See the instructions here.