はじめにオフライン音源分離のサンプルを紹介する. 入力音声が,ファイルであるため,マルチチャンネル AD を持っていない 場合でも,音源分離処理を実行しながら確認できる.
Separation ディレクトリにある demo.sh を,コマンドライン引数 offline をつけて実行しよう. 実行後,分離音声が sep_files/ ディレクトリ以下に生成される. ファイル名は offline_%d.wav である.
うまく実行できないときは,次の項目をチェックをしよう.
../config ディレクトリに Kinectの伝達関数ファイル kinect_loc.zip,kinect_sep.zip があるかチェックする.
../data ディレクトリに MultiSpeech.wav ファイルがあるかチェックする.
本サンプルに含まれるノードは,12 個である. MAIN (subnet) に 3 個 MAIN_LOOP (iterator) に 9 個のノードがある. MAIN (subnet) には,Constant ノードと InputStream , と MAIN_LOOP (iterator) がある. MAIN_LOOP (iterator) は, 図 14.13 に示す ネットワークとなっている. AudioStreamFromWave ノードでファイルから読み出した音声波形を MultiFFT で周波数領域に変換し,LocalizeMUSIC ,SourceTracker , SourceIntervalExtender ,DisplayLocalization ノードが音源定位 を行う.定位結果と波形から,GHDSS ノードで音源分離を行いし, Synthesize で時間領域の音声波形に変換し,SaveWavePCM で音声波形を保存 している.
サンプルの中で重要なパラメータは,TF_CONJ_FILENAME である. マイクアレイ(このサンプルの場合は Kinect )のインパルス応答から harktool3 で作成したファイルを使用する.