Reply To: HarkDataStreamSenderのデータを受信するための既存ノードの有無

HARK FORUM HarkDataStreamSenderのデータを受信するための既存ノードの有無 Reply To: HarkDataStreamSenderのデータを受信するための既存ノードの有無

#1625

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

> ソケット通信でアレイマイクの音声を送信して、受信側で任意の方向ごとに音声を分離して出力したいと考えています。実現可能か?また実現方法について下記3点についてご質問させてください。

実現可能です。実現方法は複数あります。

  • HarkDataStreamSenderの出力を受信するノードを作る(C++/Pythonは問わない)
  • 受信側ネットワークファイルの最初のノードをAudioStreamFromMicにして、デバイスタイプにNETWORKを選択する
     送信側の仕様については下記URLに記述がありますが、IEEE float形式のrawデータを送信するだけですのでシンプルな実装で済みます
     動作確認は、arecordをIEEE float形式(FLOAT_LE)で実行し、pipeでtcpdump(HARKのAudioStreamFromMic宛て)に送るだけで動きます(TCP/IPセッションの管理などのために、実際の運用ではアプリを書かれた方が良いと思います)
     https://www.hark.jp/document/hark-document-ja/subsec-AudioStreamFromMic.html

「ソケット通信で」の部分が重要でなければ下記の候補もご検討ください。

  • HARK-ROSのPublisher/Subscriberを使用する(ROSの知識が必要になります)
  • HARK 3.1 から処理分配機能が追加されましたので、ノードを実行するホストを変更する事で処理を振り分ける(現在、HARK 3.1はUbuntu版のみリリースしております)
     Windows環境の場合は、VMwareやVirtualBox等でUbuntuのVirtualMachine環境を準備する必要があります

> (1) HarkDataStreamSenderのデータを受信するための既存ノードの有無
> HarkDataStreamSenderのデータを受信するためのノードはありますでしょうか?自作するしかないのでしょうか?

HarkDataStreamSenderはHARKの出力を外部アプリケーションで受信できるようにするために作成されたノードですので、受信側のノードは準備しておりません。

> (2) hark windowsの独自ノード作成の可能性
> 自作の場合、FAQに「HARK Windowsでの独自ノードの追加はサポートされていません。」とありました。

Windows版のHARKでも、HARK-Python3を用いたPython実装で独自ノードを作成する事は可能です。
Windows版のHARKでは、MSYS2やAnaconda等の複合環境を用いてビルドする関係で環境構築の難しさからソースコードに改変が必要な箇所などを含め情報を開示しておりません。つまり、C++実装による独自パッケージのビルド環境がユーザー様側で容易に構築できないためサポートしていないという表記となっております。

> (3) 音声ファイル出力について
> 図中のWindows側で、指定した方向の音声だけを受信したい場合で、例えば、0〜10度、90-120度の音声をそれぞれのファイルに出力するということは可能でしょう?(ドキュメントを読むと同一PC上だとできそうな気がするのですが、ソケット通信後でもできますでしょうか?)

ソケット通信と関係なく可能です。
SaveWavePCMノードのSOURCES(音源情報)入力端子の前段に、方位角のフィルタのためにSourceByDirectionノード(0~10度と90~120度の範囲に設定した2つを準備します)、および複数音源情報の結合にはCombineSourceノードを用いてください。
SaveWavePCMノードのファイル名にタグを付与する機能で角度値をファイル名に埋め込むことが可能です。
https://www.hark.jp/document/hark-document-ja/subsec-SaveWavePCM.html
https://www.hark.jp/document/hark-document-ja/subsec-SourceSelectorByDirection.html
https://www.hark.jp/document/hark-document-ja/subsec-CombineSource.html

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