跳转到内容

I²S Audio Microphone

i2s_audio 麦克风平台允许你通过 I2S Audio 接收音频。

此平台仅适用于 ESP32 芯片。

WARNING

音频和语音组件在设备上消耗大量资源(RAM、CPU)。

如果设备配置中包含过多额外组件,很可能发生崩溃。 特别是,已知蓝牙/BLE 组件在与语音助手和/或其他音频组件组合使用时会导致问题。

# 示例配置条目
microphone:
- platform: i2s_audio
id: external_mic
adc_type: external
i2s_din_pin: GPIOXX
  • adc_type(必需,enum):

    • external:使用连接到 I²S 总线的外部 ADC。
    • internal:内部 ADC 不再受支持。请改用外部 I²S 麦克风。
  • channel(可选,enum):麦克风的通道。可选 left、right 或 stereo。如果为 stereo,输出数据将是原来两倍大小,每个右声道样本后跟一个左声道样本。默认为 right。

  • sample_rate(可选,positive integer):I2S 采样率。默认为 16000。

  • bits_per_sample(可选,enum):从麦克风接收的真实音频样本的位深度。可选 8bit、16bit、24bit 或 32bit。默认为 32bit。

  • mclk_multiple(可选,enum):MCLK 频率与采样率的倍数。如果使用每样本 24 位,必须能被 3 整除。可选 128、256、384、512。默认为 256。

  • use_apll(可选,boolean):I2S 使用 APLL 作为主时钟,启用它可获得准确的时钟。默认为 false。

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

  • i2s_audio_id(可选,ID):为此麦克风使用的 I²S Audio 的 ID。

  • correct_dc_offset(可选,boolean):校正某些麦克风的直流偏移,这些麦克风的音频信号平均幅度不为 0。默认为 false。

  • 麦克风 的所有其他选项

  • i2s_din_pin(必需,Pin Schema):用于 I²S DIN/SDIN(数据输入)信号的 GPIO 引脚,也称为 SD/SDATA(串行数据)或 ADCDAT(模拟到数字转换器数据)。
  • pdm(可选,boolean):如果外部 ADC 使用 PDM(脉冲密度调制)而非 I²S,请将此设置为 true。默认为 false。

NOTE

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

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