14.4.1 オフライン音源分離

はじめにオフライン音源分離のサンプルを紹介する. 入力音声が,ファイルであるため,マルチチャンネル AD を持っていない 場合でも,音源分離処理を実行しながら確認できる.

Separation ディレクトリにある demo.sh を,コマンドライン引数 offline をつけて実行しよう. 実行後,分離音声が sep_files/ ディレクトリ以下に生成される. ファイル名は offline_%d.wav である.

うまく実行できないときは,次の項目をチェックをしよう.

  1. ../config ディレクトリに Kinectの伝達関数ファイル kinect_loc.dat,kinect_sep.tff があるかチェックする.

  2. ../data ディレクトリに MultiSpeech.wav ファイルがあるかチェックする.

本サンプルに含まれるノードは,12 個である. MAIN (subnet) に 3 個 MAIN_LOOP (iterator) に 9 個のノードがある. MAIN (subnet) には,Constant  ノードと InputStream , と MAIN_LOOP (iterator) がある. MAIN_LOOP (iterator) は, 図 14.12 に示す ネットワークとなっている. AudioStreamFromWave ノードでファイルから読み出した音声波形を MultiFFT で周波数領域に変換し,LocalizeMUSIC ,SourceTracker , SourceIntervalExtender ,DisplayLocalization ノードが音源定位 を行う.定位結果と波形から,GHDSS ノードで音源分離を行いし, Synthesize で時間領域の音声波形に変換し,SaveWavePCM で音声波形を保存 している.

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

サンプルの中で重要なパラメータは,TF_CONJ_FILENAME である. マイクアレイ(このサンプルの場合は Kinect )のインパルス応答から harktool3 で作成したファイルを使用する.