CN111399910B - 用户指令的处理方法及装置 - Google Patents
用户指令的处理方法及装置 Download PDFInfo
- Publication number
- CN111399910B CN111399910B CN202010172526.3A CN202010172526A CN111399910B CN 111399910 B CN111399910 B CN 111399910B CN 202010172526 A CN202010172526 A CN 202010172526A CN 111399910 B CN111399910 B CN 111399910B
- Authority
- CN
- China
- Prior art keywords
- voice
- instruction
- operation instruction
- server
- user
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 10
- 238000000034 method Methods 0.000 claims abstract description 58
- 230000004044 response Effects 0.000 claims abstract description 36
- 230000003993 interaction Effects 0.000 claims description 54
- 238000012545 processing Methods 0.000 claims description 22
- 239000012634 fragment Substances 0.000 claims description 9
- 238000001514 detection method Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 230000000977 initiatory effect Effects 0.000 claims 2
- 235000015220 hamburgers Nutrition 0.000 description 12
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 235000012054 meals Nutrition 0.000 description 4
- 235000015243 ice cream Nutrition 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 241000345998 Calamus manan Species 0.000 description 2
- 235000002566 Capsicum Nutrition 0.000 description 2
- 239000006002 Pepper Substances 0.000 description 2
- 241000722363 Piper Species 0.000 description 2
- 235000016761 Piper aduncum Nutrition 0.000 description 2
- 235000017804 Piper guineense Nutrition 0.000 description 2
- 235000008184 Piper nigrum Nutrition 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012797 qualification Methods 0.000 description 2
- 235000012950 rattan cane Nutrition 0.000 description 2
- 241000287828 Gallus gallus Species 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000796 flavoring agent Substances 0.000 description 1
- 235000019634 flavors Nutrition 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本说明书实施例提供一种用户指令的处理方法,该方法的执行主体为客户端。该方法包括:首先,响应于用户发出的在第一服务中创建会话的指令,创建第一会话;接着,响应于开始采集用户输入的语音信号,生成待分配的语音指令编号;然后,从服务端获取利用所述语音信号解析出的语音操作指令,并将所述语音指令编号分配给所述语音操作指令;再接着,获取第一指令编号,对应于所述第一会话中最新执行的第一操作指令;再然后,判断所述语音指令编号相对于所述第一指令编号,是否为在先生成编号;最后,在判断出是在先生成编号的情况下,舍弃所述语音操作指令。如此,可以实现对用户指令的冲突管理。
Description
技术领域
本说明书实施例涉及计算机处理技术领域,具体地,涉及一种对用户指令的处理方法及装置。
背景技术
越来越多的企业、结构推出支持语音交互的产品,如语音点餐系统等。这类产品使得用户可以通过语音交互的交互方式,如完成点餐和支付等。此外,其中部分产品还支持在与用户进行语音交互的同时,与用户进行其他模式的交互,如触屏模式等。对于这部分产品,因同时支持多种交互模式,使得其接收用户指令的情况比较复杂,这无疑给指令的处理带来了挑战。
因此,迫切需要一种方案,针对支持多种交互模式的场景,可以对接收到的用户指令进行更加准确、有效地处理,进而提高用户体验。
发明内容
本说明书中的一个或多个实施例提供一种用户指令的处理方法及装置,通过对接收的用户指令进行冲突管理,可以使得对用户指令的执行结果更加贴近用户的实际意图,或者说,使得贴近用户真实意图的置信度更高,从而提高用户体验。
第一方面,提供一种用户指令的处理方法,所述方法的执行主体为客户端,所述方法包括:响应于用户发出的在第一服务中创建会话的指令,创建第一会话;响应于开始采集用户输入的语音信号,生成待分配的语音指令编号;从服务端获取利用所述语音信号解析出的语音操作指令,并将所述语音指令编号分配给所述语音操作指令;获取第一指令编号,对应于所述第一会话中最新执行的第一操作指令;判断所述语音指令编号相对于所述第一指令编号,是否为在先生成编号;在判断出是在先生成编号的情况下,舍弃所述语音操作指令。
在一个实施例中,在获取第一指令编号之前,所述方法还包括:响应于接收所述第一操作指令,生成分配给所述第一操作指令的所述第一指令编号,所述第一操作指令通过除语音交互以外的其他交互模式而输入;将所述第一操作指令发送至服务端,以使服务端执行所述第一操作指令。
在一个具体的实施例中,所述其他交互模式为触屏交互模式,所述第一操作指令为触屏操作指令;或者,所述其他交互模式为物理按键交互模式,所述第一操作指令为物理按键指令。
在一个具体的实施例中,响应于开始采集用户输入的语音信号,生成待分配的语音指令编号,包括:获取第二指令编号,对应于在开始采集所述语音信号之前,所述第一会话中最新生成的指令编号;生成大于所述第二指令编号的所述语音指令编号;其中,响应于接收所述第一操作指令,生成分配给所述第一操作指令的所述第一指令编号,包括:获取第三指令编号,对应于在接收所述第一操作指令之前,所述第一会话中最新生成的指令编号;生成大于所述第三指令编号的所述第一指令编号;其中,判断所述语音指令编号相对于所述第一指令编号,是否为在先生成编号,包括:判断所述语音指令编号是否小于所述第一指令编号;其中,在判断出是在先生成编号的情况下,舍弃所述语音操作指令,包括:在判断出所述语音指令编号小于所述第一指令编号情况下,舍弃所述语音操作指令。
在一个实施例中,在判断出不是在先生成编号的情况下,舍弃所述语音操作指令,包括:判断所述语音操作指令和所述第一操作指令的内容是否相同;在判断出相同的情况下,舍弃所述语音操作指令。
在一个实施例中,所述方法还包括:在判断出不是在先生成编号的情况下,通知所述服务端执行所述语音操作指令;从所述服务端接收针对所述语音操作指令的执行结果。
在一个具体的实施例中,所述第一服务为购物服务,所述语音操作指令中包括商品信息和针对商品购物车的操作类型;其中,在创建第一会话之后,所述方法还包括:向所述服务端发送创建所述第一会话的通知,以使所述服务端创建针对所述第一会话的购物车;其中,从所述服务端接收针对所述语音操作指令的执行结果,包括:从所述服务端接收针对所述购物车的更新结果,该更新结果通过根据所述商品信息,执行与所述操作类型对应的业务逻辑,对所述购物车进行更新而得到。
在一个更具体的实施例中,从所述服务端接收针对所述语音操作指令的执行结果,还包括:从所述服务端接收商品推荐信息。
另一方面,在一个更具体的实施例中,在通知所述服务端执行所述语音操作指令之后,以及,在从所述服务端接收针对所述语音操作指令的执行结果之前,所述方法还包括:从所述服务端接收多个匹配商品,所述多个匹配商品通过利用所述商品信息,对所述第一服务的商品库进行检索而得到;向所述服务端发送用户从所述多个匹配商品中选取的第一匹配商品,以使服务端根据所述第一匹配商品,通过执行所述业务逻辑更新所述购物车。
在一个实施例中,在响应于开始采集用户输入的语音信号,生成待分配的语音指令编号之前,所述方法还包括:响应于所述第一会话的创建,开始检测所述客户端所处环境中是否存在有效语音信号,所述有效语音信号对应于所述用户输入的语音信号;其中,响应于开始采集用户输入的语音信号,生成待分配的语音指令编号,包括:在检测到存在有效语音信号的情况下,开始持续采集用户输入的流式语音信号,并生成所述语音指令编号;其中,从服务端获取利用所述语音信号解析出的语音操作指令,包括:基于所述流式语音信号,持续调用所述服务端提供的断句服务,以使服务端在各个时刻下将所述流式语音信号转换成对应的识别文本,以及判断是否在该时刻下的识别文本之后进行断句,直到接收到断句成功通知;从所述服务端接收所述语音操作指令,其通过对所述断句成功通知所对应的新增断句片段进行解析而得到。
在一个具体的实施例中,在所述客户端收到断句成功对应的新增断句文本之后,所述方法还包括:在仍检测到存在有效语音信号的情况下,继续采集用户输入的后续流式语音信号,并生成待分配的其他语音指令编号。
第二方面,提供一种用户指令的处理装置,所述装置的集成于客户端,所述装置包括:会话创建单元,配置为响应于用户发出的在第一服务中创建会话的指令,创建第一会话;语音编号生成单元,配置为响应于开始采集用户输入的语音信号,生成待分配的语音指令编号;语音指令获取单元,配置为从服务端获取利用所述语音信号解析出的语音操作指令;语音编号分配单元,配置为将所述语音指令编号分配给所述语音操作指令;第一编号获取单元,配置为获取第一指令编号,对应于所述第一会话中最新执行的第一操作指令;编号判断单元,配置为判断所述语音指令编号相对于所述第一指令编号,是否为在先生成编号;指令处理单元,配置为在判断出是在先生成编号的情况下,舍弃所述语音操作指令。
第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面中提供的方法。
第四方面,提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面中提供的方法。
综上,采用本说明书中实施例披露的用户指令的处理方法及装置,通过对接收的用户指令进行冲突管理,可以使得对用户指令的执行结果更加贴近用户的实际意图,或者说,使得贴近用户真实意图的置信度更高,从而提高用户体验。
附图说明
为了更清楚地说明本说明书披露的多个实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书披露的多个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出根据一个实施例的针对支持多种交互模式的客户端的使用场景示意图;
图2示出根据一个实施例的用户指令的处理方法流程图;
图3示出根据一个实施例的客户端和服务端之间的交互示意图;
图4示出根据另一个实施例的客户端和服务端之间的交互示意图;
图5示出根据一个实施例的用户指令的处理装置结构图。
具体实施方式
下面结合附图,对本说明书披露的多个实施例进行描述。
如前所述,对于同时支持多种交互模式(或称多种模式的交互)的产品,其接收用户指令的情况比较复杂。其中多种交互模式可以包括语音交互模式、触屏交互模式和物理按键交互模式。通常来说,可以按照用户指令的接收顺序,顺序执行用户指令,然而,用户通过语音交互模式输入的语音操作指令(以下或简称语音指令)存在时延问题。具体地,对于语音指令,需要先对用户输入的语音信号进行解析,得到语音指令,进而才能执行语音指令,而对于通过其他交互模式输入的操作指令,如触屏指令、物理按键指令等,对其接收以后可以直接在本地执行,或者即时发给远程服务端执行。
进一步地,语音指令存在时延,将导致出现指令冲突的情况,比如说,用户开始输入语音,在解析出对应的语音指令之前,用户还输入触屏指令,并且触屏指令已被执行,此时,若执行解析出的语音指令,极有可能不符合用户真实意图。例如,有的用户可能习惯边说边触摸屏幕,具体可以参见图1示出的针对支持多种交互模式的客户端的使用场景示意图,此时,若同时执行接收到的触屏指令和随后解析出的语音指令,将导致执行重复(例如,下单2个汉堡,而用户只想点1个),不仅耗费计算资源,还可能导致用户需要进行额外操作(如删除购物车中的1个汉堡)。又比如说,用户密集、连续地输入4个触屏指令和1个语音指令,产品先执行前4个触屏指令,尚未处理语音指令,而此时用户因未马上看到语音指令的执行结果,以为语音指令输入失败,而输入与语音指令具有相同内容的触屏指令,或者,改变想法,输入与语音指令具有不同内容的其他指令,此时,若顺序执行该语音指令和触屏指令,同样将导致计算资源的浪费,以及不佳的用户体验。
基于以上观察和分析,发明人提出一种针对用户指令的处理方法,在一个实施例中,在开始接收用户语音输入的时刻,为后续解析出的语音指令生成待分配的指令编号,并在语音指令解析出来之后,将该指令编号分配给该语音指令,进一步地,基于生成该指令编号和最新已执行指令的指令编号的先后顺序,判断是否执行该语音指令。如此,可以实现对接收到的用户指令的冲突管理,使得对用户指令的执行结果更加贴近用户的实际意图,或者说,使得贴近用户真实意图的置信度更高,从而提高用户体验。
下面,结合具体的实施例,描述本说明书所披露方法的具体实施步骤。
具体地,图2示出根据一个实施例的用户指令的处理方法流程图,所述方法的执行主体为客户端,例如,上述产品的客户端,又例如,图1中示出的立式IoT(Internet ofThings,物联网)机具。如图2所示,所述方法可以包括以下步骤:
步骤S210,响应于用户发出的在第一服务中创建会话的指令,创建第一会话;步骤S220,响应于开始采集用户输入的语音信号,生成待分配的语音指令编号;步骤S230,从服务端获取利用所述语音信号解析出的语音操作指令,并将所述语音指令编号分配给所述语音操作指令;步骤S240,获取第一指令编号,对应于所述第一会话中最新执行的第一操作指令;步骤S250,判断所述语音指令编号相对于所述第一指令编号,是否为在先生成编号;步骤S260,在判断出是在先生成编号的情况下,舍弃所述语音操作指令。
针对以上步骤,首先需要说明的是,上述步骤中提及的第一服务和第一会话等中的“第一”,以及后续提到类似用语,仅用于区分同类事物,不具有其他限定作用。
以上步骤具体如下:
首先,在步骤S210,响应于用户发出的在第一服务中创建会话的指令,创建第一会话。
具体地,上述客户端用于向用户提供第一服务。在一个实施例中,第一服务可以为购物服务或点餐服务。在一个具体的实施例中,购物服务涉及的目标商品可以为多种,如餐品、衣服、裤子、鞋帽、饰品等等。在另一个实施例中,第一服务可以为算术服务。在一个具体的实施例中,算术服务可以为计算多种或多个动物所具有总腿数的服务。在又一个实施例中,第一服务可以为聊天服务。在一个具体的实施例中,聊天服务涉及的目标主题可以有多种,如天气、球赛、新闻等等。
在一个实施例中,客户端可以响应于任意用户发出的开始使用第一服务的指令,或者说,在第一服务中创建会话的指令,创建第一会话或者说开始第一会话。在一个具体的实施例中,其中开始使用第一服务的指令可以为点击指令或声控指令。在一个例子中,其中点击指令可以对应于对客户端界面中开始使用服务图标(如开始点餐图标)的点击操作。在一个例子中,其中声控指令可以为用户说出“小x,我要点餐”,其中“小x”为语音唤醒词。
以上,可以实现第一会话的创建。
接着,在步骤S220,响应于开始采集用户输入的语音信号,生成待分配的语音指令编号。
对于上述开始采集用户输入的语音信号,在一个实施例中,可以包括:响应于接收到用户发出的语音输入指令,开始采集用户输入的语音信号。在一个具体的实施例中,其中语音输入指令可以为触屏点击指令或物理按键指令。在一个例子中,其中点击指令可以对应于,对客户端界面中语音输入图标的点击操作。在一个例子中,其中物理按键指令可以对应于,对客户端上用于激活语音输入功能的物理按键的按压操作。
在另一个实施例中,在步骤S220之前,所述方法还可以包括:响应于所述第一会话的创建,开始检测所述客户端所处环境中是否存在有效语音信号,所述有效语音信号对应于所述用户输入的语音信号。相应地,上述开始采集用户输入的语音信号,可以包括:在检测到存在有效语音信号的情况下,开始持续采集用户输入的语音信号。在一个具体的实施例中,客户端可以响应于所述第一会话的创建,开始持续采集其所处环境中的语音信号,然后通过对其采集到的各个时刻下的语音信号进行VAD(Voice Activity Detection,语音活动检测)检测,在检测结果为该时刻下的语音信号的能量大于预设门限值时,判定该语音信号中存在有效语音信号,或者说,判定检测到用户语音输入,并据此开始采集用户输入的语音信号。
以上,可以实现对用户输入的语音信号的采集。进一步地,响应于开始采集,生成待分配的语音指令编号。在一个实施例中,可以先获取第二指令编号,此编号对应于,在开始采集所述语音信号之前,上述第一会话中最新生成(或称最近一次生成,或称生成时刻与当前时刻的差值最小)的第二操作指令;然后,在一个具体的实施例中,可以生成大于第二指令编号(如3)的语音指令编号(如4),在另一个具体的实施例中,可以生成小于第二指令编号(如68)的语音指令编号(如67)。在另一个实施例中,可以确定针对语音信号的开始采集时刻,然后将采集时刻对应的数字,作为语音指令编号。在一个例子中,假定开始采集时刻为13(h):01(min):56(s):054(ms),由此可以将语音指令编号确定为130156054。
以上可以实现,响应于开始采集用户输入的语音信号,生成待分配的语音指令编号。在一个实施例中,语音指令编号可以为一个或多个,用于分配给后续可能解析出的一个或多个语音指令。
然后,在步骤S230,从服务端获取利用所述语音信号解析出的语音操作指令,并将所述语音指令编号分配给所述语音操作指令。
在一个实施例中,客户端可以将用户输入的完整的语音信号发送给服务端,以使服务端从中解析出语音操作指令。在一个具体的实施例中,客户端在检测到用户语音输入后,继续持续采集语音信号,直到检测到用户语音输入停止,此时,将其间采集到的用户输入的语音信号发送给服务端,以供服务端进行解析。进一步地,服务端在接收到语音信号后,利用ASR(Automatic Speech Recognition,自动语音识别)技术,识别出与该语音信号对应的识别文本,并且,将从该语音信号中提取的音频特征和从该识别文本中提取的文本特征,共同输入预先训练的指令识别模型中,得到对应的一个或多个语音操作指令。由此,客户端可以从服务端接收解析出的这些语音操作指令。
在另一个实施例中,考虑到存在用户一口气说一大段话,意图输入多个语音指令的情况,为了使用户具有更优的体验,希望可以快速、逐个解析并处理(如执行)其中各个语音操作指令。此时,客户端可以基于持续采集的用户输入的流式语音信号,持续调用服务端提供的断句服务,以使服务端在各个时刻下将所述流式语音信号转换成对应的识别文本,以及判断是否在该时刻下的识别文本之后进行断句,直到接收到断句成功通知;以及,从所述服务端接收所述语音操作指令,其通过对所述断句成功通知所对应的新增断句片段进行解析而得到。进一步地,在接收到上述断句成功通知后,客户端可以在仍检测到存在有效语音信号的情况下,继续采集用户输入的后续流式语音信号,并生成待分配的其他语音指令编号。如此,可以无需等待用户语音输入,而是可以边接收用户语音边进行指令解析。
在一个具体的实施例中,其中服务端判断是否在该时刻下的识别文本之后进行断句,可以包括:首先,将当前时刻下的当前识别文本,与已有断句文本进行比对,得到增量文本,所述已有断句文本是对当前时刻之前的识别文本进行断句而形成的断句片段序列,例如,假定已有断句文本为“我要一个汉堡”,当前识别文本为“我要一个汉堡再要一个可乐”,此时得到的增量文本为“再要一个可乐”;接着,基于预先获取的与所述第一服务对应的多个关键词,对所述增量文本进行匹配,得到匹配词集合,例如,假定其中多个关键词包括汉堡、可乐、鸡翅等,得到的匹配词集合可以为{可乐};然后,至少基于所述匹配词集合,确定文本特征,例如,基于匹配词集合{可乐},可以确定出的文本特征为:有效商品名数量为1;再接着,至少基于所述文本特征,判断是否在当前识别文本后进行断句,从而将所述增量文本确定为新增断句片段,例如,假定预先设定的断句规则包括,如果文本特征中包括的有效商品数量大于0,则判断在当前识别文本后进行断句,由此,可以判断出在“我要一个汉堡再要一个可乐”后进行断句,并将增量文本“再要一个可乐”确定为新增断句片段。
进一步地,服务端可以对断句得到的新增断句片段进行指令解析,从而得到解析出的语音操作指令。在一个具体的实施例中,首先,对所述新增断句片段(如一个汉堡再来个冰淇淋)进行分词处理,得到若干分词,组成分词序列(如,一汉堡再来个冰淇淋,其中用空格区隔不同分词);接着,将所述分词序列中,与所述第一服务中的商品描述相关的若干分词(如:汉堡、冰淇淋)分别转化为预定格式的标记符(如:T_XX),得到包括分词和标记符的混合序列(如:一T_01再来个T_02);然后,基于预先设定的语义模板集,对初始为上述混合序列的当前序列进行循环解析,其中任意一次循环解析包括,从当前序列(如:一T_01再来个T_02)头部开始,截取出与所述多个语义模板中的某个语义模板(如add_pattern_1=quantity?goods)匹配的序列部分(如:一T_01),根据该某个语义模板对应的操作类型(如,ADD)和该序列部分中的商品描述符(如goods),得到解析出的操作指令(如:ADD,{"汉堡",1}),并更新当前序列(例如更新为:再来个T_02)。如此,通过多轮次的循环解析,直到当前序列为空,可以实现从新增断句片段中,全面、精准、高效地解析出全量的用户语音指令。
为便于理解,下面对上述语义模板集的设定进行介绍。具体地,语义模板集可以由工作人员预先设定,具体地,发明人发现,无论用户的输入内容多么复杂多变,都可以将其拆分成对应不同操作指令的粒度较小的文本分段,由此,可以根据大量历史的或可能的用户输入,设定包括多个语义模板的语义模板集,用于对上述混合序列进行循环解析。
在一个实施例中,可以先确定第一服务中支持的多种操作类型。在一个具体的实施例中,该多种操作类型可以包括增加、删除、清空、更新、替换和定制套餐等。需要说明,其中清空、更新、替换和定制套餐等较为复杂的指令解析,在常规的人机交互服务中是无法实现的,而在本说明书实施例中,通过利用语义模板集进行循环解析,可以实现对这些复杂操作指令的解析。
进一步地,除确定上述多种操作类型以外,还可以根据对大量用户输入的分析,定义多个语义描述符,然后基于多个语义描述符,针对每种操作类型,设定对应的至少一个语义模板。需要说明,考虑到操作指令是围绕商品进行的,因此,定义的多个语义描述符中至少包括商品描述符,在一个具体的实施例中,该商品描述符对应于上述标记符的组合,在一个例子中,假定上述预定格式的第一标记符为T_xx,则商品描述符可以被定义为:goods=("":"<goods")T_xx{1,99}("":">"),其表示goods可以匹配1-99个T_xx。在另一个具体的实施例中,该商品描述符对应于若干第一标记符和中止符的组合,假定上述预定格式的第一标记符和中止符分别为G_xxx和_EOS_,则商品描述符可以被定义为:goods=("":"<goods")G_xxx{1,999}("":">")_EOS_,其表示goods可以匹配1-999个G_xxx,以_EOS_结束。根据一个具体的例子,针对操作类型“增加”,设定的至少一个语义模板中可以包括语义模板:add_pattern_1=goods,其中goods表示商品描述符。
在一个具体的实施例中,上述多个语义描述符中还可以包括数量描述符,对数量描述符的定义可以为:数量描述符用于匹配任意的数量词,包括阿拉伯数字1或3,或汉字形式的数字,如一或壹、三或叁等。在一个例子中,数量描述符可以表示为quantity。在另一个具体的实施例中,上述多个语义描述符中还可以包括单位描述符,对单位描述符的定义可以为:单位描述符用于匹配任意的单位词,如个、份、杯、捆、袋等等。在一个例子中,单位描述符可以表示为unit。
在又一个具体的实施例中,上述多个语义描述符中还可以包括若干操作类型描述符,具体可以包括与上述多种操作类型种每个操作类型对应的一个或多个操作类型描述符。在一个更具体的实施例中,与操作类型“增加”对应的操作类型描述符可以包括添加动词描述符(如,表示为add_verb)、添加连词描述符(如,表示为add_linker),进一步地,在一个例子中,可以将前者定义为:add_verb=“来”|“买”|“要”|“点”,其中符号“|”表示“或”,将后者定义为:add_linker=“和”|“加”|“再要”|“再来”。在另一个更具体的实施例中,与操作类型“更新”对应的操作类型描述符可以包括更新动词描述符(如,表示为update_verb)、改变动词描述符(如,表示为change_verb),进一步地,在一个例子中,可以将前者定义为:update_verb=“要”,将后者定义为:change_verb=“要换成”|要改成”。在又一个更具体的实施例中,与操作类型“删除”对应的操作类型描述符可以包括在前删除动词描述符(如,表示为delete_verb_front)、在后删除动词描述符(如,表示为delete_verb_back),进一步地,在一个例子中,可以将前者定义为:delete_verb_front=“删去”|“去掉”|“删除”,将后者定义为:delete_verb_back=“不要了”|“不想要了”|“删除”|。如此,可以定义出多个语义描述符。
基于以上定义的多个语义描述符,可以针对每种操作类型,设定对应的至少一个语义模板。在一个具体的实施例中,针对操作类型“增加”,设定的多个语义模板中可以包括:add_pattern1=add_verb quantity?unit?goods,其中add_verb表示上述增加动词描述符;quantity表示上述数量描述符,quantity?表示quantity可有可无;unit表示上述单位描述符,unit?表示unit可有可无;goods表示上述商品描述符。在一个具体的实施例中,针对操作类型“增加”,设定的多个语义模板中还可以包括:add_pattern2=goods add_linker quantity,其中goods表示上述商品描述符;add_linker表示上述添加连词描述符;quantity表示上述数量描述符。在一个具体的实施例中,针对操作类型“删除”,设定的多个语义模板中可以包括:delete_pattern1=delete_verb_front quantity?goods,其中delete_verb_front表示上述在前删除动词描述符;quantity表示上述数量描述符,quantity?表示quantity可有可无;goods表示上述商品描述符。如此,可以针对每种操作类型,定义至少一个语义模板,进而组成上述多个语义模板。
以上可以实现对语义模板集的预先设定,相应地,服务端可以对预先设定的语义模板集进行获取,具体地,获取的语义模板集包括对多个语义模板的第一定义,每个语义模板包括多个语义描述符的预定组合排列,且对应于一种操作类型;所述多个语义描述符包括对应于所述标记符的组合的商品描述符。在一个实施例中,所述语义模板集还包括对所述多个第二描述符的第二定义。在一个实施例中,上述多个语义描述符中还可以包括:若干操作类型描述符、数量描述符和单位描述符。
由上,可以实现边接收用户的流式语音输入,边逐个解析出用户语音指令,从而促进在后续流程中,可以通过依次处理解析出的语音指令,实现对用户语音输入的快速响应,进而减少用户等待时间,大大提高用户体验。
对于以上解析出的一个或多个语音指令,客户端在从服务端获取以后,可以将上述步骤S220中生成的待分配的语音指令编号,分配给解析出的若干语音指令。
在一个实施例中,生成的语音指令编号为1个,解析出的语音指令为多个,此时,可以将该语音指令编号同时分配给解析出的多个语音指令,也就是说,多个语音指令编号分配到相同的指令编号。在另一个实施例中,生成的语音指令编号为多个(如3个),解析出的语音指令也为多个(如3个),此时,此时,可以基于预定的排序方式(如,由大到小或由小到大)对多个语音指令编号进行排序,再按照多个语音指令被解析出来的先后顺序,为多个语音指令顺序分配不同的语音指令编号。
以上,可以实现将生成的待分配的语音指令编号,分配给从服务端获取的解析出的语音操作指令。
然后,在步骤S240,获取第一指令编号,对应于所述第一会话中最新执行(或称最近一次执行,或称执行时刻与当前时刻的差值最小)的第一操作指令。
在一个实施例中,在步骤S240之前,所述方法还可以包括:响应于接收所述第一操作指令,生成分配给所述第一操作指令的所述第一指令编号,所述第一操作指令通过除语音交互以外的其他交互模式而输入;将所述第一操作指令发送至服务端,以使服务端执行所述第一操作指令。在一个具体的实施例中,所述其他交互模式为触屏交互模式,所述第一操作指令为触屏操作指令。在另一个实施例中,所述其他交互模式为物理按键交互模式,所述第一操作指令为物理按键指令。需要说明,对于语音指令,通常是基于用户偏口语化的描述而解析出来的,解析过程需要耗费一定时间,并且,语音指令的内容不如触屏指令和按键指令的内容,那么明确,比如说,解析出的语音指令可能为{add,辣汉堡,1},此时,因辣汉堡并不是商品名称的规范表达,所以在执行时还需要进一步进行检索,存在其执行结果与用户实际意图存在偏差的可能性,而触屏指令和按键指令是基于屏幕中的操作或商品等的规范表达而发出的,所以,可以为触屏指令和按键指令设置更高的优先级,也就是在接收以后直接执行。
进一步地,对于上述响应于接收所述第一操作指令,生成分配给所述第一操作指令的所述第一指令编号,在一个具体的实施例中,可以包括:首先,获取第三指令编号,对应于在接收所述第一操作指令之前,所述第一会话中最新生成的指令编号;然后,与上述语音操作指令的生成规则相对应地,在一个更具体的实施例中,可以生成大于第三指令编号(如2)的第一指令编号(如3);在另一个更具体的实施例中,可以生成小于第三指令编号(如67)的语音指令编号(如66)。在另一个更具体的实施例中,可以确定针对第一操作指令的接收时刻,然后将接收时刻对应的数字,作为第一指令编号。在一个例子中,假定接收时刻为13(h):01(min):57(s):000(ms),由此可以将第一指令编号确定为130157000。如此,可以生成第一指令编号,基于此,可以在本步骤中对其进行获取。
基于以上在步骤S220中生成的语音指令编号和在步骤S240中获取的第一指令编号,在步骤S250中,判断所述语音指令编号相对于所述第一指令编号,是否为在先生成编号。
在一个实施例中,语音指令编号的生成包括:获取前述第二指令编号,并生成大于第二指令编号的语音指令编号,并且,第一指令编号的生成包括:获取前述第三指令编号,并生成大于第三指令编号的第一指令编号。基于此,本步骤中可以包括:判断语音指令编号是否小于第一指令编号,进一步地,在判断出小于的情况下,判定是在先生成编号,而在判断出不小于(包括等于或大于)的情况下,判定不是在先生成编号。
在另一个实施例中,语音指令编号的生成包括:获取前述第二指令编号,并生成小于第二指令编号的语音指令编号,并且,第一指令编号的生成包括:获取前述第三指令编号,并生成小于第三指令编号的第一指令编号。基于此,本步骤中可以包括:判断语音指令编号是否大于第一指令编号,进一步地,在判断出大于的情况下,判定是在先生成编号,而在判断出不大于(包括等于或小于)的情况下,判定不是在先生成编号。
在又一个实施例中,语音指令编号的生成包括:确定针对对应语音信号的开始采集时刻,然后将采集时刻对应的数字,作为语音指令编号,并且,第一指令编号的生成包括:确定上述针对第一操作指令的接收时刻,然后将接收时刻对应的数字,作为第一指令编号。基于此,本步骤中可以包括:判断语音指令编号是否小于第一指令编号,进一步地,在判断出小于的情况下,判定是在先生成编号,而在判断出不小于(包括等于或大于)的情况下,判定不是在先生成编号。
以上,可以实现判断所述语音指令编号相对于所述第一指令编号,是否为在先生成编号。进一步地,在步骤S260,在判断出是在先生成编号的情况下,舍弃所述语音操作指令。在一个实施例中,在判断出是在先生成编号的情况下,直接舍弃语音操作指令,这意味着,语音操作指令不会被执行。如此,可以避免用户指令的重复执行。在另一个实施例中,在判断出是在先生成编号的情况下,还可以进一步判断语音操作指令和第一操作指令的内容是否相同,然后,在判断出内容相同的情况下,舍弃语音操作指令,而在判断出内容不相同的情况下,通知服务端执行上述语音操作指令。如此,可以进一步提高指令冲突管理的准确性,从而使得对指令的处理结果更加贴近用户的真实意图。
另一方面,在判断出不是在先生成编号的情况下,通知服务端执行上述语音操作指令,并从所述服务端接收针对所述语音操作指令的执行结果。
在一个实施例中,上述第一服务为购物服务,所述语音操作指令中包括商品信息和针对商品购物车的操作类型。在一个具体的实施例中,所述商品信息包括以下中的至少一种:商品属性、商品规范名称、商品常用名称。基于此,在上述步骤S210之后,所述方法还可以包括:向所述服务端发送创建所述第一会话的通知,以使所述服务端创建针对所述第一会话的购物车。进一步地,上述从所述服务端接收针对所述语音操作指令的执行结果可以包括:从所述服务端接收针对所述购物车的更新结果,该更新结果通过根据所述商品信息,执行与该操作类型对应的业务逻辑,对所述购物车进行更新而得到。
在一个具体的实施例中,在上述通知所述服务端执行所述语音操作指令之后,以及,在从所述服务端接收针对所述语音操作指令的执行结果之前,所述方法还可以包括:从所述服务端接收多个匹配商品,所述多个匹配商品通过利用所述商品信息,对所述第一服务的商品库进行检索而得到;向所述服务端发送用户从所述多个匹配商品中选取的第一匹配商品,以使服务端根据所述第一匹配商品,通过执行所述业务逻辑更新所述购物车。
在一个具体的实施例中,上述从所述服务端接收针对所述语音操作指令的执行结果,还可以包括:从所述服务端接收商品推荐信息。如此,经过冲突管理后允许执行语音指令,所得到的执行结果更可能贴近用户本意。
综上,采用本说明书实施例披露的用户指令的处理方法,通过对接收的用户指令进行冲突管理,可以使得对用户指令的执行结果更加贴近用户的实际意图,或者说,使得贴近用户真实意图的置信度更高,从而提高用户体验。
此外需要说明的是,在上述实施例中,对购物车的创建和状态维护,以及用户输入指令的执行,主要以服务端执行这些任务为例进行说明。而实际上,还可以是客户端执行用户指令,并更新购物车状态,此时,客户端在接收到触屏指令或物理按键指令后,可以直接在客户端本地执行,并且,在判断出解析出的语音指令编号不是在先指令编号的情况下,可以直接在本地执行与语音指令编号对应的语音指令,而无需发送至服务端执行。
以上,主要从客户端作为执行主体的角度,对上述用户指令的处理方法进行说明。下面,从客户端和服务端两端交互的角度,并结合具体的例子,对所述处理方法进行进一步说明。
具体地,图3示出根据一个实施例的客户端和服务端之间的交互示意图,其中客户端提供的第一服务为购物服务或点餐服务,服务端提供对流式语音信号的识别服务,以及对识别文本的断句服务,以及对新增断句片段的指令解析服务。如图3所示,其中交互过程可以包括以下步骤:
步骤S300,客户端接收用户发出的在第一服务中创建会话的创建指令。
步骤S301,客户端基于上述创建指令,创建第一会话。
步骤S302,客户端向服务端发送针对第一会话的创建通知。
步骤S303,服务端基于创建通知,创建针对第一会话的购物车。
步骤S304,客户端响应于开始持续采集用户输入的流式语音信号,生成待分配的语音指令编号。具体地,首先,获取第二指令编号(如,0),对应于第一会话中最新生成的指令编号,然后,在第二指令编号的基础上加1,生成语音指令编号(如,1)。
步骤S305,客户端基于持续采集的流式语音信号,持续调用服务端提供的流式语音识别服务以及断句服务。
步骤S306,服务端对各个时刻接收的流式语音信号进行语音识别,得到各个时刻下的流式语音识别文本,并且,对各个时刻下的流式语音识别文本进行断句判断。在一个例子中,先得到识别文本“我要”,并对其进行断句判断,接着得到识别文本“我要一个”,并对其进行断句判断,等等。
需要理解,步骤S305和步骤S306中,客户端采集流式语音信号,发送流式语音信号,服务端识别流式语音信号和对流式语音识别文本进行断句,是一个循环进行的过程,也就是说,步骤S305和步骤S306可能会重复顺序执行多次,直到服务端断句成功,则针对断句成功对应的新增识别文本,执行步骤S320和步骤S321。
步骤S307,客户端接收触屏操作指令,并为该触屏操作指令分配触屏指令编号。具体地,首先,获取第三指令编号(如,1),对应于第一会话中最新生成的指令编号(如,上述语音指令编号),然后,在第三指令编号的基础上加1,生成触屏指令编号(如,2)。
步骤S308,客户端向服务端发送触屏操作指令。例如,发送的触屏操作指令为:{add,香辣鸡腿堡,1}。
步骤S309,服务端执行触屏操作指令,以更新购物车状态。例如,在购物车中添加1个香辣鸡腿堡。
步骤S310,服务端向客户端发送断句成功通知。进一步地,客户端基于断句成功通知,在检测到仍然存在有效语音信号的情况下,继续采集流式语音信号,并调用流式语音识别服务和断句服务;而在检测出不存在有效语音信号的情况下,继续检测是否存在有效语音信号。
步骤S311,服务端对新增断句文本进行指令解析,得到语音操作指令。在一个例子中,解析得到的语音操作指令为:{add,香辣鸡腿堡,1}。
步骤S312,客户端从服务端接收语音操作指令。
步骤S313,客户端获取第一指令编号(例如,2),对应于所述第一会话中最新执行的第一操作指令(例如,上述触屏操作指令),并判断所述语音指令编号相对于所述第一指令编号,是否为在先生成编号。
步骤S314,客户端在判断出是在先生成编号的情况下,舍弃所述语音操作指令。例如,语音指令编号和第一指令编号分别为1和2,由此可以判断出语音指令编号是在先生成编号,并据此舍弃所述语音操作指令。
具体地,图4示出根据另一个实施例的客户端和服务端之间的交互示意图,其中客户端提供的第一服务为购物服务或点餐服务,服务端提供对流式语音信号的识别服务,以及对识别文本的断句服务,以及对新增断句片段的指令解析服务。如图4所示,其中交互过程可以包括以下步骤:
步骤S400,客户端接收用户发出的在第一服务中创建会话的创建指令。
步骤S401,客户端基于上述创建指令,创建第一会话。
步骤S402,客户端向服务端发送针对第一会话的创建通知,并且,发送客户端中当前用于展示给用户的商品列表。
步骤S403,服务端基于创建通知,创建针对第一会话的购物车。
步骤S404,客户端接收触屏操作指令,并为该触屏操作指令分配触屏指令编号。具体地,先获取第三指令编号(如,0),对应于第一会话中最新生成的指令编号,再在第三指令编号的基础上加1,生成触屏指令编号(如,1)。
步骤S405,客户端向服务端发送触屏操作指令。例如,发送的触屏操作指令为:{add,香辣鸡腿堡,1}。
步骤S406,服务端执行触屏操作指令,以更新购物车状态。例如,在购物车中添加1个香辣鸡腿堡。
步骤S407,客户端响应于开始持续采集用户输入的流式语音信号,生成待分配的语音指令编号。具体地,首先,获取第二指令编号(如,1),对应于第一会话中在开始采集流式语音信号之前最新生成的指令编号(如,上述触屏操作指令的指令编号),然后,在第二指令编号的基础上加1,生成语音指令编号(如,2)。
步骤S408,客户端基于持续采集的流式语音信号,持续调用服务端提供的流式语音识别服务以及断句服务。
步骤S409,服务端对各个时刻接收的流式语音信号进行语音识别,得到各个时刻下的流式语音识别文本,并且,对各个时刻下的流式语音识别文本进行断句判断。在一个例子中,先得到识别文本“还要”,并对其进行断句判断,接着得到识别文本“还要杯”,并对其进行断句判断,等等。
需要理解,步骤S408和步骤S409中,客户端采集流式语音信号,发送流式语音信号,服务端识别流式语音信号和对流式语音识别文本进行断句,是一个循环进行的过程,也就是说,步骤S408和步骤S409可能会重复顺序执行多次,直到服务端断句成功,则针对断句成功对应的新增识别文本,执行步骤S410和步骤S411。
步骤S410,服务端向客户端发送断句成功通知。进一步地,客户端基于断句成功通知,在检测到仍然存在有效语音信号的情况下,继续采集流式语音信号,并调用流式语音识别服务和断句服务;而在检测出不存在有效语音信号的情况下,继续检测是否存在有效语音信号。
步骤S411,服务端对新增断句文本进行指令解析。在一个例子中,解析得到的语音操作指令为:{add,可乐,1}。
步骤S412,客户端从服务端接收语音操作指令。
步骤S413,客户端获取第一指令编号(例如,1),对应于所述第一会话中最新执行的第一操作指令(例如,上述触屏操作指令),并判断所述语音指令编号相对于所述第一指令编号,是否为在先生成编号。
步骤S414,客户端在判断出不是在先生成编号的情况下,向服务端发送解析出的语音操作指令。例如,语音指令编号和第一指令编号分别为2和1,由此可以判断出语音指令编号不是在先生成编号,并据此通知服务端执行语音操作指令。
步骤S415,服务端根据所述商品信息,通过执行与所述操作类型对应的业务逻辑,更新所述购物车。
在一个实施例中,本步骤中可以包括:从所述第一服务的商品库中,检索出匹配所述商品信息的匹配商品;根据所述匹配商品,通过执行所述业务逻辑更新所述购物车。在一个具体的实施例中,上述从所述第一服务的商品库中,检索出匹配所述商品信息的匹配商品,可以包括:首先,获取预先建立的商品描述词与描述拓展词之间的映射关系,其中描述拓展词基于所述商品库中包含的商品而确定;接着,确定所述商品信息所对应的若干商品描述词;然后,基于所述映射关系,确定与所述若干商品描述词(如辣)对应的若干描述拓展词(如藤椒、川味);基于所述若干商品描述词和所述若干描述拓展词,从所述商品库中检索出所述匹配商品。进一步地,在一个更具体的实施例中,其中检索出的匹配商品为多个,基于此,本步骤中还可以包括:向客户端发送所述多个匹配商品(如香辣鸡腿堡、藤椒鸡腿堡和川味鸡腿堡);从所述客户端接收用户从所述多个匹配商品中选取的第一匹配商品(如川味鸡腿堡)。相应地,上述根据所述匹配商品,通过执行所述业务逻辑更新所述购物车,可以包括:根据第一匹配商品,通过执行所述业务逻辑更新所述购物车。
步骤S416,服务端向客户端接收针对所述购物车的更新结果。
步骤S417,客户端向用户展示所述更新结果。
步骤S418,客户端接收会话结束指令。在一个实施例中,会话结束指令可以是用户发出的。在另一个实施例中,会话结束指令可以是客户端倒计时超时后,生成的。
综上,在图3和图4示出的交互过程中,通过对接收的用户指令进行冲突管理,可以使得对用户指令的执行结果更加贴近用户的实际意图,或者说,使得贴近用户真实意图的置信度更高,从而提高用户体验。
与上述处理方法相对应的,本说明书实施例还提供一种处理装置。具体地,图5示出根据一个实施例的用户指令的处理装置结构图,所述装置集成于客户端。如图5所示,所述装置500包括:
会话创建单元501,配置为响应于用户发出的在第一服务中创建会话的指令,创建第一会话;语音编号生成单元502,配置为响应于开始采集用户输入的语音信号,生成待分配的语音指令编号;语音指令获取单元503,配置为从服务端获取利用所述语音信号解析出的语音操作指令;语音编号分配单元504,配置为将所述语音指令编号分配给所述语音操作指令;第一编号获取单元505,配置为获取第一指令编号,对应于所述第一会话中最新执行的第一操作指令;编号判断单元506,配置为判断所述语音指令编号相对于所述第一指令编号,是否为在先生成编号;指令处理单元507,配置为在判断出是在先生成编号的情况下,舍弃所述语音操作指令。
在一个实施例中,所述装置500还包括:第一编号生成单元501,配置为响应于接收所述第一操作指令,生成分配给所述第一操作指令的所述第一指令编号,所述第一操作指令通过除语音交互以外的其他交互模式而输入;第一指令发送单元502,配置为将所述第一操作指令发送至服务端,以使服务端执行所述第一操作指令。
在一个具体的实施例中,所述其他交互模式为触屏交互模式,所述第一操作指令为触屏操作指令;或者,所述其他交互模式为物理按键交互模式,所述第一操作指令为物理按键指令。
在一个具体的实施例中,所述语音编号生成单元502具体配置为:获取第二指令编号,对应于在开始采集所述语音信号之前,所述第一会话中最新生成的指令编号;生成大于所述第二指令编号的所述语音指令编号;其中,所述所述第一编号生成单元505具体配置为:获取第三指令编号,对应于在接收所述第一操作指令之前,所述第一会话中最新生成的指令编号;生成大于所述第三指令编号的所述第一指令编号;其中,所述编号判断单元506具体配置为:判断所述语音指令编号是否小于所述第一指令编号;其中,所述指令处理单元507具体配置为:在判断出所述语音指令编号小于所述第一指令编号情况下,舍弃所述语音操作指令。
在一个具体的实施例中,所述指令处理单元507还配置为:判断所述语音操作指令和所述第一操作指令的内容是否相同;在判断出相同的情况下,舍弃所述语音操作指令。
在一个实施例中,所述装置500还包括:通知执行单元508,配置为在判断出不是在先生成编号的情况下,通知所述服务端执行所述语音操作指令;执行结果接收单元509,配置为从所述服务端接收针对所述语音操作指令的执行结果。
在一个具体的实施例中,所述第一服务为购物服务,所述语音操作指令中包括商品信息和针对商品购物车的操作类型;所述装置500还包括:创建通知单元510,配置为向所述服务端发送创建所述第一会话的通知,以使所述服务端创建针对所述第一会话的购物车;所述执行结果接收单元509具体配置为:从所述服务端接收针对所述购物车的更新结果,该更新结果通过根据所述商品信息,执行与所述操作类型对应的业务逻辑,对所述购物车进行更新而得到。
在一个更具体的实施例中,所述执行结果接收单元509还配置为:从所述服务端接收商品推荐信息。
另一方面,在一个更具体的实施例中,所述装置500还包括:匹配商品接收单元511,配置为从所述服务端接收多个匹配商品,所述多个匹配商品通过利用所述商品信息,对所述第一服务的商品库进行检索而得到;选取商品发送单元512,配置为向所述服务端发送用户从所述多个匹配商品中选取的第一匹配商品,以使服务端根据所述第一匹配商品,通过执行所述业务逻辑更新所述购物车。
在一个实施例中,所述装置500还包括:有效语音检测单元513,配置为响应于所述第一会话的创建,开始检测所述客户端所处环境中是否存在有效语音信号,所述有效语音信号对应于所述用户输入的语音信号;所述语音编号生成单元502具体配置为:在检测到存在有效语音信号的情况下,开始持续采集用户输入的流式语音信号,并生成所述语音指令编号;所述语音指令获取单元503具体配置为:基于所述流式语音信号,持续调用所述服务端提供的断句服务,以使服务端在各个时刻下将所述流式语音信号转换成对应的识别文本,以及判断是否在该时刻下的识别文本之后进行断句,直到接收到断句成功通知;从所述服务端接收所述语音操作指令,其通过对所述断句成功通知所对应的新增断句片段进行解析而得到。
在一个具体的实施例中,所述装置500还包括:语音信号采集单元514,配置为在仍检测到存在有效语音信号的情况下,继续采集用户输入的后续流式语音信号,并生成待分配的其他语音指令编号。
综上,采用本说明书实施例披露的用户指令的处理装置,通过对接收的用户指令进行冲突管理,可以使得对用户指令的执行结果更加贴近用户的实际意图,或者说,使得贴近用户真实意图的置信度更高,从而提高用户体验。
如上,根据又一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2或图3或图4所描述的方法。
根据又一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2或图3或图4所描述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本说明书披露的多个实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本说明书披露的多个实施例的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书披露的多个实施例的具体实施方式而已,并不用于限定本说明书披露的多个实施例的保护范围,凡在本说明书披露的多个实施例的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书披露的多个实施例的保护范围之内。
Claims (22)
1.一种用户指令的处理方法,所述方法的执行主体为客户端,所述方法包括:
响应于用户发出的在第一服务中创建会话的指令,创建第一会话;
响应于开始采集用户输入的语音信号,生成待分配的语音指令编号;
从服务端获取利用所述语音信号解析出的语音操作指令,并将所述语音指令编号分配给所述语音操作指令;
获取第一指令编号,对应于所述第一会话中最新执行的第一操作指令;
判断所述语音指令编号相对于所述第一指令编号,是否为在先生成编号;
在判断出是在先生成编号的情况下,舍弃所述语音操作指令;
在获取第一指令编号之前,所述方法还包括:响应于接收所述第一操作指令,生成分配给所述第一操作指令的所述第一指令编号,所述第一操作指令通过除语音交互以外的其他交互模式而输入;将所述第一操作指令发送至服务端,以使服务端执行所述第一操作指令。
2.根据权利要求1所述的方法,其中,所述其他交互模式为触屏交互模式,所述第一操作指令为触屏操作指令;或者,
所述其他交互模式为物理按键交互模式,所述第一操作指令为物理按键指令。
3.根据权利要求1所述的方法,其中,响应于开始采集用户输入的语音信号,生成待分配的语音指令编号,包括:
获取第二指令编号,对应于在开始采集所述语音信号之前,所述第一会话中最新生成的指令编号;
生成大于所述第二指令编号的所述语音指令编号;
其中,响应于接收所述第一操作指令,生成分配给所述第一操作指令的所述第一指令编号,包括:
获取第三指令编号,对应于在接收所述第一操作指令之前,所述第一会话中最新生成的指令编号;
生成大于所述第三指令编号的所述第一指令编号;
其中,判断所述语音指令编号相对于所述第一指令编号,是否为在先生成编号,包括:
判断所述语音指令编号是否小于所述第一指令编号;
其中,在判断出是在先生成编号的情况下,舍弃所述语音操作指令,包括:
在判断出所述语音指令编号小于所述第一指令编号情况下,舍弃所述语音操作指令。
4.根据权利要求1所述的方法,其中,在判断出不是在先生成编号的情况下,舍弃所述语音操作指令,包括:
判断所述语音操作指令和所述第一操作指令的内容是否相同;
在判断出相同的情况下,舍弃所述语音操作指令。
5.根据权利要求1所述的方法,其中,所述方法还包括:
在判断出不是在先生成编号的情况下,通知所述服务端执行所述语音操作指令;
从所述服务端接收针对所述语音操作指令的执行结果。
6.根据权利要求5所述的方法,其中,所述第一服务为购物服务,所述语音操作指令中包括商品信息和针对商品购物车的操作类型;其中,在创建第一会话之后,所述方法还包括:
向所述服务端发送创建所述第一会话的通知,以使所述服务端创建针对所述第一会话的购物车;
其中,从所述服务端接收针对所述语音操作指令的执行结果,包括:
从所述服务端接收针对所述购物车的更新结果,该更新结果通过根据所述商品信息,执行与所述操作类型对应的业务逻辑,对所述购物车进行更新而得到。
7.根据权利要求6所述的方法,其中,从所述服务端接收针对所述语音操作指令的执行结果,还包括:
从所述服务端接收商品推荐信息。
8.根据权利要求6所述的方法,其中,在通知所述服务端执行所述语音操作指令之后,以及,在从所述服务端接收针对所述语音操作指令的执行结果之前,所述方法还包括:
从所述服务端接收多个匹配商品,所述多个匹配商品通过利用所述商品信息,对所述第一服务的商品库进行检索而得到;
向所述服务端发送用户从所述多个匹配商品中选取的第一匹配商品,以使服务端根据所述第一匹配商品,通过执行所述业务逻辑更新所述购物车。
9.根据权利要求1所述的方法,其中,在响应于开始采集用户输入的语音信号,生成待分配的语音指令编号之前,所述方法还包括:
响应于所述第一会话的创建,开始检测所述客户端所处环境中是否存在有效语音信号,所述有效语音信号对应于所述用户输入的语音信号;
其中,响应于开始采集用户输入的语音信号,生成待分配的语音指令编号,包括:
在检测到存在有效语音信号的情况下,开始持续采集用户输入的流式语音信号,并生成所述语音指令编号;
其中,从服务端获取利用所述语音信号解析出的语音操作指令,包括:
基于所述流式语音信号,持续调用所述服务端提供的断句服务,以使服务端在各个时刻下将所述流式语音信号转换成对应的识别文本,以及判断是否在该时刻下的识别文本之后进行断句,直到接收到断句成功通知;
从所述服务端接收所述语音操作指令,其通过对所述断句成功通知所对应的新增断句片段进行解析而得到。
10.根据权利要求9所述的方法,其中,在所述客户端收到断句成功对应的新增断句文本之后,所述方法还包括:
在仍检测到存在有效语音信号的情况下,继续采集用户输入的后续流式语音信号,并生成待分配的其他语音指令编号。
11.一种用户指令的处理装置,所述装置的集成于客户端,所述装置包括:
会话创建单元,配置为响应于用户发出的在第一服务中创建会话的指令,创建第一会话;
语音编号生成单元,配置为响应于开始采集用户输入的语音信号,生成待分配的语音指令编号;
语音指令获取单元,配置为从服务端获取利用所述语音信号解析出的语音操作指令;
语音编号分配单元,配置为将所述语音指令编号分配给所述语音操作指令;
第一编号获取单元,配置为获取第一指令编号,对应于所述第一会话中最新执行的第一操作指令;
编号判断单元,配置为判断所述语音指令编号相对于所述第一指令编号,是否为在先生成编号;
指令处理单元,配置为在判断出是在先生成编号的情况下,舍弃所述语音操作指令;
所述装置还包括:
第一编号生成单元,配置为响应于接收所述第一操作指令,生成分配给所述第一操作指令的所述第一指令编号,所述第一操作指令通过除语音交互以外的其他交互模式而输入;
第一指令发送单元,配置为将所述第一操作指令发送至服务端,以使服务端执行所述第一操作指令。
12.根据权利要求11所述的装置,其中,所述其他交互模式为触屏交互模式,所述第一操作指令为触屏操作指令;或者,
所述其他交互模式为物理按键交互模式,所述第一操作指令为物理按键指令。
13.根据权利要求11所述的装置,其中,所述语音编号生成单元具体配置为:
获取第二指令编号,对应于在开始采集所述语音信号之前,所述第一会话中最新生成的指令编号;
生成大于所述第二指令编号的所述语音指令编号;
其中,所述所述第一编号生成单元具体配置为:
获取第三指令编号,对应于在接收所述第一操作指令之前,所述第一会话中最新生成的指令编号;
生成大于所述第三指令编号的所述第一指令编号;
其中,所述编号判断单元具体配置为:
判断所述语音指令编号是否小于所述第一指令编号;
其中,所述指令处理单元具体配置为:
在判断出所述语音指令编号小于所述第一指令编号情况下,舍弃所述语音操作指令。
14.根据权利要求11所述的装置,其中,所述指令处理单元还配置为:
判断所述语音操作指令和所述第一操作指令的内容是否相同;
在判断出相同的情况下,舍弃所述语音操作指令。
15.根据权利要求11所述的装置,其中,所述装置还包括:
通知执行单元,配置为在判断出不是在先生成编号的情况下,通知所述服务端执行所述语音操作指令;
执行结果接收单元,配置为从所述服务端接收针对所述语音操作指令的执行结果。
16.根据权利要求15所述的装置,其中,所述第一服务为购物服务,所述语音操作指令中包括商品信息和针对商品购物车的操作类型;所述装置还包括:
创建通知单元,配置为向所述服务端发送创建所述第一会话的通知,以使所述服务端创建针对所述第一会话的购物车;
所述执行结果接收单元具体配置为:
从所述服务端接收针对所述购物车的更新结果,该更新结果通过根据所述商品信息,执行与所述操作类型对应的业务逻辑,对所述购物车进行更新而得到。
17.根据权利要求16所述的装置,其中,所述执行结果接收单元还配置为:
从所述服务端接收商品推荐信息。
18.根据权利要求16所述的装置,其中,所述装置还包括:
匹配商品接收单元,配置为从所述服务端接收多个匹配商品,所述多个匹配商品通过利用所述商品信息,对所述第一服务的商品库进行检索而得到;
选取商品发送单元,配置为向所述服务端发送用户从所述多个匹配商品中选取的第一匹配商品,以使服务端根据所述第一匹配商品,通过执行所述业务逻辑更新所述购物车。
19.根据权利要求11所述的装置,其中,所述装置还包括:
有效语音检测单元,配置为响应于所述第一会话的创建,开始检测所述客户端所处环境中是否存在有效语音信号,所述有效语音信号对应于所述用户输入的语音信号;
所述语音编号生成单元具体配置为:
在检测到存在有效语音信号的情况下,开始持续采集用户输入的流式语音信号,并生成所述语音指令编号;
所述语音指令获取单元具体配置为:
基于所述流式语音信号,持续调用所述服务端提供的断句服务,以使服务端在各个时刻下将所述流式语音信号转换成对应的识别文本,以及判断是否在该时刻下的识别文本之后进行断句,直到接收到断句成功通知;
从所述服务端接收所述语音操作指令,其通过对所述断句成功通知所对应的新增断句片段进行解析而得到。
20.根据权利要求19所述的装置,其中,所述装置还包括:
语音信号采集单元,配置为在仍检测到存在有效语音信号的情况下,继续采集用户输入的后续流式语音信号,并生成待分配的其他语音指令编号。
21.一种计算机可读存储介质,其上存储有计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-10中任一项的所述的方法。
22.一种计算设备,包括存储器和处理器,其中,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010172526.3A CN111399910B (zh) | 2020-03-12 | 2020-03-12 | 用户指令的处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010172526.3A CN111399910B (zh) | 2020-03-12 | 2020-03-12 | 用户指令的处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111399910A CN111399910A (zh) | 2020-07-10 |
CN111399910B true CN111399910B (zh) | 2022-06-07 |
Family
ID=71428760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010172526.3A Active CN111399910B (zh) | 2020-03-12 | 2020-03-12 | 用户指令的处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111399910B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112560023A (zh) * | 2020-12-07 | 2021-03-26 | 广东电力通信科技有限公司 | 交互式数据采集方法、机器人、系统及计算机设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101424973A (zh) * | 2007-11-02 | 2009-05-06 | 夏普株式会社 | 输入装置 |
CN102831894B (zh) * | 2012-08-09 | 2014-07-09 | 华为终端有限公司 | 指令处理方法、装置和系统 |
CN106572138A (zh) * | 2015-10-13 | 2017-04-19 | 口碑控股有限公司 | 指令发送方法、指令执行方法、客户端及服务器 |
CN108899024A (zh) * | 2018-06-29 | 2018-11-27 | 联想(北京)有限公司 | 一种音频处理方法、电子设备及服务器 |
US10769495B2 (en) * | 2018-08-01 | 2020-09-08 | Adobe Inc. | Collecting multimodal image editing requests |
CN110349579B (zh) * | 2019-07-15 | 2021-10-15 | 北京梧桐车联科技有限责任公司 | 语音唤醒处理方法及装置、电子设备及存储介质 |
-
2020
- 2020-03-12 CN CN202010172526.3A patent/CN111399910B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111399910A (zh) | 2020-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10846475B2 (en) | Emoji input method and device thereof | |
CN112817583B (zh) | 一种代码编辑方法、装置、服务端、用户设备及存储介质 | |
CN108846037B (zh) | 提示搜索词的方法和装置 | |
CN110196927B (zh) | 一种多轮人机对话方法、装置及设备 | |
US20110087961A1 (en) | Method and System for Assisting in Typing | |
CN109670020B (zh) | 一种语音交互方法、系统及装置 | |
CN112930669A (zh) | 内容推荐方法、装置、移动终端及服务器 | |
CN111399910B (zh) | 用户指令的处理方法及装置 | |
CN114757176A (zh) | 一种获取目标意图识别模型的方法以及意图识别方法 | |
CN111813912A (zh) | 一种人机对话方法、装置、设备及存储介质 | |
CN111179934A (zh) | 选择语音引擎的方法、移动终端和计算机可读存储介质 | |
JPH06350546A (ja) | 関連番組判定装置 | |
CN110808031A (zh) | 一种语音识别方法、装置和计算机设备 | |
CN113806503A (zh) | 一种对话融合方法和装置及设备 | |
CN112740323A (zh) | 一种语音理解方法及装置 | |
CN110634477A (zh) | 一种基于场景感知的上下文判断方法、装置及系统 | |
CN110767219A (zh) | 语义更新方法、装置、服务器和存储介质 | |
CN106570003B (zh) | 数据推送方法及装置 | |
CN111353292B (zh) | 针对用户操作指令的解析方法及装置 | |
CN113015002B (zh) | 一种主播视频数据的处理方法和装置 | |
CN113672281A (zh) | 代码差异查询方法、装置、设备及存储介质 | |
CN113642334A (zh) | 意图识别方法、装置、电子设备和存储介质 | |
CN108763462B (zh) | 平行语句库的更新方法、设备及计算机可读存储介质 | |
CN102999275B (zh) | 获取字词转换结果的方法及装置 | |
CN107563679B (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 |