私は、ローカルサーバー上でオーディオをストリームする方法を見つけようとしている初心者です。ロボットのマイクからいくつかのバイナリデータを作成するPythonスクリプトがあります。作成したローカルGoサーバにこのデータを表示したいのです。PythonスクリプトからGoサーバにオーディオバッファを転送しますか?
私は、Webソケットが解決策になる可能性があると読んでいます。 しかし、Pythonスクリプトからオーディオバッファをアップロードする最も簡単な方法は何ですか?そして、この生のバイナリデータをWebアプリケーションからストリーミングできるように、どのように取得するのですか?
多くの多くのありがとうございます。
ああ、ロボットとサーバーは同じネットワーク上にあります。私のGoスクリプトは次のとおりです。[link](https://play.golang.org/p/l_1E-TYSbB)と私のpythonスクリプトは基本的にこれに対する答えですQ [リンク](https://stackoverflow.com/questions/24243757/nao-robot-remote-audio-problems)。だから私はバイナリデータ(.rawとして保存されている)から私のPythonスクリプトでUDPパケットを作り、Goスクリプトでそれらを聞く必要があると言っている。データをHEXに変換しますか?このデータをWAVやその他の再生可能な音楽形式に変換するにはどうしたらいいですか?ありがとう。 – stucklen
通常、オーディオは8ビットのPCMです。 Numpyは、データを各チャンネルの1つの列で数値(0から255までの数値)に変換するように見えます。一度にbase64の1000バイトを使えるはずです(イーサネットはデフォルトで1500バイトなのでなぜ1000?)。これをbase64としてエンコードします。これは約1300バイトにする必要があります。 UDPパケットとしてGoサーバに送信し、https://github.com/cryptix/wavのようにWAVファイルとして再エンコードします。うまくいけば、そのWAVファイルをミキサーまたはオーディオデバイスに書き込むことができます。しかし、私は最後の部分を試みたことはありません。 – ipaul
ありがとうございますが、まだ難しかったです。私のPythonコードのprocessRemoteメソッドです。(リンク:https://trinket.io/python/ca15d63ae6)私はUDP上でテストデータ(PACKETDATA)を送信し、 。しかし、私のスキルレベルは初心者であり、正確に何を送る必要があるのかは分かりません。私はaSoundDataと呼ばれる変数をオーディオにすることができますが、それを印刷すると255を超える数値が表示されるので、どのような種類のデータがあり、どのように16進数に変換しますか?これは次のようになります:[[408 -283 -962 ...、1546 1784 1946](このような3行があります) – stucklen