音源到来方向を制限する場合のGHDSS

HARK FORUM 音源到来方向を制限する場合のGHDSS

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #749
    yo
    Participant

      以下を元に音源定位&音源分離にトライしております。
      <https://www.hark.jp/document/3.0.0/hark-cookbook-ja/sect0015.html&gt;
      <https://www.hark.jp/networks/samples-hark-2_2_0.tar.gz&gt;
      ・環境:Hark3.0、Windows10
      ・360度範囲から2音源の定位と分離を行い、基本的な分離ができていることは確認済みです。

      しかし、
      “LocalizeMUSIC”ノードのMIN_DEG~MAX_DEGを-20~20度に制限して定位&分離を行いたいが、音源定位結果は所望のものが出力されているにも関わらず、”GHDSS”ノードの出力音が元音源からほぼ変化がない。
      という状態になっております。

      音源方向を制限して分離を行う場合、上記以外に対応すべきことはありますでしょうか?

      #750

      お問い合わせありがとうございます。

      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の音源方向の結果のみを得る事で冷却ファンのノイズ以外の分離結果が得られます。

      ご不明な点、ご質問などございましたらお気軽にお問い合わせください。

      Attachments:
      #753
      yo
      Participant

        ご回答ありがとうございます。返信遅くなり申し訳ありません。

        ご指摘いただいた2ケースのうち、後者に当たります。
        移動しない2音源(仮にA:0度、B:150度)からそれぞれの分離波形を得たいです。

        元々、ご質問いたしました背景として、
        正解の音源角度付近に、複数(指定音源数以上)の音源定位結果が並行して出力される区間がある
        ・複数(指定音源数以上)の音源定位結果が並行して出力される区間がある
        ・並行して定位結果が出力された区間の分離精度が、単一の場合より低い
        という状況があり、できるだけ単一の定位結果を得たいと考えました。

        ご教示いただいた内容を含め、色々と試しましたところ、
        “SourceTraker”ノードのMIN_SRC_INTERVALを拡げることで、
        音源A、B同時に所望の定位・分離結果が得られました。
        同時に出力される定位結果を2つまで減らすことができました。
        さらに定位結果を1つのみにし、プログラムは2回実行してでもA、Bそれぞれで結果を出力したいです。

        遠回りしてしまいましたが、
        上記以外に同時出力される定位音源数を制限する手法、
        また認識間違い等ありましたらご指摘いただければと思います。

        • This reply was modified 5 years, 1 month ago by yo.
      Viewing 3 posts - 1 through 3 (of 3 total)
      • You must be logged in to reply to this topic.