Skip to main content

唤醒词检测实体

唤醒词检测实体允许其他集成或应用程序在音频流中检测唤醒词(也称为热词)。

唤醒词检测实体来源于 homeassistant.components.wake_word.WakeWordDetectionEntity

属性

tip

属性应该始终只从内存中返回信息,而不进行 I/O(如网络请求)。

名称类型默认值描述
supported_wake_wordslist[WakeWord]必填服务支持的唤醒词,包括:
  • ww_id - 唯一标识符
  • name - 人类可读名称

方法

处理音频流

处理音频流的方法用于检测唤醒词。如果音频流结束而没有检测到唤醒词,则必须返回 DetectionResultNone

class MyWakeWordDetectionEntity(WakeWordDetectionEntity):
"""表示一个唤醒词检测实体。"""

async def async_process_audio_stream(
self, stream: AsyncIterable[tuple[bytes, int]]
) -> DetectionResult | None:
"""尝试在带有时间戳的音频流中检测唤醒词。

音频必须是 16Khz 的采样率,16-bit 单声道 PCM 样本。
"""

音频流由形式为 (timestamp, audio_chunk) 的元组组成,其中:

  • timestamp 是自音频流开始以来的毫秒数
  • audio_chunk 是16位有符号单声道 PCM 样本的音频块,采样率为 16Khz

如果检测到唤醒词,将返回一个 DetectionResult,其包含:

  • ww_id - 检测到的唤醒词的唯一标识符
  • timestamp - 检测发生时音频块的时间戳
  • queued_audio - 可选音频块,将被转发给语音转文本(见下文)

Assist pipeline 中,音频流在唤醒词检测和语音转文本之间共享。这意味着在唤醒词检测过程中移除的任何音频块 不能被 语音转文本处理,除非通过 DetectionResultqueued_audio 传回。