|
本帖最后由 a2633063 于 2019-5-7 22:42 编辑
20190507更新:
小度已经接入 控制设备方面废话少 而且设备名称自定义 天猫精灵在控制hass方面正式被我弃用了~~ 所以天猫的自定义技能不会继续啦~~~
20190430增加:
有人告诉我 小度控制可以自定义名称,而且反馈也比较精简,已经看了接入,和天猫精灵类似,看来考虑后续的语言控制换成小度了好了
用小度的说说看~~~
20190429晚上更新:
实际测试使用了一下,发现需要个入口词,反而更不方便了原本只说 打开电视, 现在要说让服务器(自定义的入口词)打开显示器 感觉也更麻烦了
这个我还是停止研究了,有兴趣的继续研究 只希望天猫精灵赶快完善设备类型 优化回复内容了~~~
天猫精灵接入hass肯定不少人都做了, 但是天猫精灵控制设备有2个缺点:
- 语音控制的命令必须为天猫精灵规定的格式与特定的词,而且设备类型很少,比如我想实现关闭卧室的显示器就不行. 显示器电脑等设备都不在天猫精灵的支持列表里.
- 天猫精灵的反馈废话太多多多多多多多多多.
所以想自己完成自定义语音控制以及自定义回复功能. 天猫精灵中自定义技能能完成此功能.结果简单测试,理论应该是没有问题.而且自定义技能的webhook不需要ssl证书,而智能家居技能必须要https加密
目前只是简单实现了功能,而且实际上和hass完全没有关系,但是已经能够拿到天猫精灵反馈到自己架设服务器上的关键词,根据这些关键词,那就是想做什么就做什么了~~~
缺点:
解决了上面2个缺点,取引入了另一个缺点.天猫精灵的自定义技能必须有个关键词表示是你的技能,所以不能在直接说关闭显示器,而是要说 (让/把)服务器 关闭显示器 "服务器"是你自己设置的技能唤醒词
前提:
你需要一个外网能够访问你自己服务器的ip地址,无论你是公网ip,还是自己搭建frp,或是内网穿透够可以.我自己是花生壳内网穿透
个人服务器搭建:
保存以下python文件:
test.py
在test.py同级目录下建立一个文件夹aligenie,将在阿里开发者平台上下载的认证文件(txt文件)放在aligenie文件夹中,然后运行py文件:
以上自己的服务器就搭建完成,请确保外网能连入你服务器的8000端口.外网连接不多说
阿里开发者平台配置
在阿里开发者平台中创建技能:https://open.aligenie.com/console/skill/create
技能名称随意,技能类型选择自定义,注意:调用词请选择合适的词,后面试用时必须使用此调用词来激活你的命令
点下一步,进入控制台,我们需要设置意图和实体,实体就我们需要抓到的关键词,而意图就是类似我们语音的命令内容了
先设置实体,选择实体, 创建实体,输入一个实体名词(最好英文).然后在你创建的实体名词下加入你需要的关键词.
如我需要执行打开显示器的命令,那么实体有2个:执行动作:打开 被执行的设备:显示器
所以我创建了两个实体:device active
device中包含内容:显示器(还加了个电脑)
active中包含内容:打开/关闭
然后设置意图
切换至意图-创建意图,名称随意,创建后进入你创建的意图详情
增加一个普通语料:
例句 内容为"打开显示器",然后选中"打开",在选中的位置单击一下,弹出一个窗口选择active:active 表示这句话中打开为上面实体中的active 显示器部分操作同理
上面操作后,参数会自动添加,勾选必选.
然后配置回复配置 url填写你服务器的url即可,同时你需要点击下载认证文件,将下载下来的txt文件放在服务器web服务的根目录下的aligenie文件夹内(上面有提)点击提交(服务器都配置好后,这里的回复配置才能提交成功)
提交完成后就配置完成了,服务器配置好就可以点测试验证验证一下
看到返回的数据已经变成了我们自定义的"哈哈哈" (这里我的调用词是"服务器")
py脚本log中可以看到天猫精灵服务器发出的内容
至此已经实现自定义命令及自定义回复
目前我的脚本只是验证自定义技能,回复也是写死的"哈哈哈".拿到天猫精灵的数据后,根据里面的关键词,想做什么,就直接写脚本了~ 控制hass里的设备应该对大神都是小菜一碟吧
我主要方向不是服务器 python 所以只验证以上功能 拿到这些数据后做什么 就教给其他大神去完善吧
ps:明明看到说论坛支持markdown 但是怎么没用 不知道怎么用啊........
|
|