I²S 音频扬声器
i2s_audio 扬声器平台允许您通过 I2S Audio 接收音频。
此平台仅适用于基于 ESP32 的芯片。
WARNING
音频和语音组件会消耗设备上大量资源(RAM、CPU)。
如果您在设备配置中包含太多额外组件,很可能发生崩溃。 特别是 Bluetooth/BLE 组件在与 Voice Assistant 和/或其他音频组件结合使用时已知会导致问题。
# 示例配置条目speaker: - platform: i2s_audio dac_type: external i2s_dout_pin: GPIOXX-
dac_type (必需, 枚举):
external: 使用外部 DAC,例如 NS4168 或 UDA1334A。internal: 使用内部 DAC
-
channel (可选, 枚举): 扬声器的通道。可选
left、right、mono或stereo。如果为stereo,输入数据应大一倍,每个右采样后跟一个左采样。left和right会静音未使用的通道,而mono在两个通道上播放相同的采样。默认为mono。 -
sample_rate (可选, 正整数): I2S 采样率。如果处于
primaryI²S 模式,则使用音频流的采样率。默认为16000。 -
bits_per_sample (可选, 枚举): 发送到 DAC 的音频采样位深。可选
8bit、16bit、24bit或32bit。默认为16bit。 -
bits_per_channel (可选, 枚举): 音频通道的位深。这是实际发送到 DAC 的数据,需要等于或大于
bits_per_sample。 有关详细信息,请参阅 I2S 设备的数据手册。默认为bits_per_sample。如果不使用旧版驱动程序,则忽略此设置。 -
mclk_multiple (可选, 枚举): MCLK 频率与采样率的倍数。如果使用每采样 24 位,必须可被 3 整除。可选
128、256、384、512。默认为256。 -
use_apll (可选, 布尔值): I2S 使用 APLL 作为主 I2S 时钟,启用它可以获得精确的时钟。默认为
false。 -
i2s_mode (可选, 枚举): 要使用的 I²S 模式。可选
primary(时钟由主机驱动)或secondary(时钟由连接的设备驱动)。默认为primary。 -
i2s_comm_fmt (可选, 枚举): 此扬声器使用的 I²S 通信标准格式。
stand_i2s(默认)stand_msbstand_pcm_shortstand_pcm_longstand_max(仅限旧版驱动)i2s_msbi2s_lsbpcmpcm_shortpcm_long
-
buffer_duration (可选, 时间): 内部环形缓冲区的持续时间。较大的值可以减少卡顿但使用更多内存。默认为
500ms。 -
timeout (可选, 时间): 播放完成后等待多长时间再释放总线。设置为
never以永不因超时而停止扬声器。默认为500ms。 -
扬声器组件的所有其他选项。
外部 DAC
Section titled “外部 DAC”- i2s_dout_pin (必需, 引脚模式): 用于 I²S DOUT(数据输出)信号的 GPIO 引脚。
为获得最佳效果,请尽量保持线路简短。
内部 DAC
Section titled “内部 DAC”NOTE
内部 DAC 扬声器仅由常规 ESP32 上的旧版 I²S 驱动程序支持,不支持变体。
-
mode (必需, 枚举): 内部 DAC 的通道模式。
leftrightstereo