[Freeswitch-users] echo cancelation

Sergey Safarov s.safarov at gmail.com
Sat Apr 18 15:13:50 MSD 2015


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.

> 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.

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?







On Sat, Apr 18, 2015 at 12:39 PM, Steve Underwood <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
>
>
> _________________________________________________________________________
> Professional FreeSWITCH Consulting Services:
> consulting at freeswitch.org
> http://www.freeswitchsolutions.com
>
> Official FreeSWITCH Sites
> http://www.freeswitch.org
> http://confluence.freeswitch.org
> http://www.cluecon.com
>
> FreeSWITCH-users mailing list
> FreeSWITCH-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20150418/3293e491/attachment.html 


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