Skip to main content

CSV 转换器

本项目演示了如何使用 reSpeaker Lite 开发板从 I2S 接口捕获音频数据,并将其转换为 CSV 格式以供进一步分析或处理。reSpeaker Lite 是一款集成了 XIAO ESP32S3 微控制器的音频开发板,具有双通道麦克风和扬声器。

功能特性

  • 从 I2S 接口捕获音频数据
  • 将捕获的音频数据转换为 CSV 格式
  • 通过串行接口流式传输 CSV 数据以供进一步处理
  • 利用 AudioTools 框架进行音频处理和流式传输
  • 易于使用的 AudioLogger 用于调试和监控

代码

#include "AudioTools.h"

AudioInfo info(16000, 2, 32);
I2SStream i2sStream; // Access I2S as stream
CsvOutput<int32_t> csvStream(Serial);
StreamCopy copier(csvStream, i2sStream); // copy i2sStream to 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; // or try with I2S_LSB_FORMAT
cfg.is_master = false; // this module nees a master clock if the ESP32 is master
cfg.use_apll = false; // try with yes
i2sStream.begin(cfg);

// make sure that we have the correct channels set up
csvStream.begin(info);

}

// Arduino loop - copy data
void loop() {
copier.copy();
}

配置说明

info:定义音频配置,包括采样率、通道数(2 为立体声,1 为单声道)和每个采样的位数(32 位)。

i2sStream:创建 I2SStream 类的实例,以将 I2S 接口作为流进行访问。

csvStream:创建 CsvOutput 对象,将音频数据转换为 CSV 格式并通过串行接口进行流式传输。

copier:创建 StreamCopy 对象,将音频数据从 I2S 流复制到 CSV 流。

cfg:使用所需的设置配置 I2S 流,如音频格式、主/从模式和 APLL 使用。

打开 Serial Plotter 查看输出波形。

pir

Loading Comments...