CN112286486B - 智能终端上应用程序的运行方法、智能终端和存储介质 - Google Patents
智能终端上应用程序的运行方法、智能终端和存储介质 Download PDFInfo
- Publication number
- CN112286486B CN112286486B CN202011600501.5A CN202011600501A CN112286486B CN 112286486 B CN112286486 B CN 112286486B CN 202011600501 A CN202011600501 A CN 202011600501A CN 112286486 B CN112286486 B CN 112286486B
- Authority
- CN
- China
- Prior art keywords
- control
- sub
- instruction
- sequence
- operation instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
- G06F3/167—Audio in a user interface, e.g. using voice commands for navigating, audio feedback
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明提供一种智能终端上应用程序的运行方法、智能终端和存储介质,其中方法包括:指令生成模块接收向智能终端进行输入的语音指令,并将语音指令转化为控制指令,控制指令至少包括两个相关联的子操作指令,子操作指令在智能终端中预先配置,预先配置按照候选序列配置;位置确定模块确定待运行的应用程序在智能终端的当前屏幕中的第一位置坐标;动作执行模块根据第一位置坐标对待运行的应用程序执行控制指令;在应用程序被控制指令启动之后,位置确定模块确定待执行的子操作指令在智能终端的当前屏幕中的第二位置坐标;动作执行模块根据第二位置坐标在应用程序中执行子操作指令的预先配置。本发明实现了应用及其内部跨页面的语音控制功能。
Description
技术领域
本发明涉及语音控制技术领域,尤其涉及一种智能终端上应用程序的运行方法、智能终端和存储介质。
背景技术
在智能移动终端上运行的应用(Application,APP),通常需要用户手动操作来实现对应用内部页面的控制。例如,为了实现某一功能,需要通过多次点击应用各个页面的功能按钮,经过层层界面,最终进入该功能对应的页面。然而,在一些应用场合中,通过手动操作来控制应用会存在一定的不便。例如,用户处于驾驶等双手被占用的状态时,若通过手动操作来控制导航软件,特别是输入文字等较为复杂的手动操作时,容易分散用户精力,带来安全隐患。此外,对于智能移动终端使用不熟练的用户,上述复杂操作也会大大增加应用控制的难度。
因此,亟需一种智能终端上应用程序的运行方法,通过语音的方式实现应用跨页面的自动控制,克服手动操作带来的不便性。
发明内容
本发明提供一种智能终端上应用程序的运行方法、智能终端和存储介质,用以解决现有技术中手动操作带来的不便性。
本发明提供一种智能终端上应用程序的运行方法,所述智能终端至少包括一个服务项,所述服务项中包括指令生成模块、位置确定模块、动作执行模块,所述动作执行模块用于根据所述位置确定模块执行所述指令生成模块中的控制指令,所述方法包括:
所述指令生成模块接收向智能终端进行输入的语音指令,并将所述语音指令转化为控制指令,其中,所述控制指令至少包括两个相关联的子操作指令,所述子操作指令在所述智能终端中预先配置,所述预先配置按照候选序列配置;
所述位置确定模块确定待运行的应用程序在所述智能终端的当前屏幕中的第一位置坐标;
所述动作执行模块根据所述第一位置坐标对所述待运行的应用程序执行所述控制指令;
在所述应用程序被所述控制指令启动之后,所述位置确定模块确定待执行的所述子操作指令在智能终端的当前屏幕中的第二位置坐标;
所述动作执行模块根据所述第二位置坐标在所述应用程序中执行所述子操作指令的所述预先配置。
根据本发明提供的一种智能终端上应用程序的运行方法,所述位置确定模块确定待执行的所述子操作指令在智能终端的当前屏幕中的第二位置坐标,具体包括:
所述位置确定模块将所述控制指令与当前运行应用对应的候选控件序列的功能描述文本进行匹配,得到所述控制指令对应的子操作指令序列;
所述位置确定模块将所述子操作指令序列中的当前子操作指令与当前屏幕控件进行匹配,得到所述当前子操作指令的第二位置坐标以及待跳转的子操作指令,并将所述待跳转的子操作指令作为当前子操作指令,直至所述待跳转的子操作指令为空。
根据本发明提供的一种智能终端上应用程序的运行方法,
所述位置确定模块将所述子操作指令序列中的当前子操作指令与当前屏幕控件进行匹配,得到所述当前子操作指令的第二位置坐标以及待跳转的子操作指令,具体包括:
依次将所述当前子操作指令的目标控件标识序列中的每一目标控件标识与控件信息集合中的控件标识匹配;
基于被成功匹配的目标控件标识在所述目标控件标识序列中的位置,从所述当前子操作指令的跳转控件序列中获取所述待跳转的子操作指令;所述跳转控件序列的长度与所述目标控件标识序列的长度一致。
根据本发明提供的一种智能终端上应用程序的运行方法,
所述服务项还包括控制行为确定模块,所述依次将所述当前子操作指令的目标控件标识序列中的每一目标控件标识与控件信息集合中的控件标识匹配,之后还包括:
所述控制行为确定模块基于被成功匹配的目标控件标识在所述目标控件标识序列中的位置,从所述当前子操作指令的控制行为序列中获取所述当前子操作指令的控制行为,以供生成对应的模拟控制行为;所述控制行为序列的长度与所述目标控件标识序列的长度一致。
根据本发明提供的一种智能终端上应用程序的运行方法,所述当前子操作指令的目标控件标识序列包括目标控件内容子序列、目标控件ID子序列以及目标控件类型子序列中的至少一种。
根据本发明提供的一种智能终端上应用程序的运行方法,
所述依次将所述当前子操作指令的目标控件标识序列中的每一目标控件标识与控件信息集合中的控件标识匹配,具体包括:
依次将所述目标控件内容子序列中的每一目标控件内容与所述控件信息集合中的控件内容进行内容匹配;
若内容匹配失败,则依次将所述目标控件ID子序列中的每一目标控件ID与所述控件信息集合中的控件ID进行ID匹配;
若ID匹配失败,则重复将所述目标控件类型子序列中的每一目标控件类型与所述控件信息集合中的控件类型进行匹配,直至匹配成功或重复次数达到预设阈值。
根据本发明提供的一种智能终端上应用程序的运行方法,所述控件信息集合是在接收到任一应用界面发生变化的触发事件时,对所述任一应用界面上的所有控件进行扫描得到的。
根据本发明提供的一种智能终端上应用程序的运行方法,
所述服务项还包括候选控件序列获取单元,所述位置确定模块将所述控制指令与当前运行应用对应的候选控件序列的功能描述文本进行匹配,得到所述控制指令对应的子操作指令序列,之前还包括:
所述候选控件序列获取单元获取终端设备当前已安装应用的应用标识,并将所述已安装应用的应用标识发送至服务端;
所述候选控件序列获取单元接收所述服务端返回的对应所述已安装应用的候选控件序列。
本发明还提供一种智能终端,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一种所述智能终端上应用程序的运行方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述智能终端上应用程序的运行方法的步骤。
本发明提供的智能终端上应用程序的运行方法、智能终端和存储介质,根据待执行应用程序的第一位置坐标语音启动应用程序后,确定控制指令对应的各个待执行子操作指令在智能终端的当前屏幕中的第二位置坐标,并根据第二位置坐标在应用程序中依次执行各个子操作指令,实现了应用及其内部跨页面的语音控制功能。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的智能终端上应用程序的运行方法的流程示意图;
图2为本发明提供的智能终端的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在智能移动终端上运行的应用,通常需要用户手动操作来实现对应用内部页面的控制。例如,为了实现观看某一电影的功能,需要依次点击应用图标、应用首页上的电影图标和电影界面内的特定电影图标,才能最终进入该特定电影的播放界面,实现观看电影的功能。然而,在一些应用场合中,通过上述多次手动点击的方式进入应用内部某一深层页面,会带来一定的不便。此外,对于智能移动终端使用不熟练的用户,上述复杂操作也会大大增加应用控制的难度。
对此,本发明实施例提供了一种智能终端上应用程序的运行方法,该方法的执行主体可以是终端设备,具体可以是终端设备的处理系统,或者终端设备中装载的实现语音控制的插件等,此处的终端设备可以是智能手机、平板电脑或者智能手环等。图1为本发明实施例提供的智能终端上应用程序的运行方法的流程示意图,如图1所示,智能终端至少包括一个服务项,服务项中包括指令生成模块、位置确定模块、动作执行模块,动作执行模块用于根据位置确定模块执行指令生成模块中的控制指令,该方法包括:
步骤110,指令生成模块接收向智能终端进行输入的语音指令,并将语音指令转化为控制指令,其中,控制指令至少包括两个相关联的子操作指令,子操作指令在智能终端中预先配置,预先配置按照候选序列配置;
步骤120,位置确定模块确定待运行的应用程序在智能终端的当前屏幕中的第一位置坐标;
步骤130,动作执行模块根据位置坐标对待运行的应用程序执行控制指令;
步骤140,在应用程序被控制指令启动之后,位置确定模块确定待执行的子操作指令在智能终端的当前屏幕中的第二位置坐标;
步骤150,动作执行模块根据第二位置坐标在应用程序中执行子操作指令的预先配置。
具体地,服务项为智能终端后台运行的程序代码模块,执行该程序代码模块,可以实现控制第三方应用程序及其内部页面的功能。其中,服务项包括指令生成模块、位置确定模块、动作执行模块,动作执行模块用于根据位置确定模块执行指令生成模块中的控制指令。
首先,指令生成模块接收用户向智能终端进行输入的语音指令,并对其进行语义识别,将语音指令转化为待执行的控制指令。其中,控制指令至少对应两个相关联的子操作指令,且相关联的子操作指令可以实现应用程序内部多个页面的连续控制。所有的子操作指令可以在智能终端中预先配置,且各个子操作指令的操作顺序可以按照候选序列配置。具体而言,在用户利用系统预设的唤醒语句,例如“你好,小智”,唤醒智能终端设备后,系统内存中常驻运行的Service服务会录制用户的语音指令。其中,Service服务为一个与第三方应用相互独立的服务。用户的语音指令录制完成后,Service服务会对其进行语义识别,获取语音指令中包含的控制意图,从而将语音指令转换为控制指令。
根据控制指令,可以确定用户想要执行的应用程序。例如对于控制指令“打开电视剧”,即可确定待运行的应用程序为视频播放程序。然后,位置确定模块确定待运行的应用程序在智能终端的当前屏幕中的第一位置坐标。动作执行模块根据该第一位置坐标,可在该第一位置坐标处模拟生成一个控制操作,以对待运行的应用程序执行控制指令。生成模拟控制操作时,可以根据第一位置坐标,利用智能终端系统提供的触摸面板接口,如TouchPanel接口,生成对应该位置的模拟控制行为。例如,可以根据第一位置坐标,生成MotionEvent事件,模拟产生触摸事件,并发出点击行为,实现该应用程序的控制。
当应用程序被控制指令启动之后,位置确定模块可以确定待执行的多个子操作指令在当前屏幕中的第二位置坐标。然后,动作执行模块可以根据各个子操作指令的第二位置坐标,按预先配置的操作顺序依次执行各个子操作指令,实现应用及其内部跨页面的语音控制功能。
本发明实施例提供的方法,根据待执行应用程序的第一位置坐标语音启动应用程序后,确定控制指令对应的各个待执行子操作指令在智能终端的当前屏幕中的第二位置坐标,并根据第二位置坐标在应用程序中依次执行各个子操作指令,实现了应用及其内部跨页面的语音控制功能。
基于上述实施例,步骤140具体包括:
位置确定模块将控制指令与当前运行应用对应的候选控件序列的功能描述文本进行匹配,得到控制指令对应的子操作指令序列;
位置确定模块将子操作指令序列中的当前子操作指令与当前屏幕控件进行匹配,得到当前子操作指令的第二位置坐标以及待跳转的子操作指令,并将待跳转的子操作指令作为当前子操作指令,直至待跳转的子操作指令为空。
具体地,在得到控制指令后,可将其与当前运行应用对应的候选控件序列进行匹配。此处,当前运行应用为当前已打开且正在运行的应用。在智能移动终端中预先存储了多个应用对应的候选控件序列,根据当前运行应用的应用标识,例如包名packagename,获取当前运行应用对应的候选控件序列。任一应用可以对应多条候选控件序列,而每一条候选控件序列可以用于实现该应用对应的一个功能。例如,对于视频播放类应用,可以包括对应视频播放功能的候选控件序列,对应应用设置功能的候选控件序列等。任一候选控件序列还包括功能描述文本,用于描述该候选控件序列可以实现的功能。
将控制指令与当前运行应用对应的候选控件序列的功能描述文本进行匹配,可以得到符合用户控制意图的候选控件序列,即子操作指令序列。此处,为了提高匹配的准确性,候选控件序列的功能描述文本通常采用常用的口语表达,以尽可能地贴近用户的表达方式。例如,对应视频播放功能的候选控件序列,其功能描述文本可以为“我要看”,对应音乐播放功能的候选控件序列,其功能描述文本可以为“我要听”等。
子操作指令序列中包含实现用户控制意图可能需要控制的控件。由于各个第三方应用的版本更新迅速,且不同平台下载的应用也存在差别,因此同一第三方应用由于版本或下载平台的不同,在界面编排、功能设计上也可能存在区别。因此,可以结合各个控件在当前应用中呈现的状态,判断当前应用可能对应的版本,并决定如何根据子操作指令序列中给出的所有控件,选择一条合适的操作路径以实现用户控制意图,以提高对第三方应用版本的兼容性,另外还可实时根据当前屏幕的控件布局,获取子操作指令的准确位置,从而提高应用内部跨页面的语音控制的灵活性和准确性。
具体而言,可以从子操作指令序列的首个子操作指令开始作为当前子操作指令,将其与当前屏幕的控件进行匹配,一方面可以获知该子操作指令在当前屏幕上的第二位置坐标,还可以根据该子操作指令在当前屏幕上呈现的状态,选择待跳转的子操作指令。其中,待跳转的子操作指令,即下一步需要执行的子操作指令。然后,基于当前子操作指令的第二位置坐标,可以生成模拟控制行为,实现针对当前子操作指令的语音控制。随后,当前屏幕也会更新,变为当前子操作指令执行后的界面,以供确定待跳转的子操作指令的第二位置坐标以及下一待跳转的子操作指令。然后,将待跳转的子操作指令作为当前子操作指令,重复执行上述步骤,直至不存在待跳转的子操作指令,从而可以完成应用内部跨页面的语音控制。
本发明实施例提供的方法,通过获取语音指令对应的子操作指令序列,并根据子操作指令序列中的当前子操作指令与当前屏幕控件的匹配结果,确定当前子操作指令的第二位置坐标以及待跳转的子操作指令,提高了应用内部跨页面的语音控制的灵活性和准确性。
基于上述实施例,位置确定模块将子操作指令序列中的当前子操作指令与当前屏幕控件进行匹配,得到当前子操作指令的第二位置坐标以及待跳转的子操作指令,具体包括:
依次将当前子操作指令的目标控件标识序列中的每一目标控件标识与控件信息集合中的控件标识匹配。
此处,考虑到不同版本的第三方应用中对各个控件进行标识的方式可能不同,例如安卓平台对应的应用版本中控件标识可能是中文,而IOS平台对应的应用版本中,控件标识可能是英文,因此为了提高对第三方应用不同版本的兼容性,可以为同一控件设置多个不同的控件标识,以对应该应用的多个版本。因此,可以将当前子操作指令的目标控件标识序列中的每一目标控件标识,依次与控件信息集合中的控件标识进行匹配。其中,控件信息集合中包含当前屏幕上各个控件的控件信息。
基于被成功匹配的目标控件标识在目标控件标识序列中的位置,从当前子操作指令的跳转控件序列中获取待跳转的子操作指令;跳转控件序列的长度与目标控件标识序列的长度一致。
具体地,当前子操作指令还包括一个跳转控件序列,长度与目标控件标识序列的长度一致,且其中存储有与目标控件标识一一对应的待跳转的子操作指令。若任一目标控件标识与控件信息集合中的任一控件标识匹配,则获取该目标控件标识在目标控件标识序列中的位置,例如该目标控件标识的数组下标,然后从跳转控件序列的对应位置处获取待跳转的子操作指令。
本发明实施例提供的方法,通过将当前子操作指令的目标控件标识序列中的每一目标控件标识与控件信息集合中的控件标识匹配,并根据匹配结果从跳转控件序列中获取待跳转的子操作指令,提高了对第三方应用不同版本的兼容性。
基于上述任一实施例,服务项还包括控制行为确定模块,依次将当前子操作指令的目标控件标识序列中的每一目标控件标识与控件信息集合中的控件标识匹配,之后还包括:
控制行为确定模块基于被成功匹配的目标控件标识在目标控件标识序列中的位置,从当前子操作指令的控制行为序列中获取当前子操作指令的控制行为,以供生成对应的模拟控制行为;控制行为序列的长度与目标控件标识序列的长度一致。
具体地,当前子操作指令还包括一个控制行为序列,长度与目标控件标识序列的长度一致,且其中存储有与目标控件标识一一对应的控制行为。若任一目标控件标识与控件信息集合中的任一控件标识匹配,则获取该目标控件标识在目标控件标识序列中的位置,例如该目标控件标识的数组下标,然后从控制行为序列的对应位置处获取待当前子操作指令的控制行为,以供生成对应的模拟控制行为。其中,控制行为包括点击、下滑、翻页、双击、长按、数据剪切、粘贴、复制等等。由于当前子操作指令对应的控制行为可能包含对数据的操作,例如数据粘贴,因此还可将语音指令的有效内容作为参数进行保存,以供进行数据粘贴。例如,若当前子操作指令为搜索框,其对应的控制行为为数据粘贴,则可以将上述参数粘贴到搜索框中以进行搜索。
基于上述任一实施例,当前子操作指令的目标控件标识序列包括目标控件内容子序列、目标控件ID子序列以及目标控件类型子序列中的至少一种。
具体地,目标控件标识作为当前子操作指令与控件信息集合的重要检索依据,会影响整个语音控制的准确性。由于第三方应用随时会更新,其中各个界面上包含的控件标识也存在变化的可能性,而预设的候选控件序列的更新存在一定的滞后,因此可能会导致从候选控件序列中查找到的子操作指令序列中子操作指令的控件标识与当前屏幕上显示的对应控件的控件标识不一致。为了提高在当前屏幕上查找当前子操作指令的灵活性,可以将目标控件标识序列设置为目标控件内容子序列、目标控件ID子序列以及目标控件类型子序列中的至少一种,相应地,控件信息集合中每一控件标识也包括控件内容、控件ID和控件类型中的至少一种。其中,目标控件内容子序列、目标控件ID子序列以及目标控件类型子序列可以从不同角度对控件进行区分,因此基于目标控件内容子序列、目标控件ID子序列以及目标控件类型子序列中的至少一种对控件进行描述,可以提高控件检索的灵活性,避免当前屏幕上的控件一旦更新便无法查找的问题。
此处,控件内容描述了对应控件所包含的文本信息,如按钮上的文字,段落中的文字内容等,可采用字符串表示。控件ID可以唯一标识一个控件,例如viewID,其也可采用字符串表示。控件类型用于描述对应控件属于哪一类,如类型为按钮,说明对应的控件是一个按钮,而不是一张图片或其他类型的控件,其也可采用字符串表示。
本发明实施例提供的方法,当前子操作指令的目标控件标识序列包括目标控件内容子序列、目标控件ID子序列以及目标控件类型子序列中的至少一种,提高了控件检索的灵活性,有助于进一步提高语音控制的准确性。
基于上述任一实施例,依次将当前子操作指令的目标控件标识序列中的每一目标控件标识与控件信息集合中的控件标识匹配,具体包括:
依次将目标控件内容子序列中的每一目标控件内容与控件信息集合中的控件内容进行内容匹配;
若内容匹配失败,则依次将目标控件ID子序列中的每一目标控件ID与控件信息集合中的控件ID进行ID匹配;
若ID匹配失败,则重复将目标控件类型子序列中的每一目标控件类型与控件信息集合中的控件类型进行匹配,直至匹配成功或重复次数达到预设阈值。
具体地,可以按照控件内容、控件ID以及控件类型的优先级从高到低的顺序,将目标控件内容子序列、目标控件ID子序列以及目标控件类型子序列依次与控件信息集合中的控件内容、控件ID以及控件类型进行比较。
首先,依次将目标控件内容子序列中的每一目标控件内容作为关键字,到控件信息集合中的控件内容中查找是否有某一控件的控件内容(或控件内容的正则表达式)与目标控件内容相匹配。若每一目标控件内容均无法从控件信息集合中查找到一致的控件内容,则匹配失败。此时,可以依次将目标控件ID子序列中的每一目标控件ID作为关键字继续查找。若控件信息集合中的任一控件ID与任一目标控件ID完全一致,即匹配成功。否则,依次将目标控件类型子序列中的每一目标控件类型作为关键字继续查找。依次将每一目标控件类型与控件信息集合中的控件类型进行匹配,若全部匹配失败,则间隔一段时间后重新进行匹配,直至匹配成功或重复次数达到预设阈值,例如3次。若匹配失败,可以向用户返回语音指令无效的提示。
本发明实施例提供的方法,依次将目标控件内容子序列中的每一目标控件内容、目标控件ID子序列中的每一目标控件ID以及目标控件类型子序列中的每一目标控件类型与控件信息集合中的控件内容、控件ID以及控件类型进行匹配,通过以多种方式尝试匹配,可以提高控件检索的准确性。
基于上述任一实施例,控件信息集合是在接收到任一应用界面发生变化的触发事件时,对该应用界面上的所有控件进行扫描得到的。
具体地,可以预先设置控件信息集合,并且实时检测当前的应用界面是否发生了变化,此处的变化可以是应用被点击、滑动或者窗口切换等。一旦接收到任一应用界面发生变化的触发事件,则对该应用界面上的所有控件进行一次控件扫描,从而获取该应用界面上的所有控件,并对所有控件进行数据收集,以确定所有控件的控件信息。此处,针对任一控件,该控件的控件信息中包括该控件的当前位置,此外还可以包括控件标识。
基于上述任一实施例,服务项还包括候选控件序列获取单元,位置确定模块将控制指令与当前运行应用对应的候选控件序列的功能描述文本进行匹配,得到控制指令对应的子操作指令序列,之前还包括:
候选控件序列获取单元获取终端设备当前已安装应用的应用标识,并将已安装应用的应用标识发送至服务端;
候选控件序列获取单元接收服务端返回的对应已安装应用的候选控件序列。
具体地,当终端设备成功连上网络后,候选控件序列获取单元首先检测终端设备当前已经安装的应用列表,并且把每一个已安装应用对应的应用标识,例如包名PackageName,打包发送至服务端。服务端使用已安装应用的应用标识在云端服务器中预先存储的多个应用对应的候选控件序列中进行查询,并返回查询到的候选控件序列,即已安装应用的候选控件序列。候选控件序列获取单元接收到服务端返回的对应已安装应用的候选控件序列后,将其下载并保存到智能终端的本地内存中,以供与控制指令进行匹配。
基于上述任一实施例,一种基于语音的应用控制方法,其执行主体为终端设备内常驻运行的不带界面的服务项Service,该方法包括如下步骤:
首先,Service在终端设备内存中创建并缓存一个控件信息集合AllNodeInfos和子操作指令序列SearchPolicyList。
Service实时检测除自身以外的所有第三方应用在界面上的变化,每当第三方应用界面发生变化时,Service对该应用界面进行一次控件View扫描。
扫描完成后,Service会对扫描所得的所有控件View进行数据收集。假设界面上共有n个View,针对每个View会创建1个控件信息NodeInfo,控件信息NodeInfo中存储有该View的当前位置Rect信息、控件内容Text、控件ID ViewId、控件类型ClassName以及是否可见等。最终,将所有控件信息NodeInfo保存到控件信息集合AllNodeInfos中。
此外,在云端服务器中还预设了数组对象PolicyCaches,其中存储了所有第三方应用对应的候选控件序列PolicyCache。一个应用可以对应多个候选控件序列PolicyCache。PolicyCache由功能描述文本speakText、所属应用的包名PackageName,以及多个控件相关信息SearchPolicy构成的数组。每个控件相关信息SearchPolicy对应一个控件,其中存储有控件内容子序列text数组、控件ID子序列viewId数组、控件类型子序列className数组、控制行为序列actions数组、跳转控件序列Branches以及当前分支branch。此处,当前分支branch可以用来区分该控件与PolicyCache中的其他控件。actions数组中的元素个数等于text数组、viewId数组和className数组的元素数量之和,Branches数组的长度也等于text数组、viewId数组和className数组的元素数量之和。
当终端设备联网后,Service首先检测终端设备内部已经安装的App应用列表,并且把已安装App对应的PackageName组成一个数组发送给服务端。服务端使用接收到的该数组在云端服务器中的PolicyCaches搜索,将各应用的PackageName作为关键词进行查询,然后返回查询到的PolicyCache。终端设备接收到服务端返回的PolicyCache后,将其下载到终端设备的本地内存中,构成一个LocalPolicyCache链表,该链表中由下载的多个PolicyCache组成。
Service自身具备语音识别功能,在采集到用户使用系统的免唤醒或者唤醒词对终端设备发送的语音指令后,可以将语音指令转换成控制指令,记为targetText,String类型字符串格式。同时,使用系统接口获取当前运行字终端设备最前端的应用的包名packageName。接着,Service服务将targetText和当前运行应用的packageName作为匹配关键词,与本地保存的LocalPolicyCache链表中所有的PolicyCache的speakText和PackageName进行对比。若targetText和当前运行应用的packageName与任一PolicyCache的speakText和PackageName一致,则返回该PolicyCache,作为子操作指令序列。然后,将该PolicyCache中的SearchPolicy数组加入到内存中创建的SearchPolicyList链表中,该链表中每一SearchPolicy依次链接。
Service服务获取到SearchPolicyList之后,开始按顺序处理该链表中的SearchPolicy。首先取出该链表的第一个SearchPolicy,将该SearchPolicy与AllNodeInfos中的每个NodeInfo进行匹配。具体而言,可以按顺序取出SearchPolicy的text数组中的数据,将其作为正则表达式,使用pattern.matcher等类似函数与NodeInfo中的text进行比较,若正则表达式匹配成功,则暂停搜索,返回搜索到的NodeInfo。
若该SearchPolicy的text数组的所有text均匹配失败,则继续使用该SearchPolicy的viewId数组进行字符串比对,若SearchPolicy的任一viewId和NodeInfo中的viewId完全相同,则匹配成功,返回匹配的NodeInfo。
若该SearchPolicy的viewId数组的所有viewId均匹配失败,则接着使用该SearchPolicy的className数组进行搜索,如果该SearchPolicy的className数组的所有className均匹配失败,则隔1段时间重新执行搜索,如果反复超过一定的次数,例如3次,仍匹配失败,则本次任务执行失败,Service服务语音返回提示“执行失败”。若匹配成功,则返回匹配的NodeInfo。
此外,获取SearchPolicy被匹配成功的标识及其所在位置,例如若被匹配成功的是text,则获取该text在text数组中的下标;若被匹配成功的是viewId,则获取该viewId在viewId数组中的下标;若被匹配成功的是className,则获取该className在className数组中的位置。依据被成功匹配的标识的位置,确定该数组下标在text数组、viewId数组和className数组组成的大数组中的下标,并从actions和Branches数组中取出该下标对应的值。其中,actions中的值表示要对搜索到的NodeInfo所对应的View执行的操作,例如点击、下滑、翻页、数据剪切、粘贴、复制等,而Branches中取出的值表示下一个进行匹配和执行的SearchPolicy。由于每一个SearchPolicy中除了Branches数组之外,还有一个branch数据可以标记该SearchPolicy,因此可以使用branch作为比对对象来查找下一个SearchPolicy。
获取匹配成功的NodeInfo后,提取NodeInfo中的Rect信息,使用Rect信息计算控件坐标,x=(rect.right+rect.left)/2,y=(rect.top+rect.bottom)/2,该坐标表示该NodeInfo所对应的View在App界面上的坐标位置。利用终端设备系统提供的Touch Panel接口,在对应坐标位置生成MotionEvent事件,模拟产生触摸事件,最终发出点击、滑动、翻页、输入等控制行为。再依照从Branches数组中取出的值,从SearchPolicyList中取出下一个SearchPolicy,重复进行前述的搜索操作,直至SearchPolicyList中最后一个SearchPolicy也搜索完毕为止。由于SearchPolicyList由多个SearchPolicy组成,则最终会搜索到多个NodeInfo,并会连续不断的对应用各个页面上的控件进行操作,从应用的一个页面操作完成后跳转到应用的另一个页面,再进行操作,以此类推,实现跨页面的连续控制。
例如,语音指令对应的语音识别文本为“我要看三国演义”,如果处于视频播放类应用,例如腾讯视频的首页,则会依次找到搜索框,并执行点击操作;找到下一待跳转目标控件,其仍为搜索框,并执行数据粘贴操作,将“三国演义”粘贴到搜索框内;然后找到搜索按钮,执行点击操作,进入搜索结果页面;在搜索结果页面中找到“三国演义”对应的控件,并执行点击操作,进入播放页面;最后找到播放页面中的全屏控件,并执行点击操作,进入全屏播放页面。
图2示例了一种智能终端的实体结构示意图,如图2所示,该电子设备可以包括:处理器(processor)210、通信接口(CommunicationsInterface)220、存储器(memory)230和通信总线240,其中,处理器210,通信接口220,存储器230通过通信总线240完成相互间的通信。处理器210可以调用存储器230中的逻辑指令,以执行智能终端上应用程序的运行方法,所述智能终端至少包括一个服务项,所述服务项中包括指令生成模块、位置确定模块、动作执行模块,所述动作执行模块用于根据所述位置确定模块执行所述指令生成模块中的控制指令,所述方法包括:所述指令生成模块接收向智能终端进行输入的语音指令,并将所述语音指令转化为控制指令,其中,所述控制指令至少包括两个相关联的子操作指令,所述子操作指令在所述智能终端中预先配置,所述预先配置按照候选序列配置;所述位置确定模块确定待运行的应用程序在所述智能终端的当前屏幕中的第一位置坐标;所述动作执行模块根据所述第一位置坐标对所述待运行的应用程序执行所述控制指令;在所述应用程序被所述控制指令启动之后,所述位置确定模块确定待执行的所述子操作指令在智能终端的当前屏幕中的第二位置坐标;所述动作执行模块根据所述第二位置坐标在所述应用程序中执行所述子操作指令的所述预先配置。
此外,上述的存储器230中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的智能终端上应用程序的运行方法,所述智能终端至少包括一个服务项,所述服务项中包括指令生成模块、位置确定模块、动作执行模块,所述动作执行模块用于根据所述位置确定模块执行所述指令生成模块中的控制指令,所述方法包括:所述指令生成模块接收向智能终端进行输入的语音指令,并将所述语音指令转化为控制指令,其中,所述控制指令至少包括两个相关联的子操作指令,所述子操作指令在所述智能终端中预先配置,所述预先配置按照候选序列配置;所述位置确定模块确定待运行的应用程序在所述智能终端的当前屏幕中的第一位置坐标;所述动作执行模块根据所述第一位置坐标对所述待运行的应用程序执行所述控制指令;在所述应用程序被所述控制指令启动之后,所述位置确定模块确定待执行的所述子操作指令在智能终端的当前屏幕中的第二位置坐标;所述动作执行模块根据所述第二位置坐标在所述应用程序中执行所述子操作指令的所述预先配置。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的智能终端上应用程序的运行方法,所述智能终端至少包括一个服务项,所述服务项中包括指令生成模块、位置确定模块、动作执行模块,所述动作执行模块用于根据所述位置确定模块执行所述指令生成模块中的控制指令,所述方法包括:所述指令生成模块接收向智能终端进行输入的语音指令,并将所述语音指令转化为控制指令,其中,所述控制指令至少包括两个相关联的子操作指令,所述子操作指令在所述智能终端中预先配置,所述预先配置按照候选序列配置;所述位置确定模块确定待运行的应用程序在所述智能终端的当前屏幕中的第一位置坐标;所述动作执行模块根据所述第一位置坐标对所述待运行的应用程序执行所述控制指令;在所述应用程序被所述控制指令启动之后,所述位置确定模块确定待执行的所述子操作指令在智能终端的当前屏幕中的第二位置坐标;所述动作执行模块根据所述第二位置坐标在所述应用程序中执行所述子操作指令的所述预先配置。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种智能终端上应用程序的运行方法,所述智能终端至少包括一个服务项,所述服务项中包括指令生成模块、位置确定模块、动作执行模块,所述动作执行模块用于根据所述位置确定模块执行所述指令生成模块中的控制指令,所述方法包括:
所述指令生成模块接收向智能终端进行输入的语音指令,并将所述语音指令转化为控制指令,其中,所述控制指令至少包括两个相关联的子操作指令,所述子操作指令在所述智能终端中预先配置,所述预先配置按照候选序列配置;
所述位置确定模块确定待运行的应用程序在所述智能终端的当前屏幕中的第一位置坐标;
所述动作执行模块根据所述第一位置坐标对所述待运行的应用程序执行所述控制指令;
在所述应用程序被所述控制指令启动之后,所述位置确定模块确定待执行的所述子操作指令在智能终端的当前屏幕中的第二位置坐标;
所述动作执行模块根据所述第二位置坐标在所述应用程序中执行所述子操作指令的所述预先配置;
所述相关联的子操作指令用于实现所述应用程序内部多个页面的连续控制;
所述位置确定模块确定待执行的所述子操作指令在智能终端的当前屏幕中的第二位置坐标,具体包括:
所述位置确定模块将所述控制指令与当前运行应用程序对应的候选控件序列的功能描述文本进行匹配,得到所述控制指令对应的子操作指令序列;
所述位置确定模块将所述子操作指令序列中的当前子操作指令与当前屏幕控件进行匹配,得到所述当前子操作指令的第二位置坐标以及待跳转的子操作指令,并将所述待跳转的子操作指令作为当前子操作指令,直至所述待跳转的子操作指令为空;
所述待跳转的子操作指令为下一步需要执行的子操作指令,所述待跳转的子操作指令的第二位置坐标是在所述当前子指令执行后更新的屏幕上的位置。
2.根据权利要求1所述的方法,其特征在于,所述位置确定模块将所述子操作指令序列中的当前子操作指令与当前屏幕控件进行匹配,得到所述当前子操作指令的第二位置坐标以及待跳转的子操作指令,具体包括:
依次将所述当前子操作指令的目标控件标识序列中的每一目标控件标识与控件信息集合中的控件标识匹配;
基于被成功匹配的目标控件标识在所述目标控件标识序列中的位置,从所述当前子操作指令的跳转控件序列中获取所述待跳转的子操作指令;所述跳转控件序列的长度与所述目标控件标识序列的长度一致。
3.根据权利要求2所述的方法,其特征在于,所述服务项还包括控制行为确定模块,所述依次将所述当前子操作指令的目标控件标识序列中的每一目标控件标识与控件信息集合中的控件标识匹配,之后还包括:
所述控制行为确定模块基于被成功匹配的目标控件标识在所述目标控件标识序列中的位置,从所述当前子操作指令的控制行为序列中获取所述当前子操作指令的控制行为,以供生成对应的模拟控制行为;所述控制行为序列的长度与所述目标控件标识序列的长度一致。
4.根据权利要求2或3所述的方法,其特征在于,所述当前子操作指令的目标控件标识序列包括目标控件内容子序列、目标控件ID子序列以及目标控件类型子序列中的至少一种。
5.根据权利要求4所述的方法,其特征在于,所述依次将所述当前子操作指令的目标控件标识序列中的每一目标控件标识与控件信息集合中的控件标识匹配,具体包括:
依次将所述目标控件内容子序列中的每一目标控件内容与所述控件信息集合中的控件内容进行内容匹配;
若内容匹配失败,则依次将所述目标控件ID子序列中的每一目标控件ID与所述控件信息集合中的控件ID进行ID匹配;
若ID匹配失败,则重复将所述目标控件类型子序列中的每一目标控件类型与所述控件信息集合中的控件类型进行匹配,直至匹配成功或重复次数达到预设阈值。
6.根据权利要求2或3所述的方法,其特征在于,所述控件信息集合是在接收到任一应用程序界面发生变化的触发事件时,对所述任一应用程序界面上的所有控件进行扫描得到的。
7.根据权利要求1所述的方法,其特征在于,所述服务项还包括候选控件序列获取单元,所述位置确定模块将所述控制指令与当前运行应用程序对应的候选控件序列的功能描述文本进行匹配,得到所述控制指令对应的子操作指令序列,之前还包括:
所述候选控件序列获取单元获取终端设备当前已安装应用程序的应用标识,并将所述已安装应用程序的应用标识发送至服务端;
所述候选控件序列获取单元接收所述服务端返回的对应所述已安装应用程序的候选控件序列。
8.一种智能终端,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述运行方法的步骤。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述运行方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011600501.5A CN112286486B (zh) | 2020-12-30 | 2020-12-30 | 智能终端上应用程序的运行方法、智能终端和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011600501.5A CN112286486B (zh) | 2020-12-30 | 2020-12-30 | 智能终端上应用程序的运行方法、智能终端和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112286486A CN112286486A (zh) | 2021-01-29 |
CN112286486B true CN112286486B (zh) | 2021-04-09 |
Family
ID=74426957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011600501.5A Active CN112286486B (zh) | 2020-12-30 | 2020-12-30 | 智能终端上应用程序的运行方法、智能终端和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112286486B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114327185B (zh) * | 2021-12-29 | 2024-02-09 | 盯盯拍(深圳)技术股份有限公司 | 一种车机屏幕控制方法、装置、介质及电子设备 |
CN115482821A (zh) * | 2022-09-13 | 2022-12-16 | 成都赛力斯科技有限公司 | 一种语音控制方法、装置、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104076916A (zh) * | 2013-03-29 | 2014-10-01 | 联想(北京)有限公司 | 一种信息处理方法以及电子设备 |
CN108733343A (zh) * | 2018-05-28 | 2018-11-02 | 北京小米移动软件有限公司 | 生成语音控制指令的方法、装置及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007065347A (ja) * | 2005-08-31 | 2007-03-15 | Denso Corp | 音声認識システム |
US9230560B2 (en) * | 2012-10-08 | 2016-01-05 | Nant Holdings Ip, Llc | Smart home automation systems and methods |
CN104899003A (zh) * | 2015-06-12 | 2015-09-09 | 广州视源电子科技股份有限公司 | 终端控制方法和系统 |
CN108307069B (zh) * | 2018-01-29 | 2020-08-07 | Oppo广东移动通信有限公司 | 导航运行方法、导航运行装置及移动终端 |
CN108829371B (zh) * | 2018-06-19 | 2022-02-22 | Oppo广东移动通信有限公司 | 界面控制方法、装置、存储介质及电子设备 |
CN110795175A (zh) * | 2018-08-02 | 2020-02-14 | Tcl集团股份有限公司 | 模拟控制智能终端的方法、装置及智能终端 |
-
2020
- 2020-12-30 CN CN202011600501.5A patent/CN112286486B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104076916A (zh) * | 2013-03-29 | 2014-10-01 | 联想(北京)有限公司 | 一种信息处理方法以及电子设备 |
CN108733343A (zh) * | 2018-05-28 | 2018-11-02 | 北京小米移动软件有限公司 | 生成语音控制指令的方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112286486A (zh) | 2021-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107430502B (zh) | 由帮助信息动态推断用于软件应用的语音命令 | |
CN106098060B (zh) | 语音的纠错处理方法和装置、用于语音的纠错处理的装置 | |
US20170185580A1 (en) | Emoji input method and device thereof | |
US20170046399A1 (en) | Discovery of Application States | |
CN107408010A (zh) | 由电子设备的用户操纵动态推断软件操作的语音命令 | |
CN111737411A (zh) | 人机对话中的响应方法、对话系统及存储介质 | |
EP2713255A1 (en) | Method and electronic device for prompting character input | |
CN112286486B (zh) | 智能终端上应用程序的运行方法、智能终端和存储介质 | |
CN110147544B (zh) | 一种基于自然语言的指令生成方法、装置以及相关设备 | |
CN110427459B (zh) | 语音识别网络的可视化生成方法、系统及平台 | |
KR20200014047A (ko) | 시맨틱 트리플 기반의 지식 확장 시스템, 방법 및 컴퓨터 프로그램 | |
CN104239775A (zh) | 手机端与pc端通过短信息建立无线连接的方法和装置 | |
CN107656997A (zh) | 自然语言处理方法、装置、存储介质及终端设备 | |
US20230269429A1 (en) | Systems and methods for generating dynamic annotations | |
US20160191338A1 (en) | Retrieving content from an application | |
US11128910B1 (en) | Systems and methods for generating dynamic annotations | |
CN112634896B (zh) | 智能终端上应用程序的运行方法和智能终端 | |
CN104239087A (zh) | 电子装置及其根据地址信息启动应用程序的方法 | |
CN111611369A (zh) | 基于人工智能的交互方法和相关装置 | |
CN113190434B (zh) | 一种测试用例生成方法、装置、存储介质及计算机设备 | |
CN114265777B (zh) | 应用程序的测试方法、装置、电子设备及存储介质 | |
CN104424223A (zh) | 一种基于输入法的app搜索与快捷启动方法及相关输入法系统 | |
CN114281688A (zh) | 一种无码或低码的自动化用例管理方法和装置 | |
CN110647314B (zh) | 技能生成方法、装置及电子设备 | |
CN112784132A (zh) | 一种数据获取方法、装置以及计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |