お問い合わせありがとうございます。
samples-hark-2_2_0.tar.gz のサンプルでは0度と-45度に2話者が立ち、同時発話を行っているデータとなります。
ご希望されている動作は-45度方向の音声を抑圧し、0度方向の分離音声のみを得たいという事でしょうか。
その場合、LocalizeMUSICの定位範囲は360度のまま変えずにGHDSSノードに入力し、SourceByDirectionノード等を経由して取り出したい結果(GHDSSの出力)の音源方向をフィルタする事になります。
添付のpngファイルをご参照ください。
或いは、定位する方向を-20度から20度の範囲に制限して分離対象となる音源方向を制限したいという事でしょうか。
もし、分離対象から-45度方向を外すという事でしたらおっしゃる通りの結果になります。
-45度方向の音源はGHDSSの分離対象から外れますので-20度から20度の範囲で定位した0度方向への指向性を持たせるのみの動作となります。つまり、-20度から20度の範囲に複数の音源があればそれぞれが分離されるはずです。
特定範囲の方向以外をノイズとみなして破棄する場合は前者のように分離後に得たい方向のデータのみをフィルタして頂く使い方になるかと思います。つまり、SourceByDirectionでAzimuthを-20度から20度と指定して頂くとご希望の結果となると思われます。もしご希望される動作に対する私の認識が間違っていたら申し訳ございません。
LocalizeMUSICが計算対象とする範囲の制限(MIN_DEG, MAX_DEG)は、例えば次のようなケースで使用されます。
ロボットの冷却ファンが固定方向から常に出ている事が既知であり、その音が非常に大きいケースで音の検出方向から除外したいとします。
LocalizeMUSICで冷却ファンが存在する方向を計算範囲から除外し、ConstantLocalizationで冷却ファンのノイズ方向を示す定位結果を出力します。次にLocalizeMUSICの結果とConstantLocalizationの結果をCombinedSourceノードで結合してGHDSSノードに入力します。最後にLocalizeMUSICの音源方向の結果のみを得る事で冷却ファンのノイズ以外の分離結果が得られます。
ご不明な点、ご質問などございましたらお気軽にお問い合わせください。