[Speex-dev] speex denoiser adaptation time

Tom Harper
Mon, 21 Feb 2005 01:12:32 -0000

Hi Jean Marc & List,

So I have been fiddling with the denoiser (again).  While poking
around I noticed that nb_preprocess is basically a counter that
is mod-ded with 100 (the default), which causes Smin[] to be re-
seeded with the value in Stmp[] (min of the previous adaptation
period).  Smin[] is then used to update the noise probability, which
is (probably) less likely when adaptation period is shorter.

Ok so that I can get from looking at the code- my actual question is
why 100 runs (i.e. 2 seconds @ 8000 hz) is chosen as the adaptation
period (mathematical reason or engineering judgement) ?  I haven't
been able to decipher the Ephraim/Malah paper yet but i am finding in
other literature an adaptation time of 320 ms (16 runs) or so might be
reasonable for fast/short term adaptation-

I noticed that you also turn off adaptation when vad finds something
for up to consec_noise (==3, so 60 ms for me).   Was curious
how that number was picked (i.e. perceptual, engineering judgment, etc)?
I understand you wouldn't want to adapt the denoiser when someone is
talking, the question is whether a small amount of residual echo
could mess it up (i.e. maybe 3 is too small?)

Thanks-

Tom


--

Tom Harper - tharper@sightspeed.com
Lead Software Engineer

SightSpeed, Inc.
918 Parker St, Suite A14
Berkeley, CA 94710
Phone: 510.665.2920
Cell: 415.378.3779

web: http://www.sightspeed.com
video: http://tom.sightspeed.com/