跳转到内容

重采样扬声器

resampler 扬声器平台允许您转换音频流的采样率并输出到另一个扬声器组件

如果音频流不需要重采样,它会自动直接发送到输出扬声器。

此平台仅适用于基于 ESP32 的芯片。

WARNING

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

如果您在设备配置中包含太多额外组件,很可能发生崩溃。 特别是 Bluetooth/BLE 组件在与 Voice Assistant 和/或其他音频组件结合使用时已知会导致问题。

# 示例配置条目
speaker:
- platform: resampler
output_speaker: output_speaker_id
sample_rate: 48000
  • output_speaker (必需, ID): 输出重采样音频的扬声器
  • buffer_duration (可选, 时间): 内部环形缓冲区的持续时间。较大的值可以减少卡顿但使用更多内存。默认为 500ms
  • bits_per_sample (可选, 正整数): 重采样后的音频采样位深。默认为输出扬声器的每采样位数。
  • sample_rate (可选, 正整数): 要转换到的采样率。必须在 800048000 之间。默认为输出扬声器的采样率。
  • filters (可选, 正整数): 要使用的加窗 sinc 插值滤波器数量。必须在 21024 之间。默认为 16
  • taps (可选, 正整数): 每个加窗 sinc 插值滤波器的抽头数。必须在 16128 之间且可被 4 整除。默认为 16
  • task_stack_in_psram (可选, 布尔值): 在外部内存中运行音频任务。默认为 false
  • 扬声器组件的所有其他选项。

重采样是处理器密集型操作,应尽可能避免。音频质量受滤波器数量和抽头数量的影响。增加滤波器数量会增加内存负载。增加抽头数量会增加 CPU 负载。