本发明涉及语音输入技术领域,具体来说,涉及一种Android智能语音控制方法及系统。
背景技术:
现在人们的生活越来越依赖于智能手机:社交、打折信息、导航、购物等,为了解决某些特定场合不能手动操作手机的使用需求、方便老人操作、解放双眼等问题,已有相应的智能语音技术得到应用。如,许多输入法都自带的语音输入功能;某些手机自带的语音控制功能,可以执行打开某个应用的简单功能;某些定制的产品上可以实现语音控制功能,比如roobo机器人可以实现打开爱奇艺、搜索并播放节目。
目前的语音系统主要用于语音输入和简单的启动Android程序,不能进行屏幕翻页等系统级别的运行,且不能用于连续的语音输入(每次输入前需要按一个按键才能进行语音输入);能用于控制的也是用于特殊产品,例如机器人方面,主要是控制自己制作的产品;不具有通用性。
输入注入:由于系统限制,各个程序之间要想传递数据必须在程序中采取明确的方式进行;如果没有明确指定数据传输方式,则必须要绕过系统的各种限制,我们把这种方式称之为输入注入。
开发一套通用的语音控制方法和系统,能够帮助人们通过语音来控制Android系统的运行很有必要。
技术实现要素:
针对相关技术中的上述技术问题,一种Android智能语音控制方法及系统,能够帮助人们通过语音来控制Android系统的运行,不仅能实现连续语音输入,还可以实现产品的通用性。
为实现上述技术目的,本发明的第一方面提供了一种Android智能语音控制方法,包括:
S1建立一系统/Root权限的Service,以使执行的代码具有系统/Root权限;
S2开放一个接口给上层的语音控制模块;
S3启动语音识别模块,将得到的文本信息跟本语音控制系统中特定动作信息进行匹配,如果匹配成功则向启动的Service中发送相应的信息;
S4所述服务Service根据传入的动作信息调用系统相应代码,使执行的代码具有系统/Root权限,从而绕过系统的限制实现输入注入的功能。
其中,步骤S1包括:
S11用java编写一个服务Service;
S12调用底层的app_process命令,将该服务Service启动为系统/Root权限;
S13跟上层的APP通讯。
进一步的,步骤S13包括:
S131开放socket接口,通过C/S方式跟上层的APP通讯;或者
S132使用JAVA Binder通讯机制。
其中,步骤S132包括:
在服务Service端通过调用IServiceManager.addService()函数将自己注册到系统中;
上层APP通过调用ServiceManager.getService()函数获取该服务的接口;通过transact()函数调用服务Service中的功能函数传递信息。
本发明的另一方面提供了一种Android智能语音控制系统,包括:
一系统级别或者具有Root权限的服务Service;
一上层的语音控制模块,所述Service开放一接口给所述上层的语音控制模块;和
一语音识别模块,其将得到的文本信息跟本语音控制系统中特定动作信息进行匹配,如果匹配成功则向启动的Service中发送相应的信息,所述服务Service根据传入的动作信息调用系统相应代码,使执行的代码具有系统/Root权限,从而绕过系统的限制实现输入注入的功能。
本发明的有益效果:通过在系统中增加一个具有系统/Root权限的服务,使后续执行的代码也具有了系统/Root权限,从而在系统层面执行相应的代码,可以在不破坏系统完整性的同时达到通用性的目的,使得语音控制能实现更多功能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例所述一种Android智能语音控制方法的流程框图;
图2是根据本发明实施例所述一种Android智能语音控制系统的结构图示意。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,根据本发明实施例所述一种Android智能语音控制方法,包括:
S1建立一系统/Root权限的Service,以使执行的代码具有系统/Root权限;
S2开放一个接口给上层的语音控制模块;
S3启动语音识别模块,将得到的文本信息跟本语音控制系统中特定动作信息进行匹配,如果匹配成功则向启动的Service中发送相应的信息;
S4所述服务Service根据传入的动作信息调用系统相应代码,使执行的代码具有系统/Root权限,从而绕过系统的限制实现输入注入的功能。
其中,步骤S1包括:
S11用java编写一个服务Service;
S12调用底层的app_process命令,将该服务Service启动为系统/Root权限;
S13跟上层的APP通讯。
进一步的,步骤S13包括:
S131开放socket接口,通过C/S方式跟上层的APP通讯;或者
S132使用JAVA Binder通讯机制。
其中,步骤S132包括:
在服务Service端通过调用IServiceManager.addService()函数将自己注册到系统中;
上层APP通过调用ServiceManager.getService()函数获取该服务的接口;通过transact()函数调用服务Service中的功能函数传递信息。
如图2所示,根据本发明实施例所述一种Android智能语音控制系统,包括:
一系统级别或者具有Root权限的服务Service;
一上层的语音控制模块,所述Service开放一接口给所述上层的语音控制模块;和
一语音识别模块,其将得到的文本信息跟本语音控制系统中特定动作信息进行匹配,如果匹配成功则向启动的Service中发送相应的信息,所述服务Service根据传入的动作信息调用系统相应代码,使执行的代码具有系统/Root权限,从而绕过系统的限制实现输入注入的功能。
综上所述,借助于本发明的上述技术方案,通过在系统中增加一个具有系统/Root权限的服务,使后续执行的代码也具有了系统/Root权限,从而在系统层面执行相应的代码,可以在不破坏系统完整性的同时达到通用性的目的,使得语音控制能实现更多功能。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。