[speex-dev] More Speex (pre-processing) Options

Tom Harper harper at archila.com
Wed Nov 26 10:59:15 PST 2003



Steve,

Read through your posts, and they definitely helped- I tried echo cancel
alone, though, and didn't seem to get valid data out no matter how I
tweaked it (for both echo and non echo outputs).  I think I am going
to shelve that one for now.

Also, I saw that you encountered some sensitivity issues with AGC
and denoising.  In my testing I noticed that it seems to exclude things
like whistling and erms, grunts, etc.  Setting the AGC_LEVEL setting lower
seemed  to allow more of these types of things through, but I am not sure
that is the optimal solution- Did adjusting the probabilities help this?

Tom

At 10:31 AM 11/26/2003, Steve Kann wrote:
>Tom,
>
>    You can look in my archives for my posts on this topic, but what I've 
> found is that the echo canceller works to some extent, but if you're also 
> using the other preprocessing (which you'd definitely need to do _after_ 
> ec, otherwise ec probably won't work at all), the AGC function ends up 
> reversing the effect of ec.  That is, while ec reduces the echo, it 
> doesn't completely eliminate it, and then AGC goes and raises the level 
> of the residual echo.
>
>So, try ec alone, without AGC, and you should be able to see some effect.
>
>-SteveK
>
>
>Tom Harper wrote:
>
>>Hi,
>>
>>Thanks, that gave me some ideas.  I have tried calling speex_echo_cancel
>>and speex_preprocess separately and jointly, with a number of different 
>>filter lengths,
>>and using the cancelled and non-cancelled data as input to the 
>>pre-filter, with
>>and without the residual echo, etc. but there doesn't appear to be valid 
>>data in the
>>echo or the cancelled frame any way I try it.
>>
>>Back to the drawing board (and eagerly awaiting the next release),
>>
>>Tom
>>
>>At 05:28 AM 11/26/2003, Tom Grandgent wrote:
>>
>>>I don't think the echo canceller works yet.  The best I could
>>>get it to do is trash my audio.  If it does work, some sample
>>>code demonstrating its use would be really appreciated...
>>>
>>>Here is what Jean-Marc has said about it in the past:
>>>
>>> > What should I use for a filter length for speex_echo_state_init()?
>>>
>>>"Well, it depends on your problem. The filter length represents the
>>>maximum delay of the echo. For acoustic echo, that value is generally
>>>higher than for line echo. You'll need to experiment, but a value around
>>>500 (for 8 kHz) might be a good start."
>>>
>>> > [question about params for echo canceller function]
>>>
>>>"Actually, ref is the incoming frame (with echo), echo is the outgoing
>>>frame (that has only the echo) and out is the echo-cancelled frame. As
>>>for Yout, it is an estimation of the residual echo that can be sent to
>>>the denoiser so that residual echo can be removed as well. Note that
>>>this last feature is still experimental."
>>>
>>>
>>>Tom Harper (harper at archila.com) wrote:
>>> >
>>> > Hi,
>>> >
>>> > So I have had a chance to delve deeper into  the new pre-processing
>>> > code-  I was also able to get VAD, AGC, Denoising, etc working inside 
>>> of the
>>> > current release candidate (1.0.3).   For some reason, the 1.1.2
>>> > release didn't properly encode/decode in our system (on windows)
>>> > and I haven't had time to determine why.  In any case, all of the 
>>> features
>>> > jointly work very well- great job!
>>> >
>>> > I realize the echo cancellation element may still be in development, 
>>> but I am
>>> > having trouble getting that part of the preprocessor to work.  When
>>> > I don't pass NULL into the speex_preprocess for the echo parameter, 
>>> things
>>> > seem to go haywire- some memory appears to be getting trampled somewhere
>>> > (this is probably my fault).  Maybe I am misunderstanding the purpose 
>>> of this
>>> > parameter?  Except for the first few packets, the preprocessor
>>> > appears to be removing all audio- The algorithm I am using passes in 
>>> a recently
>>> > decoded frame...  Any ideas?  Do I need to set some settings in somewhere
>>> > in order for this to work properly?
>>> >
>>> > Thanks,
>>> > Tom
>>>
>>>--- >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.
>>
>>
>>
>>--- >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.
>
>--- >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.

<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