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.
Module Pack
awe-mod-dspc-vui
ClassID
classID = 15400
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
|
|
| 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.
Copyright (c) 2026 DSP Concepts, Inc.