跳转到内容

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 (可选, 枚举): 麦克风的通道。可选 leftrightstereo。如果为 stereo,输出数据将大一倍,每个右采样后跟一个左采样。默认为 right

  • sample_rate (可选, 正整数): I2S 采样率。默认为 16000

  • bits_per_sample (可选, 枚举): 表示从麦克风接收的真实数据的音频采样位深。可选 8bit16bit24bit32bit。默认为 32bit

  • bits_per_channel (可选, 枚举): 实际从麦克风读取的音频采样位深。可选 8bit16bit24bit32bit。默认为 32bit。如果不使用旧版驱动程序,则忽略此设置。

  • mclk_multiple (可选, 枚举): MCLK 频率与采样率的倍数。如果使用每采样 24 位,必须可被 3 整除。可选 128256384512。默认为 256

  • use_apll (可选, 布尔值): I2S 使用 APLL 作为主 I2S 时钟,启用它可以获得精确的时钟。默认为 false

  • i2s_mode (可选, 枚举): 要使用的 I²S 模式。可选 primary(时钟由主机驱动)或 secondary(时钟由连接的设备驱动)。默认为 primary

  • i2s_audio_id (可选, ID): 您希望用于此麦克风的 I²S Audio 的 ID。

  • correct_dc_offset (可选, 布尔值): 对于音频信号平均振幅不为 0 的麦克风,校正直流偏移。默认为 false

  • 麦克风的所有其他选项

  • i2s_din_pin (必需, 引脚模式): 用于 I²S DIN/SDIN (数据输入) 信号的 GPIO 引脚,也称为 SD/SDATA (串行数据)ADCDAT (模数转换器数据)
  • pdm (可选, 布尔值): 如果您的外部 ADC 使用 PDM(脉冲密度调制)而不是 I²S,请将其设置为 true。默认为 false

NOTE

PDM 麦克风仅支持 ESP32 和 ESP32-S3。

NOTE

内部 ADC 麦克风仅由常规 ESP32 上的旧版 I²S 驱动程序支持,不支持变体。

  • adc_pin (必需, 引脚模式): 用于 ADC 输入的 GPIO 引脚。
microphone:
- platform: i2s_audio
adc_type: external
i2s_din_pin: GPIOXX
pdm: true
microphone:
- platform: i2s_audio
i2s_din_pin: GPIOXX
adc_type: external
pdm: false
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