demoOnline.nにおける録音のタイミングと THRESHの設定に関して

HARK FORUM demoOnline.nにおける録音のタイミングと THRESHの設定に関して

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #846
    d1-nagano
    Participant

      こんにちは

      kinect v2を用いて、「./samples-hark-2_1_0/Separation/demoOnline.n」
      にある音源分離を行いました。THRESHの値を38.5に設定し、生成されたwavファイルを確認したところ、ほとんど音が入っていないファイルと自分の声が録音されているファイルが存在しています。
      THRESHの値が同じなのに、録音が開始されたタイミングの音の大きさがいずれも大きく異なっており、どのようにwavファイルが切り分けられているのかがわからないので教えていただければと思います。

      また、THRESHの値を変更して同じように音源分離を行いましたが、同じようにほとんど音が入っていないファイルと自分の声が録音されているファイルが生成されます。THRESHの値を調節することで、自分の声だけを分離できるようになるのかどうかも教えていただきたいです。

      録音が開始されたタイミングの音の大きさは、音源分離によって生成されたwavファイルをスペクトログラムとして表示し、確認しました。

      音源分離によって録音したwavファイルをスペクトログラムとして表示したものを添付します。
      2.pngがほとんど音が入っていないのに、録音が開始されたwavファイルのスペクトログラム、0.pngが自分の声が録音されているwavファイルのスペクトログラムです。

      よろしくお願いいたします。

      Attachments:
      #850

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

      まず、お使いのサンプルファイルに同梱されている伝達関数は旧Kinect(v1)用のものと思われます。
      https://www.hark.jp/document/supported/
      より、Kinect v2用の伝達関数をダウンロードして頂き、差し替えて頂ければと思います。
      マイクのチャネル数が一致しているのでクラッシュはしませんがマイク配置は異なりますので
      今のままでは意図通りに動作していないと思われます。

      —————————————-

      下記は伝達関数が正しい場合、どのような動作となっているか記載しました。
      伝達関数をKinect v2用のファイルに置き換えてから読んで頂けますようお願い致します。

      添付して頂いた画像の音声ファイルがどのような定位結果で出力されたものか
      確認させて頂いても宜しいでしょうか。

      実行時にDisplayLocalizationノードによって定位結果がplotされていたかと思います。
      この時、「0.png」の定位結果と並行で「2.png」が定位していませんでしょうか。

      この場合、「0.png」の音声と「2.png」のノイズが分離された事になり正常です。
      SourceByDirectionノードなどを用いると音源情報をフィルタする事が可能ですので
      SaveWavPCMで音声を保存する際に自分の声の分離音だけを保存する事が可能です。

      GHDSSノードに入力する前にノイズの音源情報をフィルタしてしまった場合、
      ノイズを分離出来なくなり指向性を持たせるだけになってしまいます。
      GHDSSノードに入力するSOURCEはSourceIntervalExtenderから出力しているSource、
      SaveWavPCMに入力するSOURCEはSourceIntervalExtenderの出力を一度
      SourceByDirectionに入力し、SourceByDirectionでフィルタした後のSourceとします。

      「2.png」が「0.png」と無関係のタイミングで定位する場合。
      大量のノイズが定位してしまう場合、SourceTrackerノードのTHRESHを上げる事で
      不要なノイズを定位しないようにする事が可能です。

      もし、ご不明な点がございましたら再度お問い合わせください。
      その際、お使いのHARKバージョンとOS(バージョン込み)で情報を頂けると幸いです。

      以上、宜しくお願い致します。

      #856
      d1-nagano
      Participant

        ご返事ありがとうございます。

        サンプルプログラムは
        「https://www.hark.jp/download/samples/」
        にある
        「julius hmm model samples
        hark 2.1.0 or later samples-hark-2_2_0.tar.gz (English and Japanese)」
        をダウンロードし、伝達関数は
        「https://www.hark.jp/document/supported/」
        にある
        「Xbox One Kinect (Kinect v2 : Microsoft Corporation) By Geometrically Calculation For sound source localization and separation (for HARK 2.1 or later)」
        をダウンロードして使用しました。そのため伝達関数はKinect v2のもので間違いないです。

        添付した画像の音声を録音時の音源定位結果は保存できていませんが、音源定位結果に一つしか線がなかったので、2.pngは雑音に反応して録音されたものだと思います。閾値を調整することで改善されました。ありがとうございます。

        しかし、Kinect v2で音源定位の範囲を-50° ~ +50°に設定して音源定位を行うと、-50°~ 0°の範囲の音は定位結果が正しく表示されますが、0° ~ +50°の範囲の定位が正しくされません(音自体は録音されています)。これは、Kinect v2のマイクの問題なのでしょうか。

        また、ご返事にあったSourceByDirectionをはさみこむ位置がわからなかったので、お手数をおかけしますが、ノードの配置のサンプル画像などを添付していただければと思います。

        HARKのバージョンは3.0.4で、OSはUbuntu16.04を使用しています。

        重ね重ね質問してしまい申し訳ありません。
        よろしくおねがいいたします。

        #859

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

        SourceSelectorByDirectionノード(*1)の位置の件ですが、対象の音源方向が-50~50度の場合、下記の図のように接続してください。このように接続しますと、GHDSSにはノイズ音源方向を含むSource情報が、SaveWavPCMへはノイズ音源方向を除いたSource情報が渡ります。また、SaveWavPCMノードに初期状態でSOURCES端子はありませんので、右クリックからAdd InputでSOURCESという名称で追加して頂く必要があります。
        *1)前回、SourceByDirectionノードと誤記していました。すみません。

        SourceSelectorByDirectionノードの接続位置の例

        > これは、Kinect v2のマイクの問題なのでしょうか。
        現在、手元にKinect v2が無いため(現行バージョンのサポートハードウェアから外れたので)実機確認が取れない状況です。申し訳ありませんがご了承ください。(定位範囲の指定で機能的な不具合が無いかは現在サポートしているTAMAGO等で確認させて頂きます。修正があった場合はChangeLogに掲載されます。) 2019/06/05追記:HARK3.0.4にてLocalizeMUSICノードの定位範囲指定機能について確認致しましたので結果をご報告させて頂きます。TAMAGO03マイクアレイで機能として正常に動作している事を確認致しました。
        なお、LocalizeMUSICの定位範囲指定はパワー(ノイズを含む)が強くても定位しない範囲を設定する事を意味しますので、GHDSSなどの音源分離ノードで該当方向のノイズが分離出来ない事になります。LocalizeMUSICノードの定位範囲は制限せず、SourceSelectorByDirectionノードでフィルタする事をお勧めいたします。

        以上、宜しくお願い致します。

        Attachments:
        #877
        d1-nagano
        Participant

          丁寧に説明していただき感謝いたします。
          図を見て理解することができました!

          kinect v2による音源定位で、0°〜+50°の範囲の定位が正しく行えていないのはマイクの問題か周りの環境による問題の可能性が高そうです。音源分離自体は行えることが確認できました。TAMAGO03マイクアレイの導入を考えているので、そちらでも試してみたいと思っております。

          お忙しい中ありがとうございました。
          また、質問の機会がありましたらそのときはよろしくお願いいたします。

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