SpeexEchoState: Acoustic echo canceller


Classes

class  SpeexEchoState

Defines

#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 SpeexEchoState_ SpeexEchoState
typedef 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.

Define Documentation

#define SPEEX_ECHO_GET_FRAME_SIZE   3

Obtain frame size used by the AEC

#define SPEEX_ECHO_GET_IMPULSE_RESPONSE   29

Get impulse response (int32[])

#define SPEEX_ECHO_GET_IMPULSE_RESPONSE_SIZE   27

Get size of impulse response (int32)

#define SPEEX_ECHO_GET_SAMPLING_RATE   25

Get sampling rate

#define SPEEX_ECHO_SET_SAMPLING_RATE   24

Set sampling rate


Typedef Documentation

typedef struct SpeexEchoState_ SpeexEchoState

Internal echo canceller state. Should never be accessed directly.


Function Documentation

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:
st Decorrelator state
in Input audio in interleaved format
out Result of the decorrelation (out *may* alias in)
strength How much alteration of the audio to apply from 0 to 100.

void speex_decorrelate_destroy ( SpeexDecorrState *  st  ) 

Destroy a Decorrelation state

Parameters:
st State to destroy

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:
rate Sampling rate
channels Number of channels (it's a bit pointless if you don't have at least 2)
frame_size Size of the frame to process at ones (counting samples *per* channel)

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)

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:
st Echo canceller state
rec Signal from the microphone (near end + far end echo)
play Signal played to the speaker (received from far end)
out Returns near-end signal with echo removed

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:
st Echo canceller state
rec Signal from the microphone (near end + far end echo)
out Returns near-end signal with echo removed

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

Used like the ioctl function to control the echo canceller parameters

Parameters:
st Echo canceller state
request ioctl-type request (one of the SPEEX_ECHO_* macros)
ptr Data exchanged to-from function
Returns:
0 if no error, -1 if request in unknown

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:
st Echo canceller state
play Signal played to the speaker (received from far end)

void speex_echo_state_destroy ( SpeexEchoState st  ) 

Destroys an echo canceller state

Parameters:
st Echo canceller state

SpeexEchoState* speex_echo_state_init ( int  frame_size,
int  filter_length 
)

Creates a new echo canceller state

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

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_size Number of samples to process at one time (should correspond to 10-20 ms)
filter_length Number of samples of echo to cancel (should generally correspond to 100-500 ms)
nb_mic Number of microphone channels
nb_speakers Number of speaker channels
Returns:
Newly-created echo canceller state

void speex_echo_state_reset ( SpeexEchoState st  ) 

Reset the echo canceller to its original state

Parameters:
st Echo canceller state


Generated on Tue Apr 7 20:09:15 2009 for Speex by  doxygen 1.5.1