[Speex-dev] Noise suppression less than AGC gain

Jean-Marc Valin jean-marc.valin at usherbrooke.ca
Tue May 29 08:04:32 PDT 2007


> Yes, after I stop speaking, the noise slowly starts climbing again, and
> if I peek at st->agc_gain, that's slowly climbing too. I think part of
> the trouble is that the noise in here isn't uniform white noise; there's
> traffic outside the window and people walking in the hallway outside my
> door. Each little event is enough to cause the AGC to increase a little
> bit.

Hmm, I guess it's sort of the expected behaviour. It's pretty hard for
the AGC to know whether these "events" are desirable or not and whether
it should adapt to them.

> If I understood the math behind this, the default noise suppression is
> -15 dB and the default max gain is *30, which should be.. uh. 29 dB?
> Anyway, the point being that the max gain is allowed to amplify more
> than the noise suppression is allowed to suppress.

No, that's not the problem. The problem is only with the AGC's
adaptation, not the max gain.

> Alternately, perhaps it could be made so that noise suppression scales
> with agc_gain? (IE, if you're multiplying by 10 for the gain, multiply
> noise reduction by 10 as well).

Well, you can always force the values yourself. Look for
SPEEX_PREPROCESS_SET_NOISE_SUPPRESS
and
SPEEX_PREPROCESS_SET_AGC_MAX_GAIN
Both are in dB (integer)

> Although I haven't tested, I imagine a similar case could exist for echo
> suppression.

Echo suppression is also tricky and depends on having a bit of
foreground speech as well.

	Jean-Marc


More information about the Speex-dev mailing list