-
Notifications
You must be signed in to change notification settings - Fork 254
Configuration
This module defines the format and interface that will provide the RAW data from the microphones. Here are the elements to define:
Parameter | Type | Description |
---|---|---|
fS | uint | Sample rate in samples/sec |
hopSize | uint | Number of samples acquired on each channel at each frame |
nBits | uint | Number of bits per sample (must be either 8, 16, 24 or 32) |
nChannels | uint | Number of audio channels |
Here is an example with a sample rate of 44100 samples/sec, a hop size of 512 samples, 16 bits signed samples and 8 channels:
raw:
{
fS = 44100;
hopSize = 512;
nBits = 16;
nChannels = 8;
interface: {
type = "file";
path = "mics.raw";
};
};
This module defines some general parameters that are used by most modules. Here are the elements to define:
Parameter | Type | Description |
---|---|---|
epsilon | float | You should leave this parameter at 1E-20 |
size.hopSize | uint | You should leave this parameter at 128 |
size.frameSize | uint | You should leave this parameter at 256 |
samplerate.mu | uint | You should leave this parameter at 16000 |
samplerate.sigma2 | float | You should leave this parameter at 0.01 |
mics.[m].mu.[0] | float | Position mean in x of microphone m |
mics.[m].mu.[1] | float | Position mean in y of microphone m |
mics.[m].mu.[2] | float | Position mean in z of microphone m |
mics.[m].sigma2.[0] | float | Position variance in xx of microphone m |
mics.[m].sigma2.[1] | float | Position variance in xy of microphone m |
mics.[m].sigma2.[2] | float | Position variance in xz of microphone m |
mics.[m].sigma2.[3] | float | Position variance in yx of microphone m |
mics.[m].sigma2.[4] | float | Position variance in yy of microphone m |
mics.[m].sigma2.[5] | float | Position variance in yz of microphone m |
mics.[m].sigma2.[6] | float | Position variance in zx of microphone m |
mics.[m].sigma2.[7] | float | Position variance in zy of microphone m |
mics.[m].sigma2.[8] | float | Position variance in zz of microphone m |
mics.[m].direction.[0] | float | Direction in x of microphone m |
mics.[m].direction.[1] | float | Direction in y of microphone m |
mics.[m].direction.[2] | float | Direction in z of microphone m |
mics.[m].angle.[0] | float | Maximum angle at which gain is 1 for microphone m |
mics.[m].angle.[1] | float | Minimum angle at which gain is 0 for microphone m |
spatialfilter.direction.[0] | float | Direction in x for space search |
spatialfilter.direction.[1] | float | Direction in y for space search |
spatialfilter.direction.[2] | float | Direction in z for space search |
spatialfilter.angle.[0] | float | Maximum angle at which gain is 1 for space search |
spatialfilter.angle.[1] | float | Minimum angle at which gain is 0 for space search |
nThetas | uint | You should leave this parameter at 181 |
gainMin | float | You should leave this parameter at 0.25 |
Here is an example with a 16-microphone array with a cubic shape. Microphone directivity is used as the array is closed, and the microphone variance is diagonal and non-zero for axes that span the surface plane for each microphone:
general:
{
epsilon = 1E-20;
size:
{
hopSize = 128;
frameSize = 256;
};
samplerate:
{
mu = 16000;
sigma2 = 0.01;
};
speedofsound:
{
mu = 343.0;
sigma2 = 25.0;
};
mics = (
# Microphone 1
{
mu = ( +0.1250, -0.0725, +0.0725 );
sigma2 = ( 0.0, 0.0, 0.0, 0.0, +1E-6, 0.0, 0.0, 0.0, +1E-6 );
direction = ( +1.000, +0.000, +0.000 );
angle = ( 80.0, 100.0 );
},
# Microphone 2
{
mu = ( +0.1250, +0.0725, +0.0725 );
sigma2 = ( 0.0, 0.0, 0.0, 0.0, +1E-6, 0.0, 0.0, 0.0, +1E-6 );
direction = ( +1.000, +0.000, +0.000 );
angle = ( 80.0, 100.0 );
},
# Microphone 3
{
mu = ( +0.1250, -0.0725, -0.0725 );
sigma2 = ( 0.0, 0.0, 0.0, 0.0, +1E-6, 0.0, 0.0, 0.0, +1E-6 );
direction = ( +1.000, +0.000, +0.000 );
angle = ( 80.0, 100.0 );
},
# Microphone 4
{
mu = ( +0.1250, +0.0725, -0.0725 );
sigma2 = ( 0.0, 0.0, 0.0, 0.0, +1E-6, 0.0, 0.0, 0.0, +1E-6 );
direction = ( +1.000, +0.000, +0.000 );
angle = ( 80.0, 100.0 );
},
# Microphone 5
{
mu = ( +0.0725, +0.1250, +0.0725 );
sigma2 = ( +1E-6, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +1E-6 );
direction = ( +0.000, +1.000, +0.000 );
angle = ( 80.0, 100.0 );
},
# Microphone 6
{
mu = ( -0.0725, +0.1250, +0.0725 );
sigma2 = ( +1E-6, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +1E-6 );
direction = ( +0.000, +1.000, +0.000 );
angle = ( 80.0, 100.0 );
},
# Microphone 7
{
mu = ( +0.0725, +0.1250, -0.0725 );
sigma2 = ( +1E-6, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +1E-6 );
direction = ( +0.000, +1.000, +0.000 );
angle = ( 80.0, 100.0 );
},
# Microphone 8
{
mu = ( -0.0725, +0.1250, -0.0725 );
sigma2 = ( +1E-6, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +1E-6 );
direction = ( +0.000, +1.000, +0.000 );
angle = ( 80.0, 100.0 );
},
# Microphone 9
{
mu = ( -0.1250, +0.0725, +0.0725 );
sigma2 = ( 0.0, 0.0, 0.0, 0.0, +1E-6, 0.0, 0.0, 0.0, +1E-6 );
direction = ( -1.000, +0.000, +0.000 );
angle = ( 80.0, 100.0 );
},
# Microphone 10
{
mu = ( -0.1250, -0.0725, +0.0725 );
sigma2 = ( 0.0, 0.0, 0.0, 0.0, +1E-6, 0.0, 0.0, 0.0, +1E-6 );
direction = ( -1.000, +0.000, +0.000 );
angle = ( 80.0, 100.0 );
},
# Microphone 11
{
mu = ( -0.1250, +0.0725, -0.0725 );
sigma2 = ( 0.0, 0.0, 0.0, 0.0, +1E-6, 0.0, 0.0, 0.0, +1E-6 );
direction = ( -1.000, +0.000, +0.000 );
angle = ( 80.0, 100.0 );
},
# Microphone 12
{
mu = ( -0.1250, -0.0725, -0.0725 );
sigma2 = ( 0.0, 0.0, 0.0, 0.0, +1E-6, 0.0, 0.0, 0.0, +1E-6 );
direction = ( -1.000, +0.000, +0.000 );
angle = ( 80.0, 100.0 );
},
# Microphone 13
{
mu = ( -0.0725, -0.1250, +0.0725 );
sigma2 = ( +1E-6, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +1E-6 );
direction = ( +0.000, -1.000, +0.000 );
angle = ( 80.0, 100.0 );
},
# Microphone 14
{
mu = ( +0.0725, -0.1250, +0.0725 );
sigma2 = ( +1E-6, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +1E-6 );
direction = ( +0.000, -1.000, +0.000 );
angle = ( 80.0, 100.0 );
},
# Microphone 15
{
mu = ( -0.0725, -0.1250, -0.0725 );
sigma2 = ( +1E-6, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +1E-6 );
direction = ( +0.000, -1.000, +0.000 );
angle = ( 80.0, 100.0 );
},
# Microphone 16
{
mu = ( +0.0725, -0.1250, -0.0725 );
sigma2 = ( +1E-6, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, +1E-6 );
direction = ( +0.000, -1.000, +0.000 );
angle = ( 80.0, 100.0 );
}
);
# Spatial filter to include only a range of direction if required
# (may be useful to remove false detections from the floor)
spatialfilter: {
direction = ( +0.000, +0.000, +1.000 );
angle = (80.0, 90.0);
};
nThetas = 181;
gainMin = 0.25;
};
This module stands for the stationnary noise estimation by Minima Control Recursive Averaging (MCRA):
Parameter | Type | Description |
---|---|---|
b | uint | You should leave this parameter at 3 |
alphaS | float | You should leave this parameter at 0.1 |
L | uint | You should leave this parameter at 150 |
delta | float | You should leave this parameter at 3.0 |
alphaD | float | You should leave this parameter at 0.1 |
# Stationnary noise estimation
sne:
{
b = 3;
alphaS = 0.1;
L = 150;
delta = 3.0;
alphaD = 0.1;
};
Provided by IntRoLab, Université de Sherbrooke, Québec, Canada.