Coherence-Based Source Counter
Counts the number of speech sources during a meeting using two microphone nodes
S. Pasha, J. Donley and C. Ritz, "Blind Speaker Counting in Highly Reverberant Environments by Clustering Coherence Features," in Asia-Pacific Signal & Information Processing Association Annual Summit and Conference (APSIPA ASC). IEEE, Dec. 2017, pp.1-5.
This MATLAB function clusters the Magnitude-Squared Coherence (MSC) of two channel signals and uses k-means to estimate the number of speech sources contributing to the input signal.
First Use and Example
First Run: In order to generate test signals for the source counting algorithm, a room impulse response (RIR) is generated from the Room Impulse Response Generator by Emanuel A.P. Habets. Please download, compile and ensure that the function called
rir_generator() is on the MATLAB search path prior to running
example.m from this repository.
- Download the latest release of this repository and navigate to the directory in MATLAB.
SynthParams.SpeechDirto the directory which containes all the speech (talker) audio files to evaluate with. Note: If you have a copy of the TIMIT corpus you may use the helper function
ConcatTIMITtalkers()to generate the talker audio files.
The function which implements the source counting method is located in
cbsc.m. Help and an example of how to use the function are located in the header of the file. The function requires only two microphone signals when using the default
AnalysisParams. The microphone signals should be of the size
[samples microphones nodes] (row, column, page) where there are only two columns (two microphones).
Shahab Pasha - email@example.com
Jacob Donley - firstname.lastname@example.org
Christian Ritz - email@example.com