14.4.1 Off line sound source separation

A sample of off line sound source separation is introduced first. Since input sounds are files, even the users who do not have a multi-channel AD/DA can confirm while executing sound source separation.

Execute demoOfflineKinect.sh in the Separation directory. An execution example is shown in Figure 14.12.

> demoOfflineKinect.sh
 UINodeRepository::Scan()
 Scanning def /usr/lib/flowdesigner/toolbox
 done loading def files
 loading XML document from memory
 done!
   ... skipped ...
Figure 14.12: Execution example of demoOfflineKinect.sh.

After the execution, sound sources are separated and separated sounds are generated.

When sample cannot be performed well, check the following items.

  1. Check if the kinect_loc.dat, kinect_sep.tff files are in the ../config directory. They are impulse response files of a kinect. Sample networks fail if these files are missing.

  2. Check if kinect_20words.wav file is in the ../data directory. This file is simultaneous speech of two speakers (-45 deg. and 0 deg.) captured by using a Kinect. If this file is not present, sample networks fail.

Twelve modules are included in this sample. There are three modules in MAIN (subnet) and are nine modules in MAIN_LOOP (iterator). MAIN (subnet) includs Constant , InputStream , and MAIN_LOOP (iterator). MAIN_LOOP (iterator) is shown in Fig. 14.13 The audio waveforms read from the files in the AudioStreamFromWave module are analyzed in MultiFFT , separated in GHDSS , synthesized in Synthesize and the audio waveforms are saved in SaveWavePCM .

\includegraphics[width=0.8\textwidth ]{fig/recipes/LearningHARK-separation-ghdss.png}
Figure 14.13: Sound source separation without HRLE

An important parameter is TF_CONJ_FILENAME. Use the file created in harktool3 from impulse responses of a kinect.