具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示为本发明一实施例提供的一种在语音对话平台的技能中添加控件的方法的流程图,包括如下步骤:
S11:当开发者在创建技能时,提供控件类型列表,其中,所述控件类型列表包括至少一种预设类型控件和一个自定义控件;
S12:当开发者选择其中一种预设类型控件时,在控件名称框内生成默认名称,并在API资源输入框中提供与所述预设类型控件相关的至少一种推荐Web API;
S13:当开发者选择自定义控件时,提供空白的控件名称框、控件上传按钮、以及空白的API资源输入框,其中,所述控件名称框能够供开发者输入自定义控件名称,所述控件上传按钮供开发者上传本地存储的控件的数据包,所述API资源输入框能够供开发者输入自定义Web API。
在本实施方式中,该方法用于在语音对话平台的技能中添加控件,其中,控件是在语音对话平台在定制对话的流程中,辅助语音的回复,将语音回复中更加详细的数据信息,并按照一定的展现方式,以更具可视化的方式呈现给语音技能使用者。不同类型的控件可以用于描述不同的对话交互流程。
对于步骤S11,例如,开发者创建一个查询天气的技能时,该查询天气技能不但能够提供今天的天气情况,还能够以界面的方式,提供近一周的天气后的播报给语音技能使用者。开发者想要创建这种带有辅助语音回复的技能时,就需要用到控件进行辅助。当开发者在语音对话平台中的选择控件界面选择“有屏幕”时,可以激活控件类型的菜单,因为控件是需要通过有屏幕的终端展现出来,有了确认终端具有屏幕后,才能给予控件展示的空间。在开发者确定“有屏幕”后,点击控件菜单时,语音对话平台会生成控件的列表供开发者选择。如图2所示,当开发者点击控件类型时候,语音对话平台会提供控件列表供开发者选择,其中,控件列表中的控件类型包括图文卡片、列表、音乐播放、内嵌网页以及自定义控件。
其中,图文卡片控件是一种可同时展现文字和图片的控件样式,可应用于百科等场景。开发者可以通过设置按钮,完成对内容卡片拓展功能的创建,支持设置1-4个按钮;列表控件是以表单的形式展现返回数据的控件,支持文字和图片的展示。所述控件可应用于天气、导航等多种场景。音乐播放控件主要应用于需要播放音频的场景,可展示歌手、歌曲名及封面图片。设有播放、暂停按钮;内嵌网页控件是一种可在对话页面展示网页的控件。
对于步骤S12,当开发者选择图文卡片、列表、音乐播放、内嵌网页中的任一种预设类型的控件时,在控件名称框内会生成该控件的默认名称。例如,开发者选择“列表”控件时,控件名称框中会自动生成“default”的名称,并且,在API(Application ProgrammingInterface,应用程序编程接口)资源输入框中提供与“列表”控件相关的推荐Web API(WebApplication Programming Interface,网络应用程序编程接口),例如“周边查找”、“天气查询”、“美食查询”,这些类型API资源都可以通过“列表”控件达到最佳的效果。如图3所示,当控件类型选择列表时,API资源的推荐列表如下。根据步骤S11所述,例如开发者想要创建查询天气的技能,就可以选择列表控件与“天气查询”Web API进行组合。从而达到当技能使用者在查询天气时,不但为技能使用者提供当日天气的语音播报,同时还在屏幕终端提供了以列表形式排列的一周内的天气情况。其中,查询一周内的天气情况需要有相应的WebAPI的支持。
对于步骤S13,当开发者选择自定义控件时,语音对话平台提供了空白的控件名称框,供开发者自行输入所述自定义控件的名称,同时,语音对话平台还提供了控件上传按钮,所述控件上传按钮是为了供开发者上传本地存储的自定义控件的数据包。由于开发者选择的控件类型为自定义控件,语音对话平台无法确定哪些Web API资源与自定义控件相匹配,所以,API资源输入框为空,由开发者自行输入。
结合上述步骤,作为一个整体的系统时,可以分为控件选择程序模块与资源调用程序模块。
结合图2与图3,当开发者点击控件选择模块中的控件类型时,语音对话平台会在控件选择程序模块中生成控件类型列表,以供开发者进行选择。当开发者选择了图文卡片、列表、音乐播放、内嵌网页中任一项控件类型时,例如开发者选择了“列表”,控件选择程序模块中的控件名称框内生成默认的名称“default”,并且联动的资源调用程序模块中,不使用数据资源选项消失,自动跳转至使用API资源选项。同时,资源调用模块获取到控件选择模块中开发者选择的控件类型,在API资源输入框中提供与“列表”相关的推荐开发者使用的Web API。
而当开发者在控件选择程序模块中选择了自定义时,控件名称框的文字会清空,以供用户填写自定义的控件名称。并且控件选择程序模块还提供了控件上传按钮。开发者通过点击控件上传按钮来将本地的自定义控件上传。与此同时,资源调用程序模块获取到开发者在控件选择程序模块中选择了自定义时,仅提供空白的API资源输入框,以供用户输入API资源地址。
通过该实施方法可以看出,本实施方法提供了一种在语音对话平台的技能中添加控件的方法,在开发者点击控件菜单时,提供了多种类型的控件,让开发者可以了解到有哪些预设类型可以进行选择,同时,还提醒了开发者,该语音对话平台可以进行控件自定义。通过将语音对话平台开放自定义控件,从而达到可以满足各种特殊要求的开发者的个性需求。进而开发者通过该语音对话平台可以开发出形形色色的技能。
作为一种实施方式,在本实施例中,响应于开发者点击所述控件上传按钮,生成上传界面,所述上传界面中包括用于选择控件路径的交互按键和用于访问自定义控件的制作参考资料的链接地址,其中所述制作参考资料包括制作自定义控件的说明文档和参考工程文件。
在本实施方式中,当开发者点击控件上传按钮时,语音对话平台会响应于开发者点击控件上传按钮,生成自定义控件的上传界面。如图4所示,开发者会看到语音对话平台生成的自定义控件的上传界面,所述上传控件界面上有上有选择文件按键、以及查看说明文档和下载参考工程的链接地址。
例如,开发者需要对查询天气的技能设计的一套独特样式的自定义控件“template-master-weather”,当开发者自行开发出了自定义控件“template-master-weather”后,通过点击选择文件按键,会生成选择控件路径界面,通过本地存储的路径,找到“template-master-weather”文件进行上传。
为了帮助开发者了解语音对话平台适用什么类型的控件,在自定义控件上传界面还附有自定义控件的说明文档和自定义控件的参考工程。通过将说明文档与自定义控件的参考工程摆放在上传控件的必经之路上,可以使开发者更容易找到。
当开发者首次接触关于自定义控件时,还可以通过点击参考工程,进行下载参考工程文件。开发者根据所述参考工程,可以更快的了解语音对话平台的运行环境,以及自定义控件的结构,同时也可以直接对该参考工程文件进行修改,从而达到快速编写自定义控件。
通过该实施方式可以看出,通过在上传自定义控件界面上附加自定义控件的说明文档与参考工程,可以帮助开发者在语音对话平台的技能中添加自定义控件时,了解了自定义控件的一系列信息,帮助开发者更快的了解在所述语音对话平台的技能中的自定义控件的编写方式。同时,开发者可以根据所述参考工程快速的编写出一个自定义控件,提高了开发的效率。
作为一种实施方式,在本实施例中,当开发者点击所述说明文档的链接地址时,生成新的一个浏览页面,所述浏览页面至少包括:自定义控件的结构、内容、使用说明、开发流程以及注意事项;
当开发者点击所述参考工程文件的链接地址时,下载所述参考工程文件。
在本实施方式中,在开发者点击了上传界面的说明文档的连接地址时,会生成一个新的浏览页面,通过这个新的浏览页面可以看到自定义控件的开发说明。
其中,所述自定义控件的开发说明就详细的说明了关于开发自定义控件的使用说明、目录结构、开发流程、开发中的注意事项、一些相应参数名称以及参考文档。
使用说明中概述了本地开发的环境,如何在本地调用,以及如何在页面中看自己开发的效果;
目录结构中包含了自定义控件由哪些文件构成:
开发流程可以看到一些可调用代码以及开发的流程步骤;
开发中的注意事项中包括需要指定哪些参数来接收对话返回的数据,又是通过哪些参数来传递自定义控件;
一些相应参数名称包括指定控件类型widgetType参数,其中当widgetType为content时,控件类型为图文卡片、当widgetType为list时,控件类型为列表、widgetType为web时,控件类型为内嵌网页、widgetType为media时,空间类型为音乐播放。
参考文档为介绍编写自定义控件需要的计算机程序语言、框架的链接。
当开发者点击所述参考工程文件的链接地址时,语音对话平台会跳转到下载自定义控件的参考工程文件界面,通过选择存储路径,将参考工程文件下载到本地。
通过该实施方法可以看出,生成新的浏览页面可以保留开发过程中的界面,保证了开发者在查看说明文档的同时,自己开发技能的页面不会被跳转,避免了开发技能页面跳转,使得编写的数据丢失。同时根据自定义控件的开发说明,可以让开发者更快的了解自定义控件结构。提高了开发者的开发效率。
作为一种实施方式,在本实施例中,当接收到开发者上传的自定义控件的数据包后,将所述自定义控件在所述语音对话平台的运行环境中试运行;
若运行错误,报出错误类型。
在本实施方式中,语音对话平台在接收到开发者上传的自定义控件的数据包后进行解压,解压后,对所述自定义控件进行验证,验证其在语音对话平台中是否能正确运行。继续以上述步骤中上传的所述自定义控件“template-master-weather”为例,当语音对话平台接收到开发者上传的“template-master-weather”这一文件时,首先语音对话平台会对其文件进行解压,在解压后,会对其内部代码进行编译试运行。如果运行正确,那么即可在语音对话平台中使用该自定义控件。如果失败,那么报出错误类型的提示,以供开发者了解到错误在哪,便于修改。其中,错误类型的提示包括:上传的资源内容有误,无法正常读取、解压失败、网络异常、无法连接至服务器等。如图5所示,上传的自定义控件中资源内容有误,无法正常读取。
通过该实施方法可以看出,在开发者上传了语音对话平台无法运行的自定义控件时,语音对话平台提示开发者自定义控件是由于哪种类型的错误导致平台无法运行。通过对开发者给予错误的提示,从而帮助开发者定位自定义控件中存在问题部分。从而提高开发者的开发效率。
作为一种实施方式,在本实施例中,当接收到开发者上传的自定义控件的数据包后,将所述自定义控件解在所述语音对话平台的运行环境中试运行;
若运行正确,则将所述自定义控件应用于所述技能;
当待开发的产品采用语音对话平台的预设UI配置时,若对所述产品引入所述技能,则利用已上传的所述自定义控件的数据包加载所述技能的自定义控件的皮肤;
当待开发的产品采用语音对话平台的自定义UI配置时,若对所述产品引入所述技能,则利用所述自定义UI配置加载所述技能的自定义控件的皮肤。
在本实施方式中,继续以上述步骤中试运行上传的所述自定义控件“template-master-weather”为例,当运行正确时,所述查询天气的技能使用了所述自定义控件“template-master-weather”。将该查询天气的技能应用到待开发的语音对话产品中使用时,当待开发的语音对话产品采用语音对话平台预设的UI配置时,该语音对话产品引入了所述查询天气的技能,利用技能中的自定义控件“template-master-weather”的数据包,加载所述查询天气的技能的自定义控件“template-master-weather”的皮肤。当语音对话产品使用者在使用所述待开发语音对话产品时,语音对话产品会以自定义控件资源包来加载该控件的皮肤。
当待开发的语音对话产品采用语音对话平台的自定义UI配置时,该语音对话产品引入了所述查询天气的技能,并且利用所述自定义UI配置加载自定义控件的皮肤。这时,无论该产品的技能中引入了何种控件,在语音对话时,都会以产品的自定义UI配置加载所中技能中的各控件的皮肤。
通过该实施方法可以看出,当待开发的产品中采用了语音对话平台的预设UI配置时,会命中技能的控件进行个性化的输出,突出了每种技能的不同风格。而当待开发的产品采用语音对话平台的自定义UI配置时,由于已经对待开发的产品采用了统一的产品风格的UI配置,不能因为单独技能中的独特风格打破产品的统一风格,这样保证了产品的UI风格的一致性。
本发明实施例还提供了一种非易失性计算机存储介质,计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的在语音对话平台的技能中添加控件的方法;
作为一种实施方式,本发明的非易失性计算机存储介质存储有计算机可执行指令,计算机可执行指令设置为:
当开发者在创建技能时,提供控件类型列表,其中,所述控件类型列表包括至少一种预设类型控件和一个自定义控件;
当开发者选择其中一种预设类型控件时,在控件名称框内生成默认名称,并在API资源输入框中提供与所述预设类型控件相关的至少一种推荐Web API;
当开发者选择自定义控件时,提供空白的控件名称框、控件上传按钮、以及空白的API资源输入框,
其中,所述控件名称框能够供开发者输入自定义控件名称,所述控件上传按钮供开发者上传本地存储的控件的数据包,所述API资源输入框能够供开发者输入自定义WebAPI。
作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的测试软件的方法对应的程序指令/模块。一个或者多个程序指令存储在非易失性计算机可读存储介质中,当被处理器执行时,执行上述任意方法实施例中的在语音对话平台的技能中添加控件的方法。
非易失性计算机可读存储介质可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据测试软件的装置的使用所创建的数据等。此外,非易失性计算机可读存储介质可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,非易失性计算机可读存储介质可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至测试软件的装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本发明实施例还提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例的在语音对话平台的技能中添加控件的方法。
本申请实施例的客户端以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)其他具有数据交互功能的电子装置。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。