Re: AEC echo cancelling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Severin,

We have added webrtc aec on #1954.
Maybe you can try that.
For tweaking purposes, the information on #1888 is still relevant.

Best Regards,

Riza

On Tue, Aug 30, 2016 at 3:02 PM, Severin Birrer <severin.birrer@xxxxxxx> wrote:
I'm trying to get some better Results with the AEC. (pjproject Version 2.5.5)
I tried SPEEX AEC but the echo cancelling doesn't work as hoped for.
The cancelling works, but you still get a little echo and after some time (one minute or so) the background noise gets louder and I think the cancelling gets also worse.
Do I have to set some more parameters than the ecTailLen and ecOptions?

The other Thing i tried is to integrate WebRTC AEC (Mostly described in Ticket #1888). But no luck there to compile it in, because of a missing full-howto.
Steps done so far with WebRTC:
1. Get the depot_tools
2. Get/Build webrtc:
      mkdir webrtc-checkout
      cd webrtc-checkout
      fetch --nohooks webrtc
      gclient sync
      gn gen out/Release
      ninja -C out/Release
3. Configure pjsip:
      ./configure --with-webrtc=~/webrtc-checkout

Log output of configure:
Using webrtc prefix... /home/yocto/webrtc-checkout
checking for WebRtcAec_Process in -laudio_processing... no


I think the webrtc aec libraries (audio_processing, common_audio, system_wrappers) doesn't get built.
Is it due to the compatibility issue described in the ticket? Which Version do I have to get, or more, how do I get it?


My setup:
Buildsystem Ubuntu
Target Yocto Linux on a i.MX6 (ARM)
Loudspeaker & MIC
SGTL5000 Audiocodec
Latency: about 200ms (measured with pjsystest Latency Test)

My initialisation routine of EC is:
EpConfig ep_cfg;
ep_cfg.medConfig.noVad=true;
ep_cfg.medConfig.ecTailLen=300;
ep_cfg.medConfig.ecOptions=PJMEDIA_ECHO_SPEEX|PJMEDIA_ECHO_USE_NOISE_SUPPRESSOR|PJMEDIA_ECHO_USE_SW_ECHO|PJMEDIA_ECHO_AGGRESSIVENESS_AGGRESSIVE;
ep.libInit( ep_cfg );

Log output of SPEEX AEC:
10:37:54.669 pjsua_call.c ..Answering call 0: code=200
10:37:54.670 pjsua_media.c .....Call 0: updating media..
10:37:54.671 pjsua_media.c ......Audio updated, stream #0: (inactive)
10:37:54.672 pjsua_aud.c ......Audio channel update..
10:37:54.674 strm0x74d1452c .......Encoder stream started
10:37:54.674 strm0x74d1452c .......Decoder stream started
10:37:54.675 pjsua_media.c ......Audio updated, stream #1: G722 (sendrecv)
!*** Recording device is: sysdefault:CARD=imxsgtl5000 With ID: -1
!*** Playback device is: sysdefault:CARD=imxsgtl5000 With ID: -2
10:37:54.678 pjsua_aud.c .....Conf connect: 2 --> 0
10:37:54.678 pjsua_aud.c ......Set sound device: capture=-1, playback=-2
10:37:54.678 pjsua_aud.c .......Opening sound device (speaker + mic) PCM@16000/1/20ms
10:37:54.713 ec0x74d1bf50 ........AEC created, clock_rate=16000, channel=1, samples per frame=320, tail length=300 ms, latency=0 ms
10:37:54.715 conference.c ......Port 2 (sip:203@192.168.139.152;user=phone) transmitting to port 0 (sysdefault:CARD=imxsgtl5000)
10:37:54.716 pjsua_aud.c .....Conf connect: 0 --> 2
10:37:54.717 conference.c ......Port 0 (sysdefault:CARD=imxsgtl5000) transmitting to port 2 (sip:203@192.168.139.152;user=phone)

-----------------------------------------------------------------------------------
Severin Birrer

FELA Management AG Phone : +41 52 646 46 37
Basadingerstrasse 18 Fax : +41 52 646 46 96
CH-8253 Diessenhofen Mail : mailto:severin.birrer@xxxxxxx
http://www.fela.ch/

_______________________________________________
Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip@xxxxxxxxxxxxxxx
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org

_______________________________________________
Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip@xxxxxxxxxxxxxxx
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org

[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux