ICA / Independent Component Analysis, is one of the decomposition methods that is capable of decomposing multivariate signals into components, based on the assumption that the source components are statistically independent from each other, and follow a non-gaussian distribution.
The classic application of ICA is in cocktail party problem. Say in a cocktail party, you set up two or more microphones on different locations to record two separate conversations. Each of those microphones would pick up both of the conversations simultaneously, thus you’d expect to hear conversation #1 on both microphones, etc.With ICA, we could (to certain degree) separate those recordings into 2 audio streams that isolate those conversations.
Here’s my example code on using scikit’s Fast ICA to separate audio signal: https://github.com/subokita/Sandbox/blob/master/blind_source.py
You can find a variety of audio data from http://www.ism.ac.jp/~shiro/research/blindsep.html. Those data range from straightforward linear mixture, to some of the more difficult environments.