跳转到内容

Resampler Speaker

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

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

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

WARNING

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

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

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

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