Paper: Blind Speaker Counting in Highly Reverberant Environments by Clustering Coherence Features

Using only two microphones, like those commonly found on mobile devices, we show in this work how to count the number of people talking in a meeting scenario. This paper has been accepted for publication and presentation at the 2017 Asia Pacific Signal and Information Processing Association Annual Summit and Conference (APSIPA ASC) in Kuala Lumpur, Malaysia.

Continue reading Paper: Blind Speaker Counting in Highly Reverberant Environments by Clustering Coherence Features

An even faster, parallel, MATLAB executable (MEX) compilation of the PESQ measure

In a previous post of mine (which you should read now if you haven’t already) I explained how to create a MATLAB executable for the widely used PESQ algorithm. The main reason for wanting to do this was to save time when running a large amount of speech quality tests and the speed increases obtained from using a PESQ MEX function were amazing! At the time of writing that post, the MEX function was approximately 8 times faster than anything else online that I could find. In fact, it is still the fastest implementation I can find, however, I think there is room for improvement and I finally found some time to get it working. In this post, I will show step-by-step how you can compile the PESQ MEX function to accept audio vectors directly from MATLAB and, which, should give great speed increases when run on parallel cores.

Continue reading An even faster, parallel, MATLAB executable (MEX) compilation of the PESQ measure

A fast MATLAB executable (MEX) compilation of the PESQ measure

After having spent a good while looking for a working copy of the Perceptual Evaluation of Speech Quality measure implemented in MATLAB, I ended up using the readily available “wrapper” functions found on the MATLAB file exchange site. While these wrappers work a treat they are a bit slow as they require a call to the system to run the PESQ binary file. The PESQ binary file is compiled from the source code found on the ITU site for the PESQ standard. The source code is written in C which MATLAB supports for its MATLAB executable (MEX) compilations. That was what then prompt me to look for a MEX compiled version of the PESQ measure but to my surprise I couldn’t find any. I managed to get the ITU standards’ source code compiled and working in a MEX function and I will go through the few steps required to do it. Continue reading A fast MATLAB executable (MEX) compilation of the PESQ measure

The Speech Transmission Index (STI) for MATLAB

There are a few robust algorithms available to objectively measure the intelligibility of speech. They compare what is heard by a listener to the information that was transmitted by the talker, however, only one of these available algorithms works in reverberant rooms and at the time I was looking for an implementation for MATLAB, I couldn’t find any, zilch. So, I decided to code it from scratch myself and will show you how to do it step by step. Continue reading The Speech Transmission Index (STI) for MATLAB