vseslavrus в посте Metapractice (оригинал в ЖЖ)
Noise Removal
About the algorithm
Q: How do you actually remove noise? What is the algorithm?
A: The noise removal algorithm uses Fourier analysis : it finds the spectrum of pure tones that make up the background noise in the quiet sound segment that you selected - that's called the "frequency spectrum" of the sound. That forms a fingerprint of the static background noise in your sound file. When you remove noise from the music as a whole, the algorithm finds the frequency spectrum of each short segment of sound in your music. Any pure tones that aren't sufficiently louder than the fingerprint (above the threshold to be preserved) are greatly reduced in volume. That way, (say) a guitar note or an overtone of the singer's voice are preserved, but hiss, hum, and other steady noises can be minimized. The general technique is called spectral noise gating .
The first pass of noise removal is done over just noise. For each windowed sample of the sound, we take a Fast Fourier Transform (FFT) and then statistics are tabulated for each frequency band - specifically the maximum level achieved by at least sampling windows in a row, for various values of .
During the noise removal phase, we start by setting a gain control for each frequency band such that if the sound has exceeded the previously-determined threshold, the gain is set to 0, otherwise the gain is set lower (e.g. -18 dB), to suppress the noise. Then frequency-smoothing is applied so that a single frequency is never suppressed or boosted in isolation, followed by time-smoothing so that the gain for each frequency band moves slowly. Lookahead is employed; this effect is not designed for real-time but if it were, there would be a significant delay. The gain controls are applied to the complex FFT of the signal, and then the inverse FFT is applied, followed by a Hanning window; the output signal is then pieced together using overlap/add of half the window size.
http://wiki.audacityteam.org/wiki/HowAudacityWorks#Noise_Removal