• homeassistant内置的语音助手像一个智障一样,总是说我无法理解你的意思,只能简单的开关灯。调整亮度,所以想着是否能把homeassistant内置语音助手获得的指令发给小爱同学执行。
  • 前提条件是你有homeassistant,并且安装了stt服务,我用的是Sherpa Onnx TTS/STT,因为是离线的,不涉及安全问题,而且对设备也不是很挑,我家里是黑豹X2部署HA,这玩意现在已经涨到200了,硬件涨价是真离谱啊 。实际体验下来,stt还是很快的,基本没有延迟,但是tts有点慢,不过无所谓了,反正我也不用。这里附上项目地址SherpaOnnxTTS/STT。
  • 服务装好,配置好HA的语音助手以后,再创建一个自动化就行了,附上代码
alias: 转发语音指令给超级小爱
description: ""
triggers:
  - trigger: conversation
    command:
      - "{user_speech}"
conditions:
  - condition: template
    value_template: >
      {{ trigger.slots.user_speech is defined and ("小爱" in
      trigger.slots.user_speech) }}
actions:
  - choose:
      - conditions:
          - condition: template
            value_template: |
              {{ "客厅小爱" in trigger.slots.user_speech }}
        sequence:
          - data:
              entity_id: media_player.xiaomi_xxx_xxxx_play_control
              text: "{{ trigger.slots.user_speech }}"
              execute: true
            action: xiaomi_miot.intelligent_speaker
      - conditions:
          - condition: template
            value_template: |
              {{ "主卧小爱" in trigger.slots.user_speech }}
        sequence:
          - data:
              entity_id: media_player.xiaomi_xxx_xxxx_play_control
              text: "{{ trigger.slots.user_speech }}"
              execute: true
            action: xiaomi_miot.intelligent_speaker
      - conditions:
          - condition: template
            value_template: |
              {{ "书房小爱" in trigger.slots.user_speech }}
        sequence:
          - data:
              entity_id: media_player.xiaomi_xxx_xxxx_play_control
              text: "{{ trigger.slots.user_speech }}"
              execute: true
            action: xiaomi_miot.intelligent_speaker
      - conditions:
          - condition: template
            value_template: |
              {{ "所有" in trigger.slots.user_speech or
                 "全部" in trigger.slots.user_speech or
                 "一起" in trigger.slots.user_speech }}
        sequence:
          - parallel:
              - data:
                  entity_id: media_player.xiaomi_xxx_xxxx_play_control
                  text: "{{ trigger.slots.user_speech }}"
                  execute: true
                action: xiaomi_miot.intelligent_speaker
              - data:
                  entity_id: media_player.xiaomi_xxx_xxxx_play_control
                  text: "{{ trigger.slots.user_speech }}"
                  execute: true
                action: xiaomi_miot.intelligent_speaker
              - data:
                  entity_id: media_player.xiaomi_xxx_xxxx_play_control
                  text: "{{ trigger.slots.user_speech }}"
                  execute: true
                action: xiaomi_miot.intelligent_speaker
    default:
      - data:
          title: 请指定设备
          message: 请告诉我要控制哪台设备,例如小爱1号。你刚才说的是:{{ trigger.slots.user_speech }}
        action: persistent_notification.create
mode: single

搞完以后在HA的仪表板上添加一个按钮,类型选assist,完成后点击对话,说出关键词加上想要让小爱同学做的事情,比如客厅小爱播放音乐,客厅小爱就会播放音乐了。最后附上我家HA的美照一张。
在这里插入图片描述

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐