一种语音交互方法及电子设备与流程
本申请涉及终端技术领域,尤其涉及一种语音交互方法及电子设备。
背景技术:
人机交互(human-computerinteraction,hci)是指人与计算机之间使用某种对话语言,以一定的交互方式,为完成确定任务的人与计算机之间的信息交换过程。目前,手机等电子设备大量使用图形用户界面(graphicaluserinterface,gui)与用户实现人机交互过程。
随着语音识别技术的发展,许多电子设备中添加了语音助手(例如siri、小爱同学、小e等)来帮助用户完成与电子设备的人机交互过程。以siri作为语音助手举例,用户在手机中唤醒siri后,siri与用户可通过语音用户界面(voiceuserinterface,vui)进行语音交流。在进行语音交流时,siri可回答用户发出的每一条询问(query)。
但是,当用户与siri之间的语音交流被中断后,例如,用户与siri对话时如果突然接到来电,手机会自动退出本次与siri的语音对话。如果用户希望继续与siri进行语音交流,用户需要重新在手机中唤醒语音助手。也就是说,用户与手机中语音助手的对话过程发生中断后,语音助手无法继续与用户接续本次语音对话,导致语音助手在手机中的工作效率不高。
技术实现要素:
本申请提供一种语音交互方法及电子设备,当用户与语音助手的对话被中断后,语音助手可重新与用户接续本次对话内容,提高语音助手在电子设备中的使用效率和使用体验。
为达到上述目的,本申请采用如下技术方案:
第一方面,本申请提供一种语音交互方法,包括:响应于用户唤醒语音助手应用的操作,电子设备在前台开始运行语音助手应用并显示第一界面,第一界面用于显示用户与语音助手应用之间的对话内容;进而,用户可向电子设备输入语音,以电子设备接收到用户的第一语音输入为例,该第一语音输入中包括第一槽位信息;如果第一槽位信息的语义不明确,例如,第一槽位信息为出发地信息,该出发地信息在地图中的相关地点有多个,那么,响应于第一语音输入,电子设备可在上述第一界面中显示第一卡片,第一卡片中包括第一槽位信息的n(n≥1)个候选选项,这n个候选选项与n个查询请求一一对应,这n个查询请求中每个查询请求内携带有对应的第一槽位信息的候选选项;这样一来,用户在任意时刻选中第一卡片中的某一候选选项(例如第一候选选项)时,电子设备均可向第一服务器发送与第一候选选项对应的第一查询请求,使得第一服务器根据第一查询请求中携带的第一候选选项更新第一语音输入中的第一槽位信息,从而向用户提供与第一语音输入对应的服务结果。也就是说,即使用户与语音助手应用之间的对话被打断,当电子设备显示出上述第一卡片后,由于第一卡片中各个候选选项与各个查询请求之间设置有对应关系,因此用户选中第一卡片中的候选选项后,第一服务器可基于对应的查询请求支持语音助手与用户接续本次对话内容,提高语音助手在电子设备中的使用效率和使用体验。
在一种可能的实现方式中,在电子设备在第一界面中显示第一卡片之后,还包括:当电子设备将语音助手应用从前台切换至后台运行后,电子设备可显示其他应用的第二界面,此时,语音助手应用并未被杀掉(kill),因此,当电子设备将语音助手应用重新切换至前台运行后,电子设备可重新显示第一界面,第一界面中第一卡片内的候选选项仍然有效。
在一种可能的实现方式中,从上述n个候选选项中选中第一候选选项的操作可以包括:点击第一卡片中第一候选选项的触摸操作;或者,向电子设备输入包含第一候选选项的第二语音输入。也就是说,用户可以通过触摸操作选择卡片中的选项,也可以通过语音的方式选择卡片中的选项,并且这两种交互方式可以在多轮对话中夹杂使用,提高用户与语音助手交互时的交互模式和使用体验。
在一种可能的实现方式中,上述第一语音输入中还可以包括第二槽位信息,例如,第二槽位信息为目的地信息;如果第二槽位信息的语义也不明确,则在电子设备向第一服务器发送与第一候选选项对应的第一查询请求之后,还包括:电子设备在第一界面中显示第二卡片,第二卡片中包括第二槽位信息的m(m≥1)个候选选项,这m个候选选项与第二槽位信息的m个查询请求一一对应,这m个查询请求中均携带有用户已选中的第一候选选项,并且,这m个查询请求中每个查询请求内携带有对应的第二槽位信息的候选选项;那么,用户在任意时刻从这m个候选选项中选中第二候选选项后,电子设备可向第一服务器发送与第二候选选项对应的第二查询请求。
可以看出,由于第二卡片中与每个候选选项对应的查询请求中均携带有上轮对话中用户选中的第一槽位信息,因此,即使用户与语音助手应用之间的对话被打断,当手机重新在前台运行语音助手应用时,用户也可以继续在第二卡片选择第二槽位信息的候选项,无需再向语音助手应用输入已选择的第一槽位信息,使得用户可以在任意时刻继续与语音助手应用完成被打断的对话,从而提高手机中语音助手应用的工作效率和使用体验。
在一种可能的实现方式中,在电子设备在第一界面中显示第二卡片之后,还包括:当电子设备将该语音助手应用从前台切换至后台运行后,电子设备显示第二界面;当电子设备将该语音助手应用重新切换至前台运行后,电子设备重新显示第一界面,第一界面中第二卡片内的候选选项仍然有效。
在一种可能的实现方式中,从上述m个候选选项中选中第二候选选项的操作包括:点击第二卡片中第二候选选项的触摸操作;或者,向电子设备输入包含第二候选选项的第三语音输入。也就是说,用户可以通过触摸操作选择卡片中的选项,也可以通过语音的方式选择卡片中的选项,并且这两种交互方式可以在多轮对话中夹杂使用,提高用户与语音助手交互时的交互模式和使用体验。
在一种可能的实现方式中,在电子设备接收用户的第一语音输入之后,还包括:电子设备向第一服务器发送第一语音输入,以使得第一服务器从第一语音输入中提取第一槽位信息,获取第一槽位信息的n个候选选项,并建立这n个候选选项与n个查询请求之间的一一对应关系;电子设备接收第一服务器发送的上述n个候选选项与该n个查询请求之间的一一对应关系。
在一种可能的实现方式中,第一服务器还可以从第一语音输入中提取第二槽位信息,获取第二槽位信息的m个候选选项,并建立这m个候选选项与m个查询请求之间的一一对应关系;那么,在电子设备向第一服务器发送与第一候选选项对应的第一查询请求之后,还包括:电子设备接收第一服务器发送的上述m个候选选项与该m个查询请求之间的一一对应关系。
在一种可能的实现方式中,在电子设备在第一界面中显示第一卡片之后,还包括:电子设备接收用户的第四语音输入,第四语音输入中包括上述n个候选选项的筛选条件;响应于第四语音输入,电子设备在第一界面中显示第三卡片,第三卡片中包括满足该筛选条件的一个或多个候选选项,从而帮助用户筛选卡片中的选项。
第二方面,本申请提供一种语音交互方法,包括:第一服务器接收电子设备发送的第一语音输入;第一服务器提取第一语音输入中的第一槽位信息;当第一槽位信息的语义不明确时,第一服务器可获取第一槽位信息的n(n≥1)个候选选项,并建立这n个候选选项与n个查询请求之间的一一对应关系,这n个查询请求中每个查询请求内携带有对应的第一槽位信息的候选选项;第一服务器可将上述n个候选选项发送给电子设备,或者,第一服务器可将上述n个候选选项与n个查询请求的对应关系发送给电子设备;用户在电子设备中选中n个候选选项中的第一候选选项后,电子设备可向第一服务器发送该第一候选选项,进而,第一服务器可根据与第一候选选项对应的第一查询请求更新第一语音输入中的第一槽位信息;第一服务器基于更新后的第一槽位信息,可确定与第一语音输入对应的服务结果。由于第一服务器中记录有第一槽位信息的n个候选选项与n个查询请求之间的对应关系,因此,电子设备向第一服务器发送第一候选选项后,第一服务器与用户接续本次对话内容,提高语音助手在电子设备中的使用效率和使用体验。
在一种可能的实现方式中,上述第一语音输入中还包括第二槽位信息,当第二槽位信息的语义也不明确时,在第一服务器接收到电子设备发送的第一候选选项之后,还包括:第一服务器获取第二槽位信息的m(m≥1)个候选选项,并建立这m个候选选项与m个查询请求之间的一一对应关系,这m个查询请求中均携带有用户已选的第一候选选项,并且,这m个查询请求中每个查询请求内携带有对应的第二槽位信息的候选选项;第一服务器将这m个候选选项发送给电子设备;用户在这m个候选选项中选中一个候选选项(例如第二候选选项)后,电子设备可向第一服务器发送该第二候选选项,由于与第二候选选项对应的第二查询请求中既包括用户选中的第一槽位信息(即第一候选选项)又包括用户选中的第二槽位信息(即第二候选选项),因此,第一服务器根据第二查询请求可更新第一语音输入中的第一槽位信息和第二槽位信息。进而,第一服务器可基于更新后的第一槽位信息和第二槽位信息,确定与第一语音输入对应的服务结果。
第三方面,本申请提供一种语音交互系统,包括:响应于用户唤醒语音助手的操作,电子设备在前台开始运行语音助手应用;电子设备接收用户的第一语音输入;电子设备将第一语音输入发送至第一服务器;第一服务器提取第一语音输入中的第一槽位信息;当第一槽位信息的语义不明确时,第一服务器可获取第一槽位信息的n(n≥1)个候选选项,并建立这n个候选选项与n个查询请求之间的一一对应关系,这n个查询请求中每个查询请求内携带有对应的第一槽位信息的候选选项;第一服务器可将上述n个候选选项发送给电子设备;电子设备显示第一卡片,第一卡片中包含第一槽位信息的n个候选选项;响应于用户从n个候选选项中选择第一候选选项的操作,电子设备可将与第一候选选项对应的第一查询请求发送给第一服务器;或,电子设备将第一候选选项发送给第一服务器,以使得第一服务器确定与第一候选选项对应的第一查询请求;进而,第一服务器可根据第一查询请求更新第一语音输入中的第一槽位信息,从而确定与第一语音输入对应的服务结果。
在一种可能的实现方式中,第一语音输入中还包括第二槽位信息;当第二槽位信息的语义也不明确时,在电子设备将与第一候选选项对应的第一查询请求发送给第一服务器之后,还包括:第一服务器获取第二槽位信息的m(m≥1)个候选选项,并建立这m个候选选项与m个查询请求之间的一一对应关系,这m个查询请求中均携带有用户选中的第一候选选项,并且,这m个查询请求中每个查询请求内携带有对应的第二槽位信息的候选选项;第一服务器将上述m个候选选项发送给电子设备;电子设备显示第二卡片,第二卡片中包含第二槽位信息的m个候选选项。
在一种可能的实现方式中,在电子设备显示第二卡片之后,还包括:响应于用户从上述m个候选选项中选择第二候选选项的操作,电子设备将与第二候选选项对应的第二查询请求发送给第一服务器;或,电子设备将第二候选选项发送给第一服务器,以使得第一服务器确定与第二候选选项对应的第二查询请求。
在一种可能的实现方式中,上述语音交互系统还包括第二服务器,第二服务器用于向第一服务器发送第一槽位信息的n个候选选项和/或第二槽位信息的m个候选选项。
第四方面,本申请提供一种电子设备,包括:触摸屏、通信模块、一个或多个处理器、一个或多个存储器、一个或多个麦克风以及一个或多个计算机程序;其中,处理器与触摸屏、通信模块、麦克风和存储器均耦合,上述一个或多个计算机程序被存储在存储器中,当电子设备运行时,该处理器执行该存储器存储的一个或多个计算机程序,以使电子设备执行上述任一项所述的语音交互方法。
第五方面,本申请提供一种计算机存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行如第一方面中任一项所述的语音交互方法。
第六方面,本申请提供一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行如第一方面中任一项所述的语音交互方法。
可以理解地,上述提供的第四方面所述的电子设备、第五方面所述的计算机存储介质,以及第六方面所述的计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种电子设备的结构示意图一;
图2为本申请实施例提供的一种电子设备内操作系统的架构示意图;
图3为本申请实施例提供的一种语音交互系统的架构示意图;
图4为本申请实施例提供的一种语音交互方法的场景示意图一;
图5为本申请实施例提供的一种语音交互方法的交互示意图;
图6为本申请实施例提供的一种语音交互方法的场景示意图二;
图7为本申请实施例提供的一种语音交互方法的场景示意图三;
图8为本申请实施例提供的一种语音交互方法的场景示意图四;
图9为本申请实施例提供的一种语音交互方法的场景示意图五;
图10为本申请实施例提供的一种语音交互方法的场景示意图六;
图11为本申请实施例提供的一种语音交互方法的场景示意图七;
图12为本申请实施例提供的一种语音交互方法的场景示意图八;
图13为本申请实施例提供的一种语音交互方法的场景示意图九;
图14为本申请实施例提供的一种语音交互方法的场景示意图十;
图15为本申请实施例提供的一种电子设备的结构示意图二;
图16为本申请实施例提供的一种电子设备的结构示意图三。
具体实施方式
下面将结合附图对本实施例的实施方式进行详细描述。
示例性的,本申请实施例提供的一种语音交互方法可应用于手机、平板电脑、笔记本电脑、超级移动个人计算机(ultra-mobilepersonalcomputer,umpc)、手持计算机、上网本、个人数字助理(personaldigitalassistant,pda)、可穿戴电子设备、虚拟现实设备等具有语音助手功能的电子设备,本申请实施例对此不做任何限制。
示例性的,图1示出了电子设备100的结构示意图。
电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universalserialbus,usb)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriberidentificationmodule,sim)卡接口195等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(applicationprocessor,ap),调制解调处理器,图形处理器(graphicsprocessingunit,gpu),图像信号处理器(imagesignalprocessor,isp),控制器,视频编解码器,数字信号处理器(digitalsignalprocessor,dsp),基带处理器,和/或神经网络处理器(neural-networkprocessingunit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integratedcircuit,i2c)接口,集成电路内置音频(inter-integratedcircuitsound,i2s)接口,脉冲编码调制(pulsecodemodulation,pcm)接口,通用异步收发传输器(universalasynchronousreceiver/transmitter,uart)接口,移动产业处理器接口(mobileindustryprocessorinterface,mipi),通用输入输出(general-purposeinput/output,gpio)接口,用户标识模块(subscriberidentitymodule,sim)接口,和/或通用串行总线(universalserialbus,usb)接口等。
i2c接口是一种双向同步串行总线,包括一根串行数据线(serialdataline,sda)和一根串行时钟线(derailclockline,scl)。在一些实施例中,处理器110可以包含多组i2c总线。处理器110可以通过不同的i2c总线接口分别耦合触摸传感器180k,充电器,闪光灯,摄像头193等。例如:处理器110可以通过i2c接口耦合触摸传感器180k,使处理器110与触摸传感器180k通过i2c总线接口通信,实现电子设备100的触摸功能。
i2s接口可以用于音频通信。在一些实施例中,处理器110可以包含多组i2s总线。处理器110可以通过i2s总线与音频模块170耦合,实现处理器110与音频模块170之间的通信。在一些实施例中,音频模块170可以通过i2s接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
pcm接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过pcm总线接口耦合。在一些实施例中,音频模块170也可以通过pcm接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。所述i2s接口和所述pcm接口都可以用于音频通信。
uart接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,uart接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过uart接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过uart接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
mipi接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。mipi接口包括摄像头串行接口(cameraserialinterface,csi),显示屏串行接口(displayserialinterface,dsi)等。在一些实施例中,处理器110和摄像头193通过csi接口通信,实现电子设备100的拍摄功能。处理器110和显示屏194通过dsi接口通信,实现电子设备100的显示功能。
gpio接口可以通过软件配置。gpio接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,gpio接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。gpio接口还可以被配置为i2c接口,i2s接口,uart接口,mipi接口等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过usb接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141可接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。
电源管理模块141可用于监测电池容量,电池循环次数,电池充电电压,电池放电电压,电池健康状态(例如漏电,阻抗)等性能参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2g/3g/4g/5g等无线通信的解决方案。移动通信模块150可以包括一个或多个滤波器,开关,功率放大器,低噪声放大器(lownoiseamplifier,lna)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170a,受话器170b等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocalareanetworks,wlan)(如无线保真(wirelessfidelity,wi-fi)网络),蓝牙(bluetooth,bt),全球导航卫星系统(globalnavigationsatellitesystem,gnss),调频(frequencymodulation,fm),近距离无线通信技术(nearfieldcommunication,nfc),红外技术(infrared,ir)等无线通信的解决方案。无线通信模块160可以是集成一个或多个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(globalsystemformobilecommunications,gsm),通用分组无线服务(generalpacketradioservice,gprs),码分多址接入(codedivisionmultipleaccess,cdma),宽带码分多址(widebandcodedivisionmultipleaccess,wcdma),时分码分多址(time-divisioncodedivisionmultipleaccess,td-scdma),长期演进(longtermevolution,lte),bt,gnss,wlan,nfc,fm,和/或ir技术等。所述gnss可以包括全球卫星定位系统(globalpositioningsystem,gps),全球导航卫星系统(globalnavigationsatellitesystem,glonass),北斗卫星导航系统(beidounavigationsatellitesystem,bds),准天顶卫星系统(quasi-zenithsatellitesystem,qzss)和/或星基增强系统(satellitebasedaugmentationsystems,sbas)。
电子设备100通过gpu,显示屏194,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏194和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquidcrystaldisplay,lcd),有机发光二极管(organiclight-emittingdiode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganiclightemittingdiode的,amoled),柔性发光二极管(flexlight-emittingdiode,fled),miniled,microled,micro-oled,量子点发光二极管(quantumdotlightemittingdiodes,qled)等。在一些实施例中,电子设备100可以包括1个或n个显示屏194,n为大于1的正整数。
电子设备100可以通过isp,摄像头193,视频编解码器,gpu,显示屏194以及应用处理器等实现拍摄功能。
isp用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给isp处理,转化为肉眼可见的图像。isp还可以对图像的噪点,亮度,肤色进行算法优化。isp还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,isp可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。在一些实施例中,手机100可以包括1个或n个摄像头,n为大于1的正整数。摄像头193可以是前置摄像头也可以是后置摄像头。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(movingpictureexpertsgroup,mpeg)1,mpeg2,mpeg3,mpeg4等。
npu为神经网络(neural-network,nn)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过npu可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如microsd卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储一个或多个计算机程序,该一个或多个计算机程序包括指令。处理器110可以通过运行存储在内部存储器121的上述指令,从而使得电子设备100执行本申请一些实施例中所提供的联系人智能推荐的方法,以及各种功能应用和数据处理等。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统;该存储程序区还可以存储一个或多个应用程序(比如图库、联系人等)等。存储数据区可存储电子设备101使用过程中所创建的数据(比如照片,联系人等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如一个或多个磁盘存储器件,闪存器件,通用闪存存储器(universalflashstorage,ufs)等。在另一些实施例中,处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,来使得电子设备100执行本申请实施例中所提供的智能推荐号码的方法,以及各种功能应用和数据处理。
电子设备100可以通过音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170a,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170a收听音乐,或收听免提通话。
受话器170b,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器170b靠近人耳接听语音。
麦克风170c,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170c发声,将声音信号输入到麦克风170c。电子设备100可以设置一个或多个麦克风170c。在另一些实施例中,电子设备100可以设置两个麦克风170c,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风170c,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
耳机接口170d用于连接有线耳机。耳机接口170d可以是usb接口130,也可以是3.5mm的开放移动电子设备平台(openmobileterminalplatform,omtp)标准接口,美国蜂窝电信工业协会(cellulartelecommunicationsindustryassociationoftheusa,ctia)标准接口。
传感器180可以包括压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,接近光传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器,骨传导传感器等,本申请实施例对此不做任何限制。
当然,本申请实施例提供的电子设备100还可以包括按键190、马达191、指示器192以及sim卡接口195等一项或多项器件,本申请实施例对此不做任何限制。
上述电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的android系统为例,示例性说明电子设备100的软件结构。
图2是本申请实施例的电子设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(androidruntime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图2所示,应用程序包可以包括通话,备忘录,浏览器,联系人,相机,图库,日历,地图,蓝牙,音乐,视频,短信息等app(应用,application)。
在本申请实施例中,应用程序层中还可以包括语音助手app,例如,用户可称该语音助手app为siri、小e或小爱同学等。
语音助手app开启后可采集用户的语音输入,并将该语音输入转换为对应的语音任务。进而,语音app可调用相关应用的接口完成该语音任务,使用户通过语音这种方式实现对电子设备的控制。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramminginterface,api)和编程框架。应用程序框架层包括一些预先定义的函数。
如图2所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
在本申请实施例中,应用程序框架层中还包括vui(voiceuserinterface,声音用户界面)管理器。vui管理器可以监测语音助手app的运行状态,也可作为语音助手app与其他app之间的桥梁,将语音助手app得到的语音任务传递给相关的app执行。
示例性的,电子设备100可使用麦克风检测用户的语音输入。如果检测到用户输入“你好,小e”的唤醒语音,则vui管理器可启动应用程序层中的语音助手app。此时,如图3中的(a)所示,电子设备100可显示语音助手app的对话界面301。电子设备100可在对话界面301中显示用户与语音助手app之间的对话内容。
仍如图3中的(a)所示,用户唤醒语音助手app后,语音助手app可继续使用麦克风检测用户的语音输入。以本次语音输入302为“导航去大雁塔”举例,语音助手app可将与语音输入302对应的文本信息显示在对话界面301中。并且,语音助手app可将语音输入302发送给服务器200,由服务器200对本次语音输入302进行识别和响应。
如图3中的(b)所示,服务器200可包括语音识别模块、语音理解模块以及对话管理模块。服务器200接收到本次语音输入302后,可先由语音识别模块将语音输入302转换为对应的文本信息。进而,服务器200中的语音理解模块可使用自然语言理解(naturallanguageunderstanding,nlu)算法提取上述文本信息中的用户意图(intent)和槽位信息(slot)。例如,上述语音输入302中的用户意图为:导航,语音输入302中的槽位信息为:大雁塔。那么,对话管理模块可根据提取到的用户意图和槽位信息,向相关第三方应用的服务器请求对应的服务内容。例如,对话管理模可向百度地图app的服务器请求目的地为大雁塔的导航服务。这样,百度地图app的服务器可将目的地为大雁塔的导航路线发送给服务器200,服务器200可将该导航路线发送给电子设备100,仍如图3中的(a)所示,电子设备100中的语音助手app可通过卡片303等形式将上述导航路线显示在对话界面301中,使得语音助手app完成本次对语音输入302的响应。
在本申请实施例中,如图4所示,当用户与语音助手app在对话界面301中进行对话时,语音助手app作为前台应用通过显示屏194为用户呈现相应的视觉输出。如果电子设备100检测到其他事件打断了该对话,例如,来电事件、用户打开其他应用等,电子设备100可将原本运行在前台的语音助手app切换至后台继续运行,并在前台运行打断该对话的新应用。语音助手app切换至后台不会向用户提供与语音助手app相关的视觉输出,用户无法与语音助手app交互。
当用户再次唤醒语音助手app或用户退出上述新应用时,仍如图4所示,电子设备100可重新将语音助手app切换至前台,继续显示上述对话界面301以及对话界面301中的历史对话内容。仍以如图3中的(a)所示的对话界面301举例,语音助手app从后台切换至前台后,电子设备100可继续显示对话界面301,用户可以继续在对话界面301中操作卡片303内的选项,接续上一轮语音输入302进行下一轮对话,无需重新输入“导航去大雁塔”的语音输入,从而提高语音助手app在电子设备100中的使用效率和使用体验。
系统库可以包括多个功能模块。例如:表面管理器(surfacemanager),媒体库(medialibraries),三维图形处理库(例如:opengles),2d图形引擎(例如:sgl)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2d和3d图层的融合。媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:mpeg4,h.264,mp3,aac,amr,jpg,png等。三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。2d图形引擎是2d绘图的绘图引擎。
androidruntime包括核心库和虚拟机。androidruntime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动等,本申请实施例对此不做任何限制。
为了方便清楚地理解下述各实施例,首先给出相关技术的简要介绍:
用户意图(intent):用户的每次语音输入都对应着用户的一个意图,意图是多句表达形式的集合,例如“我要看电影”和“我想看2001年刘德华拍摄的动作电影”都可以属于同一个视频播放的意图。
槽位信息:槽位信息是指用户的语音输入中用来表达意图的关键信息,槽位信息直接决定电子设备(或服务器)能否匹配到正确的意图。一个槽位对应着一类属性的关键词,该槽位中的信息可以由同一类型的关键词进行填充。例如,与歌曲播放这一意图对应的查询句式(query)为“我想听{singer}的{song}”。其中,{singer}为歌手的槽位,{song}为歌曲的槽位。那么,如果接收到用户发出“我想听王菲的红豆”这一语音输入,则电子设备(或服务器)可从该语音输入中提取到{singer}这一槽位中的信息为:王菲,{song}这一槽位中的信息为:红豆。这样,电子设备(或服务器)可根据这两个槽位信息识别出本次语音输入的用户意图为:播放王菲的歌曲红豆。
以下,将结合附图对本申请实施例提供的一种语音交互方法进行具体介绍。以下实施例中均以手机作为上述电子设备100举例说明。
图5为本申请实施例提供的一种语音交互方法的流程示意图。如图5所示,该语音交互方法可以包括:
s501、手机在前台运行语音助手app时,接收用户的第一语音输入。
示例性的,用户希望与手机中的语音助手对话时,可通过输入包含唤醒词的唤醒语音触发手机在前台开始运行语音助手app。例如,手机检测到用户输入“你好,小e”的唤醒语音后,可在前台打开语音助手app并显示语音助手app的对话界面。如图6中的(a)所示,手机可通过全屏的形式显示语音助手app的对话界面601,对话界面601中可以实时显示用户与语音助手“小e”的对话内容。或者,手机可通过悬浮窗的形式显示语音助手app的对话界面,如图6中的(b)所示,手机可在悬浮窗602中实时显示用户与语音助手“小e”的对话内容。
当然,用户除了使用唤醒语音打开手机中的语音助手app外,还可以使用预设的手势或按键唤醒手机在前台运行语音助手app,本申请实施例对此不做任何限制。
手机在前台开始运行语音助手app后,以图6中的(a)所示的对话界面601举例,对话界面601中设置有语音采集按钮603。如果检测到用户点击该语音采集按钮603,则语音助手app可调用手机中的麦克风采集用户的语音输入(即第一语音输入)。例如,用户向手机输入的第一语音输入604为“我要从人民公园打车去前门”。或者,手机显示语音助手app的对话界面601后,可自动开启麦克风采集用户的第一语音输入,本申请实施例对此不做任何限制。
s502、手机向第一服务器发送第一语音输入,以使得第一服务器从第一语音输入中提取用户意图和槽位信息,第一语音输入中包括第一槽位和第二槽位。
仍以上述第一语音输入604举例,手机接收到用户发出的“我要从人民公园打车去前门”的第一语音输入604后,可将第一语音输入604发送给第一服务器进行语音识别和理解,从而提取出第一语音输入604中的用户意图和槽位信息。
示例性的,第一服务器接收到手机发来的第一语音输入604后,可使用语音识别算法将第一语音输入604转为对应的文本信息,即“我要从人民公园打车去前门”。进而,第一服务器可使用预设的nlu算法从第一语音输入604的文本信息中提取用户意图和槽位信息。在本申请实施例中,用户输入的第一语音输入中包含多个槽位信息。例如,上述第一语音输入604中包含两个槽位,一个是打车时出发地的槽位(即第一槽位),另一个是打车时目的地的槽位(即第二槽位)。那么,第一服务器可从“我要从人民公园打车去前门”中提取到第一槽位中的槽位信息(即第一槽位信息)为:人民公园,第二槽位中的槽位信息(即第二槽位信息)为:前门。并且,第一服务器可从“我要从人民公园打车去前门”中提取到第一语音输入604对应的用户意图为:打车。
另外,第一服务器可以保存每次用户与语音助手app之间的对话内容,生成用户与语音助手app之间的对话记录。例如,第一服务器可设置保存的对话记录的大小是一定的,那么,当用户与语音助手app之间的对话记录超过预设大小时,手机可删除时间最早的对话内容。又例如,第一服务器可设置在一定时间内保存用户与语音助手app之间的对话记录。如果第一服务器在预设时间内没有接收到新的语音输入,则第一服务器可删除本次对话记录。
s503、第一服务器根据上述用户意图和槽位信息请求第二服务器响应上述第一语音输入。
仍以上述第一语音输入604举例,第一服务器从第一语音输入604中提取到用户意图为打车、第一槽位信息为人民公园、第二槽位信息为前门后,可确定与打车这一用户意图对应的第三方app(例如滴滴打车app)。进而,第一服务器可向滴滴打车app的服务器(即第二服务器)发送第一服务请求,该第一服务请求中包含第一服务器提取到的用户意图、第一槽位信息以及第二槽位信息。
第二服务器接收到第一服务器发送的第一服务请求后,第二服务器根据用户意图可确定用户需要使用打车服务,进而第二服务器可根据第一槽位信息和第二槽位信息确定出发地和目的地的具体地址。
如果第二服务器查询到与上述第一槽位信息(即人民公园)关联的多个地址,说明用户在第一语音输入604中输入的出发地并不准确。为了继续向用户提供本次打车服务,第二服务器可将查找到的与第一槽位信息(即人民公园)关联的多个地址作为候选选项发送给第一服务器。例如,该候选选项包括:人民公园北门的详细地址、人民公园东门的详细地址、人民公园西门的详细地址以及人民公园南门的详细地址。
s504、第一服务器接收到第二服务器发送的第一槽位信息的n个候选选项后,向手机发送上述n个候选选项。
仍以滴滴打车app的服务器为第二服务器举例,第一服务器接收到滴滴打车app的服务器发送的出发地信息(即第一槽位信息)的n个候选选项后,第一服务器可建立这n个候选选项中每个候选选项与相应查询请求之间的对应关系,每个查询请求中均包含对应的候选选项。
示例性的,可预先设置每个查询请求中均包含与候选选项对应的打车句式模板。该打车句式模板是与第一语音输入的用户意图相关联的固定句式的文本内容。例如,与打车意图关联的打车句式模板为“从{第一槽位信息}打车去{第二槽位信息}”。由于上述n个候选选项为第一槽位信息的候选选项,因此,与这n个候选选项对应的每个查询请求中均包括对应的打车句式模板,且打车句式模板中的第一槽位信息为相应的候选选项。
例如,第一槽位信息的第一候选选项为人民公园北门的详细地址,第一候选选项与第一查询请求对应。第一查询请求中可包含第一打车句式模板,该第一打车句式模板为:“从{人民公园北门}打车去{前门}”。在第一打车句式模板中,第一槽位信息从{人民公园}变为了{人民公园北门}。
例如,第一槽位信息的第二候选选项为人民公园南门的详细地址,第二候选选项与第二查询请求对应。第二查询请求中可包含第二打车句式模板,该第二打车句式模板为:“从{人民公园南门}打车去{前门}”。第二打车句式模板中,第一槽位信息从{人民公园}变为了{人民公园南门}。
例如,第一槽位信息的第三候选选项为人民公园西门的详细地址,第三候选选项与第三查询请求对应。第三查询请求中可包含第三打车句式模板,该第三打车句式模板为:“从{人民公园西门}打车去{前门}”。在第三打车句式模板,第一槽位信息从{人民公园}变为了{人民公园西门}。
例如,第一槽位信息的第四候选选项为人民公园东门的详细地址,第四候选选项与第四查询请求对应。第四查询请求中可包含第四打车句式模板,该第四打车句式模板为:“从{人民公园东门}打车去{前门}”。在第四打车句式模板中,第一槽位信息从{人民公园}变为了{人民公园东门}。
在一些实施例中,第一服务器也可将第一语音输入中的第一槽位信息更新为对应的候选选项后携带在查询请求中。例如,第一语音输入604为“我要从人民公园打车去前门”,当第一候选选项为人民公园北门时,第一服务器可将第一语音输入604更新为“我要从人民公园北门打车去前门”,并将更新后的第一语音输入604携带在与第一候选选项对应的第一查询请求中。当第二候选选项为人民公园南门时,第一服务器可将第一语音输入604更新为“我要从人民公园南门打车去前门”,并将更新后的第一语音输入604携带在与第二候选选项对应的第二查询请求中。当第三候选选项为人民公园西门时,第一服务器可将第一语音输入604更新为“我要从人民公园西门打车去前门”,并将更新后的第一语音输入604携带在与第三候选选项对应的第三查询请求中。当第四候选选项为人民公园东门时,第一服务器可将第一语音输入604更新为“我要从人民公园东门打车去前门”,并将更新后的第一语音输入604携带在与第四候选选项对应的第四查询请求中。
进而,第一服务器可将上述4个第一槽位信息的候选选项发送给手机。或者,第一服务器可将上述4个第一槽位信息的候选选项以及与对应的查询请求发送给手机。方便后续用户选择准确的出发地信息完成打车服务。
当然,除了上述人民公园的多个具体地址(即上述n个候选选项)外,滴滴打车app的服务器还可以将候选选项的相关信息也发给第一服务器。例如,每个具体地址与用户当前位置之间的距离、每个具体地址的用户评分、开放时间等信息。那么,第一服务器可一并将这些信息发送给手机。
s505、手机在语音助手app的对话界面中显示第一卡片,第一卡片中包括上述n个候选选项。
手机接收到第一服务器发来的第一槽位信息的n个候选选项后,可通过卡片等形式在语音助手app的对话界面601中向用户显示这n个候选选项供用户选择。
示例性的,如图7所示,手机接收到第一服务器发来的上述4个第一槽位信息的候选选项后,可通过js(javascript)渲染在前台正在显示的对话界面601中加载第一卡片701,第一卡片701中包括滴滴打车app的服务器查询到的与“人民公园”相关的4个具体的出发地信息,即人民公园北门的详细地址、人民公园东门的详细地址、人民公园西门的详细地址以及人民公园南门的详细地址。这些出发地信息也是上述第一语音输入604中第一槽位信息的候选选项。
仍如图7所示,以第一卡片701中的第一候选选项702举例,第一候选选项702的具体名称为“人民公园东门”。手机还可以在第一候选选项702中显示人民公园东门的具体地址:例如大庆一路11号。手机还可以在第一候选选项702中显示人民公园东门与用户当前位置之间举例为560米。人民公园东门的开放时间为8:00-18:00。
另外,如果第一服务器在发送“人民公园东门”这一候选选项702时,还向手机发送了与候选选项702对应的查询请求。该查询请求中的打车句式模板为:从{人民公园东门}打车去{前门},则手机还可以在第一卡片701中建立候选选项702与该查询请求之间的对应关系,即候选选项702与“从{人民公园东门}打车去{前门}”这一打车句式模板之间的对应关系。后续,如果检测到用户点击第一卡片701中的候选选项702,则手机可将对应的查询请求发送给第一服务器重新提取槽位信息。
s506、响应于用户在第一卡片中选中第一候选选项的操作,手机指示第一服务器更新第一槽位信息,其中,更新后的第一槽位信息为第一候选选项。
如图8中的(a)所示,手机在语音助手app的对话界面601中显示出上述第一卡片701后,用户可通过点击的方式从第一卡片701中的多个候选选项中选择一个。或者,如图8中的(b)所示,手机在语音助手app的对话界面601中显示出上述第一卡片701后,用户还可以通过语音的方式从第一卡片701中的多个候选选项中选择一个。
示例性的,如果检测到用户点击第一卡片701中的第一候选选项702,则手机可向第一服务器发送该第一候选选项702,即人民公园东门。由于第一服务器内存储有与人民公园东门对应的查询请求,该查询请求中包含第四打车句式模板:“从{人民公园东门}打车去{前门}”。因此,第一服务器可使用nlu算法从“从{人民公园东门}打车去{前门}”这一打车句式模板中重新提取与第一语音输入604对应的用户意图和槽位信息。与步骤s502不同的是,第一服务器本次提取到的第一槽位信息为用户选中的第一候选选项702,即人民公园东门。
或者,如果手机中已经建立了第一候选选项702与包含上述第四打车句式模板的查询请求之间的对应关系,那么,检测到用户点击第一卡片701中的第一候选选项702后,手机可向第一服务器发送与第一候选选项702对应的查询请求(例如第一查询请求),该第一查询请求中包含第四打车句式模板:“从{人民公园东门}打车去{前门}”发送给第一服务器。同样,第一服务器使用nlu算法可重新从第一查询请求中提取到第一槽位信息为用户选中的第一候选选项702,即人民公园东门。
又或者,如图9所示,手机在上述对话界面601中显示出上述第一卡片701后,如果手机采集到用户的第二语音输入901,第二语音输入901可以为“选择人民公园东门”,则手机可将第二语音输入901发送给第一服务器。第一服务器可结合用户与语音助手之间的对话记录对第二语音输入901进行语音识别,识别出用户选择了第一卡片701中的第一候选选项702。那么,第一服务器通过与第一候选选项702对应的第一查询请求,可从第一查询请求内的第四打车句式模板中提取到新的第一槽位信息为人民公园东门。
需要说明的是,用户可使用自然语言以语音的形式选择第一卡片701中的候选选项。例如,第二语音输入901可以为“我选择人民公园东门”,第一服务器检测到第二语音输入901中包括“人民公园东门”这一候选选项时,可识别出用户选择了第一卡片701中的第一候选选项702。又例如,第二语音输入901可以为“选择第1个地点”,第一服务器结合用户与语音助手之间的对话记录可识别出第一卡片701内与“选择第1个地点”这一语音输入对应的选项为第一候选选项702。又例如,第二语音输入901可以为“东门”,第一服务器结合用户与语音助手之间的对话记录可识别出“东门”指的是“人民公园东门”,进而,第一服务器可确定用户选择了第一卡片701中的第一候选选项702。
在另一些实施例中,手机在上述对话界面601中显示出上述第一卡片701后,用户还可以对第一卡片701中的候选选项进行筛选。如图10中的(a)所示,用户可以向手机输入“500米内的出发地有哪些”的第三语音输入1001。进而,手机可将第三语音输入1001发送给第一服务器。由于第一服务器中记录有第一卡片701内每个候选选项的详细信息,因此,第一服务器对第三语音输入1001进行语音识别和理解后,可根据每个候选选项与用户之间的距离,为用户从上述4个候选选项中筛选出距离用户500米内的一个或多个候选选项。例如,第一服务器可将筛选中的“人民公园西门”和“人民公园北门”发送给手机。此时,如图10中的(b)所示,手机可在上述对话界面601中显示响应第三语音输入1001的卡片1002。卡片1002中包括第一服务器为用户筛选出的距离用户500米内候选选项。这样,用户可继续在卡片1002中选择相应的候选选项作为第一语音输入604中的第一槽位信息。
s507、第一服务器根据更新后的第一槽位信息请求第二服务器响应上述第一语音输入。
以第一服务器将第一槽位信息更新为“人民公园东门”举例,第一服务器可向滴滴打车app的服务器(即第二服务器)发送第二服务请求,该第二服务请求中包含步骤s506中提取到的用户意图(即打车)、更新后的第一槽位信息(即人民公园东门)以及第二槽位信息(即前门)。
滴滴打车app的服务器接收到第一服务器发送的第二服务请求后,与步骤s503类似的,第二服务器向用户提供本次打车服务前,需要确定明确的出发地信息(即第一槽位信息)和目的地信息(即第二槽位信息)。第二服务器根据更新后的第一槽位信息可确定本次打车服务的出发地为:人民公园东门。
但是,如果第二服务器查询到与上述第二槽位信息(即前门)关联的多个地址,说明用户在第一语音输入604中输入的目的地并不准确。类似的,第二服务器可将查找到的与第二槽位信息(即前门)关联的多个地址作为候选选项发送给第一服务器。例如,该候选选项包括:前门地铁站的详细地址、前门大街的详细地址以及前门大厦的详细地址。
s508、第一服务器接收到第二服务器发送的第二槽位信息的m个候选选项后,向手机发送上述m个候选选项。
与步骤s504类似的,第一服务器接收到滴滴打车app的服务器发送的第二槽位信息的m个候选选项后,第一服务器可建立这m个候选选项中每个候选选项与相应查询请求之间的对应关系,每个查询请求中除了包含用户在步骤s506中为第一槽位信息选中的第一候选选项外,还包括对应的第二槽位信息的候选选项。
仍以查询请求中包括打车句式模板举例,该打车句式模板为“从{第一槽位信息}打车去{第二槽位信息}”。由于第一槽位信息已经确定为人民公园东门,因此,此时与第二槽位信息对应的m个查询请求中的打车句式模板为“从{人民公园东门}打车去{第二槽位信息}”。其中,{第二槽位信息}内可填充对应的第二槽位信息的候选选项。
例如,第二槽位信息的第一候选选项为前门地铁站的详细地址,第一候选选项与第一查询请求对应。第一查询请求中可包含第一打车句式模板,该第一打车句式模板为:“从{人民公园东门}打车去{前门地铁站}”。此时,在第一打车句式模板中,第一槽位信息为步骤s506中确定的{人民公园东门},第二槽位信息为{前门地铁站}。
例如,第二槽位信息的第二候选选项为前门大街的详细地址,第二候选选项与第二查询请求对应。第二查询请求中可包含第二打车句式模板,该第二打车句式模板为:“从{人民公园东门}打车去{前门大街}”。此时,在第二打车句式模板中,第一槽位信息为步骤s506中确定的{人民公园东门},第二槽位信息为{前门大街}。
例如,第二槽位信息的第三候选选项为前门大厦的详细地址,第三候选选项与第三查询请求对应。第三查询请求中可包含第三打车句式模板,该第三打车句式模板为:“从{人民公园东门}打车去{前门大厦}”。此时,在第三打车句式模板中,第一槽位信息为步骤s506中确定的{人民公园东门},第二槽位信息为{前门大厦}。
当然,第一服务器也可将第一语音输入604中的第二槽位信息更新为对应的候选选项后携带在查询请求中,此时,第一语音输入604的第一槽位信息均为用户在步骤s506中选中的人民公园东门,本申请实施例对此不做任何限制。
进而,第一服务器可将第二槽位信息的3个候选选项发送给手机。或者,第一服务器可将上述第二槽位信息的3个候选选项以及与对应的查询请求发送给手机。方便后续用户选择准确的目的地信息完成打车服务。
s509、手机在语音助手app的对话界面中显示第二卡片,第二卡片中包括上述m个候选选项。
手机接收到第一服务器发送的第二槽位信息的m个候选选项后,与步骤s505类似的,如图11所示,手机可继续在语音助手app的对话界面601中显示第二卡片1101。第二卡片1101中包括滴滴打车app的服务器查询到的与“前门”相关的3个具体的目的地信息,即前门地铁站的详细地址、前门大街的详细地址以及前门大厦的详细地址。这些目的地信息也是上述第一语音输入604中第二槽位信息的候选选项。
以第二卡片1101中“前门大厦”这一候选选项1102举例,如果第一服务器向手机发送了候选选项1102以及对应查询请求,由于该查询请求中包含“从{人民公园东门}打车去{前门大厦}”的打车句式模板,因此,手机可以在第二卡片1101中建立候选选项1102与“从{人民公园东门}打车去{前门大厦}”这一打车句式模板之间的对应关系。
当然,手机也可以先显示第二卡片1101供用户选择目的地信息,再显示上述第一卡片701供用户选择出发地信息。或者,第二服务器也可以在对话界面601中同时显示上述第一卡片701和第二卡片1101,本申请实施例对此不做任何限制。
s510、手机将语音助手app切换至后台运行。
手机在语音助手app的对话界面601中显示出上述第二卡片1101后,如果检测到打断用户与语音助手app对话的预设事件,则手机不会结束语音助手app的进程(即kill语音助手app),而是将语音助手app切换至后台继续运行。
其中,上述预设事件可以是用户主动触发的。例如,该预设事件可以是用户点击返回键或home键的操作,或者,该预设事件可以是用户打开通知消息、上拉菜单、下拉菜单等操作。或者,上述预设事件可以是手机被动接收到的事件,例如,如图12所示,手机在语音助手app的对话界面601中显示出上述第二卡片1101后,如果接收到来电事件,则手机可显示通话应用的来电界面1201,此时,手机可将语音助手app切换至后台运行。
s511、手机将语音助手app从后台切换至前台运行后,重新显示上述对话界面,该对话界面中包括上述第二卡片。
仍以上述来电事件举例,用户通话5分钟后手机检测到用户结束了本次通话。那么,手机可自动将原本在前台运行的语音助手app重新切换至前台。此时,如图13所示,手机可重新显示语音助手app的对话界面601,对话界面601中还显示有语音助手app切换至后台时用户与语音助手app的对话内容。例如,该对话界面601中还显示有上述第二卡片1101,第二卡片1101中包括第二槽位信息的m个候选选项。
当然,用户也可以在手机的多任务窗口中查找到正在后台运行的各个应用,进而将正在后台运行的语音助手app切换至前台运行。或者,语音助手app切换至后台运行后,用户还可以通过唤醒语音或按键再次唤醒语音助手app,将语音助手app从后台切换至前台运行,本申请实施例对此不做任何限制。
s512、响应于用户在第二卡片中选中第二候选选项的操作,手机指示第一服务器更新第一槽位信息和第二槽位信息,其中,更新后的第一槽位信息为第一候选选项,更新后的第二槽位信息为第二候选选项。
仍如图13所示,用户可通过点击的方式从第二卡片1101中的多个候选选项中选择一个。或者,用户还可以通过语音的方式从第二卡片1101中的多个候选选项中选择一个或多个。
示例性的,如果检测到用户点击第二卡片1101中的第二候选选项1102,则手机可向第一服务器发送该第二候选选项1102,即前门大厦。由于第一服务器内存储有与第二候选选项1102对应的打车句式模板:“从{人民公园东门}打车去{前门大厦}”,因此,第一服务器使用nlu算法可从“从{人民公园东门}打车去{前门大厦}”这一打车句式模板中重新提取到第一槽位信息为人民公园东门,第二槽位信息为前门大厦。
或者,如果手机中已经建立了第二候选选项1102与包含“从{人民公园东门}打车去{前门大厦}”这一打车句式模板的查询请求之间的对应关系,那么,如果检测到用户点击第二卡片1101中的第二候选选项1102,则手机可向第一服务器发送对应的查询请求,该查询请求中包含“从{人民公园东门}打车去{前门大厦}”这一打车句式模板。这样,无论第一服务器中是否存储有该打车句式模板,第一服务器均可根据查询请求中携带的打车句式模板:“从{人民公园东门}打车去{前门大厦}”,重新提取到第一槽位信息为人民公园东门,第二槽位信息为前门大厦。
也就是说,即使第一服务器因用户与语音助手app本次会话超时删除了对应的打车句式模板或对话记录,但由于手机内已经记录了之前用户选中的第一槽位信息,并建立了第二槽位信息的各个候选选项与打车句式模板之间的对应关系,因此,当手机重新在前台运行语音助手app时,如果用户选中了第二卡片1101中某一选项,则第一服务器仍然可以提取到第一语音输入604中的第一槽位信息和第二槽位信息,实现用户与语音助手app之间的会话接续。
当然,手机在上述对话界面601中显示出上述第二卡片1101后,用户也可以通过语音选择第二卡片1101中的候选选项。例如,如果采集到用户输入“选择前门大厦”的第三语音输入,则手机可将第三语音输入发送给第一服务器。第一服务器可结合用户与语音助手之间的对话记录对第三语音输入进行语音识别,识别出用户选择了第二卡片1101中的第二候选选项1102。那么,第一服务器通过与第二候选选项1102对应的查询请求,第一服务器可根据该查询请求中的打车句式模板重新提取到第一槽位信息为人民公园东门,第二槽位信息为前门大厦。
可以看出,用户在选择第二槽位信息时,手机(或第一服务器)已经记录了用户之前选择的第一槽位信息,因此,当语音助手app重新被切换至前台后,手机将用户选择的第二槽位信息发送给第一服务器时,第一服务器仍然可以确定出语音助手app重新被切换至后台前用户选择的第一槽位信息,从而实现用户与语音助手app之间的对话接续。
s513、第一服务器根据更新后的第一槽位信息和第二槽位信息请求第二服务器响应上述第一语音输入。
以更新后的第一槽位信息为人民公园东门,更新后的第二槽位信息为前门大街为例,第一服务器可向滴滴打车app的服务器(即第二服务器)发送第三服务请求,第三服务请求中包含用户意图(即打车)、更新后的第一槽位信息(即人民公园东门)以及更新后的第二槽位信息(即前门大厦)。
滴滴打车app的服务器接收到第一服务器发送的第三服务请求后,与步骤s503和s507类似的,第二服务器根据第三服务请求中的用户意图可确定向用户提供打车服务,该打车服务的出发地信息为第一槽位信息(即人民公园东门),打车服务的目的地信息为第二槽位信息(即前门大厦)。由于人民公园东门和前门大厦均为地址明确的地名,因此,滴滴打车app的服务器可生成响应第一语音输入604的打车订单,该打车订单中的出发地为人民公园东门,目的地为前门大厦。进而,滴滴打车app的服务器可将生成的打车订单发送给第一服务器。
s514、第一服务器接收到第二服务器发送的上述第一语音输入的响应结果后,将该响应结果发送给手机。
s515、手机在语音助手app的对话界面中显示该响应结果。
第一服务器接收到滴滴打车app的服务器响应第一语音输入604的打车订单后,可将该打车订单发送给手机。进而,如图14所示,手机可在语音助手app的对话界面601中显示第三卡片1401,第三卡片1401中包括第一服务器发来的打车订单。第三卡片1401中还包括该打车订单的确认按钮1402以及该打车订单的取消按钮1403。
如果检测到用户点击上述取消按钮1403,或者检测到用户输入“取消打车”的语音输入,则手机可向第一服务器发送取消订单的指示,第一服务器接收到取消订单的指示后可向滴滴打车app的服务器发送订单取消的响应消息,滴滴打车app的服务器可撤销本次打车服务。
相应的,如果检测到用户点击上述确认按钮1402,或者检测到用户输入“确认打车”的语音输入,则手机可向第一服务器发送确认订单的指示,第一服务器接收到确认订单的指示后可向滴滴打车app的服务器发送订单确认的响应消息,进而,滴滴打车app的服务器可以开始为用户提供本次打车服务。并且,检测到用户点击上述确认按钮1402,或者检测到用户输入“确认打车”的语音输入后,手机可自动在前台打开滴滴打车app,用户在滴滴打车app中可以看到本次打车订单的相关信息。此时,手机可将语音助手app切换至后台运行。也就是说,在手机接收到打车订单之前,手机可在语音助手app的对话界面中通过用户与语音助手之间的多轮对话帮助用户确定本次打车订单中的相关信息,手机无需跳转至滴滴打车app的界面中便可帮助用户确定本次打车服务的相关信息,提高智能化的语音交互体验。
可以看出,在本申请实施例中,手机或服务器可记录用户在一次语音任务中每次选择的槽位信息。这样,即使用户与语音助手app之间的对话被打断,当手机重新在前台运行语音助手app时,用户也无需再向语音助手app输入已选择的槽位信息,使得用户可以在任意时刻继续与语音助手app完成被打断的对话,从而提高手机中语音助手app的工作效率和使用体验。
如图15所示,本申请实施例公开了一种电子设备,该电子设备可用于实现以上各个方法实施例中记载的方法。该电子设备具体可以包括:接收单元1501、发送单元1502、显示单元1503以及切换单元1504。其中,接收单元1501用于支持电子设备执行图5中的过程s501、s504、s508和s514;发送单元1502用于支持电子设备执行图5中的过程s502、s506和s512;显示单元1503用于支持电子设备执行图5中的过程s505、s509和s511、s515;切换单元1504用于支持电子设备执行图5中的过程s510。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
如图16所示,本申请实施例公开了一种电子设备,包括:触摸屏1601,所述触摸屏1601包括触敏表面1606和显示屏1607;一个或多个处理器1602;存储器1603;通信模块1608;以及一个或多个计算机程序1604。上述各器件可以通过一个或多个通信总线1605连接。其中,上述一个或多个计算机程序1604被存储在上述存储器1603中并被配置为被该一个或多个处理器1602执行,该一个或多个计算机程序1604包括指令,上述指令可以用于执行上述应实施例中的各个步骤。
示例性的,上述处理器1602具体可以为图1所示的处理器110,上述存储器1603具体可以为图1所示的内部存储器121和/或外部存储器120,上述显示屏1607具体可以为图1所示的显示屏194,上述通信模块1608具体可以为图1所示的移动通信模块150和/或无线通信模块160,上述触敏表面1606具体可以为图1所示的传感器模块180中的触摸传感器,本申请实施例对此不做任何限制。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何在本申请实施例揭露的技术范围内的变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应以所述权利要求的保护范围为准。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除