Problem
I want to separate a mixture of sounds.
Solution
HARK provides a sound separation node GHDSS to separate a mixture of sounds recorded by a microphone array. Sound must be localized first, because GHDSS inputs the direction of the sound. See Learning sound separation to build a sound source separation system.
GHDSS requires a transfer function from the position of the sound to each microphone. Two types of transfer function can be used (1) actual measurements using TSP (Time Stretched Pulse) and (2) calculations from the microphone configuration by simulation.
Transfer function from recording
Put the microphone in a room and record the TSP signal. This improves separation performance by providing an actual transfer function. See Recording impulse response.
Transfer function from simulation
Instead of recording impulse responses, you can calculate the transfer function from the locations of each microphone (the file is called MICARY-LocationFile). See harktool in the HARK document, and Sound source separation using only the microphone array layout to determine how to make the MICARY-LocationFile
After determining the transfer function the parameters must be configured (see Learning sound separation).
To save the separated sound itself, see the recipe Saving separated sounds to files. To improve the separation performance, see the recipe Tuning the parameters of sound source separation.
To use the system in a noisy environment, see the recipes Separating sounds with stationary noise and Reducing the leak noise by post processing.
If your target sound or microphone array moves, see the recipe Separating the moving sound.
Discussion
GHDSS separates sound using a higher-order decorrelation and geometric constraints based on the sound. See GHDSS module in the HARK document for details.
See Also
The node descriptions in the HARK document and the materials in the HARK tutorial may be helpful.