How to Use FFT to Completely Reduce Noise from Microphone Input?

Hi everyone,

I’m working on an audio processing app using JUCE, and I want to use FFT to remove all noise from a microphone input. My goal is to analyze the signal, filter out unwanted frequencies, and output clean audio in real-time.

There’s no FFT in PolarDesigner other than for some FIR filters. Also I think the way the original question is worded I doubt that we’re talking about beamforming here.

This task is all but easy. But a very simple approach would be to use a minimum tracker (slowly tracks the lowest levels you see for each bin over time) and then use that with some margin added as a threshold to gate away everything below it. That will help against static noise floors only though.

Apart from that, it highly depends on the type of noise (and signal), and if you have only one mirophone, you’re pretty much screwed. If your target signal is speech, you could try some ML based approach though. Don’t know if there’s something ready to use anywhere.

If you have a microphone array, you can do beamforming with some added magic if you know the direction of the target signal.

Would be good to know more about the exact application and your background.

1 Like