[Speex-dev] Preprocessor denoise. Does it work?

Andy Ross andy at plausible.org
Tue Feb 27 17:15:38 PST 2007

Jean-Mark Valin wrote:
> *Your* transients may be "tiny" and in any case, it doesn't
> help if you don't know the level you're recording at.

Yes, exactly: my transients are tiny.  But in this case we're
talking about transients produced by the keyboard device on a
laptop with a microphone.  That's hardly what I would call an
unimportant edge case.  And those transients *have* to be
squelched somewhere in the application, because the output sounds
like crap if they aren't.

> Again your application != what everyone wants.

I don't believe I ever said it was.  I do argue that "many"
people want squelch, however.  And I think that if you look
beyond the speex codebase, you'll probably find that many (maybe
even most) of your users are implementing it themselves (I am, at
least).  And they are probably not doing so as well or as
elaborately as could be done inside the preprocessor.

> Except that your application assumes a certain input level.

Well, of course it does, because it's 8 lines of code written in
10 minutes.  But dynamic thresholds are certainly possible.
That's what the AGC feature is, after all, right?  Likewise, a
better squelch would be based on signal energy instead of peak
sample, etc...

And your requirement that any feature in speex must work well in
all conditions is specious anyway: speex is filled with optional
features (VAD, de-reverb, echo cancellation) that are only
applicable to certain regimes.  Certainly squelch is no

Look, I'm not trying to tell you how to write your code.  I'm
trying to tell you that there's a real world feature people might
like to have.  You don't have to implement it if you don't want
to do so.

But please stop yelling at me for asking for it.


More information about the Speex-dev mailing list