[speex-dev] Memory leak in denoiser + a few questions

Steve Kann stevek at stevek.com
Tue Mar 30 13:34:22 PST 2004



On Mar 28, 2004, at 8:23 PM, Jean-Marc Valin wrote:

>> The st->zeta pointer isn't freed in the 
>> speex_preprocess_state_destroy()
>> function of the preprocess.c file (alloced in line 167). It's in 
>> Speex 1.1.4
>> by the way.
>
> Oops... Thanks for letting me know. I'll change that for the next
> release (in the mean time, the fix is obvious). In case you're
> interested, I'm currently working on a reverberation suppression
> algorithm. I'll put it in CVS.

Reverberation suppression?

I guess this would help reduce local source echoes?  I've never 
_noticed_ that to be a problem in my use, but I would imagine that 
using a notebook's built-in microphone, you'd get some echo off of the 
screen and stuff [also from the whole room]..

Most of these echoes aren't so bad, but I guess they might make the 
encoding job harder.  I'd sure rather see the echo cancellation 
finished [not that I have any say on what you work on!!!].

FWIW, I'm currently using noise reduction, VAD, and AGC in a VoIP 
client which is getting more use out there, and it's working well.

I'm currently using VAD in a conferencing application [where the VAD 
decision helps me avoid adding noise to the common conference, and 
ostensibly avoid redundant mixing steps].  The problem here is that VAD 
is very expensive.  I did a little set of tests, and VAD is currently 
my bottleneck for users who are using it..

Here's the numbers I got doing vad on 655 seconds of audio (about half 
is speech, half is absolute silence [0's]).
P3-600: 25 seconds
Athlon XP 1700+ (1.45Ghz): 5 seconds
P4 2.8Ghz: 8.8 seconds.

I was surprised to see the Athlon win this by such a wide margin, but I 
triple-checked to make sure the machine was idle, and the binaries and 
test data were exactly the same (compiled with just -O2).

Anyway, I think I might need to find a less computationally intensive 
VAD solution for the conference.  VAD is currently only used when 
people connect via the PSTN, so they presumably have a decent SNR, and 
I may be able to get away with an energy envelope type of thing, 
without needing frequency domain analysis.  But before I go and start 
coding this, is there any simple optimizations that can be done to the 
preprocessor when it is  being used only for the VAD decision?

<p><p><p><p>--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'speex-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.



More information about the Speex-dev mailing list