New noise removal algorithm


Well, I’ve just implemented a new noise removal algorithm and need tests.

I posted a patch and description to the devel mailing list[1]. I’ve got very good results with variable noise, but still needs to be tuned and tested. If anyone wants to test the bleeding edge in noise removal algorithms test my patch, post results and comments.

I have great plans for this feature, so let me now your thoughts and opinions about it.


Is that patch different to the current Audacity SVN version?

Yes it is. It is substantially different. It is a new algorithm, not just a new parameter.

I’m sorry my announcement failed, but the “announcement” e-mail has a pretty good description of what it does. I think we’ll have to make an experimental build with this patch, so that people can test it.

If anyone wants to test on Windows 2000 and later, Marco’s new algorithm is currently in the Unicode Nightly Build. There is a new “Get Signal Profile” button and a new “Signal Sensitivity” slider. A file to test the noise removal when you capture both the Noise Profile and the Signal Profile is at You may need to turn the “Sensitivity” slider up to get a good result. You probably won’t get a good result if you only capture the Noise Profile, but not the Signal Profile.

I’m sure Marco would appreciate testing on real world noise samples and comparing the result with only grabbing the Noise Profile in the old algorithm. You can currently get the old algorithm (with the “Sensitivity” slider) in the Windows ANSI Nightly Build. You can run that on Windows 2000 and later but don’t use Unicode letters in the project.

If you want to test, please do so now because the Nightlies may change. For those who can compile Audacity, the patch with the new algorithm is still here.



does this nighly build with Marco’s noise removal patch also include Nikolay’s patch for the Timer Recording “fix” - or do I need to keep both versions for testing?


Yes it still includes Nikolay’s patch which you said failed on one occasion to prevent the Timer Record progress dialogue freezing up.


Sorry. I’m falling asleep. I have a real world noise test on my site. I’m using it for something else, so it didn’t immediately click what I had.

Scroll down to c304. That’s an actual noisy room in the C Building that Production wants to use for sound recording. I suggested that maybe any other room in the company save possibly the computer machine rooms might be better.


I’m playing with the new algorithm in the 9/23/2010 build of 1.3.13. I’m not able to achieve as good a results with it as with 1.3.12.

1.3.13 seems to reduce signal level along with noise more than did 1.3.12. I’m also getting more warbly artifacting at the same dB reduction than I did with 1.3.12.

Would be great to have some descriptions of and guidelines for use of the new features as their incorrect use could be to blame.

In Audacity 1.3.13, if you set the “Sensitivity” to zero and the “Attack/Decay” to zero then it is identical to Noise Removal in Audacity 1.3.12.
(the Attack/Decay slider in Audacity 1.3.12 does not work - it’s fixed at zero).

Have you checked my post above? In other words if you have the Unicode Nightly (check Help > About Audacity), that has the new “Get Signal Profile” button and “Signal Sensitivity” slider. As that experimental code is now, you must capture two profiles (1) a profile of just noise (2) a profile of the signal (grab a loud piece of the audio). Then apply Noise Removal. Otherwise, the result will be made much quieter than the original that included the noise. Increasing the “Signal Sensitivity” slider forces the spectrum to be more similiar to the estimated signal spectrum grabbed through the Signal Profile.

The real comparison to make is then between Noise Removal in the 1.3.13 ANSI alpha (which only has the new Sensitivity slider) and 1.3.13 Unicode (capturing both profiles). However I’m not expecting when 1.3.13 Beta is released that it will include the “Signal Profile” functionality, only the “Sensitivity” slider.


I think I tried Sensitivity 0, Signal Sensitivity 0, and Attack/Decay 0 so perhaps it is my selections for Signal Profile that are giving me worse results than 1.3.12. I tried capturing a short section of pure signal and also tried capturing a mix of signal and noise (per Marco’s email suggestion).

Taking Gale’s suggestion above, I just tried choosing a particularly loud selection for the Signal Profile and that appears to improve performance a great deal.

Actually I may not have been correct. The version I was using was Sept 20th build which does not have the “Signal Profile”. I wasn’t aware that between the 20th and the 23rd the new experimental Noise Removal had been enabled.

It’s not in the 1.3.13 Sept 25 Mac nightly.

– Bill

It is important with the new code that if you grab a “Noise Profile” you also grab a loud “signal + noise” sample with “Get Signal Profile”. In the unlikely event you have a section that really is “signal + no noise” that is I assume to be preferred for the signal profile if you grab the noise profile as well as the signal profile. I think Marco intends that both profiles be captured for best results.

That said, grabbing both profiles then removing noise doesn’t (on a few tests with a tone mixed with noise) seem to give that much better results than grabbing just a signal profile then removing noise.

Whether you capture both profiles or only the signal profile, if the noise is loud you may still need to bring up the Sensitivity slider to increase the amount of noise that is removed, and that will reduce the amplitude of the output.

Just to clarify, the Signal Profile algorithm has not been committed (and I don’t expect it to be any time soon). It is only currently in the Windows Unicode Nightly because I applied Marco’s Signal Profile patch to it to see if we could get him some feedback with real life samples.