智能终端上应用程序的运行方法和智能终端与流程

文档序号:24624931发布日期:2021-04-09 20:31阅读:109来源:国知局
智能终端上应用程序的运行方法和智能终端与流程

本发明涉及语音控制技术领域,尤其涉及一种智能终端上应用程序的运行方法和智能终端。



背景技术:

在智能移动终端上运行的应用(application,app),通常需要用户手动操作来实现对应用的控制,例如通过点击触摸屏来操控应用的控件。然而,在一些应用场合中,通过手动操作来控制应用会存在一定的不便。例如用户处于驾驶等双手被占用的状态时,若通过手动操作来控制导航软件,特别是输入文字等较为复杂的手动操作时,容易分散用户精力,带来安全隐患。因此,需要一种基于语音的应用控制方法,克服手动操作带来的不便性。

现有的应用控制方式,通常需要在待控制的应用内部集成用于语音操作的sdk,以实现对应用的语音操控。然而,对于目前的多数第三方应用,并未事先集成用于语音操作的sdk,也很难往第三方应用中安装用于语音控制的插件,因此无法实现第三方应用的语音控制,限制了基于语音的应用控制方法的适用范围。



技术实现要素:

本发明实施例提供一种智能终端上应用程序的运行方法和智能终端,用以解决现有技术中无法语音控制第三方应用的缺陷。

本发明实施例提供一种智能终端上应用程序的运行方法,所述智能终端至少包括一个服务项,所述服务项中包括指令生成模块、位置确定模块、动作执行模块,所述方法包括:

所述指令生成模块接收向智能终端进行输入的语音指令,并将所述语音指令转化为控制指令;

所述位置确定模块确定待运行的应用程序在所述智能终端的当前屏幕中的位置坐标;其中,所述待运行的应用程序是将所述控制指令与当前已安装应用程序进行匹配得到的;

所述动作执行模块根据所述位置坐标对所述待运行的应用程序执行所述控制指令。

根据本发明一个实施例的智能终端上应用程序的运行方法,所述服务项还包括目标控件确定模块,所述方法还包括:

所述目标控件确定模块基于所述控制指令,确定当前运行的应用程序中待执行的目标点击控件;

所述位置确定模块确定所述目标点击控件在当前屏幕中的控件位置坐标;

所述动作执行模块根据所述控件位置坐标对所述目标点击控件执行模拟点击操作。

根据本发明一个实施例的智能终端上应用程序的运行方法,所述位置确定模块确定所述目标点击控件在当前屏幕中的控件位置坐标,具体包括:

所述位置确定模块基于所述目标点击控件的控件标识,以及当前屏幕上所有控件的控件标识和当前位置,确定所述目标点击控件的控件位置坐标。

根据本发明一个实施例的智能终端上应用程序的运行方法,所述当前屏幕上所有控件的控件标识和当前位置是在监控到第三方应用界面发生变化时,对所述第三方应用界面进行控件扫描后得到的。

根据本发明一个实施例的智能终端上应用程序的运行方法,所述服务项还包括控件扫描模块,所述方法还包括:

所述控件扫描模块接收第三方应用界面发生变化的触发事件,读取窗口列表最前端的窗口;

所述控件扫描模块获取所述最前端的窗口中的所有控件,并对所有控件进行扫描,得到所有控件的控件标识和当前位置。

根据本发明一个实施例的智能终端上应用程序的运行方法,所述第三方应用界面发生变化的触发事件是当用户在屏幕上对任一控件进行点击、滑动或窗口切换操作时,由所述任一控件的操作处理函数通过预设接口发送的。

根据本发明一个实施例的智能终端上应用程序的运行方法,所述目标控件确定模块基于所述控制指令,确定当前运行的应用程序中待执行的目标点击控件,具体包括:

将当前运行的应用程序的应用标识以及所述控制指令,与多个第三方应用程序的应用标识及其对应的候选点击控件的常用口语进行匹配,将匹配成功的第三方应用程序对应的候选点击控件作为所述目标点击控件。

根据本发明一个实施例的智能终端上应用程序的运行方法,所述位置确定模块基于所述目标点击控件的控件标识,以及当前屏幕上所有控件的控件标识和当前位置,确定所述目标点击控件的控件位置坐标,具体包括:

将所述目标点击控件的控件内容与当前屏幕上所有控件的控件内容进行内容匹配;

若内容匹配失败,则将所述目标点击控件的控件id与当前屏幕上所有控件的控件id进行id匹配;

若id匹配失败,则重复将所述目标点击控件的控件类型与当前屏幕上所有控件的控件类型进行匹配,直至匹配成功或重复次数达到预设阈值;

将当前屏幕上匹配成功的控件的当前位置作为所述目标点击控件的控件位置坐标。

根据本发明一个实施例的智能终端上应用程序的运行方法,将所述目标点击控件的控件内容与当前屏幕上所有控件的控件内容进行内容匹配,具体包括:

若当前屏幕上任一控件的控件内容与所述目标点击控件的控件内容之间存在包含关系,则基于二者长度的差值确定所述任一控件与所述目标点击控件之间的相似度;

若当前屏幕上每一控件的控件内容与所述目标点击控件的控件内容均不存在包含关系,则匹配失败;

否则,将当前屏幕上相似度最大的控件作为与所述目标点击控件匹配的控件。

本发明实施例还提供一种智能终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述运行方法的步骤。

本发明实施例提供的智能终端上应用程序的运行方法和智能终端,通过接收向智能终端进行输入的语音指令,并将语音指令转化为控制指令,然后确定待运行的应用程序在智能终端的当前屏幕中的位置坐标,并根据位置坐标对待运行的应用程序执行控制指令,把语音控制的功能从应用中解耦,因此无需应用开发者将用于语音控制的软件开发工具包集成到应用中,即可实现第三方应用的语音控制。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的智能终端上应用程序的运行方法的流程示意图;

图2为本发明实施例提供的智能终端的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在汽车驾驶、家居生活等多个领域,对通过语音方式来控制应用有着广泛的需求。然而,对于目前的多数第三方应用,应用开发者并未在应用内部集成用于语音控制的sdk,也很难在开发完成后再往第三方应用中安装用于语音控制的插件,因此无法实现第三方应用的语音控制,限制了基于语音的应用控制方法的适用范围。

在现有的部分移动终端中,虽然提供了智能语音助手,例如ios系统的siri。然而,对于第三方公司开发的应用,智能语音助手只能打开应用,却不能对应用内部的功能做进一步操作,无法实现真正的第三方应用的语音控制。

对此,本发明实施例提供了一种智能终端上应用程序的运行方法,该方法的执行主体可以是终端设备,具体可以是终端设备的处理系统,或者终端设备中装载的实现语音控制的插件等,此处的终端设备可以是智能手机、平板电脑或者智能手环等。图1为本发明实施例提供的智能终端上应用程序的运行方法的流程示意图,如图1所示,智能终端至少包括一个服务项,服务项中包括指令生成模块、位置确定模块、动作执行模块,该方法包括:

步骤110,指令生成模块接收向智能终端进行输入的语音指令,并将语音指令转化为控制指令;

步骤120,位置确定模块确定待运行的应用程序在智能终端的当前屏幕中的位置坐标;其中,待运行的应用程序是将控制指令与当前已安装应用程序进行匹配得到的;

步骤130,动作执行模块根据位置坐标对待运行的应用程序执行控制指令。

具体地,服务项为智能终端后台运行的程序代码模块,执行该程序代码模块,可以实现控制第三方应用程序的功能。其中,服务项包括指令生成模块、位置确定模块、动作执行模块,动作执行模块用于根据位置确定模块执行指令生成模块中的控制指令。

首先,指令生成模块接收用户向智能终端进行输入的语音指令,并对其进行语音识别,将语音指令转化为待执行的控制指令。其中,控制指令为对语音指令进行识别得到的文本,其中包含用户的控制意图。具体而言,在用户利用系统预设的唤醒语句,例如“你好,小智”,唤醒智能终端设备后,系统内存中常驻运行的service服务会录制用户的语音指令。其中,service服务为一个与第三方应用相互独立的服务。用户的语音指令录制完成后,service服务会对其进行语音识别,将语音转换为文本,得到待执行语音指令的语音识别结果。此处,还可以对语音识别结果进行无效词过滤,以消除无效词可能带来的干扰,例如语音指令“打开电视剧”,可以将其中的无效词“打开”删除,仅留下有效信息“电视剧”。然后,可以以string字符串类型保存该语音识别结果。

将控制指令与系统中已安装的各个应用程序进行匹配,可以确定用户想要执行的应用程序。此处,可以预先建立各个应用程序所包含功能的常用口语表达,以便于与控制指令进行精准匹配。例如对于控制指令“打开电视剧”,即可确定待运行的应用程序为视频播放程序。然后,位置确定模块确定待运行的应用程序在智能终端的当前屏幕中的位置坐标。动作执行模块根据该位置坐标,可在该位置坐标处模拟生成一个控制操作,以对待运行的应用程序执行控制指令。

本发明实施例提供的方法,通过接收向智能终端进行输入的语音指令,并将语音指令转化为控制指令,然后确定待运行的应用程序在智能终端的当前屏幕中的位置坐标,并根据位置坐标对待运行的应用程序执行控制指令,把语音控制的功能从应用中解耦,因此无需应用开发者将用于语音控制的软件开发工具包集成到应用中,即可实现第三方应用的语音控制。

基于上述实施例,服务项还包括目标控件确定模块,该方法还包括:

目标控件确定模块基于控制指令,确定当前运行的应用程序中待执行的目标点击控件;

位置确定模块确定目标点击控件在当前屏幕中的控件位置坐标;

动作执行模块根据控件位置坐标对目标点击控件执行模拟点击操作。

具体地,考虑到可能存在误触发的情形,即指令生成模块接收到的语音指令是用户误输入的,其意图并非控制当前屏幕中的任一控件。因此,可以利用目标控件确定模块,根据控制指令,确定当前运行的应用程序中待执行的目标点击控件。若无法从当前运行的应用程序中匹配到待执行的目标点击控件,则表明输入的语音指令的意图并非控制当前屏幕中的任一控件,可能是误触发导致的。此时,无需进行目标点击控件的定位操作,以节约系统资源。此外,在确定得到目标点击控件之后再执行控件定位操作,获取目标点击控件在当前屏幕中的控件位置坐标,可以直接利用目标点击控件的控件信息与当前屏幕的控件信息进行匹配,相较于控制指令的匹配效果更好、准确性更高。

为了确定目标点击控件,可以确定当前在设备前端运行的应用,然后获取该应用的应用标识。其中,应用标识可以唯一标识应用,例如可以为应用的包名packagename。根据待执行的控制指令,可以判断用户当前的操控意图,例如,若当前运行的应用为视频播放类应用,根据控制指令,可以推断出用户当前的意图是观看电视剧还是观看综艺节目。在控制指令的基础上,结合当前运行的应用标识,可以从多个第三方应用对应的候选点击控件中,查找到目标点击控件。此处,控件可以为view节点,例如按钮、图片、段落、输入框以及下拉框等,均可作为控件。多个第三方应用对应的候选点击控件是预先设定的,每一候选点击控件为所属应用中可被点击的控件,与该应用中的一个具体功能相对应,而每一第三方应用可以对应多个候选点击控件。例如,在视频播放应用中,包括多个可被点击的按钮“电视剧”、“电影”、“综艺”和“少儿频道”等,每一按钮即可作为一个候选点击控件。目标点击控件即为用户想要点击的当前运行应用内部的某一控件。

获知目标点击控件后,位置确定模块确定该目标点击控件在当前屏幕中的控件位置坐标。其中,控件位置坐标可以是该控件中心点的坐标、多个顶点的坐标或边框的坐标等,本实施例对此不作具体限定。例如,可以将左边框、右边框的横坐标以及上边框、下边框的纵坐标rect(left、right、top、bottom),作为当前位置。

最后,动作执行模块根据目标点击控件的控件位置坐标,利用智能终端系统提供的触摸面板接口,如touchpanel接口,生成对应该位置的模拟点击行为。例如,可以根据目标点击控件的当前位置,生成motionevent事件,模拟产生触摸事件,并发出点击行为,实现该目标点击控件的控制。若目标点击控件的当前位置以边框坐标的形式表示,则可以基于边框坐标,计算该控件的中心点坐标,再根据中心点坐标生成模拟点击行为。例如,可采用如下方式计算目标点击控件的中心点坐标(x,y):

x=(right+left)/2,y=(top+bottom)/2

其中,left和right为左右边框的横坐标,top和bottom为上下边框的纵坐标。

本发明实施例提供的方法,通过从预设的多个第三方应用对应的候选点击控件中查找目标点击控件,并基于当前屏幕上所有控件的控件标识和当前位置,确定目标点击控件,从而生成针对该目标点击控件的模拟点击行为,提高了语音控制的灵活性和准确性。

基于上述任一实施例,位置确定模块确定目标点击控件在当前屏幕中的控件位置坐标,具体包括:

位置确定模块基于目标点击控件的控件标识,以及当前屏幕上所有控件的控件标识和当前位置,确定目标点击控件的控件位置坐标。

具体地,获知目标点击控件后,位置确定模块可以首先提取该控件的控件标识。其中,控件标识可以用于区分各个控件。考虑到应用界面会不断更新,界面上的控件数量可能会发生变化,且各个控件的位置随着页面的滚动,也随时在变动,因此,为了提高应用控制的灵活性和准确性,可以实时获取当前屏幕上所有控件的控件标识和当前位置,以确定此时此刻用户真正想要控制的控件的准确位置。然后,将目标点击控件的控件标识与当前屏幕上所有控件的控件标识一一进行匹配。若当前屏幕上任一控件的控件标识与目标点击控件的控件标识匹配成功,即查找到当前屏幕上用户想要点击的控件,于是可以提取该控件的当前位置,作为目标点击控件的控件位置坐标。

基于上述任一实施例,当前屏幕上所有控件的控件标识和当前位置是在监控到第三方应用界面发生变化时,对第三方应用界面进行控件扫描后得到的。

具体地,第三方应用界面的变化包括页面被点击、滑动或窗口切换等。独立运行的service服务会监控除自身以外的其他任意第三方应用界面的上述变化。一旦当前运行在系统最前端的第三方应用界面发生变化,service服务能够立刻感知并对发生变化的界面执行控件扫描操作。由于第三方应用界面发生上述变化时,该应用界面处于系统最前端、用户可以看见和操控的状态,因此service服务执行控件扫描操作所得的控件的控件标识和当前位置,即为当前屏幕上所有控件对应的控件标识和当前位置。

本发明实施例提供的方法,通过监控第三方应用界面是否发生变化,并在界面发生变化时对第三方应用界面进行控件扫描,可以实时获取当前屏幕的控件信息,提高了应用控制的灵活性和准确性。

基于上述任一实施例,服务项还包括控件扫描模块,该方法还包括:

控件扫描模块接收第三方应用界面发生变化的触发事件,读取窗口列表最前端的窗口;

控件扫描模块获取最前端的窗口中的所有控件,并对所有控件进行扫描,得到所有控件的控件标识和当前位置。

具体地,包含人机交互界面的应用在运行到系统前端并显示在屏幕上的时候,通常会调用接口把该应用的window窗口加入到操作系统唯一的窗口管理服务(windowmanagerserver,wms)独立进程中,由wms中的窗口列表(windowlist)管理。所有应用创建的window窗口均会链接在windowlist上,而退出的应用则会将window窗口从windowlist上删除。

第三方应用界面发生变化时,会生成一个触发事件,并通知service服务。service服务接收该触发事件后,即可读取窗口列表windowlist最前端的窗口。此时,最前端的窗口即界面发生变化的第三方应用界面对应的窗口,亦为当前屏幕上显示的界面对应的窗口。具体而言,service服务收到上述触发事件后,可以通过socket向wms独立进程发送读取当前屏幕的信号,wms中预设的代码收到信号后,会查找并返回windowlist最前端的窗口。获取该最前端窗口中的所有控件,例如可以通过window的子变量mviews获取到该界面的所有子view节点,然后再对所有控件进行扫描,以获取所有控件的控件标识和当前位置。

基于上述任一实施例,第三方应用界面发生变化的触发事件是当用户在屏幕上对任一控件进行点击、滑动或窗口切换操作时,由所述任一控件的操作处理函数通过预设接口发送的。

具体地,目前的系统中,由于第三方应用和service服务运行于独立的进程和虚拟机内存中,因此service服务无法访问除自身以外的其他第三方应用中的代码和接口等。为了能够在用户在屏幕上对任一控件进行点击、滑动或窗口切换操作导致当前显示的第三方应用界面发生变化时,立刻感知到该触发事件,可以预先在系统底层添加用于事件通知的接口。

应用界面的布局和绘制通常由wms管理,每个应用界面中的按钮、文本、图片等子布局都对应一个控件,例如view节点,故用户在view节点上进行滑动、点击或窗口切换等操作时,会触发对应view节点的操作处理函数,例如ontouch、onclick、onscroll和onchange等。因此,可以在上述操作处理函数中添加回调函数,每当用户在屏幕上对当前屏幕上的任一控件进行点击、滑动或窗口切换等操作时,会调用该控件的操作处理函数,同时该操作处理函数内部的回调函数会回调预先设置的接口,该接口再通过socket发送第三方应用界面发生变化的触发事件,通知service服务当前屏幕发生了变化或即将发生变化。

基于上述任一实施例,目标控件确定模块基于控制指令,确定当前运行的应用程序中待执行的目标点击控件,具体包括:

将当前运行的应用程序的应用标识以及控制指令,与多个第三方应用程序的应用标识及其对应的候选点击控件的常用口语进行匹配,将匹配成功的第三方应用程序对应的候选点击控件作为目标点击控件。

具体地,候选点击控件中的常用口语包括与候选点击控件具有较高关联度的口语表达,以尽可能地贴近用户的表达方式,从而保证在用户自然表达时也可正确理解用户意图,精确匹配目标点击控件。例如,用户希望看电影时,常用口语可以包括“打开电影、我想看电影、看电影、切换电影”等,因此可将这些词语作为进入电影栏目的候选点击控件对应的常用口语。常用口语和候选点击控件的关联度越高,根据用户语音指令的语音识别结果查找目标点击控件的准确性也越高,语音控制的效果也随之越好。

将当前运行的应用标识以及控制指令,与多个第三方应用的应用标识及其对应的候选点击控件的常用口语进行匹配,若任一第三方应用的应用标识与当前运行的应用标识相同,且该第三方应用对应的任一候选点击控件的常用口语与语音识别结果相匹配,则该候选点击控件即为待查找的目标点击控件。

为了便于查找,可以将所有第三方应用对应的候选点击控件的相关信息以数组或列表的方式存储于云端服务器。例如,可以在云端预设一个数组对象searchpolicylist,其中存储有多个第三方应用的searchpolicy。其中,一个第三方应用对应多条searchpolicy,每条searchpolicy对应一个候选点击控件。searchpolicy中存储有常用口语speaktext、所属应用的包名packagename以及控件标识组成。将当前运行的应用标识,即包名packagename,以及语音识别结果作为搜索关键词,从云端服务器中存储的searchpolicylist中获取匹配的searchpolicy,即目标点击控件。

本发明实施例提供的方法,通过将当前运行的应用标识以及语音识别结果,与多个第三方应用的应用标识及其对应的候选点击控件的常用口语进行匹配,提高了目标点击控件的查找准确性。

基于上述任一实施例,控件标识包括控件内容、控件id和控件类型中的至少一种。

具体地,控件标识作为确定目标点击控件当前位置的重要检索依据,会影响整个语音控制的准确性。由于第三方应用随时会更新,其中各个界面上包含的控件标识也存在变化的可能性,而预设的候选点击控件的更新存在一定的滞后,因此可能会导致从候选点击控件中查找到的目标点击控件与当前屏幕上显示的对应控件的控件标识不一致。为了提高在当前屏幕上查找目标点击控件的灵活性,可以将控件标识设置为控件内容、控件id和控件类型中的至少一种。其中,控件内容、控件id和控件类型可以从不同角度对控件进行区分,因此基于控件内容、控件id和控件类型中的至少一种对控件进行描述,可以提高控件检索的灵活性,避免当前屏幕上的控件一旦更新便无法查找的问题。

此处,控件内容描述了对应控件所包含的文本信息,如按钮上的文字,段落中的文字内容等,可采用字符串表示。控件id可以唯一标识一个控件,例如viewid,其也可采用字符串表示。控件类型用于描述对应控件属于哪一类,如类型为按钮,说明对应的控件是一个按钮,而不是一张图片或其他类型的控件,其也可采用字符串表示。

本发明实施例提供的方法,控件标识包括控件内容、控件id和控件类型中的至少一种,提高了控件检索的灵活性,有助于进一步提高语音控制的准确性。

基于上述任一实施例,位置确定模块基于目标点击控件的控件标识,以及当前屏幕上所有控件的控件标识和当前位置,确定目标点击控件的控件位置坐标,具体包括:

将目标点击控件的控件内容与当前屏幕上所有控件的控件内容进行内容匹配;

若内容匹配失败,则将目标点击控件的控件id与当前屏幕上所有控件的控件id进行id匹配;

若id匹配失败,则重复将目标点击控件的控件类型与当前屏幕上所有控件的控件类型进行匹配,直至匹配成功或重复次数达到预设阈值;

将当前屏幕上匹配成功的控件的当前位置作为目标点击控件的控件位置坐标。

具体地,可以按照控件内容、控件id以及控件类型的优先级从高到低的顺序,将目标点击控件的控件内容、控件id以及控件类型依次与当前屏幕上所有控件的控件内容、控件id以及控件类型进行比较。

首先,将目标点击控件的控件内容作为关键字,到当前屏幕上所有控件的控件内容中查找是否有某一控件的控件内容(或控件内容的正则表达式)与目标点击控件的控件内容相匹配。若匹配成功,则将该匹配成功的控件的当前位置作为目标点击控件的当前位置。

否则,将目标点击控件的控件id作为关键字继续查找。若当前屏幕上的任一控件的控件id与目标点击控件的控件id完全一致,即匹配成功,则可将该匹配成功的控件的当前位置作为目标点击控件的当前位置。

否则,将目标点击控件的控件类型作为关键字继续查找。将目标点击控件的控件类型与当前屏幕上所有控件的控件类型进行匹配,若匹配失败,则间隔一段时间后重新进行匹配,直至匹配成功或重复次数达到预设阈值,例如3次。若匹配成功,则可将匹配成功的控件的当前位置作为目标点击控件的当前位置,否则,可以向用户返回语音指令无效的提示。

本发明实施例提供的方法,将目标点击控件的控件内容、控件id以及控件类型依次与当前屏幕上所有控件的控件内容、控件id以及控件类型进行匹配,通过以多种方式尝试匹配,可以提高控件检索的准确性。

基于上述任一实施例,将目标点击控件的控件内容与当前屏幕上所有控件的控件内容进行内容匹配,具体包括:

若当前屏幕上任一控件的控件内容与目标点击控件的控件内容之间存在包含关系,则基于二者长度的差值确定任一控件与目标点击控件之间的相似度;

若当前屏幕上每一控件的控件内容与目标点击控件的控件内容均不存在包含关系,则匹配失败;

否则,将当前屏幕上相似度最大的控件作为与目标点击控件匹配的控件。

具体地,依次将目标点击控件的控件内容与当前屏幕上的每一控件的控件内容进行比对,判断二者之间是否存在包含关系。此处,可以利用函数a.contain(b),判断目标点击控件的控件内容中是否包含当前屏幕上任一控件的控件内容,或判断当前屏幕上任一控件的控件内容中是否包含目标点击控件的控件内容。若当前屏幕上任一控件的控件内容与目标点击控件的控件内容之间存在包含关系,则可以基于二者长度的差值,即长字符串的长度减去短字符串的长度,确定任一控件与目标点击控件之间的相似度。其中,差值越小,表明当前屏幕上的该控件的控件内容与目标点击控件的控件内容越相似,二者的相似度越大。如果二者完全相同,则差值为0。

若当前屏幕上每一控件的控件内容与目标点击控件的控件内容均不存在包含关系,则匹配失败,可以提示用户命令无效、重新再试或者尝试其他指令。

否则,可以选取当前屏幕上相似度最大的控件,即差值最小的控件,作为与目标点击控件匹配的控件,以读取其当前位置,作为目标点击控件的当前位置。若当前屏幕上存在相似度相同的控件,则可以随机选择一个控件作为匹配的控件,或者选择靠前的控件作为匹配的控件,本发明实施例对此不作具体限定。

基于上述任一实施例,一种基于语音的应用控制方法,其执行主体为终端设备内常驻运行的不带界面的service服务,该方法包括如下步骤:

首先,service服务在终端设备内存中创建并缓存一个控件信息集合nodeinfolist。

service服务实时检测除自身以外的所有第三方应用在界面上的变化,每当第三方应用界面发生变化时,service服务对该应用界面进行一次控件view扫描。

扫描完成后,service服务会对扫描所得的所有控件view进行数据收集。假设界面上共有n个view,针对每个view会创建1个或0个控件信息nodeinfo,控件信息nodeinfo中存储有该view的当前位置rect信息、控件内容text、控件idviewid、控件类型classname以及是否可见等。若扫描的view不包含控件内容text,则不创建控件信息nodeinfo。最终,将所有控件信息nodeinfo保存到nodeinfolist中。

此外,在云端服务器中还预设了一个候选点击控件数组对象searchpolicylist,其中存储了所有第三方应用对应的多个候选点击控件的相关信息searchpolicy。searchpolicy由常用口语speaktext、所属应用的包名packagename、控件内容text、控件idviewid和控件类型classname构成。

service服务自身具备语音识别功能,在采集到用户使用系统的免唤醒或者唤醒词对终端设备发送的语音指令后,可以将语音指令转换成语音识别结果,记为targettext,string类型字符串格式。同时,使用系统接口获取当前运行字终端设备最前端的应用的包名packagename。接着,service服务将targettext和当前运行应用的packagename作为搜索关键词上传到云端服务器,从云端服务器保存的searchpolicylist中查找对应的searchpolicy,查找到的searchpolicy即对应目标点击控件。

将目标点击控件对应的searchpolicy与nodeinfolist中的每个nodeinfo进行匹配。具体而言,可以首先将searchpolicy中的text与每个nodeinfo中的text进行匹配。其中,可以将searchpolicy中的text作为正则表达式,使用pattern.matcher等类似函数将其与nodeinfo中的text进行对比,若正则表达式匹配为true,即匹配成功,返回匹配成功的nodeinfo。也可以使用a.contain(b)等类似函数判断searchpolicy中的text与nodeinfo中的text是否存在包含关系,在存在包含关系时使用长字符串长度-短字符串长度,记为same,不存在包含关系则不生成same。然后,返回same值最小的nodeinfo,若存在same值相同的nodeinfo,则返回靠前的nodeinfo。若匹配失败,则继续使用searchpolicy中的viewid与每个nodeinfo中的viewid进行匹配,若searchpolicy中的viewid与任一nodeinfo中的viewid完全相同,则匹配成功。若仍匹配失败,则继续使用searchpolicy中的classname与每个nodeinfo中的classname进行匹配,直至匹配成功或重复次数达到预设阈值。若以上方式均匹配失败,则提示用户查找失败。

获取匹配成功的nodeinfo后,提取nodeinfo中的rect信息,使用rect信息计算控件坐标,x=(rect.right+rect.left)/2,y=(rect.top+rect.bottom)/2,该坐标表示该nodeinfo所对应的view在app界面上的坐标位置。

利用终端设备系统提供的touchpanel接口,在对应坐标位置生成motionevent事件,模拟产生触摸事件,最终发出点击行为,达成用户的语音转换为控制第三方app的目标。

例如,语音指令对应的语音识别结果为“打开三国演义”,如果当前屏幕为第三方应用(如腾讯视频)的搜索结果界面,则可以根据语音识别结果以及当前运行应用的包名,可以确定目标点击控件应当为腾讯视频的搜索结果界面中控件标识包含“三国演义”的控件。根据实时扫描的当前屏幕上所有控件的控件标识和当前位置,可以查找到当前屏幕上,“三国演义”控件的位置,并在该位置模拟点击该控件,实现语音打开三国演义视频的功能。

图2示例了一种智能终端的实体结构示意图,如图2所示,该智能终端可以包括:处理器(processor)210、通信接口(communicationsinterface)220、存储器(memory)230和通信总线240,其中,处理器210,通信接口220,存储器230通过通信总线240完成相互间的通信。处理器210可以调用存储器230中的逻辑指令,以执行智能终端上应用程序的运行方法,所述智能终端至少包括一个服务项,所述服务项中包括指令生成模块、位置确定模块、动作执行模块,所述方法包括:所述指令生成模块接收向智能终端进行输入的语音指令,并将所述语音指令转化为控制指令;所述位置确定模块确定待运行的应用程序在所述智能终端的当前屏幕中的位置坐标;其中,所述待运行的应用程序是将所述控制指令与当前已安装应用程序进行匹配得到的;所述动作执行模块根据所述位置坐标对所述待运行的应用程序执行所述控制指令。

此外,上述的存储器230中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

另一方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的智能终端上应用程序的运行方法,所述智能终端至少包括一个服务项,所述服务项中包括指令生成模块、位置确定模块、动作执行模块,所述方法包括:所述指令生成模块接收向智能终端进行输入的语音指令,并将所述语音指令转化为控制指令;所述位置确定模块确定待运行的应用程序在所述智能终端的当前屏幕中的位置坐标;其中,所述待运行的应用程序是将所述控制指令与当前已安装应用程序进行匹配得到的;所述动作执行模块根据所述位置坐标对所述待运行的应用程序执行所述控制指令。

又一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的智能终端上应用程序的运行方法,所述智能终端至少包括一个服务项,所述服务项中包括指令生成模块、位置确定模块、动作执行模块,所述方法包括:所述指令生成模块接收向智能终端进行输入的语音指令,并将所述语音指令转化为控制指令;所述位置确定模块确定待运行的应用程序在所述智能终端的当前屏幕中的位置坐标;其中,所述待运行的应用程序是将所述控制指令与当前已安装应用程序进行匹配得到的;所述动作执行模块根据所述位置坐标对所述待运行的应用程序执行所述控制指令。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1