Skip to main content

CSV コンバーター

note

この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues

このプロジェクトでは、ReSpeaker Lite ボードを使用して I2S インターフェースからオーディオデータをキャプチャし、それを CSV 形式に変換してさらなる分析や処理を行う方法を示します。ReSpeaker Lite は、デュアルチャンネルマイクとスピーカーを備えた XIAO ESP32S3 マイクロコントローラーを統合したオーディオボードです。

機能

  • I2S インターフェースからオーディオデータをキャプチャ
  • キャプチャしたオーディオデータを CSV 形式に変換
  • CSV データをシリアルインターフェース経由でストリーム配信し、さらなる処理を可能に
  • AudioTools フレームワークを利用してオーディオ処理とストリーミングを実現
  • デバッグとモニタリングに便利な AudioLogger を使用

コード

#include "AudioTools.h"

AudioInfo info(16000, 2, 32);
I2SStream i2sStream; // ストリームとして I2S にアクセス
CsvOutput<int32_t> csvStream(Serial);
StreamCopy copier(csvStream, i2sStream); // i2sStream を csvStream にコピー

// Arduino Setup
void setup(void) {
Serial.begin(115200);
AudioLogger::instance().begin(Serial, AudioLogger::Info);

auto cfg = i2sStream.defaultConfig(RX_MODE);
cfg.copyFrom(info);
cfg.i2s_format = I2S_STD_FORMAT; // または I2S_LSB_FORMAT を試す
cfg.is_master = false; // ESP32 がマスターの場合、モジュールはマスタークロックを必要とする
cfg.use_apll = false; // 有効にして試す
i2sStream.begin(cfg);

// 正しいチャンネルが設定されていることを確認
csvStream.begin(info);

}

// Arduino loop - データをコピー
void loop() {
copier.copy();
}

設定

info: オーディオ設定を定義します。サンプルレート、チャンネル数(ステレオの場合は 2、モノラルの場合は 1)、およびサンプルあたりのビット数(32 ビット)を含みます。

i2sStream: I2S インターフェースをストリームとしてアクセスするための I2SStream クラスのインスタンスを作成します。

csvStream: オーディオデータを CSV 形式に変換し、シリアルインターフェース経由でストリーム配信するための CsvOutput オブジェクトを作成します。

copier: I2S ストリームから CSV ストリームにオーディオデータをコピーするための StreamCopy オブジェクトを作成します。

cfg: オーディオフォーマット、マスター/スレーブモード、APLL 使用など、必要な設定で I2S ストリームを構成します。

Serial Plotter を開いて出力波形を確認してください。

pir

Loading Comments...