Sb2micICv1
Overview
Cancel external interfering sound for Voice UI application
Discussion
DSP Concepts proprietary 2-mic Interfering Sound Canceler module. This module works in conjunction with the WOLA filterbank modules. The module has two two-channel frequency-domain audio input pins and one control pin. The first pin is two-microphone signals and the second pin is two end-fire beamforming signals. The third pin is keyword trigger flag. The module has two output pins. The first pin is mono interfering sound canceler output and the second pin is stereo interfering sound canceler output signals. If keyword trigger status is not available, connect DC source int with value of zero to the third input pin.
The module operates on any block size and any sampling rate. At instantiation time, the maximum tail length and latency are specfied in millisecond unit. At run time, actual tail length and latency are specified in millisecond unit.
The module analyzes external interfering sound and cancels it from microphone signal while preserving keyword utterances.
Type Definition
typedef struct _ModuleSb2micICv1
{
ModuleInstanceDescriptor instance; // Common Audio Weaver module instance structure
FLOAT32 maxTailLength; // Maximum tail length in milliseconds.
FLOAT32 maxLatency; // Maximum latency in milliseconds.
FLOAT32 SR; // sampling rate in Hz
FLOAT32 tailLength; // Tail length, in milliseconds.
FLOAT32 latency; // Latency, in milliseconds.
INT32 aecMaxTaps; // Maximum tail length in samples.
INT32 aecNumTaps; // tail length in samples.
INT32 maxBlockDelay; // Maximum block delay.
INT32 blockDelay; // block delay.
INT32 blockExtractStartIndex; // Block extract start index.
INT32 blockExtractEndIndex; // Block extract end index.
// +35 private module(s)
} ModuleSb2micICv1Class;
Variables
Properties
Name | Type | Usage | isHidden | Default value | Range | Units |
maxTailLength | float | const | 0 | 150 | Unrestricted | |
maxLatency | float | const | 0 | 50 | Unrestricted | |
SR | float | const | 0 | 48000 | Unrestricted | |
tailLength | float | parameter | 0 | 0 | 1:150 | msec |
latency | float | parameter | 0 | 0 | 0:50 | msec |
aecMaxTaps | int | const | 0 | 7200 | Unrestricted | |
aecNumTaps | int | const | 0 | 7200 | Unrestricted | |
maxBlockDelay | int | const | 0 | 2400 | Unrestricted | |
blockDelay | int | const | 0 | 0 | Unrestricted | |
blockExtractStartIndex | int | const | 0 | 0 | Unrestricted | |
blockExtractEndIndex | int | const | 0 | 2 | Unrestricted |
Pins
Input Pins
Name: micIn
Description: Audio input
Data type: float
Channel range: 2
Block size range: Unrestricted
Sample rate range: Unrestricted
Complex support: Complex
Name: beamIn
Description: Audio input
Data type: float
Channel range: 2
Block size range: Unrestricted
Sample rate range: Unrestricted
Complex support: Complex
Name: freezeFlag
Description: Audio input
Data type: int
Channel range: 1
Block size range: 1
Sample rate range: Unrestricted
Complex support: Real
Output Pins
Name: monoOut
Description: Audio input
Data type: float
Name: stereoOut
Description: Audio input
Data type: float
Scratch Pins
Channel count: 1
Block size: 32
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: 32
Sample rate: 48000
Channel count: 1
Block size: 3
Sample rate: 48000
Channel count: 1
Block size: 3
Sample rate: 48000
Channel count: 1
Block size: 3
Sample rate: 48000
Channel count: 1
Block size: 1
Sample rate: 16000
Channel count: 1
Block size: 1
Sample rate: 48000
Channel count: 2
Block size: 32
Sample rate: 48000
Channel count: 1
Block size: 1
Sample rate: 48000
Channel count: 1
Block size: 3
Sample rate: 48000
Channel count: 1
Block size: 3
Sample rate: 48000
Channel count: 1
Block size: 1
Sample rate: 48000
Channel count: 3
Block size: 3
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_IC_v1_module.m
M = sb_2mic_IC_v1_module(NAME)
Creates a 2-mic interfering sound canceler module which cancels external
interfering sound in microphone signal with using two microphones. Arguments:
NAME - name of the module.
MAXTAIL - maximum tail length of the internal adaptive filter. This is
specified in units of msec and defaults to 128.
MAXLATENCY - Lookahead switching latency allowing the algorithm to
settle. In units of msec and this defaults to 50.
SR - sample of the corresponding time domain signal. Defaults to
16000.