« Previous - Version 15/27 (diff) - Next » - Current version
Adrian Georgescu, 11/16/2009 06:04 pm


= Echo cancellation =

<acronym title="Design*, depth=1">TOC</acronym>

SIP SIMPLE client is a Python software library that allows for easy development of Internet communications end-points based on SIP and related protocols for voice, rich presence, session based instant messaging (IM), file transfers and desktop sharing. Other media types can be easily added by using an extensible high-level API. SIP SIMPLE client uses [http://www.pjsip.org/pjmedia/docs/html/index.htm PJSIP media library] for audio processing (sound card abstraction, audio codec and acoustic echo cancellation).

For more information see http://sipsimpleclient.com

Background

The present implementation of the echo canceller from PJSIP media library is not performing to the desired level of quality. Practically, the speaker phone function of SIP SIMPLE client is not reliable and not performing satisfactory unless a headset is used.

[[Image(http://www.pjsip.org/images/media-flow.jpg)]]

Project goal

Replace the existing AEC from Pjmedia library (what is displayed as echo.h in the above diagram whihc employes the AEC of the speex project) with an alternative to be developed solution that provides a high quality speakerphone user experience. The acoustic echo cancelation should perform comparable with any other proven VoIP commercial solution like Skype or iChat making the need of a headset un-necessary.

The developed software will be released under an open source licence and distributed with SIP SIMPLE client library.

The deliverable is C written program that can be applied to the pjsip cvs trunk 1.0 with the '''patch''' command.

Resources

General

PJSIP media library

=== Speex AEC ===

This is the standard used AEC algorithm in PJSIP

=== Andree Adrian AEC ===

This AEC has been implemented in C and added as a working patch to the SIP SIMPLE project. It does not work properly, audio artifacts being present and further debugging requires DSP knowledge.

The actual implementation can be used as working example for how a third party AEC algorithm can be integrated with the SIP SIMPLE project.

ag-aec.tgz - Andre Adrian AEC implementation integrated with PJSIP (35.8 kB) Adrian Georgescu, 11/16/2009 06:15 pm