9.1 Introduction


I want to separate a mixture of sounds.


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.

  1. 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.

  2. 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.


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.