语音控制方法、语音控制装置以及计算机可执行非易失性存储介质与流程
本公开实施例涉及一种语音控制方法、与该语音控制方法对应的语音控制装置以及计算机可执行非易失性存储介质。
背景技术:
随着智能手机的迅速普及,移动互联网也在迅速发展,在智能操作系统和移动互联网共同快速发展的情况下,安卓操作系统由于其开源,可以深度定制的优点,已经成为各类智能设备使用最多的操作系统,运行安卓系统的设备种类最为繁多,这些设备使用语音交互的方式越来越普遍。
然而,虽然安卓生态中已经有大量的应用程序(app)可以免费安装使用,但是这些app大都采用用户对手机设备的触摸操作输入,要想使用语音自然交互控制,就需要重新开发app。这样除了工作量大,可能还涉及到与第三方app公司合作的问题,时间和经济成本都很高。
另外,也可以通过修改操作系统源码对指定的第三方app进行指令和控件之间的适配,来实现不修改三方app源码的情况下对其进行控制。但这种方法需要做适配工作,对三方app的使用还是有一定的限制,另外修改操作系统源码也增加了开发难度。
技术实现要素:
本公开实施例的目的在于提供一种语音控制方法、语音控制装置以及非易失性存储介质,以解决上述技术问题。
根据本公开至少一个实施例,提供了一种语音控制方法,包括:获取语音输入信息;对所述语音输入信息进行识别,以得到语音命令;基于所述语音命令,利用测试框架调用单元,确定与所述语音命令对应的控件,其中,所述测试框架调用单元不在所述控件所在的应用程序中,执行所述控件对应的功能。
例如,所述基于所述语音命令,利用测试框架调用单元,确定与所述语音命令对应的控件包括:利用所述测试框架调用单元,获取当前用户界面上处于前台运行状态的应用程序中的控件;获取所述控件上的字符串或控件的描述字符串;将所述语音命令与所述控件上的字符串或控件的描述字符串相匹配,以确定与所述语音命令对应的控件。
例如,所述语音命令还包括命令参数,其中,所述基于所述语音命令,利用测试框架调用单元,确定与所述语音命令对应的控件还包括:利用所述测试框架调用单元,获取在当前用户界面上处于前台运行状态的应用程序中的所述控件的位置;利用所述测试框架调用单元,确定与所述控件的位置相邻的至少一个位置上是否有编辑框,当确定有一个或多个所述编辑框时,将所述命令参数输入到任一所述编辑框中;其中,执行所述控件对应的功能包括:基于所述命令参数执行所述控件对应的功能。
例如,确定与所述控件的位置相邻的至少一个位置上是否有编辑框包括:查找所述当前用户界面上的所有编辑框;识别各所述编辑框的边界;基于所述边界确定与所述控件的位置相邻的至少一个位置上的编辑框的位置。
例如,所述对所述语音输入信息进行识别,以得到语音命令包括:将所述语音输入信息转换成字符串;将转换的字符串与预设语音命令相匹配;基于匹配结果确定所述语音输入信息对应的语音命令。
例如,将转换的字符串与预设语音命令相匹配包括:建立字符串与预设的语音命令的对应关系集合;基于模板匹配或深度学习确定转换的字符串在所述集合中所相匹配的语音命令;将所述字符串与所述确定的语音命令相匹配。
例如,所述基于所述语音命令,利用测试框架调用单元,确定与所述语音命令对应的控件包括:基于所述测试框架调用单元调用的测试框架,获取当前用户界面中的处于前台运行状态的应用程序的图像;对所述图像进行识别,以确定所述图像中的控件图标;将所述语音命令与所述控件图标相匹配,以确定与所述语音命令对应的控件。
例如,所述基于所述语音命令,利用测试框架调用单元,确定与所述语音命令对应的控件还包括:当所述将所述语音命令与所述控件上的字符串或控件的描述字符串相匹配不成功时,基于所述测试框架调用单元调用的测试框架,获取当前用户界面中的处于前台运行状态的应用程序的图像;对所述图像进行识别,以确定所述图像中的控件图标;将所述语音命令与所述控件图标相匹配,以确定与所述语音命令对应的控件。
例如,所述基于所述语音命令,利用测试框架调用单元,确定与所述语音命令对应的控件还包括:当所述将所述语音命令与所述控件图标相匹配不成功时,利用所述测试框架调用单元,获取当前用户界面上处于前台运行状态的应用程序中的控件;获取所述控件上的字符串或控件的描述字符串;将所述语音命令与所述控件上的字符串或控件的描述字符串相匹配,以确定与所述语音命令对应的控件。
例如,对所述图像进行识别,以确定所述图像中的控件图标包括:对所述屏幕图像进行轮廓提取,获取至少一个控件区域;对所述至少一个控件区域进行图像识别,以确定所述控件区域中控件图标。
例如,所述将所述语音命令与所述控件图标相匹配,以确定与所述语音命令对应的控件包括:将所述控件图标转换成与该控件功能对应的字符串;将所述语音命令与所述对应的字符串相匹配;或者,将所述语音命令转换成与所述语音命令对应的图标,并将所述对应的图标与所述控件图标相匹配。
例如,在所述获取语音输入信息的步骤之前,所述方法还包括:获取应用程序开启命令;基于所述应用程序开启命令,启动所述控件所在的应用程序。
根据本公开的至少一个实施例,提供了一种语音控制装置,包括:语音识别和语义理解单元,被配置为获取语音输入信息,并对所述语音输入信息进行识别,以得到语音命令;测试框架调用单元,被配置为基于所述语音命令,确定与所述语音命令对应的控件,其中,所述测试框架调用单元不在所述控件所在的应用程序中;执行单元,被配置为执行所述控件对应的功能。
例如,所述的装置还包括:图像识别单元,被配置为对当前用户界面中所述控件所在应用程序中的图像进行识别,以确定所述图像中的控件图标;所述测试框架调用单元进一步被配置为,将所述语音命令与所述控件图标相匹配,以确定与所述语音命令对应的控件。
例如,所述语音识别和语义理解单元在第一模块中,所述测试框架调用单元以及图像识别单元分别在第二模块中,所述第一模块与所述第二模块之间通过进程间通信的方式进行通信。
根据本公开的至少一个实施例,提供了一种语音控制装置,包括存储器和处理器,所述存储器中存储指令,所述处理器处理所述指令时执行前述方法。
根据本公开的至少一个实施例,提供了一种计算机可执行非易失性存储介质,存储有计算机程序指令,处理器处理所述程序指令时执行前述方法。
本公开在不修改系统源码和不需要针对特定app进行适配的情况下,实现对三方app的控制,更加灵活方便和普适性更强。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的描述中所需要使用的附图作简单的介绍。下面描述中的附图仅仅是本公开的示例性实施例。
图1示出了根据本公开实施例的语音控制方法流程图;
图2示出了根据本公开实施例的语音控制装置结构示意图;
图3示出了根据本公开实施例的语音控制装置的一个示例的结构图;
图4示出了根据本公开实施例的语音控制装置的架构图;
图5示出了根据本公开实施例的另一语音控制装置结构示意图。
具体实施方式
在下文中,将参考附图详细描述本公开的优选实施例。注意,在本说明书和附图中,具有基本上相同步骤和元素用相同的附图标记来表示,且对这些步骤和元素的重复解释将被省略。
在本公开实施例中,语音控制方法和语音控制装置,非易失性存储介质可以应用于电子设备,电子设备例如是移动终端、个人计算机,便携式电脑等。电子设备上可以执行本公开实施例的语音控制方法。例如,将本公开实施例的语音控制方法制作成应用程序,电子设备上安装实现该语音控制方法的应用程序,或安装一个包括本公开实施例的语音控制装置或存储介质的芯片或处理器。这样,当本公开实施例的语音控制方法、装置或存储介质被执行后,可以对电子设备中安装的任何一个其他的应用程序(或称作第三方应用程序)进行语音控制,实现语音交互,即便该第三方应用程序本身没有语音控制功能。当第三方应用程序具有语音控制功能时,用户也可以选择不应用第三方应用程序本身的语音控制功能,选择应用本公开实施例的语音控制功能,从而给予用户更多的选择体验。这样,本公开实施例的语音控制方法或装置在不修改第三方应用程序代码,也不修改操作系统程序代码的情况下,就可以实现对第三方应用程序的语音控制和管理,增强了电子设备的功能,方便了用户的使用。
图1描述了根据本公开实施例的语音控制方法100的流程图。下面将参照图1来描述本公开的实施例的语音控制方法。参见图1,语音控制方法100可以包括步骤s101-s104。
在步骤s101中,获取语音输入信息。根据本公开的一个示例,可以通过电子设备的麦克风设备接收用户的语音输入作为语音输入信息,该语音输入信息用于控制第三方应用程序中的控件,使得用户可以通过该语音信息与该第三方应用程序进行交互。例如,通过麦克风,获取用户输入的“搜索”、“上滑”等语音,作为语音输入信息。
在一个示例中,在获取用户用于控制第三方应用程序中的控件的语音输入信息之前,可以首先通过语音开启该第三方应用程序。例如,首先,通过电子设备的语音输入接口获取用户输入的应用程序开启语音命令,基于该语音控制方法的程序开启语音命令,启动第三方应用程序。例如,通过该语音控制方法的程序输入语音“打开微信”来开启“微信”这个第三方应用程序。当然也可以通过触摸或点击应用程序图标的方式来开启第三方应用程序。
在步骤s102中,对语音输入信息进行识别,以得到语音命令。根据本公开的一个示例,可以将语音输入信息转换成字符串,并将转换的字符串与预设语音命令相匹配,基于匹配结果确定语音输入信息对应的语音命令。例如,语音命令可以是能够控制电子设备的控制命令。例如,可以预先定义字符串与语音命令的对应关系集合。例如语音命令“上滑”对应{“向上滑动”、“上拉”、“上滑”}这样一组字符串,对应语音命令的操作是对可滑动控件的上拉操作,如果用户的语音输入信息包括字符串“向上滑动”、“上拉”、“上滑”中的至少一种,就可以匹配“上滑”的语音命令。还例如,语音命令“搜索”对应{“搜索”、“查找”}这样一组字符串,对应的操作是点击搜索控件。如果用户的语音输入信息包括“搜索”,“查找”中的至少一种,就可以匹配“搜索”的语音命令。
在一个示例中,在将转换的字符串与语音命令相匹配时,可以基于模板匹配或深度学习确定转换的字符串在集合中所匹配的语音命令,并将字符串转换成确定的语音命令。此外,这些支持的语音命令以及对应的字符串均是可以无限扩展的,可以根据需要增加语音命令对应的字符串集合中的元素。
根据本公开的实施例,语音命令可以仅包括一个命令,还可以包括语音命令和命令参数。在将转换的字符串与预设语音命令相匹配时,可以在匹配语音命令的同时,识别并匹配该语音命令包括的命令参数。例如,匹配结果可以包括至少三类,第一类只有匹配的语音命令,如“向上滑动”,解析结果为命令:上滑。第二类包含语音命令和该语音命令对应的命令参数,如“我要搜索刘德华”的字符串,则匹配结果为命令:搜索,参数“刘德华”。还例如,“播放忘情水”的字符串,则匹配结果为语音命令:播放,命令参数:忘情水。第三类对于匹配不到预置语音命令的操作,比如“忘情水”的字符串,则认为语音命令是“忘情水”。
在步骤s103中,基于语音命令,利用测试框架调用单元,确定与语音命令对应的控件,其中,所述测试框架调用单元不在所述控件所在的应用程序中。也就是说,所述控件所在的应用程序在与测试框架调用单元所在的程序不同。
测试框架调用单元,是指用于调用测试框架功能的程序。测试框架是一个用来做自动化测试的软件库,是安卓等操作系统本身具有的一个功能。例如用户界面自动测试框架(uiautomator)。uiautomator测试框架可以获取当前用户界面上的控件或控件的属性信息。例如获取当前窗口的控件层次关系及属性信息,并查找到目标控件。如果是点击事件,还可以计算出该控件的中心点坐标等等。此外,uiautomator还可以通过隐藏接口来注入用户事件(例如点击、输入类操作),从而实现跨进程自动化的目的。此外,除了uiautomator测试框架之外,还有appium测试框架等其他测试框架,本公开对此不做限定。
在本公开实施例中,需要进行语音控制的控件在电子设备中的第三方应用程序中,而用于调用测试框架的测试框架调用单元在第三方应用程序之外的一个程序中,因此,控件所在的应用程序与测试框架调用单元所在的程序不是同一个应用程序。
根据本公开的一个示例,在利用测试框架调用单元,确定与语音命令对应的控件过程中,可以首先利用测试框架调用单元,获取当前用户界面上的控件对象。例如,通过uiautomator测试框架,获取第三方应用程序窗口中所有的控件对象。然后获取控件对象上的字符串或控件的描述字符串。例如,通过光学字符识别(ocr)来识别控件对象上的字符串或控件描述字符串。例如,识别控件对象上的文字字符串“搜索”、“复制”、“退出”。之后将语音命令与控件对象上的字符串或控件的描述字符串相匹配,以确定与语音命令对应的控件。例如,将“搜索”等语音命令与控件对象上的文字字符串“搜索”、“复制”、“退出”相匹配,从而确定匹配的“搜索”控件。
根据本公开的一个示例,当语音命令还包括命令参数时,在利用测试框架调用单元,确定与语音命令对应的控件的过程中,还需要进一步对命令参数进行处理。例如,在利用测试框架调用单元调用测试框架确定了控件之后,进一步利用测试框架调用单元,获取控件在当前用户界面或第三方应用程序窗口上的位置。然后利用测试框架调用单元,确定与控件位置相邻的至少一个位置上是否有编辑框。例如,确定控件的上方区域是否有编辑框,如果上方区域没有,确定控件左侧区域是否有编辑框。当确定找到编辑框时,将命令参数输入到编辑框中;然后基于命令参数对控件进行操作,以执行控件对应的功能。例如,在编辑框中输入“忘情水”之后,执行点击控件“搜索”的操作以搜索“忘情水”。
在一个示例中,在确定与控件位置相邻的至少一个位置上是否有编辑框时可以使用uiautomator的查找对象(findobjects)功能找到第三方应用程序窗口中所有编辑框,然后针对每一个编辑框获取编辑框的边界,这样就得到了编辑框的位置坐标,根据编辑框的位置坐标确定其与控件之间的位置关系。
由于某些控件上并没有文字而是图标,例如,“搜索”控件上往往是一个放大镜的图标,而不是“搜索”两字,因此根据本公开一个示例,还可以选择通过图像识别的方式来查找语音命令对应的控件。例如,通过字符串匹配方式无法找到控件的情况下,或者即便找到控件,但在控件附近找不到编辑框的情况下,都可以采用图像识别的方式查找控件。当然,本领域技术人员了解,也可以任意选择或同时选择字符串方式匹配控件以及图像识别方式匹配控件,来确定语音命令对应的控件,二者没有优先顺序。
根据本公开的一个示例,通过图像识别方式匹配控件时,可以首先基于测试框架调用单元调用的测试框架,获取当前用户界面上的图像。例如,获取当前用户界面中处于前台运行状态的应用程序中的图像。然后对图像进行识别,定位图像中处于前台运行状态的第三方应用程序中的一个或多个控件图标。例如,对图像进行轮廓提取,先获取一个或多个控件区域。然后对获取的一个或多个控件区域进行图像识别,以确定控件区域中控件描述字符串或控件图标。通过首先获取控件区域的方式,可以缩小控件图标的识别范围,减小计算量,提高识别效率。
如果识别得到的是控件字符串,将语音命令对应的字符串与控件字符串相匹配,确定与语音命令对应的控件。如果得到的是控件图标,将语音命令与控件图标相匹配,以确定与语音命令对应的控件。例如,将控件图标转换成与该控件功能对应的字符串;将语音命令对应的字符串与控件图标对应的字符串相匹配,以确定语音命令对应的控件。还例如,也可以将语音命令转换成与该语音命令对应的图标,将语音命令对应的图标与控件图标相匹配,确定语音命令对应的控件。例如,语音命令“搜索”对应的字符串包括“搜索”、“查找”的同时,还包括多个图标,例如“放大镜图标”。将“放大镜图标”与控件图标相匹配,当确定某个控件图标是“放大镜图标”时,则可以确定该控件为“搜索控件”。
在一个示例中,语音命令图标与控件图标的匹配技术可以使用图像特征匹配,深度学习等图像识别方式。图像特征匹配时,可以分别提取语音命令图标以及空间图标的图像特征,例如轮廓特征,将二者的图像特征进行匹配,当匹配率大于匹配阈值时,例如80%,则认为二者是相同的图标。
在一个示例中,在对控件区域进行识别后,如果没有识别出文字,再对该控件区域进行图像识别,如果识别出文字,则不再对该控件区域进行图像识别,以避免不必要的计算,提高识别效率。在语音命令能够和控件区域的图标或字符串匹配上时,则确定该控件区域为控件。例如,当将语音命令与控件上的字符串或控件的描述字符串相匹配不成功时,可以基于测试框架调用单元调用的测试框架来获取当前用户界面中的处于前台运行状态的应用程序的图像,然后对图像进行识别,来确定图像中的控件图标;再将语音命令与控件图标相匹配,以确定与语音命令对应的控件。
在另一个示例中,可以先通过图像识别的方式来查找语音命令对应的控件,当通过图像识别方式没有识别出图像时,再使用文字识别方式对控件区域进行识别,同样可以避免不必要的计算,节省系统资源。例如,当将语音命令与控件图标相匹配不成功时,可以利用测试框架调用单元获取当前用户界面上处于前台运行状态的应用程序中的控件;然后获取控件上的字符串或控件的描述字符串;将语音命令与控件上的字符串或控件的描述字符串相匹配,来确定与语音命令对应的控件。
在步骤s104中,执行控件对应的功能。根据本公开的一个示例,可以根据控件的属性,根据语音命令,执行控件的单击、双击或拖动等操作。当语音命令还包括命令参数时,可以根据命令参数对控件进行操作。例如,当编辑框中有命令参数“忘情水”时,执行单击“搜索”控件并搜索“忘情水”。
本公开实施例的语音控制方法,通过调用操作系统的测试框架,可以无需修改第三方应用程序以及操作系统的代码,就可以实现对第三方应用程序的语音控制,扩展了电子设备的功能,方便了用户的使用。
以上介绍了根据本公开实施例的语音控制方法,下面将进一步介绍根据本公开实施例的语音控制装置,该语音控制装置与前述实施例的语音控制方法对应,为了说明书的简洁,以下仅作简要介绍。具体参见前述所有实施例。
图2示出了根据本公开实施例的语音控制装置结构示意图,参见图2,语音控制装置200包括语音识别和语义理解单元201,测试框架调用单元202以及执行单元203。其中语音识别和语义理解单元201被配置为获取语音输入信息,并对语音输入信息进行识别,以得到语音命令。测试框架调用单元202,被配置为基于语音命令,确定与语音命令对应的控件,其中,所述测试框架调用单元不在所述控件所在的应用程序中,也就是说,控件所在的程序与测试框架调用单元所在的应用程序不同。执行单元203,被配置为执行控件对应的功能。在本公开实施中,上述语音识别和语义理解单元201,测试框架调用单元202以及执行单元203可以通过软件、硬件或固件的形式来实现,例如可以通过计算机程序、可编程逻辑电路、芯片或芯片组来实现。
图3示出了根据本公开实施例的语音控制装置的一个示例的结构图。参见图3,为了将用户界面上的图像进行识别,语音控制装置200还可以包括图像识别单元204。图像识别单元204被配置为对用户界面上的图像进行识别,例如,对当前用户界面中处于前台运行状态的应用程序中的图像进行识别,以确定图像中该应用程序中的控件图标。此外,测试框架调用单元202进一步被配置为,将语音命令与控件图标相匹配,以确定与语音命令对应的控件。在本公开实施中,上述语音识别和语义理解单元201,测试框架调用单元202,执行单元203以及图像识别单元204可以通过软件、硬件或固件的形式来实现,例如可以通过计算机程序、可编程逻辑电路、芯片或芯片组来实现。
图4示出了根据本公开实施例的语音控制装置的架构图,参见图4,语音识别和语义理解单元201在第一模块中,测试框架调用单元202以及图像识别单元204分别在第二模块中,第一模块与第二模块之间通过进程间通信的方式进行通信。此外,执行单元203可以在第三模块中。例如,执行单元203可以调用操作系统本身自带的控件执行功能。
图5示出了根据本公开实施例的另一语音控制装置结构示意图。参见图5,语音控制装置500包括存储器501和处理器502。存储器501中存储计算机程序指令,处理器502执行程序指令时执行前述实施例中的语音控制方法。
根据本公开实施例,还提供了一种计算机可执行非易失性存储介质,该非易失性存储介质存储计算机程序指令,当计算机中的处理器执行程序指令时执行前述实施例中的语音控制方法。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现。并且软件模块可以置于任意形式的计算机存储介质中。为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开的范围。
本领域技术人员应该理解,可依赖于设计需求和其它因素对本公开进行各种修改、组合、部分组合和替换,只要它们在所附权利要求书及其等价物的范围内。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除