I²S 音频麦克风
i2s_audio 麦克风平台允许您通过 I2S Audio 接收音频。
此平台仅适用于基于 ESP32 的芯片。
WARNING
音频和语音组件会消耗设备上大量资源(RAM、CPU)。
如果您在设备配置中包含太多额外组件,很可能发生崩溃。 特别是 Bluetooth/BLE 组件在与 Voice Assistant 和/或其他音频组件结合使用时已知会导致问题。
# 示例配置条目microphone: - platform: i2s_audio id: external_mic adc_type: external i2s_din_pin: GPIOXX
- platform: i2s_audio id: adc_mic adc_type: internal adc_pin: GPIOXX-
adc_type (必需, 枚举):
external: 使用连接到 I²S 总线的外部 ADC。internal: 使用 ESP32 的内部 ADC。仅支持 ESP32,不支持变体。
-
channel (可选, 枚举): 麦克风的通道。可选
left、right或stereo。如果为stereo,输出数据将大一倍,每个右采样后跟一个左采样。默认为right。 -
sample_rate (可选, 正整数): I2S 采样率。默认为
16000。 -
bits_per_sample (可选, 枚举): 表示从麦克风接收的真实数据的音频采样位深。可选
8bit、16bit、24bit或32bit。默认为32bit。 -
bits_per_channel (可选, 枚举): 实际从麦克风读取的音频采样位深。可选
8bit、16bit、24bit或32bit。默认为32bit。如果不使用旧版驱动程序,则忽略此设置。 -
mclk_multiple (可选, 枚举): MCLK 频率与采样率的倍数。如果使用每采样 24 位,必须可被 3 整除。可选
128、256、384、512。默认为256。 -
use_apll (可选, 布尔值): I2S 使用 APLL 作为主 I2S 时钟,启用它可以获得精确的时钟。默认为
false。 -
i2s_mode (可选, 枚举): 要使用的 I²S 模式。可选
primary(时钟由主机驱动)或secondary(时钟由连接的设备驱动)。默认为primary。 -
correct_dc_offset (可选, 布尔值): 对于音频信号平均振幅不为 0 的麦克风,校正直流偏移。默认为
false。 -
麦克风的所有其他选项
外部 ADC
Section titled “外部 ADC”- i2s_din_pin (必需, 引脚模式): 用于 I²S
DIN/SDIN(数据输入) 信号的 GPIO 引脚,也称为SD/SDATA(串行数据) 或ADCDAT(模数转换器数据)。 - pdm (可选, 布尔值): 如果您的外部 ADC 使用 PDM(脉冲密度调制)而不是 I²S,请将其设置为
true。默认为false。
NOTE
PDM 麦克风仅支持 ESP32 和 ESP32-S3。
内部 ADC
Section titled “内部 ADC”NOTE
内部 ADC 麦克风仅由常规 ESP32 上的旧版 I²S 驱动程序支持,不支持变体。
- adc_pin (必需, 引脚模式): 用于 ADC 输入的 GPIO 引脚。
M5Stack Atom Echo
Section titled “M5Stack Atom Echo”microphone: - platform: i2s_audio adc_type: external i2s_din_pin: GPIOXX pdm: trueRaspiAudio Muse Luxe
Section titled “RaspiAudio Muse Luxe”microphone: - platform: i2s_audio i2s_din_pin: GPIOXX adc_type: external pdm: falseICS-43434
Section titled “ICS-43434”microphone: - platform: i2s_audio i2s_din_pin: GPIOXX adc_type: external pdm: false sample_rate: 48000 bits_per_sample: 32bit channel: left use_apll: true