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 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.
- Open
example.m
and setSynthParams.SpeechDir
to 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 functionConcatTIMITtalkers()
to generate the talker audio files. - Run
example.m
.
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 - sp900@uowmail.edu.au
Jacob Donley - jrd089@uowmail.edu.au
Christian Ritz - critz@uow.edu.au