hiro yamamoto works

マイコンハード、ソフトを作ったりしています。
お家や現場のお困りごと解決に!
内容利用は自己責任でお願いします。

bluetoothで音声を送る(Wi-Fiの可能性webrtc探る)

2024-09-11 20:30:25 | bluetooth-Audio

書きかけの投稿です。

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を試す)も見てください。



つづく