唤醒词检测实体

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

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

特性

Tip

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

名称类型默认值说明
supported_wake_wordslist[WakeWord]Required支持的服务唤醒词:
  • ww_id - 唯一标识符
  • name - 人类可读的名称

方法

处理音频流

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

class MyWakeWordDetectionEntity(WakeWordDetectionEntity):
    """Represent a Wake Word Detection entity."""

    async def async_process_audio_stream(
        self, stream: AsyncIterable[tuple[bytes, int]]
    ) -> DetectionResult | None:
        """Try to detect wake word(s) in an audio stream with timestamps.

        Audio must be 16Khz sample rate with 16-bit mono PCM samples.
        """

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

  • timestamp 是自音频流开始以来的毫秒数
  • audio_chunk 是 16Khz 的 16 位签名单声道 PCM 样本块

如果检测到唤醒词,则返回 DetectionResult

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

辅助管道 中,音频流在唤醒词检测和语音转文本之间共享。这意味着在唤醒词检测无法处理期间通过语音转文本删除任何音频块,除非在 DetectionResultqueued_audio 中传回。