書きかけの投稿です。
ESP32-ROOM-32と I2S Microphonを使った、
音声入力デバイスから音声を送る方法を調べています。
調べていくうちに、"ESP32+I2S Mic ( INMP441 )"から脱線しつつありますが、
お付き合いください。
"なんとかというアプリケーションを使えば遅延を防止できる?!"掘り下げてみました。
結論のようなもの
OBSで配信して、go2rtcで受信音声再生する方法が良いと思いました。
ESP32+I2S Mic (INMP441)での配信はOBSに比べ遅延は少ないようですが、
音質にかなり改善の余地があります。
(遅延時間は計測していませんが、OBSで1秒程度でしょうか)
ネタとなったお困りごと:
音声を数百メートル離れた場所へ送りたい。
今回はWi-Fi&LANを使って送る方法について、調べて試してわかったことを書きます。
写真の接続に間違いがあります。L/R〜GNDの接続をL/R〜VDDに変更してください。
写真の接続に間違いがあります。L/R〜GNDの接続をL/R〜VDDに変更してください。
githubで見つけたスケッチ(使わせていただきます感謝)
"stream_i2s_wav_web.ino"
スケッチの説明
INMP441 ( I2S マイク) に入力した音声をWAV形式でオーディオをストリーミングする
ESP32ベースのWebサーバー例
オーディオ ストリームを聞くには
Wi-Fi SSID,PASSWORDを編集、次の行を探して"32"を"16"へ変更する必要がありました。
変更前(ノイズしか聞こえない)#define SAMPLE_BITS 32 // Bits per sample of the audio
変更後(音質は悪いが音声が聞き取れる)#define SAMPLE_BITS 16 // Bits per sample of the audio
ESP32へ書き込み、
シリアルモニタに出力されたIPアドレスをメモしておいて
・ブラウザでIPアドレスを直接開く
音声の遅延4秒程度発生します。
・"go2rtc"というアプリケーションを介してブラウザで開く
音声の遅延1秒以下
音質に改善の余地があります。
また、PCで"OBS Studio"というアプリケーションを使って配信して、
"go2rtc"で受信する方法もありました。
遅延は1秒以下でした。
OBS配信中
go2rtc受信画面
OBSの設定
go2rtcの設定と起動は別の記事で投稿します。
この方法での音質は良好です。
(遅延に関しては、bluetoothでも1秒以下の遅延があります。)
bluetoothで音声を送る(I2S MIC INMP441を試す)も見てください。
つづく