混音扬声器
mixer 扬声器平台允许您将发送到不同源扬声器的音频混合成一个输出,发送到另一个扬声器组件。可以使用 apply ducking 动作 对各个源扬声器进行音量衰减(变小)。
当将多个音频流混合为一个时,它们必须具有相同的采样率。如果不同,请启用队列模式,以便一次只播放一个源扬声器的音频。否则,请使用 重采样扬声器 将音频发送到源扬声器。
此平台仅适用于基于 ESP32 的芯片。
WARNING
音频和语音组件会消耗设备上大量资源(RAM、CPU)。
如果您在设备配置中包含太多额外组件,很可能发生崩溃。 特别是 Bluetooth/BLE 组件在与 Voice Assistant 和/或其他音频组件结合使用时已知会导致问题。
# 示例配置条目speaker: - platform: mixer output_speaker: speaker_id source_speakers: - id: announcement_mixer_input_speaker_id - id: media_mixer_input_speaker_id-
source_speakers (必需, 列表): 源扬声器输入列表。必须至少有 2 个,最多 8 个扬声器。
-
num_channels (可选, 正整数): 发送到输出扬声器的音频通道数。可选
1或2。默认为输出扬声器的通道数。 -
queue_mode (可选, 布尔值): 启用队列模式。如果启用,音频不会被混合,而是依次播放每个源扬声器的音频,从第一个列出的源扬声器开始。
-
task_stack_in_psram (可选, 布尔值): 仅适用于
esp-idf。在外部内存中运行音频任务。默认为false。
mixer_speaker.apply_ducking 动作
Section titled “mixer_speaker.apply_ducking 动作”此动作对媒体流进行音量衰减(降低音量)。
on_...: - mixer_speaker.apply_ducking: id: media_mixer_source_speaker_id decibel_reduction: 20 duration: 2.0s配置变量:
- decibel_reduction (必需, 整数, 可模板化): 媒体流的衰减量,以分贝为单位。必须在 0 到 50 之间。
- duration (可选, 时间, 可模板化): 从当前衰减级别过渡到新衰减级别的时间长度。默认为
0s。