[Freeswitch-users] echo cancelation

Steve Underwood steveu at coppice.org
Thu Apr 23 06:00:20 MSD 2015


On 04/18/2015 07:13 PM, Sergey Safarov wrote:
> How would you expect to use echo cancellation in FS?
> I thinking it can be used like t38_gateway application (audio to image 
> converter). In echo canceler application audio with echo converted to 
> audio without echo.
How would you propose to do that with a fixed rate type of echo 
canceler, like OSLEC?
> > On the one hand SpanDSP library compiled with FS and contains
> > functions for echo canceler libs/spandsp/src/echo.c
> Not really. Look carefully at those routines.
> In source
>  * echo.c - An echo cancellor, suitable for electrical and acoustic
>  *          cancellation. This code does not currently comply with
>  *          any relevant standards (e.g. G.164/5/7/8). One day....
> And other 70 string of following comments describe file as echo canceler
> Also in echo_can_update()
> at string 429
> clean_rx = rx - echo_value;
>
> at string 569
>     if ((ec->adaption_mode & ECHO_CAN_USE_NLP))
>     {
>         /* Non-linear processor - a fancy way to say "zap small 
> signals, to avoid
>            residual echo due to (uLaw/ALaw) non-linearity in the 
> channel.". */
>
> Look in echo.h comments ....
>
> in the echo_tests.c
> The echo cancellation tests test the echo cancellor against the G.168 
> spec.
>
> At http://www.rowetel.com/blog/?page_id=454 I read
> spandsp : A subset of spandsp to support testing and development of 
> Oslec. The echo canceller and G168 test suite source code live in here.
>
> I thinking it really echo canceler functions.
Do you also believe in unicorns? I find lots of stuff about them in 
children's books. I am the author of SpanSDP. People are always trying 
to tell me that half finished chunks of code are fully functional. It 
gets rather annoying after a while. I even find people telling me a 
problem is solved when there is a project web site somewhere that hasn't 
been touched in years, and contains no code. I never really had the 
incentive to finish the echo canceler in SpanDSP, because David Rowe 
took my work in progress and fleshed it out to the fully functional 
OSLEC. I did finish the G.168 test suite in SpanDSP, so David could use 
that for his testing.
>
> SpanDSP does NOT contain OSLEC. OSLEC has its origins in the work in
> progress echo canceller in SpanDSP.
> If it two different product then echo canceler may be realized by
>
>  1. SpanDSP library
>  2. Oslec kernel driver
>
> I has find relation In source files between OSLEC kernel driver 
> (drivers/staging/echo) and SpanDSP functions:
> oslec_create(int len, int adaption_mode) - echo_can_init(int len, int 
> adaption_mode)
> oslec_adaption_mode(struct oslec_state *ec, int adaption_mode) -
> oslec_update(struct oslec_state *ec, int16_t tx, int16_t rx) 
> - echo_can_update(echo_can_state_t *ec, int16_t tx, int16_t rx)
> oslec_hpf_tx(struct oslec_state *ec, int16_t tx) 
> - echo_can_hpf_tx(echo_can_state_t *ec, int16_t tx)
>
> And FS may use two echo canceler engines (SpanSDP or OSLEC kernel 
> driver). What is prevent to do it?
SpanDSP doesn't have a working echo canceler.
The OSLEC echo canceler is blocked by licence conditions.
The OSLEC echo canceler is a great addition to the PSTN interfaces - 
DADHI and FreeTDM - but has no use elsewhere.
>
> On Sat, Apr 18, 2015 at 12:39 PM, Steve Underwood <steveu at coppice.org 
> <mailto:steveu at coppice.org>> wrote:
>
>     On 04/18/2015 02:40 PM, Sergey Safarov wrote:
>     > Could you help me understand that prevents the use echo
>     cancellation in FS
>     How would you expect to use echo cancellation in FS?
>     > On the one hand SpanDSP library compiled with FS and contains
>     > functions for echo canceler libs/spandsp/src/echo.c
>     Not really. Look carefully at those routines.
>     > On the other hand FS does not contain applications of echo canceler.
>     Correct.
>     > Also, I found the discussion in which states GPL is not compatible
>     > with the MPL1.1 and it prevent use Oslec (SpanDSP is uses Oslec).
>     SpanDSP does NOT contain OSLEC. OSLEC has its origins in the work in
>     progress echo canceller in SpanDSP.
>
>     Regards,
>     Steve
>
Regards,
Steve




Join us at ClueCon 2016 Aug 8-12, 2016
More information about the FreeSWITCH-users mailing list