如题,最近换了 iQOO ,发现 OriginOS 5 这个「蓝心小 V 」基本是半残废,只能控制自家的 VIVO 智慧生活的设备。而我的家居全在米家上,一个也添加不进来。
怎么才能通过语音控制米家的设备呢?
我想了一个奇巧淫技:Android 有无障碍服务,可以读取任意应用的内容,那监听语音助手界面上实时识别出来的文字,遇到关键词就打断后续识别,执行自定义的指令,不就可以了?
于是我就写了个简单的 App ,会在后台长时运行无障碍服务,识别到我说「开灯」或者「关灯」的时候,就会退出语音助手,然后调用我的 HomeAssistant (接入了米家)的 RESTful API ,从而实现开关灯。
我测试了一下,很稳定,可以无感识别。启用无障碍服务后,在锁屏界面也可以正常监听语音助手。
项目在这里: https://github.com/w568w/VoiceTrigger
目前还是个很简单的 demo ,安装完连界面都没有,默认是控制我家的灯(当然 secret 没传到仓库里,哈哈)。
需要定制或者了解原理的朋友可以直接看服务实现代码。自己简单修改一下请求的 API 。
理论上也可以适配到其他 ROM 的语音助手上。之前研究过 MIUI 的,应该可以用类似的方法实现。
1
schinnerarnoldo5 1 天前
很强
|
2
hanguofu 1 天前
请问对于没有 语音助手 的其它 ROM/手机 ,应该怎样识别出文字呢 ?
|
3
w568w OP @hanguofu 这是另一个话题了。我需求的前提就是假设用的是有语音助手的国产 ROM 。
没有语音助手的话,那多半是第三方 ROM 。这种情况下先看看语音唤醒 DSP 是否支持,如果支持的话直接刷 Google Assistant 就行了;否则就只能自己用第三方的语音助手了,比如小爱同学 App 。 |
![]() |
4
ajan 12 小时 53 分钟前
牛!
|
5
shunia 42 分钟前
这么天才的想法,那是不是可以直接做一个语音助手 app ?
|