I have a sample speech recording with background noise. I managed to extract part of the noise signal, and put the noise and the contaminated signal in the same plot. enter image description here

I have done fft-analysis on both speech and noise, and since their frequency bands with centralized power are close to each other, I cannot simply apply a bandpass filter. Is there another way to remove the noise from the speech signal with knowledge of the noise itself? (No, subtraction does not work)

  • 1
    $\begingroup$ Obviously, subtracting can only work for things you know – noise, by nature, is random. $\endgroup$ Jun 4, 2016 at 10:17
  • $\begingroup$ Do you mean by knowledge of the noise? You said "extract part of the noise signal": where, and how? $\endgroup$ Jun 4, 2016 at 12:09
  • $\begingroup$ @LaurentDuval There're some parts of the original speech where the person is not talking, so there's only background noise. I extracted that part and extended it to the same length of the original signal. $\endgroup$
    – F. Bai
    Jun 4, 2016 at 18:20
  • $\begingroup$ @F. Bai You can check the noise properties on these parts. You might have a deterministic and a random parts, to help you do further processing $\endgroup$ Jun 4, 2016 at 18:33
  • $\begingroup$ Your question has beeen answered. Do not hesitate to vote for the useful ones and accept the most suitable $\endgroup$ Feb 9, 2017 at 17:16

2 Answers 2


The signal seems non-stationary, at least less stationary than the noise, and the noise is of relatively lower amplitude. Hence, a class of methods resides in performing one or several non-stationary transformations (time-frequency, time-scale, or spectrograms and wavelets). They can concentrate useful signals on a little amount of coefficients. Then, thresholding or shrinkage techniques, reducing low-coefficients and preserving higher ones can be interesting.

Free softwares like audacity have build-in functions. For more techniques, you can check for instance:

More advanced techniques, termed "source separation", are for instance described by:


Programs such as Adobe Audition (video link) and Izotope RX (video link) are able to reduce noise by a two-step process that goes roughly like this:

  1. Spectrally profile the noise in non-voiced segments of the audio. You can select a suitable segment by yourself. I don't know the details of what kind of statistics are collected at this step.
  2. In the complete audio, reduce the magnitude of the frequency bins depending on the noise profile. I don't know the details of this step either.

Such processing creates artifacts and the programs use different tricks such as spectral smoothing to reduce them. Different material may benefit from using a different FFT size.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.