找回密码
 立即注册

微信扫码登录

搜索
查看: 8958|回复: 36

[技术探讨] 小爱音箱配合ha的语音助理,让你体验更加好

  [复制链接]

3

主题

141

回帖

1163

积分

金牌会员

积分
1163
金钱
1019
HASS币
0
发表于 2024-7-27 16:45:48 | 显示全部楼层 |阅读模式
本帖最后由 foxad 于 2024-7-29 15:44 编辑

参考链接:
告别智障的HomeAsistant 语音助手,迎接豆包——你的智能专...
HomeAssistant 语音助手对接AI大模型相关系列教程说明
小爱直接控制HA里的设备



由于ha的语音唤醒功能让我很是恼火,但是小爱通过NR接入ha的话,按照传统方法,如果设备多了,switch要分出来的是一大堆一大堆,既费力又需要大量时间编辑。
因此,想偷懒的我就弄了另外一个方法。
无标题.png
小爱音箱通过miio auto接入 hass后,会有一个状态是你对音箱说的话。实际上就是stt。这个状态在ha中是可以获得到的。那么,将获得到的值传给ha自身的语音助手进行执行的话,就减轻了编辑nr的工作量。
而且,如果有多个音箱的话,可以添加一个脚本以在值前面添加一个位置信息,比如卧室,客厅之类,以达到分区控制。
当ha的语音助手处理好后,会返回一个状态值,将这个值丢给小爱的tts后,由小爱来播报处理信息。这样一来,既能操作也有反馈。

需要注意一点的是,这样操作的时候,需要在米家-音箱设备中添加训练计划-唤醒词。回应我用的是“一句话”,内容为“请稍后”。而我对小爱说打开xx后,小爱会先回答“请稍后”,然后由tts输出“xx已经xx了”。

且 可以将小爱tts节点后增加一个函数处理,在内容前面或者后面加上时间日期,并写入文件。这样的话相当于有了一个完整的设备工作/状态记录了。

将代码附上,以供参考。

补充说明:
由于每个人的语音助手不一样,所以需要针对性的修改。导入流后,双击“助手测试”,修改数据“{"text":msg.payload,"language":"ZH-CN","agent_id":"conversation.chatgpt","conversation_id":"my_conversation_1"}”中的"agent_id":"conversation.chatgpt" 。
根据自己的值修改为各自的助手。这个值可以在开发者工具中找到。
2.png 3.png
上面的是以修改后的ghatgpt(豆包)。

2.png 3.png
上面的是大佬修改的语音助手。



flows (1).zip

1.21 KB, 下载次数: 108

售价: 1 金钱  [记录]

参考

评分

参与人数 2金钱 +13 收起 理由
linxianxin + 1 厉害了word楼主!
隔壁的王叔叔 + 12 高手,这是高手!

查看全部评分

回复

使用道具 举报

0

主题

3

回帖

54

积分

注册会员

积分
54
金钱
51
HASS币
0
发表于 前天 21:57 | 显示全部楼层
foxad 发表于 2025-7-6 21:07
米家中的自定义指令,就是前面说的训练计划。需要注意的是,填写的训练计划和你告诉小爱的要一致,否则会 ...

明白了,就是每一句话对应一个自定义指令是吧?然后小爱音箱里面设置一句话回复相当于是打断了小爱执行这个指令,否则的话就会小爱执行一次,大模型再执行一次
回复

使用道具 举报

3

主题

141

回帖

1163

积分

金牌会员

积分
1163
金钱
1019
HASS币
0
 楼主| 发表于 前天 21:07 | 显示全部楼层
本帖最后由 foxad 于 2025-7-6 21:08 编辑
dreamsafari 发表于 2025-7-4 20:54
感谢楼主

我现在遇到的问题是不管给小爱一个什么指令,小爱和配置的大语言模型都会处理一遍。。。如何才能 ...

米家中的自定义指令,就是前面说的训练计划。需要注意的是,填写的训练计划和你告诉小爱的要一致,否则会触发米家自身的操作逻辑。
如果有中枢网关的话,可以使用mi_home接入,然后在米家app中,只能-右上角+号-添加手动控制,结果为家居设备-中枢网关-产生虚拟事件。nr监听中枢网关的虚拟事件。这样的好处是回复更像直接接入米家。但是和前面方法存在同样的弊端:手动控制的名称和你告诉小爱也是要一致,否则无效。
回复

使用道具 举报

0

主题

3

回帖

54

积分

注册会员

积分
54
金钱
51
HASS币
0
发表于 4 天前 | 显示全部楼层
感谢楼主

我现在遇到的问题是不管给小爱一个什么指令,小爱和配置的大语言模型都会处理一遍。。。如何才能不让小爱处理,全都交给大模型呢?
回复

使用道具 举报

3

主题

141

回帖

1163

积分

金牌会员

积分
1163
金钱
1019
HASS币
0
 楼主| 发表于 2025-3-11 16:48:57 | 显示全部楼层
misLia 发表于 2025-3-11 11:21
早上刚才测试了下,可以不需要固定语言就可以控制所有的灯。只要包含“灯”这个关键词,就可以执行了。 ...

啊抱歉  前面理解错了你的意思。在nr这边 是不需要那么多触发条件的。因为他就是把小爱获取到的信息提交给ha就完事了。如果需要分离的画,进行正则匹配就好了。但是对于小爱那边,因为不支持模糊词匹配,因此要做很多条目,否则会提示找不到设备影响感官。虽然目前我没有中枢网关,但是根据现有视频来看也是存在同样的问题。
回复

使用道具 举报

32

主题

290

回帖

1221

积分

金牌会员

积分
1221
金钱
899
HASS币
0
发表于 2025-3-11 11:21:51 | 显示全部楼层
foxad 发表于 2025-3-10 16:55
谁叫小爱不支持模糊词呢
alias: AI控制测试
description: ""
triggers:
  - trigger: state
    entity_id:
      - sensor.xiaomi_lx06_6ee3_conversation
    to: null
conditions:
  - condition: template
    value_template: "{{ '灯' in states('sensor.xiaomi_lx06_6ee3_conversation') }}"
actions:
  - action: conversation.process
    metadata: {}
    data:
      text: "{{states('sensor.xiaomi_lx06_6ee3_conversation')}}"
      agent_id: conversation.home_assistant
      language: zh-cn
mode: single

早上刚才测试了下,可以不需要固定语言就可以控制所有的灯。只要包含“灯”这个关键词,就可以执行了。但是这也带来一个问题,需要给小爱加上N种对话技能只为控制一个灯。
回复

使用道具 举报

3

主题

141

回帖

1163

积分

金牌会员

积分
1163
金钱
1019
HASS币
0
 楼主| 发表于 2025-3-10 16:55:01 | 显示全部楼层
misLia 发表于 2025-3-10 15:12
想问下,按你这方法,触发条件要写很多啊。

谁叫小爱不支持模糊词呢
回复

使用道具 举报

32

主题

290

回帖

1221

积分

金牌会员

积分
1221
金钱
899
HASS币
0
发表于 2025-3-10 15:12:49 | 显示全部楼层
foxad 发表于 2024-12-15 10:37
实际上我需要的不是指令。因为ha能获得你对小爱说了什么东西。将获得的指令丢给ha的助手处理,但是如果没 ...

想问下,按你这方法,触发条件要写很多啊。
回复

使用道具 举报

jon 手机认证

0

主题

47

回帖

180

积分

注册会员

积分
180
金钱
133
HASS币
0
发表于 2025-3-1 12:22:49 | 显示全部楼层
谢谢,出个抄作业的教程吧
回复

使用道具 举报

32

主题

290

回帖

1221

积分

金牌会员

积分
1221
金钱
899
HASS币
0
发表于 2025-2-24 13:35:43 | 显示全部楼层
foxad 发表于 2025-2-21 16:43
官方的助手好像必须明确你要操作的实体名称。比如 你把一个开关命名为 "test1测试" 那么你使用官方助手就 ...

我看了你的帖子,找到原因了,我之前用官方助手时,语言要么没选,要么写的“中文”,周五我把它改成“zh-cn”就行了。最近刚买了小爱音箱,刚开始着手语音控制,所以相关的内容还不了解。哈哈,还得多学习。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )

GMT+8, 2025-7-8 13:07 , Processed in 0.089358 second(s), 15 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表