Gurinder Singh
2010-Jun-04 11:58 UTC
[Speex-dev] Denoise causing drain pipe effect in audio
Hi Jean Thanks for the reply. We expect to use the codec in an environment where we expect very high background noise where high noise suppression will be needed. In a situation like a soccer match. Is there a way of retaining high noise suppression and still getting better audio quality. Your pointers will be of great help. Thanks, Gurinder On 6/4/10, Jean-Marc Valin <jean-marc.valin at usherbrooke.ca> wrote:> On 10-06-04 05:16 AM, Gurinder Singh wrote: >> I have been developing an audio application using Speex. To reduce the >> background noise in the captured audio I have enabled the denoise >> feature and set the noise suppression level to 60. > > There you go, don't do that. There's a reason that's not the default. If > increasing that level didn't cause artefacts, I would have set it higher > by default. > > Jean-Marc > >> Although the >> constant background noise is reduced but using denoise introduces a >> weird effect in the audio which can be described as 'Drain Pipe' >> effect. >> >> Has anyone faced a simiar issue with the denoise. If yes how did u >> manage to solve it or reduce this effect. >> >> Thanks, >> Gurinder >> _______________________________________________ >> Speex-dev mailing list >> Speex-dev at xiph.org >> http://lists.xiph.org/mailman/listinfo/speex-dev >> >> > _______________________________________________ > Speex-dev mailing list > Speex-dev at xiph.org > http://lists.xiph.org/mailman/listinfo/speex-dev >
Henry Gomersall
2010-Jun-04 12:31 UTC
[Speex-dev] Denoise causing drain pipe effect in audio
On Fri, 2010-06-04 at 17:28 +0530, Gurinder Singh wrote:> > Is there a way of retaining high noise suppression and still getting > better audio quality. Your pointers will be of great help.I hope people don't resent me making a point on this, as I don't actually know how the noise suppression in speex works, but I have some knowledge in the area of noise suppression. In general, if you have information about the nature of the noise you are trying to suppress, you can do much better than just assuming white noise. This is a classic example of where a Wiener filter might be useful. Typically, you would use a second microphone to capture just the noise, and then use that to perform some regularisation on the speech signal - you would suppress parts of the signal spectrum where the signal to noise ratio is low. The Wiener filter is well studied and understood, but only really optimal under the assumption of additive Gaussian noise and a Gaussian prior on the signal (which is almost never true!), and is easily tractable under even stronger conditions. As a first attempt though, I would try the Wiener filter as it may be good enough. In answer to your general question, yes, there are ways of doing noise suppression, and much can be done with knowledge about the kind of noise you are experiencing. Huge swathes of literature are devoted to exactly this topic. Hope that is vaguely useful. Cheers, Henry
Jean-Marc Valin
2010-Jun-04 21:12 UTC
[Speex-dev] Denoise causing drain pipe effect in audio
On 10-06-04 08:31 AM, Henry Gomersall wrote:> I hope people don't resent me making a point on this, as I don't > actually know how the noise suppression in speex works, but I have some > knowledge in the area of noise suppression. > > In general, if you have information about the nature of the noise you > are trying to suppress, you can do much better than just assuming white > noise.Nobody assumes white noise. The Speex noise suppressor applies an MCRA-like algorithm to estimate the noise and then it has a spectral amplitude estimator (similar to Wiener, but with a better criterion than MSE). Jean-Marc