Speex  1.2~beta4
Classes | Macros | Typedefs | Functions
SpeexEchoState: Acoustic echo canceller

Classes

class  SpeexEchoState
 

Macros

#define SPEEX_ECHO_GET_FRAME_SIZE   3
 
#define SPEEX_ECHO_SET_SAMPLING_RATE   24
 
#define SPEEX_ECHO_GET_SAMPLING_RATE   25
 
#define SPEEX_ECHO_GET_IMPULSE_RESPONSE_SIZE   27
 
#define SPEEX_ECHO_GET_IMPULSE_RESPONSE   29
 

Typedefs

typedef struct SpeexEchoState_ SpeexEchoState
 
typedef struct SpeexDecorrState_ SpeexDecorrState
 

Functions

SpeexEchoStatespeex_echo_state_init (int frame_size, int filter_length)
 
SpeexEchoStatespeex_echo_state_init_mc (int frame_size, int filter_length, int nb_mic, int nb_speakers)
 
void speex_echo_state_destroy (SpeexEchoState *st)
 
void speex_echo_cancellation (SpeexEchoState *st, const spx_int16_t *rec, const spx_int16_t *play, spx_int16_t *out)
 
void speex_echo_cancel (SpeexEchoState *st, const spx_int16_t *rec, const spx_int16_t *play, spx_int16_t *out, spx_int32_t *Yout)
 
void speex_echo_capture (SpeexEchoState *st, const spx_int16_t *rec, spx_int16_t *out)
 
void speex_echo_playback (SpeexEchoState *st, const spx_int16_t *play)
 
void speex_echo_state_reset (SpeexEchoState *st)
 
int speex_echo_ctl (SpeexEchoState *st, int request, void *ptr)
 
SpeexDecorrState * speex_decorrelate_new (int rate, int channels, int frame_size)
 
void speex_decorrelate (SpeexDecorrState *st, const spx_int16_t *in, spx_int16_t *out, int strength)
 
void speex_decorrelate_destroy (SpeexDecorrState *st)
 

Detailed Description

This is the acoustic echo canceller module.

Macro Definition Documentation

◆ SPEEX_ECHO_GET_FRAME_SIZE

#define SPEEX_ECHO_GET_FRAME_SIZE   3

Obtain frame size used by the AEC

◆ SPEEX_ECHO_GET_IMPULSE_RESPONSE

#define SPEEX_ECHO_GET_IMPULSE_RESPONSE   29

Get impulse response (int32[])

◆ SPEEX_ECHO_GET_IMPULSE_RESPONSE_SIZE

#define SPEEX_ECHO_GET_IMPULSE_RESPONSE_SIZE   27

Get size of impulse response (int32)

◆ SPEEX_ECHO_GET_SAMPLING_RATE

#define SPEEX_ECHO_GET_SAMPLING_RATE   25

Get sampling rate

◆ SPEEX_ECHO_SET_SAMPLING_RATE

#define SPEEX_ECHO_SET_SAMPLING_RATE   24

Set sampling rate

Typedef Documentation

◆ SpeexEchoState

typedef struct SpeexEchoState_ SpeexEchoState

Internal echo canceller state. Should never be accessed directly.

Function Documentation

◆ speex_decorrelate()

void speex_decorrelate ( SpeexDecorrState *  st,
const spx_int16_t *  in,
spx_int16_t *  out,
int  strength 
)

Remove correlation between the channels by modifying the phase and possibly adding noise in a way that is not (or little) perceptible.

Parameters
stDecorrelator state
inInput audio in interleaved format
outResult of the decorrelation (out may alias in)
strengthHow much alteration of the audio to apply from 0 to 100.

◆ speex_decorrelate_destroy()

void speex_decorrelate_destroy ( SpeexDecorrState *  st)

Destroy a Decorrelation state

Parameters
stState to destroy

◆ speex_decorrelate_new()

SpeexDecorrState* speex_decorrelate_new ( int  rate,
int  channels,
int  frame_size 
)

Create a state for the channel decorrelation algorithm This is useful for multi-channel echo cancellation only

Parameters
rateSampling rate
channelsNumber of channels (it's a bit pointless if you don't have at least 2)
frame_sizeSize of the frame to process at ones (counting samples per channel)

◆ speex_echo_cancel()

void speex_echo_cancel ( SpeexEchoState st,
const spx_int16_t *  rec,
const spx_int16_t *  play,
spx_int16_t *  out,
spx_int32_t *  Yout 
)

Performs echo cancellation a frame (deprecated)

◆ speex_echo_cancellation()

void speex_echo_cancellation ( SpeexEchoState st,
const spx_int16_t *  rec,
const spx_int16_t *  play,
spx_int16_t *  out 
)

Performs echo cancellation a frame, based on the audio sent to the speaker (no delay is added to playback in this form)

Parameters
stEcho canceller state
recSignal from the microphone (near end + far end echo)
playSignal played to the speaker (received from far end)
outReturns near-end signal with echo removed

◆ speex_echo_capture()

void speex_echo_capture ( SpeexEchoState st,
const spx_int16_t *  rec,
spx_int16_t *  out 
)

Perform echo cancellation using internal playback buffer, which is delayed by two frames to account for the delay introduced by most soundcards (but it could be off!)

Parameters
stEcho canceller state
recSignal from the microphone (near end + far end echo)
outReturns near-end signal with echo removed

◆ speex_echo_ctl()

int speex_echo_ctl ( SpeexEchoState st,
int  request,
void *  ptr 
)

Used like the ioctl function to control the echo canceller parameters

Parameters
stEcho canceller state
requestioctl-type request (one of the SPEEX_ECHO_* macros)
ptrData exchanged to-from function
Returns
0 if no error, -1 if request in unknown

◆ speex_echo_playback()

void speex_echo_playback ( SpeexEchoState st,
const spx_int16_t *  play 
)

Let the echo canceller know that a frame was just queued to the soundcard

Parameters
stEcho canceller state
playSignal played to the speaker (received from far end)

◆ speex_echo_state_destroy()

void speex_echo_state_destroy ( SpeexEchoState st)

Destroys an echo canceller state

Parameters
stEcho canceller state

◆ speex_echo_state_init()

SpeexEchoState* speex_echo_state_init ( int  frame_size,
int  filter_length 
)

Creates a new echo canceller state

Parameters
frame_sizeNumber of samples to process at one time (should correspond to 10-20 ms)
filter_lengthNumber of samples of echo to cancel (should generally correspond to 100-500 ms)
Returns
Newly-created echo canceller state

◆ speex_echo_state_init_mc()

SpeexEchoState* speex_echo_state_init_mc ( int  frame_size,
int  filter_length,
int  nb_mic,
int  nb_speakers 
)

Creates a new multi-channel echo canceller state

Parameters
frame_sizeNumber of samples to process at one time (should correspond to 10-20 ms)
filter_lengthNumber of samples of echo to cancel (should generally correspond to 100-500 ms)
nb_micNumber of microphone channels
nb_speakersNumber of speaker channels
Returns
Newly-created echo canceller state

◆ speex_echo_state_reset()

void speex_echo_state_reset ( SpeexEchoState st)

Reset the echo canceller to its original state

Parameters
stEcho canceller state