年前写的文章对所见即可说方案进一步调研-CSDN博客,针对rk3568定制版,进行了Accessibility实现所见即可说功能的验证与调研,结论是不可行。
最终解决方案是:结合科大讯飞的AI大模型智能助手,使用rk3588板(3568性能太差),实现了所见即可说方案。
方案简述如下:
1、提示词唤醒AI --> 截屏 --> ocr文字识别 --> 热词上传到科大讯飞AI平台
2、语音下达包含热词的指令 --> asr平台返回消息和语音 --> 根据asr的框架解析出意图 --> 根据意图判断是所见即可说指令,并解析出热词 --> 根据ocr解析结果,获取对应热词的坐标 --> 模拟点击 --> 点击特效
这套方案不难理解,但是个人开发者难以实现。因为首先需要asr会员账号、asr的ocr算法和AI意图解析框架。然后将ocr算法集成到流程中,实现一个热词上传接口(参考asr文档所见即可说实体-交互大模型版本)。最终将截屏、模拟点击、点击特效等小功能串起来。
串流程容易,但是需要对大模型相关的技术有一定了解。
2025-02-06-16-17-24-screenshot-ocr-hotword
此方案,我认为还是偏过渡性质。本身还有好几个缺陷。
截屏和ocr带来的延时,采用的傻瓜方式,每次唤醒AI都需要做一次这些动作。
ocr算法也有一些bug,有些文字会识别不出或者识别错。
asr网络平台的稳定性也不太好。
直到项目完成也没有想到更好的办法,如果要提升性能,就会考虑像截屏这种能不能并发的操作,但是ai语音识别需要先保证上传成功热词。只有热词已有的情况下,才能正确识别语音,得到想要的意图,否则可能识别出来的是谐音的其他文字。
而上传热词,需要ocr,ocr需要截屏,是线性依赖的。
那么是否可以在前端页面每次切换时,只作一次截屏+ocr+热词上传,如果是只在当前应用内部的页面,是可以简单做到的,前端调用一个接口就行。如果是在其他应用页面上,就无法做到了。需求是要求支持第三方应用的。
反倒是当前这种AI语音控制的方式,无论是当前应用还是其他应用,都可以普适。
所以,这也是一个折衷的普适方案,而且延时1s不是那么明显,等AI语音助手说完话,在作第二轮语音交互,也很自然。唯一的就是可靠性这方面略差了点。