moriya

Forum Replies Created

Viewing 15 posts - 1 through 15 (of 21 total)
  • Author
    Posts
  • in reply to: はじめての音源分離について #2063
    moriya
    Participant

      hark.jpの人でないけど、参考になればと思いコメントいたします。

      Qiitaに、TAMAGO-03とarecordコマンドで、8chのwavを作る方法の記事を書いたので、もしよろしくしければ、ご確認いただけますと幸いです。
      https://qiita.com/ferimori/items/3acbff744f71b18e268a

      moriya
      Participant

        ご回答ありがとうございます。

        > Pythonでの非同期処理についての知識が必要ですので、簡単にできるとは言いがたいです。
        承知しました。頑張ればできるということですね。
        インメモリDBを経由することで10ms未満での連携が実現でているのは確認できています。が、その他の機能を実現する際にHarkPythonのコードだけでの非同期処理の実現どうしても必要になりそうなので、そもそも実装可能か知りたかったためご質問させていただきました。簡単でないけどできると保証していただけたので、安心して実現方法を調べられるので大変助かりました。

        > ネットワーク実行開始からデータが取得されるまでの期間は
        > PyCodeExecutor3からダミーのデータを出力しておく等の対応が必要となります。
        承知しました。ありがとうございます。

        in reply to: MultiAudioStreamFromMic(DEVICETYPE=NETWORK)が動かない #1882
        moriya
        Participant

          追記)なんとか解決したいので、調べた内容を追記させてください。

          自分で、HARK(MultiAudioStreamFromMic)のソケット通信に相当する部分と同じような動作をする擬似HARKをpythonで作成して、音声をソケット通信で送っている側のpythonのコード(コード変更なし)の動作を確認したところ、問題なく動作しました。

          また、現在のHARKと同じ現象がおきる状況があって、それは、擬似HARKのスレッド生成時に、sleepを入れていない場合でした。

          自分のコードが間違っている可能性もありますが。。。。。追記させていただきます。

          • This reply was modified 4 years, 2 months ago by moriya.
          moriya
          Participant

            勘違いで動いていたように見えただけでした。1ファイルしか出力されなかったです。
            MatrixToMapにすると8チャネルになるけど、、定位情報で分離にはMap<int,…. で渡す必要があると理解しました(やっと教えていただことを理解できました)。お手数おかけしてすみません….。

            > HARKでは、音源分離を周波数領域で行うよう実装していますので、変換せずに分離することはできません。
            と教えていただきましたが、ドキュメントみていると、SaveRawPCMノードは、INPUTにSOURCESがなくドキュメントにもGHDSSが必須と書いてあるが、SaveWavePCMノードは、INPUTにSOURCESがあるので、実際に以下のネットワークで分離できそうかやってみたら、分離できていそうな感じです。やはり実際は分離できていないのでしょうか?どこの理解が間違っていますでしょうか?よろしくお願いいたします。
            AudioStreamFromMic(SaveWavePCMのinputに接続)

            SaveWavePCM ← ConstantLocalizationで0,180度を指定しsourcesに接続(本来はhark-pythonで動的に渡す予定)

            sep_0.wav, sep_1.wav出力

            • This reply was modified 4 years, 2 months ago by moriya.
            • This reply was modified 4 years, 2 months ago by moriya.
            • This reply was modified 4 years, 2 months ago by moriya.
            • This reply was modified 4 years, 2 months ago by moriya.
            in reply to: MultiAudioStreamFromMic(DEVICETYPE=NETWORK)が動かない #1850
            moriya
            Participant

              追記) USBでTamago-03を2台接続した場合は、問題なく録音できました
              (一応、上記確認後に、NETWORKにしてこれまで確認した内容を確認してみましたが、やはり変わらずダメでした)。

              moriya
              Participant

                自己解決しました(hark-pythonが外部APIからjson取得して、必要な値を次のノードに渡せました)。
                お手数おかけしてすみませんでした。

                in reply to: MultiAudioStreamFromMic(DEVICETYPE=NETWORK)が動かない #1839
                moriya
                Participant

                  追記)ポート変更して試してみましたが、解決せずです。
                  OUTPUTに「AUDIO0」のみ、DEVICEに「192.168.0.12:520922:520923」のようにポート変えても動きますが、AUDIOを2つにして、片方のポートを変えても同じでした。今まで1番目に100は送られてきてたけど、それすらない状態です。

                  in reply to: MultiAudioStreamFromMic(DEVICETYPE=NETWORK)が動かない #1837
                  moriya
                  Participant

                    追記します。パラパラとすみません。

                    ポートがかぶっているので、接続先IPごとに、制御とotherのポート変更しないといけない気がします。。。どうやって変更可能でしょうか?

                    すみません。ポートの変更方法は、FQAにありました。
                    https://wp.hark.jp/faq/#In_receiving_acoustiv_signal_over_TCPIP_using_AudioStreamFromMic_we_have_to_set_DEVICE_TYPE_to_NETWORK_and_the_DEVICE_to_IP_address_How_do_you_specify_the_port_number_Is_there_a_format_to_be_used

                    • This reply was modified 4 years, 2 months ago by moriya.
                    in reply to: MultiAudioStreamFromMic(DEVICETYPE=NETWORK)が動かない #1836
                    moriya
                    Participant

                      追記
                      DEVICEに指定するIPの順序を逆にすると、1番目に指定したIPの方に100が送られてきますが同様にエラーで落ちます。

                      moriya
                      Participant

                        以下でも書きましたが、harkをwindows版ではなく、linux版にすると900が正しく送られてきます(自前pythonコードは変更なし)。
                        https://wp.hark.jp/forums/topic/terminate-called-without-an-active-exception/

                        moriya
                        Participant

                          上と同じ状況で、windowでpython動かして、harkにsocket通信した場合、「既存の接続はリモートホストに強制的に切断されたした」となるため、自作pythonでなくharkがコネクションを切っていると思います。

                          moriya
                          Participant

                            ご回答ありがとうございます。

                            > HARKでは、音源分離を周波数領域で行うよう実装していますので、変換せずに分離することはできません。
                            > また、MapSelectorBySourceノードへの入力は分離処理後の音源を想定していますので、ご提示の構成ではフィルタリングできないかと思います。
                            承知しました。

                            > HARKに関しては、少し先になりますが無料の講習会がございます。
                            > 音響処理の理論を解説しながら、HARKの機能・技術を紹介する場となっておりますのでHARKをご理解いただくための一助となれば幸いです。
                            ありがとうございます。都合があえば是非参加させていただきたいと思います。

                            moriya
                            Participant

                              ご回答ありがとうございます。

                              1点わからないのですが、、今回、時間と角度でフィルタリングしますが、周波数領域でフィルタリングする必要ないと思っていました。SourceByDirectionの代わりとなる独自ノードで動的に角度を渡すようにして、音声を落としたりくっつけた方が計算コスト低そうに思ったのですが、ご回答いただいたように、FFTしてGHDSS後に逆FFTしないと難しいと考えた方がよいということでしょうか? HARK的には一度、周波数領域に変換しないと私が実現したいことおができない or 処理効率が悪い という理解でよいでしょうか?

                              または、HARKのデータ構造上、時間軸上での処理では、時間と角度でフィルタリングできないという理解でことでしょうか?

                              • This reply was modified 4 years, 2 months ago by moriya.
                              • This reply was modified 4 years, 2 months ago by moriya.
                              • This reply was modified 4 years, 2 months ago by moriya.
                              moriya
                              Participant

                                上記では、beamformingでフィルタリングしたいと書きましたが、
                                beamformingにこだわりはないので、外部から渡した指定方向の音声だけwaveで保存したいだけなので、例えば、以下のような感じで実現できるないかなぁと考えています。

                                AudioStreamFromMic
                                 ↓
                                MatrixToMap
                                 ↓
                                MapSelectorBySource  ← 独自ノード(動的にSOURCE情報を渡す)
                                 ↓
                                他のMapSelectorの結果との結合  ← MapSelectorBySource  ← 独自ノード(同様の機能)
                                 ↓
                                SaveWavePCM
                                moriya
                                Participant

                                  以下を読んで、パラメータを動的に変えるのではなく、localizeMUSICの代わりになるノードをhark-pythonで自作して前段に指定すれば良さそうと思ったので、一度試して不明だったら改めて質問させていただきます。

                                  https://wp.hark.jp/forums/topic/hark-python%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/

                                Viewing 15 posts - 1 through 15 (of 21 total)