はじめにオフライン音源分離のサンプルを紹介する. 入力音声が,ファイルであるため,マルチチャンネル AD/DA を持っていない 場合でも,音源分離処理を実行しながら確認できる.
Separation ディレクトリに含む demoOfflineKinect.sh を実行する. 図 14.12 実行例を示す.
> demoOfflineKinect.sh UINodeRepository::Scan() Scanning def /usr/lib/flowdesigner/toolbox done loading def files loading XML document from memory done! ... skipped ...
実行後,音源分離され,分離音声が生成される.
うまく実行できないときは,次の項目をチェックをする.
../config ディレクトリに kinect_loc.dat,kinect_sep.tff ファイルが あるかチェックする.Kinect のインパルス応答ファイルである.このファイル がなければ,サンプルは失敗する.
../data ディレクトリに kinect_20words.wav ファイルがあるかチェック する.このファイルは,-45,0 度方向からの二話者同時発話を Kinect により 録音した音声ファイルである.このファイルがなければ,音源分離の入力がない ことになり,サンプルは失敗する.
本サンプルに含まれるモジュールは,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 で作成したファイルを使用する.