I have been toying with both non-negative matrix factorization (NMF), independent component analysis (ICA) and independent vector analysis (IVA) for separating speech mixtures. I'm trying to separate two sources using recordings from two omni-directional microphones. When I generate a mixture synthetically in an instantaneous fashion all algorithms provide excellent separation. When I generate convolutive mixtures using room impulse response data from the web the performance is still good. However all the algorithms fail miserably when the input mixture is a real-world recording, like a male and a female reading aloud in a room.

All the examples I could find online, for example this one, also use synthetic convolution. This paper seems to suggest the same, when it says

In controlled laboratory experiments, BSSD algorithms perform very well. In the real world, however, they flounder. If we focus our research more on the practical acoustic engineering necessary to obtain signals with less reverberation and noise, then our current algorithms will thrive.

I'd like to know if any new algorithms have been discovered that deal with this kind real-world mixture and provide satisfactory results.


Independent Vector Analysis which extends the idea of ICA seems to be the most robust blind source separation algorithm. It's able to separate real world convolutive recordings into surprisingly high quality components. IVA deals with the permutation problem by modeling each source as a multivariate random variable. For more details the original IVA paper by Taesu Kim can be found here: Independent Vector Analysis: An Extension of ICA to Multivariate Components.


Your Answer

