Skip to content

Configuration

François Grondin edited this page Dec 21, 2017 · 71 revisions

Table of content

Content

Interfaces

Parameters

Raw

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
Example

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";      
    };

};

Mapping

General

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
Example

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;

};

Stationnary Noise Estimation

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
Example
# Stationnary noise estimation

sne:
{
    
    b = 3;
    alphaS = 0.1;
    L = 150;
    delta = 3.0;
    alphaD = 0.1;

};

Sound Source Localization

Sound Source Tracking

Sound Source Separation

Sound Source Classification

Clone this wiki locally