Skip to main content
Skip table of contents

Sb2MicAIAV1

Overview

Encapsulates 2 microphone AIA design with AEC and AIC

Discussion

This module is a complete 2 microphone audio front end containing echo cancellation and noise reduction. It is designed to work with a trigger word engine and an ASR. The module operates in frequency domain containing adaptive filters for Acoustic Interference Cancellation (AIC) and Acoustic Echo Cancellation (AEC). The module takes 2 microphone and 1 AEC reference channels in complex (frequency domain) float format data. The modules are typically used in conjunction with the WOLA analysis and synthesis modules.

The module has a third input which is the Freeze control signal. This is integer valued with a block size of 1. This is set to 1 by the application when the Trigger word is detected and while the user is speaking. Freeze is set back to 0 when the user utterance is complete.

The output is a single channel complex audio data in float format and the block size is same as the input. The input block size is determined by the input wire properties. Sample rate supported is only 16 kHz

The following arguments are used to configure this module.

FFTSIZE - (integer) size of the FFT. Should match FFT Size of WOLA analysis Default = 256 (recommended). (Note that the input wire size will contain FFTSIZE/2 + 1 complex values.)

AIC_sub1_L - (integer) length of both the subband1 frequency adaptive filters for AIC mode, in taps.

AIC_sub2_L - (integer) length of both the subband2 frequency adaptive filters for AIC mode, in taps.

AIC_sub3_L - (integer) length of both the subband3 frequency adaptive filters for AIC mode, in taps.

AEC_sub1_L - (integer) length of the subband1 frequency adaptive filter for AEC mode, in taps.

AEC_sub2_L - (integer) length of the subband2 frequency adaptive filter for AEC mode, in taps.

AEC_sub3_L - (integer) length of the subband3 frequency adaptive filter for AEC mode, in taps.

MICSpace - (float) Distance between the 2 mics, in mm

The lengths of the adaptive filters are specified in taps. Each tap is effectively equal to blockSize samples, where blockSize is the time domain blockSize into the WOLA module.

The module has internal decision logic and automatically decides between AIC and AEC processing based on the presence of the reference signal. In order to save processing, the module performs either AIC or AEC (but never both). The inspector on the sub module controls the smoothing of the reference signal level to determine when to switch in/out of AIC/AEC mode.

Type Definition

-Not Shown-

Pins

Input Pins

Name: RawMics

Description: Audio input

Data type: float

Channel range: 2

Block size range: 129

Sample rate range: Unrestricted

Complex support: Complex

Name: Ref

Description: Audio input

Data type: float

Channel range: 1

Block size range: 129

Sample rate range: Unrestricted

Complex support: Complex

Name: Freeze

Description: Audio input

Data type: int

Channel range: 1

Block size range: 1

Sample rate range: Unrestricted

Complex support: Real

Output Pins

Name: out

Description: Audio input

Data type: float

Name: modeOutput

Description: Audio output

Data type: int

Scratch Pins

Channel count: 1

Block size: 1

Sample rate: 48000

Channel count: 1

Block size: 129

Sample rate: 48000

Channel count: 1

Block size: 129

Sample rate: 48000

Channel count: 1

Block size: 32

Sample rate: 48000

Channel count: 2

Block size: 129

Sample rate: 48000

Channel count: 1

Block size: 129

Sample rate: 48000

Channel count: 1

Block size: 129

Sample rate: 48000

Channel count: 1

Block size: 65

Sample rate: 48000

Channel count: 1

Block size: 32

Sample rate: 48000

Channel count: 1

Block size: 32

Sample rate: 48000

Channel count: 1

Block size: 1

Sample rate: 48000

Channel count: 1

Block size: 1

Sample rate: 48000

Channel count: 1

Block size: 129

Sample rate: 48000

Channel count: 1

Block size: 1

Sample rate: 48000

Channel count: 1

Block size: 1

Sample rate: 48000

Channel count: 1

Block size: 1

Sample rate: 48000

Channel count: 1

Block size: 1

Sample rate: 48000

Channel count: 1

Block size: 129

Sample rate: 48000

Channel count: 1

Block size: 65

Sample rate: 48000

Channel count: 1

Block size: 32

Sample rate: 48000

Channel count: 1

Block size: 32

Sample rate: 48000

Channel count: 1

Block size: 65

Sample rate: 48000

Channel count: 1

Block size: 65

Sample rate: 48000

Channel count: 1

Block size: 1

Sample rate: 48000

Channel count: 1

Block size: 1

Sample rate: 48000

Channel count: 1

Block size: 1

Sample rate: 48000

Channel count: 1

Block size: 1

Sample rate: 48000

Channel count: 1

Block size: 1

Sample rate: 48000

Channel count: 1

Block size: 1

Sample rate: 48000

MATLAB Usage

File Name: sb_2mic_AIA_v1_module.m

CODE
 SYS = sb_2mic_AIA_v1_module(NAME,FFTSIZE, AIC_sub1_L, AIC_sub2_L, AIC_sub3_L, AEC_sub1_L, AEC_sub2_L, AEC_sub3_L, MICSpace)
 Integrated 2 microphone audio voice front-end.  Supports 16-kHz only. Arguments:
   NAME - Name of the subsystem
   FFTSIZE - Size of the FFT. Should match FFT Size of WOLA analysis  Default = 256.
   AIC_sub1_L - length of both the sub-band1 frequency adaptive filters for AIC mode, in taps.
   AIC_sub2_L - length of both the sub-band2 frequency adaptive filters for AIC mode, in taps.
   AIC_sub3_L - length of both the sub-band3 frequency adaptive filters for AIC mode, in taps.
   AEC_sub1_L - length of  the sub-band1 frequency adaptive filter for AEC mode, in taps..
   AEC_sub2_L - length of  the sub-band2 frequency adaptive filter for AEC mode, in taps.
   AEC_sub3_L - length of  the sub-band3 frequency adaptive filter for AEC mode, in taps.
   MICSpace - Distance between the 2 mics, in mm

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.