音源までの距離推定について

HARK FORUM 音源までの距離推定について

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #1238
    yoshi
    Participant

      現在、歩行者に対して自動車の接近を知らせるといった研究を行っており、音源定位を用いて実現しようと考えいるのですが、方角はわかるものの距離がわからないため接近しているかの判別ができずにいます。そこでクックブックを確認したところ、モジュールのプログラムを改造することで可能であると見ました。なのでどういった改造を施せば可能となるのか教えていただけると幸いです。
      よろしくお願いします。

      #1239

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

      > どういった改造を施せば可能となるのか教えていただけると幸いです。

      クックブックに古い記述が残っていたようです。
      https://www.hark.jp/document/changelog/
      の HARK2.1.0 更新履歴で記述されているようにコード上は既に3D定位/分離対応済みとなっております。

      該当する記述は下記の部分です。

      • NewFeatures
      • Released HarkTool5. HarkTool5 is a platform-independent WEB-based generating transfer function tools. This tool has the same features as conventional HarkTool4 with 3D support.
      • Released libharkio3. libharkio3 was designed for file I/O format unification and the consolidation of the matrix operation code etc.

      HARK 1.2.0 から HARK 2.0.x までの LocalizeMUSIC では、3次元座標に対応しているものの MUSICスペクトルのピーク探索が1次元的に行われていましたが、 HARK 2.1.0 以降は libharkio3 による新しい伝達関数フォーマットで近傍情報を保持出来るように再設計され、その近傍情報を元に3次元空間における局所最大でピーク探索を行うように変更されています。近傍とみなす範囲は伝達関数の作成時にHARKTool5の設定で変更できます。
      そのため、方位角/仰角/距離の異なる音源位置からの伝達関数を準備して頂くことで空間内の位置座標を得る事が可能です。注意点として、マイクアレイの各マイクが得たい位置に対して異なる位置に並んでいなければ高い精度が出ない事です。
      サポートハードウェアであるTAMAGO-03を例に挙げると水平面上に円形配置されているため方位角に対して高い精度が出ますが、異なる高さにマイクが無いため仰角方向の精度は出しにくくなります。仰角方向で精度を出すためには例えばマイク配置を2段や3段の円形に配置するような工夫が必要となります。
      yoshi様が希望される距離の測定はその点から考慮するとマイク配置のみで解決しようとすると難しいですが、3点測量などの手法を併用する事で比較的容易に算出する事が可能です。具体的な例を挙げるとマイクアレイを2セット用意し、各LocalizeMUSICの定位結果を用いて3点測量で距離を推定する等です。
      なお、複数の定位結果から3点測量を行って出力するコードはHARK-Pythonを用いる事により、C++でノードを書いてコンパイルするといった手間なくHARK内の処理で完結させることが出来ます。
      定位結果を外部に送るノード(HarkDataStreamSender)もありますので、外部で定位結果を受け取っているのであれば各マイクアレイ用に2つのネットワークファイルを起動して外部で2つの結果を受信して推定処理を行うという手段でも良いと思われます。

      以上、ご参考になれば幸いです。

      #1274
      yoshi
      Participant

        先日は質問にお答えいただき、ありがとうございました。
        任意に指定した値をもとに3点測量を行い出力するコードは比較的容易に作ることができたのですが、LocalizeMUSICの定位結果を用いる方法がわからずにいます。
        [LocalizeMUSIC]-[PyCodeExecutor3]
        上記のようにノードを接続した際のコードの書き方について教えていただきたいです。
        よろしくお願いいたします。

        #1282
        nterakado
        Moderator

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

          過去に同様の投稿がございますので、
          ご参照いただければと思います。

          また、以下もご参考になるかと思いますので、一読いただければ幸いです。
          https://wp.hark.jp/forums/topic/ノードの作成方法について/#post-871

          以上、よろしくお願いいたします。
          HARKサポート

          #1283
          yoshi
          Participant

            お早い回答ありがとうございます。
            ひとまずは教えていただいた事項を参考に進めていきたいと思います。

            多少話は変わるのですが、SaveSourceLocationを用いてLocalizeMUSICの出力内容を保存しましたところ下記のような座標情報が得られたのですが、この出力内容を他ノードに入力する際には角度(°)に変換された状態でやり取りされるのでしょうか?

            <positions frame=”49″>
            </positions>
            <positions frame=”50″ coordinate=”cartesian”>
            <position x=”0.9960″ y=”0.0870″ z=”0.6000″ id=”0″/>
            <position x=”0.3420″ y=”0.9400″ z=”0.6000″ id=”0″/>

            #1284
            nterakado
            Moderator

              LocalizeMUSICの出力は、角度に変換せずそのまま他ノードに入力されます。

              ただし、この時点ではIDが全て0になっているために他のノードで使用できません。
              そのため、LocalizeMUSICの出力は、SourceTrackerノードもしくはSourceTrackerPFノードに入力して、音源にIDを付与してから他ノードに入力するようにしてください。

              以上、よろしくお願いいたします。
              HARKサポート

            Viewing 6 posts - 1 through 6 (of 6 total)
            • You must be logged in to reply to this topic.