语音交互方法及装置、语音交互系统、交通工具及介质转让专利

申请号 : CN202110774975.X

文献号 : CN113253971B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 鲍鹏丽吝博川

申请人 : 广州小鹏汽车科技有限公司

摘要 :

本申请公开了一种语音交互方法,包括:响应于对图形用户界面中的控件操作所对应的控件属性的改变,根据改变更新控件属性对应的第一语音交互属性以得到第二语音交互属性,根据第二语音交互属性生成与控件对应的更新后的场景元素信息,根据场景元素信息更新语音用户界面以生成更新后的语音用户界面中的场景片段,接收场景事件进行语音交互。本申请的语音交互方法使得在图形用户界面中有控件属性改变时,可自动根据改变的属性生成语音交互界面中的场景元素信息,并通过生成场景片段以进行语音交互。本申请还公开了一种语音交互装置、语音交互系统、交通工具和存储介质。

权利要求 :

1.一种语音交互方法,其特征在于,包括:预先创建控件更新监听接口并添加至图形用户界面的控件;

响应于对图形用户界面中的控件操作所对应的控件属性的改变,根据所述改变更新所述控件属性对应的第一语音交互属性以得到第二语音交互属性;

根据所述第二语音交互属性并通过所述控件更新监听接口生成与所述控件对应的更新后的场景元素信息;

根据所述场景元素信息更新语音用户界面以生成更新后的语音用户界面中的场景片段;

接收场景事件进行语音交互,所述场景事件根据语音请求及所述场景片段生成。

2.根据权利要求1所述的语音交互方法,其特征在于,所述语音交互方法在所述响应于对图形用户界面中的控件操作所对应的控件属性的改变前还包括:在所述图形用户界面的状态为初始化的情况下导入在先创建的控件更新监听接口;

在所述图形用户界面的状态由所述初始化转为显示的情况下,获取所述图形用户界面的控件列表,所述控件列表包括所述控件;

将所述控件更新监听接口添加至所述控件。

3.根据权利要求2所述的语音交互方法,其特征在于,所述将所述控件更新监听接口添加至所述控件包括:

在所述控件为语音交互控件的情况下,将所述控件更新监听接口添加至所述控件。

4.根据权利要求3所述的语音交互方法,其特征在于,所述将所述控件更新监听接口添加至所述控件还包括:

在所述控件对应的在先构建的场景元素信息有效的情况下,将所述控件更新监听接口添加至所述控件。

5.根据权利要求2所述的语音交互方法,其特征在于,所述响应于对图形用户界面中的控件操作所对应的控件属性的改变前还包括:在所述控件包含子级控件的情况下,获取所述控件的所述子级控件;

将所述控件更新监听接口添加至所述子级控件。

6.根据权利要求2所述的语音交互方法,其特征在于,所述根据所述第二语音交互属性生成与所述控件对应的更新后的场景元素信息包括:在所述控件更新监听接口不为空的情况下,回调所述控件更新监听接口的语音交互更新方法;

在所述语音交互更新方法中调用场景元素更新接口;

根据所述场景元素更新接口获取所述第二语音交互属性并根据所述第二语音交互属性生成所述更新后的场景元素信息。

7.根据权利要求6所述的语音交互方法,其特征在于,所述根据所述场景元素更新接口获取所述第二语音交互属性并根据所述第二语音交互属性生成所述更新后的场景元素信息包括:

创建更新任务类;

在所述更新任务类中调用所述场景元素更新接口以获取所述第二语音交互属性;

根据所述第二语音交互属性生成所述更新后的场景元素信息。

8.根据权利要求1所述的语音交互方法,其特征在于,所述方法还包括:根据所述更新获取所述图形用户界面场景的场景基本信息;

所述根据所述场景元素信息更新语音用户界面以生成更新后的语音用户界面中的场景片段包括:

根据所述场景基本信息与所述场景元素信息更新所述语音用户界面以生成更新后的所述场景片段。

9.一种语音交互场景的自动更新装置,其特征在于,包括:更新模块,用于预先创建控件更新监听接口并添加至图形用户界面的控件,并在所述语音请求包含对图形用户界面中控件的控件属性的更新请求的情况下,根据所述更新请求按照第一预定策略更新所述控件属性对应的第一语音交互属性以得到第二语音交互属性;

第一生成模块,用于根据所述第二语音交互属性并通过所述控件更新监听接口生成更新后的场景元素信息;

第二生成模块,用于根据所述更新场景元素信息生成更新语音交互场景以更新所述图形用户界面对应的所述语音交互场景;

接收模块,用于接收场景事件进行语音交互,所述场景事件根据语音请求及所述语音交互场景生成。

10.一种语音交互系统,其特征在于,所述语音交互系统包括交通工具及服务器;

所述交通工具预先创建控件更新监听接口并添加至图形用户界面的控件,响应于对图形用户界面中的控件操作所对应的控件属性的改变,根据所述改变更新所述控件属性对应的第一语音交互属性以得到第二语音交互属性,根据所述第二语音交互属性并通过所述控件更新监听接口生成与所述控件对应的更新后的场景元素信息,根据所述场景元素信息更新语音用户界面以生成更新后的语音用户界面中的场景片段;及接收语音请求并将所述语音请求上传至所述服务器;

所述服务器用于根据所述语音请求生成场景事件并下发至所述交通工具;

所述交通工具还用于接收场景事件进行语音交互,所述场景事件根据语音请求及所述场景片段生成。

11.一种交通工具,其特征在于,所述交通工具包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,实现权利要求1‑8任一项所述的语音交互方法。

12.一种计算机程序的非易失性计算机可读存储介质,其特征在于,当所述计算机程序被一个或多个处理器执行时,实现权利要求1‑8任一项所述的语音交互方法。

说明书 :

语音交互方法及装置、语音交互系统、交通工具及介质

技术领域

[0001] 本申请涉及交通领域,特别涉及一种语音交互方法、语音交互装置、语音交互系统、交通工具及计算机可读存储介质。

背景技术

[0002] 随着交通工具的智能化,交通工具的应用程序与用户的交互越来越频繁,而通过语音交互界面(Voice User Interface,VUI)的方式相较于用户手动操作图形用户界面
(Graphical User Interface,GUI)的交互方式,提高了驾驶的安全性。在语音交互方式中,
当用户通过语音交互对GUI页面的控件进行操作使得控件属性发生改变时,须将这些变化
进行实时更新,目前往往需要业务端在处理GUI页面变动的同时需要实现语音交互场景的
更新,人工及维护成本较高,且在增加的业务的代码量同时也增加了代码的侵入性。

发明内容

[0003] 有鉴于此,本申请实施方式提供了一种语音交互方法、语音交互装置、语音交互系统、交通工具及计算机可读存储介质。
[0004] 本申请提供了一种语音交互方法,包括:
[0005] 响应于对图形用户界面中的控件操作所对应的控件属性的改变,根据所述改变更新所述控件属性对应的第一语音交互属性以得到第二语音交互属性;
[0006] 根据所述第二语音交互属性生成与所述控件对应的更新后的场景元素信息;
[0007] 根据所述场景元素信息更新语音用户界面以生成更新后的语音用户界面中的场景片段;
[0008] 接收场景事件进行语音交互,所述场景事件根据语音请求及所述场景片段生成。
[0009] 在某些实施方式中,所述语音交互方法在所述响应于对图形用户界面中的控件操作所对应的控件属性的改变前还包括:
[0010] 在所述图形用户界面的状态为初始化的情况下导入在先创建的控件更新监听接口;
[0011] 在所述图形用户界面的状态由所述初始化转为显示的情况下,获取所述图形用户界面的控件列表,所述控件列表包括所述控件;
[0012] 将所述控件更新监听接口添加至所述控件。
[0013] 在某些实施方式中,所述将所述控件更新监听接口添加至所述控件包括:
[0014] 在所述控件为语音交互控件的情况下,将所述控件更新监听接口添加至所述控件。
[0015] 在某些实施方式中,所述将所述控件更新监听接口添加至所述控件还包括:
[0016] 在所述控件对应的在先构建的场景元素信息有效的情况下,将所述控件更新监听接口添加至所述控件。
[0017] 在某些实施方式中,所述响应于对图形用户界面中的控件操作所对应的控件属性的改变前还包括:
[0018] 在所述控件包含子级控件的情况下,获取所述控件的所述子级控件;
[0019] 将所述控件更新监听接口添加至所述子级控件。
[0020] 在某些实施方式中,所述根据所述第二语音交互属性生成与所述控件对应的更新后的场景元素信息包括:
[0021] 在所述控件更新监听接口不为空的情况下,回调所述控件更新监听接口的语音交互更新方法;
[0022] 在所述语音交互更新方法中调用场景元素更新接口;
[0023] 根据所述场景元素更新接口获取所述第二语音交互属性并根据所述第二语音交互属性生成所述更新后的场景元素信息。
[0024] 在某些实施方式中,所述根据所述场景元素更新接口获取所述第二语音交互属性并根据所述第二语音交互属性生成所述更新后的场景元素信息包括:
[0025] 创建更新任务类;
[0026] 在所述更新任务类中调用所述场景元素更新接口以获取所述第二语音交互属性;
[0027] 根据所述第二语音交互属性生成所述更新后的场景元素信息。
[0028] 在某些实施方式中,所述方法还包括:
[0029] 根据所述更新获取所述图形用户界面场景的场景基本信息;
[0030] 所述根据所述场景元素信息更新语音用户界面以生成更新后的语音用户界面中的场景片段包括:
[0031] 根据所述场景基本信息与所述场景元素信息更新所述语音用户界面以生成更新后的所述场景片段。
[0032] 本申请还提供了一种语音交互场景的自动更新装置,包括:
[0033] 更新模块,用于在所述语音请求包含对图形用户界面中控件的控件属性的更新请求的情况下,根据所述更新请求按照第一预定策略更新所述控件属性对应的第一语音交互
属性以得到第二语音交互属性;
[0034] 第一生成模块,用于根据所述第二语音交互属性生成更新后的所述场景元素信息;
[0035] 第二生成模块,用于根据所述更新场景元素信息生成更新语音交互场景以更新所述图形用户界面对应的所述语音交互场景;
[0036] 接收模块,用于接收场景事件进行语音交互,所述场景事件根据所述语音请求及所述语音交互场景生成。
[0037] 本申请还提供了一种语音交互系统,所述语音交互系统包括交通工具及服务器;
[0038] 所述交通工具响应于对图形用户界面中的控件操作所对应的控件属性的改变,根据所述改变更新所述控件属性对应的第一语音交互属性以得到第二语音交互属性,根据所
述第二语音交互属性生成与所述控件对应的更新后的场景元素信息,根据所述场景元素信
息更新语音用户界面以生成更新后的语音用户界面中的场景片段;及
[0039] 接收语音请求并将所述语音请求上传至所述服务器;
[0040] 所述服务器用于根据所述语音请求生成场景事件并下发至所述交通工具;
[0041] 所述交通工具还用于接收场景事件进行语音交互,所述场景事件根据语音请求及所述场景片段生成。
[0042] 本申请还提供了一种交通工具,所述交通工具包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,实现上述任一项所述的语音
交互方法。
[0043] 本申请还提供一种非易失性计算机可读存储介质,当所述计算机程序被一个或多个处理器执行时,实现上述任一项实施例中所述的语音交互方法。
[0044] 本申请通过响应于对图形用户界面中的控件操作所对应的控件属性的改变,根据改变更新控件属性对应的第一语音交互属性以得到第二语音交互属性,根据第二语音交互
属性生成与控件对应的更新后的场景元素信息,根据场景元素信息更新语音用户界面以生
成更新后的语音用户界面中的场景片段,接收场景事件进行语音交互,场景事件根据语音
请求及场景片段生成。使得在图形用户界面中有控件属性改变时,可自动根据改变的属性
生成语音交互界面中的场景元素信息,并通过生成场景片段以进行语音交互。
[0045] 本申请实施方式的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。

附图说明

[0046] 本申请的上述和/或附加的方面和优点可以从结合下面附图对实施方式的描述中将变得明显和容易理解,其中:
[0047] 图1是本申请某些实施方式的语音交互方法的流程示意图;
[0048] 图2是本申请某些实施方式的语音交互装置的模块示意图;
[0049] 图3是本申请某些实施方式的语音交互方法的流程示意图;
[0050] 图4是本申请某些实施方式的语音交互装置的模块示意图;
[0051] 图5是本申请某些实施方式的语音交互方法的流程示意图;
[0052] 图6是本申请某些实施方式的语音交互方法的示例图;
[0053] 图7是本申请某些实施方式的语音交互方法的流程示意图;
[0054] 图8是本申请某些实施方式的语音交互方法的流程示意图;
[0055] 图9是本申请某些实施方式的语音交互方法的流程示意图;
[0056] 图10是本申请某些实施方式的语音交互方法的流程示意图;
[0057] 图11是本申请某些实施方式的语音交互方法的流程示意图;
[0058] 图12是本申请某些实施方式的语音交互装置的模块示意图;
[0059] 图13‑a、13‑b是本申请某些实施方式的语音交互方法的示例图。

具体实施方式

[0060] 下面详细描述本申请的实施方式,实施方式的示例在附图中示出,其中,相同或类似的标号自始至终表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附
图描述的实施方式是示例性的,仅用于解释本申请的实施方式,而不能理解为对本申请的
实施方式的限制。
[0061] 请参阅图1,本申请提供了一种语音交互方法,包括:
[0062] 01:响应于对图形用户界面中的控件操作所对应的控件属性的改变,根据改变更新控件属性对应的第一语音交互属性以得到第二语音交互属性;
[0063] 02:根据第二语音交互属性生成与控件对应的更新后的场景元素信息;
[0064] 03:根据场景元素信息更新语音用户界面以生成更新后的语音用户界面中的场景片段;
[0065] 04:接收场景事件进行语音交互,场景事件根据语音请求及场景片段生成。
[0066] 相应地,请参阅图2,本申请实施方式还提供了一种语音交互装置100,本申请实施方式的语音交互方法可以由语音交互装置100实现。语音交互装置100包括更新模块110、第
一生成模块120、第二生成模块130、及接收模块140。步骤01可以由更新模块110实现,步骤
02可以由第一生成模块120实现,步骤03可以由第二生成模块130实现,步骤04可以由接收
模块140实现。或者说,创建模块110用于响应于对图形用户界面中的控件操作所对应的控
件属性的改变,根据改变更新控件属性对应的第一语音交互属性以得到第二语音交互属
性。第一生成模块120用于根据第二语音交互属性生成与控件对应的更新后的场景元素信
息。第二生成模块130用于根据场景元素信息更新语音用户界面以生成更新后的语音用户
界面中的场景片段。接收模块140用于接收场景事件进行语音交互。
[0067] 本申请实施方式还提供了一种交通工具。交通工具包括存储器和处理器。存储器中存储有计算机程序,处理器用于响应于对图形用户界面中的控件操作所对应的控件属性
的改变,根据改变更新控件属性对应的第一语音交互属性以得到第二语音交互属性,根据
第二语音交互属性生成与控件对应的更新后的场景元素信息,根据场景元素信息更新语音
用户界面以生成更新后的语音用户界面中的场景片段,接收场景事件进行语音交互。
[0068] 具体地,交通工具包括具有图形用户界面显示的屏幕,以及可进行语音交互的语音识别设备。可包括车辆、飞行汽车、高速列车等交通工具。以车辆为例,车辆包括显示区域
和处理器。车辆的显示区域可以包括仪表屏、车载显示区域屏幕以及车辆挡风玻璃上可以
实现的抬头显示等。车辆上运行的车载系统使用图形用户界面(Graphical User 
Interface,GUI)为用户呈现展示的内容。显示区域包括诸多UI元素,不同的显示区域可以
展示相同或不同的UI元素。其中,UI元素可以包括卡片对象、应用程序图标或界面、文件夹
图标、多媒体文件图标以及用于进行交互可操作的控件等。
[0069] 语音交互方法包括通过语音交互界面(Voice User Interface,VUI)可以实现人与设备之间的语音交互。设备可包括具有显示GUI界面的显示设备的交通工具。
[0070] 以下为便于描述,以车辆为例进行实施例展开。
[0071] 具体地,在步骤01中,响应于对图形用户界面中的控件操作所对应的控件属性的改变。其中,对图形用户界面中的控件操作包括用户通过语音指令命中显示的GUI页面上任
意控件。对图形用户界面中的控件操作所对应的控件属性的改变,包括根据用户的语音指
令内容命中任意控件并对控件任意属性执行改变操作。
[0072] 在一个例子中,图形用户界面为蓝牙设置页面,控件为蓝牙设置页面的蓝牙开关。在蓝牙页面显示时,用户发出语音指令“打开蓝牙开关”以对控件“蓝牙开关”进行操作,其
操作内容为改变控件“蓝牙开关”的开关属性由“关”更新为“开”。
[0073] 进一步地,当有控件属性的改变时,根据改变更新控件属性对应的第一语音交互属性以得到第二语音交互属性。
[0074] 在某些实施方式中,预先创建有用于应用程序的UI控件库。其中,UI控件库为根据实际应用程序的封装的Android UI组件库,UI控件库可包括UI公控库,也可包括根据实际
的应用程序由UI公控库而专门生成的与应用程序对应的UI控件库。在UI控件库中包括GUI
页面中所有控件的属性设置。同时,在UI控件库中包括根据控件view的属性扩展有控件
view的语音交互控件Vuiview,以及通过接口实现的方式扩展的语音交互属性Vui属性。则
在响应于控件属性改变时,应用程序会调用需要改变的控件view中相关接口改变属性,如
蓝牙开关的SetCheck接口,通过Set方法将蓝牙开关的属性“off”更新为“on”。同时,UI控件
库在Vuiview对应的接口中更新原有的第一语音交互属性为更新后的第二语音交互属性。
[0075] 优选地,请参阅图3,在某些实施方式中,语音交互方法在步骤01之前还包括:
[0076] 05:在图形用户界面的状态为初始化的情况下导入在先创建的控件更新监听接口;
[0077] 06:在图形用户界面的状态由初始化转为显示的情况下,获取图形用户界面的控件列表,控件列表包括控件;
[0078] 07:将控件更新监听接口添加至控件。
[0079] 请参阅图4,在某些实施方式中,语音交互装置100还包括添加模块150。步骤05‑07可以由添加模块150来实现。或者说,添加模块150用于在图形用户界面的状态为初始化的
情况下导入在先创建的控件更新监听接口,在图形用户界面的状态由初始化转为显示的情
况下,获取图形用户界面的控件列表,控件列表包括控件,将控件更新监听接口添加至控
件。
[0080] 在某些实施方式中,处理器用于在图形用户界面的状态为初始化的情况下导入在先创建的控件更新监听接口,在图形用户界面的状态由初始化转为显示的情况下,获取图
形用户界面的控件列表,控件列表包括控件,将控件更新监听接口添加至控件。
[0081] 具体地,在响应于GUI中的控件操作所对应的控件属性的改变事件之前,在控件中添加控件更新监听接口。其中,控件更新监听接口用于监听控件的属性变化。添加控件更新
监听接口可在VuiEngine SDK中添加。
[0082] 需要说明的是,本申请建立在预先创建VuiEngine SDK,添加接口在VuiEngine SDK中实现。
[0083] 在一 个例子中 ,可通过 创建Vu iCom mon程 序包 ,在其中定 义VuiViewChangedListener接口即控件更新监听接口,以及IVuiView接口,其中,IVuiView中
定义了语音交互属性的set/get方法。同时,通过此IVuiView接口UI控件库和VuiEngine 
SDK建立关联关系以防止VuiEngine SDK中依赖UI控件库,导致业务app包的臃肿。
[0084] 具体地,可在应用程序初始化或应用程序的GUI页面初始化时将预在先创建的控件更新监听接口生成一个对象实例。页面初始化包括一个应用程序在进程刚启动时进入此
页面。同时,在页面初始化时可注册场景,即就是将页面的基础信息如场景ID、Vuiview信息
等进行注册并存储。注册场景时导入控件更新监听接口。
[0085] 在一个例子中 ,导航APP中包括在先创建的控件更新监听接口VuiViewChangedListener,在导航APP启动时进入导航首页,此时生成一个
VuiViewChangedListener对象实例。同时对此页面注册场景,在注册场景时传入
VuiViewChangedListener对象。
[0086] 进一步地,在步骤06,当图形用户界面的状态由初始化转为显示时,即就是当前GUI页面由先前的初始化状态转为可见,或者说由先前的初始化状态转为在前台可以接受
用户的手动点击等交互的状态。在某些实施方式中,GUI页面具有生命周期管理,当页面初
始化时State=init,当页面为可见时State=active,即当State由init转为active时,可表
征图形用户界面的状态由初始化转为显示。
[0087] 在图形用户界面的状态由初始化转为显示的情况下,可获取图形用户界面的控件列表,控件列表包括控件。可以理解,应用程序中的每个图形用户界面GUI中具有控件列表,
控件列表中包含多个控件。而各UI控件view及其控件view的属性可从UI控件库中调用。每
一个页面的图形用户界面GUI中具有多个控件view,其中控件为公知含义的GUI控件,如目
录Text(文本),Edit(文本编辑区),UpDown(增减按钮组),Picture(图片),Button(按钮),
Checkbox(多选按钮)等控件。
[0088] 遍历控件列表中的 每一个控件,并将导入的控件更新监听接口VuiViewChangedListener添加至控件中。
[0089] 需要说明的是 ,在其 它状态转为可见状态时 ,无需对控件添 加VuiViewChangedListener。如当先前状态State=active,后变为State=deactive,再变更为
State=active时,无需再次添加VuiViewChangedListener,因之前init转为active时已经
添加过。
[0090] 需要说明的是,在某些实施方式中,当图形用户界面的状态由初始化转为显示时,对页面的语音交互场景进行场景构建。当语音交互场景构建完成后,在此GUI页面显示时,
用户可于GUI页面进行语音交互操作。此处不对场景构建进行赘述。本申请的语音交互建立
在场景构建已经完成的基础上。
[0091] 如此,通过在先创建控件更新监听接口,并在特殊的状态下导入接口并将接口添加至控件中,可使得控件更新监听接口可监听控件的属性更新。在控件有属性更新的情况
下,控件更新监听接口可进行相应操作如通过更新update方法使得语音用户界面(Voice 
User Interface,VUI)进行相应更新。
[0092] 优选地,请参阅图5,在某些实施方式中,步骤07还包括:
[0093] 071:在控件为语音交互控件的情况下,将控件更新监听接口添加至控件。
[0094] 在某些实施方式中,步骤071可以由添加模块150来实现。或者说,添加模块150用于在控件为语音交互控件的情况下,将控件更新监听接口添加至控件。
[0095] 在某些实施方式中,处理器用于在控件为语音交互控件的情况下,将控件更新监听接口添加至控件。
[0096] 具体地,获取GUI页面的控件列表后,遍历所有控件,进行判断逻辑判断控件是否为语音交互控件Vuiview。Vuiview包括可进行语音交互的控件。在GUI页面中,并非所有控
件都可进行语音交互,当控件需要进行语音交互时,将控件更新监听接口添加至控件。判断
控件是否可进行语音交互,可通过查询是否扩展判定当前控件是否为语音交互控件
Vuiview。当控件不为语音交互控件时,可停止将控件更新监听接口添加至控件。
[0097] 在一个例子中,请参阅图6,图为“声音”的GUI页面,其中,文本控件“音量调节”为提示信息控件,不属于语音交互控件。“安全提示音”中的“小”、“中”、“大”选项的多选按钮
控件则为语音交互控件,例如用户可通过语音指令“设置安全提示音为中”操作此控件设置
为“中”。
[0098] 如此,通过判断逻辑,可避免将不需要进行语音交互的控件添加控件更新监听接口,有效地避免了无效的添加,提高了效率。
[0099] 优选地,请参阅图7,在某些实施方式中,步骤071还包括:
[0100] 0711:在控件对应的在先构建的场景元素信息有效的情况下,将控件更新监听接口添加至控件。
[0101] 在某些实施方式中,步骤0711可以由添加模块150来实现。或者说,添加模块150用于在控件对应的在先构建的场景元素信息有效的情况下,将控件更新监听接口添加至控
件。
[0102] 在某些实施方式中,处理器用于在控件对应的在先构建的场景元素信息有效的情况下,将控件更新监听接口添加至控件。
[0103] 具体地,当控件为语音交互控件时,可再判断在先构建的场景元素信息是否有效。其中,在先构建的场景元素信息与各控件一一对应,可在在先的VUI场景构建中根据语音交
互属性生成与控件对应的场景元素信息VuiElement。例如,将各语音交互属性生成
VuiElement,并添加到生成的数结构中,最终形成此图形用户界面的语音交互场景的信息。
[0104] 在一个例子中,对于GUI页面中一个语音交互控件“详情”,生成VuiElement:
[0105] "elements":[{
[0106] "elements":[{"id":"2131296983_0", "label":"详情", "layoutLoadable":true,
[0107] "resourceName":"id/x_list_action_button_icon",  "timestamp":1623830168531,
[0108] "type":"ImageButton"}],
[0109] "fatherLabel":"选取网络","id":"2131296955_0","label":"第1个|AI‑Test",
[0110] "layoutLoadable":true,"resourceName":"id/wifi_item_two","timestamp":1623830168531,"type":"Group"},{"actions":{ "Click":{ "actType":"Select", "
bizType":"Connect"}
[0111] 此控件对应的场景元素信息在VUI场景构建时生成,此时需判断在先生成的场景元素信息是否有效的。可通过查询VUI场景信息得到结果,在场景元素信息有效的情况下再
将控件更新监听接口添加至控件。而在场景元素信息无效的情况下可停止添加。
[0112] 需要说明的是,判断控件是否为语音交互控件与判断场景元素信息是否有效并无顺序的限制,本实施例仅为说明两种判断逻辑而进行前后的描述。在某些实施方式中,也可
先判断场景元素信息是否有效,在场景元素信息无效的情况下,不再继续判断并停止添加
接口。在场景元素信息有效的情况下再判断控件是否为语音交互控件。当控件为语音交互
控件时,将控件更新监听接口添加至控件。当控件不为语音交互控件时,可停止将控件更新
监听接口添加至控件。
[0113] 如此,通过判断逻辑,可避免将对应场景元素信息无效的控件添加控件更新监听接口,有效地避免了无效的添加,提高了效率。
[0114] 优选地,请参阅图8,在某些实施方式中,步骤01前还包括:
[0115] 08:在控件包含子级控件的情况下,获取控件的子级控件;
[0116] 相应地,步骤07还包括:
[0117] 072:将控件更新监听接口添加至子级控件。
[0118] 在某些实施方式中,步骤08和09可以由添加模块150来实现。或者说,添加模块150用于在控件包含子级控件的情况下,获取控件的子级控件,将控件更新监听接口添加至子
级控件。
[0119] 在某些实施方式中,处理器用于在控件包含子级控件的情况下,获取控件的子级控件,将控件更新监听接口添加至子级控件。
[0120] 可以理解,控件具有层级关系,控件具有子级控件。如设声音GUI下有音量控件、媒体音量控件等,音量控件下有调节按钮,调节按钮下有“大、中、小”选项,则调节按钮控件的
子级控件为“大、中、小”控件。
[0121] 在将控件更新监听接口添加至控件view后,可继续判断该控件是否包含子级控件子view,若包含子view,则递归循环子view信息,并将控件更新监听接口添加至子级控件。
若此控件view不包含子view,则当前控件添加完成,继续下一个控件的控件更新监听接口
添加。
[0122] 在某些实施方式中,若控件包含子级控件,可进一步地判断该子级控件是否为语音交互控件,以及该子级控件对应的VUI场景元素信息是否有效,当子级控件为语音交互控
件和/或该子级控件对应的VUI场景元素信息有效的情况下,将控件更新监听接口添加至该
子级控件。
[0123] 如此,在添加控件更新监听接口时对控件循环递归子控件,在一定程度上赋予了图形用户界面3D空间的父子关系,从而使得后续的语音交互场景具有三维空间信息供语音
操控,当语音指令指定控件时可有效地命中用户所需的操作,提升用户体验。
[0124] 如上所述,当图形用户界面中控件有属性的改变时,根据改变更新控件属性对应的第一语音交互属性以得到第二语音交互属性,此时控件中的控件更新监听接口监听到语
音交互属性的改变。在步骤02中,通过相应的接口和更新方法对控件对应的场景元素信息
进行更新以得到更新后的场景元素信息。
[0125] 优选地,请参阅图9,在某些实施方式中,步骤02包括:
[0126] 021:在控件更新监听接口不为空的情况下,回调控件更新监听接口的语音交互更新方法;
[0127] 022:在语音交互更新方法中调用场景元素更新接口;
[0128] 023:根据场景元素更新接口获取第二语音交互属性并根据第二语音交互属性生成更新后的场景元素信息。
[0129] 在某些实施方式中,步骤021‑023可以由第一生成模块120来实现。或者说,第一生成模块120用于在控件更新监听接口不为空的情况下,回调控件更新监听接口的语音交互
更新方法,在语音交互更新方法中调用场景元素更新接口,根据场景元素更新接口获取第
二语音交互属性并根据第二语音交互属性生成更新后的场景元素信息。
[0130] 在某些实施方式中,处理器用于在控件更新监听接口不为空的情况下,回调控件更新监听接口的语音交互更新方法,在语音交互更新方法中调用场景元素更新接口,根据
场景元素更新接口获取第二语音交互属性并根据第二语音交互属性生成更新后的场景元
素信息。
[0131] 如上所述,在图形用户界面的状态由初始化转为显示的情况下,已在控件中添加了控件更新监听接口,在当GUI页面中有控件的控件属性发生变化时,如蓝牙开关从“开”更
新至“关”。可判断控件更新监听接口是否为空,或者说判断控件更新监听接口是否已经添
加至该控件。当控件更新监听接口为空时,说明该控件并未添加控件更新监听接口,则停止
更新。若不为空时,回调控件更新监听接口的语音交互更新方法,并在语音交互更新方法中
调用场景元素更新接口。
[0132] 在一个例子中,用户语音发出“打开蓝牙开关”的指令,相应的自然语言理解模块接收、识别并理解该指令,UI控件库应用程序包通过依赖创建的VuiCommon,在UI控件库中
调用“setCheck”接口更新属性value为“关”,更新属性后,判断VuiViewChangedListener不
为空,然后回调控件的VuiViewChangedListener对象实例的语音交互更新方法如
updateVui。
[0133] 进一步地,应用程序通过回调VuiViewChangedListener的updateVui,在方法中输入GUI页面的场景信息如场景ID、控件ID等参数,然后调用VuiEngine SDK中的场景元素更
新接口进行场景元素信息的更新。
[0134] 在步骤023中,根据场景元素更新接口获取第二语音交互属性并根据第二语音交互属性生成更新后的场景元素信息。
[0135] 优选地,请参阅图10,在某些实施方式中,步骤023包括:
[0136] 0231:创建更新任务类;
[0137] 0232:在更新任务类中调用场景元素更新接口以获取第二语音交互属性;
[0138] 0233:根据第二语音交互属性生成更新后的场景元素信息。
[0139] 在某些实施方式中,步骤0231‑0233可以由第一生成模块120来实现。或者说,第一生成模块120用于创建更新任务类,在更新任务类中调用场景元素更新接口以获取第二语
音交互属性,根据第二语音交互属性生成更新后的场景元素信息。
[0140] 在某些实施方式中,处理器用于创建更新任务类,在更新任务类中调用场景元素更新接口以获取第二语音交互属性,根据第二语音交互属性生成更新后的场景元素信息。
[0141] 具体地,可在VuiEngine SDK中创建更新任务类Task用于更新有属性变更的控件view对应的场景元素vuiElement,并在更新任务类中调用预设的场景元素更新接口
updateScene以获取第二语音交互属性,即可通过get方法获取到更新后的语音交互属性。
[0142] 进一步地,将更新后的语音交互属性即第二语音交互属性生成场景片段,即与控件对应的更新后的场景元素信息VuiElement。
[0143] 当生成与控件对应的更新后的场景元素信息后,在步骤03中,根据场景元素信息更新语音用户界面以生成更新后的语音用户界面中的场景片段。当生成与具有属性更新的
控件对应的场景元素信息后,根据场景元素信息可生成VUI的更新后的场景片段或语音交
互场景,并将场景片段缓存至本地或上传至云端。
[0144] 在某些实施方式中,还可判断是否在应用程序的内存中已经缓存了生成的场景片段,若存在则可进行场景片段的融合,如相同的场景元素信息可做属性的变更,不同的场景
元素则可做场景元素信息的合并,从而生成新的场景更新片段。若应用程序的内存中没有
缓存生成的场景片段,则直接生成场景更新片段。
[0145] 在某些实施方式中,还可判断当前时刻是否处于语音交互过程中。若处于语音交互过程中,则将生成的场景片段通过进程间通信传输到应用程序,再通过如http请求上传
到云端服务器,云端服务器可做进一步地处理如场景快照的更新。
[0146] 优选地,请参阅图11,在某些实施方式中,语音交互方法还包括:
[0147] 010:根据更新获取图形用户界面场景的场景基本信息;
[0148] 相应地,步骤03包括:
[0149] 031:根据场景基本信息与场景元素信息更新语音用户界面以生成更新后的场景片段。
[0150] 请参阅图12,在某些实施方式中,语音交互装置100还包括获取模块160。步骤010可以由获取模块160来实现。或者说,获取模块160用于根据更新获取图形用户界面场景的
场景基本信息。第二生成模块130用于根据场景基本信息与场景元素信息更新语音用户界
面以生成更新后的场景片段。
[0151] 在某些实施方式中,处理器用于根据更新获取图形用户界面场景的场景基本信息,根据场景基本信息与场景元素信息更新语音用户界面以生成更新后的场景片段。
[0152] 具体地,根据属性更新相应的控件,获取GUI对应场景的场景基本信息,包括场景ID等信息。然后与生成的更新场景元素信息VuiElement生成更新的场景片段。其中,场景基
本信息包括场景ID、Vui版本号,时间戳等场景信息。
[0153] 一个场景基本信息的例子如下:
[0154] "packageName":"com.xiaopeng.car.settings","sceneId":"com.xiaopeng.car.settings‑VV1.4.0_20210412194710_Release‑Wifi","timestamp":
1623830168550,"vuiVersion":"2.0"
[0155] 如此,通过结合场景基本信息生成更新的场景片段可迅速与GUI页面对应的VUI场景建立对应。同时,生成场景片段而非生成与页面对应的完整场景,可较快建立更新的片
段,提高更新场景的效率。
[0156] 进一步地,在步骤04中,接收场景事件进行语音交互,场景事件根据语音请求及场景片段生成。其中,场景事件包括用户在当前场景进行的语音交互事件。当用户进行语音交
互时,接收包括语音音频的语音请求,相关模块识别并理解用户指令,根据理解的用户指令
内容在本地缓存中查询相应的场景或场景片段,或发送至云端服务器中查询,本地或云端
服务器通过相应的处理逻辑如查询场景快照返回对应的控件操作指令,VuiEngine SDK根
据操作指令执行相应的操作。
[0157] 在某些实施方式中,用户在GUI显示时可对页面控件进行语音交互操作,操作的内容包括控件属性的改变如visible,selected,value等形式。操作的内容还可包括控件的点
击click方式,在这种情况下通过click控件从当前页面跳转至另一页面。可通过判断控件
操作的内容以确定是否执行本申请的场景元素信息更新。
[0158] 在一个例子中,请参阅图13‑a,当前GUI页面为“场景语音”界面,包括“返回”、“控制显示隐藏”、“控制添加删除”等控件。当前“控制显示隐藏”控件为“打开”状态。用户语音
输入“关闭控制显示隐藏”,判断当前语音指令为控件的属性改变。则本申请通过UI控件库
将属性由“打开”更新为“关闭”,通过回调VuiViewChangedListener的updateVui,将新的属
性“关闭”生成场景片段。请参阅图13‑b,当前“控制显示隐藏”控件为“关闭”状态。进一步
地,当用户语音输入“返回”,则不为控件的属性改变,而是页面跳转,通过执行点击click操
作,页面跳转进入“返回”关联的页面,进入此页面后可执行相应的逻辑,如判断是否需要对
此页面进行VUI场景构建,当需要进行VUI场景构建时,同时对场景对应的各控件添加
VuiViewChangedListener。
[0159] 需要说明的是,上述实施例中的应用程序是对具有图形用户界面GUI所在的程序载体的示例。本申请的语音交互方法可对应用程序的GUI页面中的控件属性的变化进行自
动构建VUI场景片段。在某些实施方式中,应用程序还可包括小程序应用,小程序应用的控
件可在预先创建的UI控件库中对小程序的GUI页面构建VUI场景,及对小程序的控件添加相
应的控件更新监听接口。当由应用程序进入小程序的GUI页面,用户通过语音交互的方式更
新小程序GUI页面的控件属性时,VuiEngine SDK获取更新的属性并生成场景片段。小程序
及其它具有图形用户界面GUI的程序种类可视为本申请中应用程序的简单替换。
[0160] 本申请还提供了一种语音交互系统,语音交互系统包括交通工具及服务器,交通工具包括预先创建用于应用程序的UI控件库。
[0161] 交通工具响应于对图形用户界面中的控件操作所对应的控件属性的改变,根据改变更新控件属性对应的第一语音交互属性以得到第二语音交互属性,根据第二语音交互属
性生成与控件对应的更新后的场景元素信息,根据场景元素信息更新语音用户界面以生成
更新后的语音用户界面中的场景片段;及
[0162] 进一步地,当用户有语音请求时,接收语音请求并将语音请求上传至服务器,服务器根据语音请求查询场景快照,查询到匹配的场景快照后生成场景事件并下发至交通工
具。
[0163] 交通工具接收到场景事件后根据场景事件中进行逻辑处理以执行语音请求中的操作。
[0164] 本申请实施方式还提供了一种计算机可读存储介质。一个或多个存储有计算机程序的非易失性计算机可读存储介质,当计算机程序被一个或多个处理器执行时,实现上述
任一实施方式的语音交互方法。本领域普通技术人员可以理解实现上述实施例方法中的全
部或部分流程,是可以通过计算机程序来指令相关的软件来完成。程序可存储于一非易失
性计算机可读存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中存
储介质可为磁碟、光盘、只读存储记忆体(Read‑Only Memory,ROM)等。
[0165] 如此,本申请通过响应于对图形用户界面中的控件操作所对应的控件属性的改变,根据改变更新控件属性对应的第一语音交互属性以得到第二语音交互属性,根据第二
语音交互属性生成与控件对应的更新后的场景元素信息,根据场景元素信息更新语音用户
界面以生成更新后的语音用户界面中的场景片段,接收场景事件进行语音交互,场景事件
根据语音请求及场景片段生成。至少具有以下有益效果:
[0166] 一、在图形用户界面中有控件属性改变时,可自动根据改变的属性生成语音交互界面中的场景元素信息,并通过生成场景片段以进行语音交互。
[0167] 二、通过VuiEngine SDK在场景注册或构建场景时自动为GUI页面的控件添加控件更新监听接口,并在特殊的状态下导入接口并将接口添加至控件中,可使得控件更新监听
接口可监听控件的属性更新。在控件有属性更新的情况下,控件更新监听接口可进行相应
操作如通过更新update方法使得语音用户界面(Voice User Interface,VUI)进行相应更
新。
[0168] 三、在添加控件更新监听接口时对控件循环递归子控件,在一定程度上赋予了图形用户界面3D空间的父子关系,从而使得后续的语音交互场景具有三维空间信息供语音操
控,当语音指令指定控件时可有效地命中用户所需的操作,提升用户体验。
[0169] 四、在业务端无需根据各控件的各属性和状态的变化去维护场景更新,本申请可在构建场景时通过VuiEngine SDK自动为属性和状态有变化的控件添加控件更新监听接
口。
[0170] 五、通过UI控件库将VUI对应的语音交互属性和状态变化在UI控件库里做了封装,使得在更新场景元素信息时无需判断控件的具体哪些属性和状态变化,而仅需执行获取并
生成新的场景元素信息。有效地降低了业务代码的维护成本和代码的侵入性。
[0171] 在本说明书的描述中,参考术语“一个实施方式”、“一些实施方式”、“示意性实施方式”、“示例”、“具体示例”或“一些示例”等的描述意指结合所述实施方式或示例描述的具
体特征、结构、材料或者特点包含于本申请的至少一个实施方式或示例中。在本说明书中,
对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结
构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。此外,在
不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及
不同实施例或示例的特征进行结合和组合。同时,参考术语“第一”、“第二”等的描述意在将
同类或相似操作区别开来,“第一”与“第二”之间在某些实施方式中具有前后逻辑关系,在
某些实施方式中并不一定具有逻辑或前后关系,需要根据实际实施例进行判定,不应该仅
通过字面意思进行判定。
[0172] 流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部
分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺
序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请
的实施例所属技术领域的技术人员所理解。
[0173] 尽管上面已经示出和描述了本申请的实施方式,可以理解的是,上述实施方式是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对
上述实施方式进行变化、修改、替换和变型。