EMIPLIB
Public Member Functions

MIPSpeexEchoCanceller Class Reference

An echo cancellation component based on the Speex echo cancellation routines. More...

#include <mipspeexechocanceller.h>

Inheritance diagram for MIPSpeexEchoCanceller:
Inheritance graph
[legend]
Collaboration diagram for MIPSpeexEchoCanceller:
Collaboration graph
[legend]

List of all members.

Public Member Functions

bool init (int sampRate, MIPTime interval=MIPTime(0.020), MIPTime bufferLength=MIPTime(0.100))
 Initialize the echo cancellation component.
bool destroy ()
 Destroys the component.
MIPComponentgetOutputAnalyzer ()
 Returns the analyzing sub-component (see class description).

Detailed Description

An echo cancellation component based on the Speex echo cancellation routines. After you've created this component, you should insert it into the recording part of the chain, so that it can inspect incoming messages and remove the echo from them. An extra component is automatically created and can be obtained using the MIPSpeexEchoCanceller::getOutputAnalyzer method. This component has to be inserted into the playback part of your chain. Both components only accept raw 16 bit native endian encoded audio messages. The base component produces a similar message, the analyzer component doens't produce any messages itself.

Depending on the type of input and output component you use for your soundcard, the amount of internal buffering of sound blocks can vary. In general, it's probably safe to assume that due to this buffering, the delay from the analyzer to the echo cancelling component will be at least twice the sampling interval. Because of this, it may be helpful to introduce some extra delay before sending an audio message to the analyzer component. You can do this using a MIPAudioMixer component, initialized with useTimeInfo set to false, and by using the MIPAudioMixer::setExtraDelay function.


Member Function Documentation

bool MIPSpeexEchoCanceller::destroy ( )
MIPComponent* MIPSpeexEchoCanceller::getOutputAnalyzer ( ) [inline]
bool MIPSpeexEchoCanceller::init ( int  sampRate,
MIPTime  interval = MIPTime(0.020),
MIPTime  bufferLength = MIPTime(0.100) 
)

Initialize the echo cancellation component.

Parameters:
sampRateThe sampling rate of the audio messages.
intervalThe amount of time in each audio message.
bufferLengthThe length of the filter used by the Speex routines.

The documentation for this class was generated from the following file: