让任意国产 Android 的语音助手支持控制智能家居等自定义指令

1 天前
 w568w

如题,最近换了 iQOO ,发现 OriginOS 5 这个「蓝心小 V 」基本是半残废,只能控制自家的 VIVO 智慧生活的设备。而我的家居全在米家上,一个也添加不进来。

怎么才能通过语音控制米家的设备呢?

我想了一个奇巧淫技:Android 有无障碍服务,可以读取任意应用的内容,那监听语音助手界面上实时识别出来的文字,遇到关键词就打断后续识别,执行自定义的指令,不就可以了?

于是我就写了个简单的 App ,会在后台长时运行无障碍服务,识别到我说「开灯」或者「关灯」的时候,就会退出语音助手,然后调用我的 HomeAssistant (接入了米家)的 RESTful API ,从而实现开关灯。

我测试了一下,很稳定,可以无感识别。启用无障碍服务后,在锁屏界面也可以正常监听语音助手。

项目在这里: https://github.com/w568w/VoiceTrigger


目前还是个很简单的 demo ,安装完连界面都没有,默认是控制我家的灯(当然 secret 没传到仓库里,哈哈)。

需要定制或者了解原理的朋友可以直接看服务实现代码。自己简单修改一下请求的 API 。

理论上也可以适配到其他 ROM 的语音助手上。之前研究过 MIUI 的,应该可以用类似的方法实现。

875 次点击
所在节点    Android
6 条回复
schinnerarnoldo5
1 天前
很强
hanguofu
1 天前
请问对于没有 语音助手 的其它 ROM/手机 ,应该怎样识别出文字呢 ?
w568w
1 天前
@hanguofu 这是另一个话题了。我需求的前提就是假设用的是有语音助手的国产 ROM 。

没有语音助手的话,那多半是第三方 ROM 。这种情况下先看看语音唤醒 DSP 是否支持,如果支持的话直接刷 Google Assistant 就行了;否则就只能自己用第三方的语音助手了,比如小爱同学 App 。
ajan
16 小时 32 分钟前
牛!
shunia
4 小时 21 分钟前
这么天才的想法,那是不是可以直接做一个语音助手 app ?
w568w
20 分钟前
@shunia 倒是可以做一个类似 iOS 那样自定义语音快捷指令的平台

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://yangjunhui.monster/t/1131547

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX