一种语音交互方法、装置、设备和计算机存储介质与流程

文档序号:21279346发布日期:2020-06-26 23:29阅读:167来源:国知局
一种语音交互方法、装置、设备和计算机存储介质与流程
本申请涉及计算机应用
技术领域
,特别涉及人工智能领域的一种语音交互方法、装置、设备和计算机存储介质。
背景技术
:本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就被认为是现有技术。随着语音交互技术的不断发展,用户能够与智能音箱、智能手机等终端设备进行语音交互。除了终端设备操作系统自带的语音助手之外,越来越多的应用搭载了语音交互技术。用户能够通过输入语音指令获取对应的服务,从而在很大程度上解放双手。现有语音交互场景中,在对用户输入的语音指令进行语音识别和需求理解后,如果不能够很好地理解用户需求,则会向用户返回以下两种语音响应:1)返回不理解用户需求的结果,例如“对不起,暂时不理解你讲了啥”。2)向用户返回提示用户更换语音指令的结果,例如“对不起,请您更换个简单点的说法试试”。但无论上述哪种语音响应均给用户带来较差的体验,用户会觉得语音助手的智能化程度太差,另外需要反复变换输入的语音指令,对于用户的交互效率来说,非常低下。技术实现要素:有鉴于此,本申请提供了一种语音交互方法、装置、设备和计算机存储介质,以便于提高用户的交互效率,提升用户体验。第一方面,本申请提供了一种语音交互方法,该方法包括:对用户输入的第一语音指令进行语音识别和需求解析;若需求解析失败,则对所述第一语音指令进行需求预测,得到至少一个需求表述;将所述需求表述中的至少一个通过问询的形式返回给所述用户;若接收到所述用户确定所述需求表述中的至少一个的第二语音指令,则利用所述用户确定的需求表述对应的需求解析结果进行服务响应。根据本申请一优选实施方式,该方法还包括:若需求解析成功,则利用所述第一语音指令对应的需求解析结果进行服务响应。根据本申请一优选实施方式,对所述第一语音指令进行需求预测,得到至少一个需求表述包括:将所述第一语音指令输入预先训练得到的需求预测模型,所述需求预测模型将所述第一语音指令映射至至少一个需求表述。根据本申请一优选实施方式,所述需求预测模型采用以下方式预先训练得到:获取训练数据,所述训练数据包括多个语句对,所述语句对包括第一语句和第二语句,其中第二语句能够被需求解析成功;利用所述训练数据训练序列到序列seq2seq模型,得到所述需求预测模型,其中语句对中第一语句作为所述seq2seq模型的输入,第二语句作为所述seq2seq模型的目标输出。根据本申请一优选实施方式,所述训练数据从文本搜索日志中获取;其中将文本搜索请求query作为第一语句,利用query所对应的被点击搜索结果得到第二语句,将所述第一语句和所述第二语句构成语句对,第二语句的置信度由第一语句作为query时所述第二语句的被点击次数确定。根据本申请一优选实施方式,将所述需求表述中的至少一个通过问询的形式返回给所述用户包括:将所述需求预测模型映射得到的至少一个需求表述中置信度最高的需求表述作为所述第一需求表述;将所述第一需求表述通过问询的形式返回给所述用户。根据本申请一优选实施方式,将所述需求表述中的至少一个通过问询的形式返回给所述用户还包括:若接收到所述用户否定所述第一需求表述的第三语音指令,则将所述需求预测模型映射得到的至少一个需求表述中置信度次高的需求表述作为第二需求表述;将第二需求表述通过问询的形式返回给所述用户。根据本申请一优选实施方式,将所述需求表述中的至少一个通过问询的形式返回给所述用户包括:将所述需求预测模型映射得到的至少一个需求表述中置信度排在前n个的需求表述,通过问询的形式返回给所述用户,所述n为预设的正整数。根据本申请一优选实施方式,该方法还包括:分析所述需求解析失败的原因,在所述问询中进一步携带所述需求解析失败的原因。根据本申请一优选实施方式,所述需求解析失败的原因包括:环境嘈杂、所述第一语音指令的长度超限、所述第一语音指令的发音不准确或所述第一语音指令口语化。第二方面,本申请提供了一种语音交互装置,该装置包括:语音交互单元,用于接收用户输入的第一语音指令;语音处理单元,用于对所述第一语音指令进行语音识别和需求解析;需求预测单元,用于若所述需求解析失败,则对所述第一语音指令进行需求预测,得到至少一个需求表述;所述语音交互单元,还用于将所述需求表述中的至少一个通过问询的形式返回给所述用户;服务响应单元,用于若所述语音交互单元接收到所述用户确定所述需求表述中的至少一个的第二语音指令,则利用所述用户确定的需求表述对应的需求解析结果进行服务响应。根据本申请一优选实施方式,所述服务响应单元,还用于若需求解析成功,则利用所述第一语音指令对应的需求解析结果进行服务响应。根据本申请一优选实施方式,所述需求预测单元,具体用于将所述第一语音指令输入预先训练得到的需求预测模型,所述需求预测模型将所述第一语音指令映射至至少一个需求表述。根据本申请一优选实施方式,该装置还包括:模型训练单元,用于获取训练数据,所述训练数据包括多个语句对,所述语句对包括第一语句和第二语句,其中第二语句能够被需求解析成功;利用所述训练数据训练seq2seq模型,得到所述需求预测模型,其中语句对中第一语句作为所述seq2seq模型的输入,第二语句作为所述seq2seq模型的目标输出。根据本申请一优选实施方式,所述语音交互单元在将所述需求表述中的至少一个通过问询的形式返回给所述用户时,具体执行:将所述需求预测模型映射得到的至少一个需求表述中置信度最高的需求表述作为所述第一需求表述;将所述第一需求表述通过问询的形式返回给所述用户。根据本申请一优选实施方式,所述语音交互单元在将所述需求表述中的至少一个通过问询的形式返回给所述用户时,还用于:若接收到所述用户否定所述第一需求表述的第三语音指令,则将所述需求预测模型映射得到的至少一个需求表述中置信度次高的需求表述作为第二需求表述;将第二需求表述通过问询的形式返回给所述用户。根据本申请一优选实施方式,所述语音交互单元在将所述需求表述中的至少一个通过问询的形式返回给所述用户时,具体执行:将所述需求预测模型映射得到的至少一个需求表述中置信度排在前n个的需求表述,通过问询的形式返回给所述用户,所述n为预设的正整数。根据本申请一优选实施方式,该装置还包括:原因分析单元,用于分析所述需求解析失败的原因,在所述问询中进一步携带所述需求解析失败的原因。第三方面,本申请提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上任一项所述的方法。第四方面,本申请提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如上任一项所述的方法。由以上技术方案可以看出,本申请在对用户输入的语音指令需求解析失败后,会进一步对语音指令进行需求预测,“猜测”用户可能的需求表述以返回给用户确认,而不是简单粗暴地告知用户无法理解用户所说的,从而提高用户的交互效率,提升用户体验。上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。附图说明附图用于更好地理解本方案,不构成对本申请的限定。其中:图1示出了可以应用本发明实施例的语音交互方法或语音交互装置的示例性系统架构;图2为本申请实施例一提供的语音交互方法的流程图;图3为本申请实施例二提供的语音交互方法的流程图;图4为本申请实施例三提供的语音交互方法的流程图;图5为本申请实施例四提供的语音交互装置的结构图;图6是用来实现本申请实施例的语音交互方法的电子设备的框图。具体实施方式以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。图1示出了可以应用本发明实施例的语音交互方法或语音交互装置的示例性系统架构。如图1所示,该系统架构可以包括终端设备101和102,网络103和服务器104。网络103用以在终端设备101、102和服务器104之间提供通信链路的介质。网络103可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。用户可以使用终端设备101和102通过网络103与服务器104交互。终端设备101和102上可以安装有各种应用,例如语音交互应用、网页浏览器应用、通信类应用等。终端设备101和102可以是支持语音交互的各种电子设备,可以是有屏设备,也可以是无屏设备。包括但不限于智能手机、平板电脑、智能音箱、智能电视等等。本发明所提供的语音交互装置可以设置并运行于上述服务器104中,也可以设置并运行于处理功能强大的终端设备101和102中。其可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块,在此不做具体限定。例如,语音交互装置设置并运行于上述服务器104中,终端设备101将用户输入的语音指令通过网络103发送至服务器104。服务器104采用本发明实施例提供的方法进行处理后,将处理结果返回至终端设备101,进而由终端设备101提供给用户,从而实现与用户之间的语音交互。服务器104可以是单一服务器,也可以是是多个服务器构成的服务器群组。应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。传统语音交互场景中,在对用户输入的语音指令进行语音识别和需求解析后,如果需求解析失败,则会向用户返回不理解用户需求的结果,或者想用户返回提示用户更换语音指令的结果。例如以下语音交互场景:场景1、用户:你能帮我找一个离我最近的能给孩子喂奶的地方吗,孩子饿了,拜托了。语音助手:对不起,xx(表示语音助手的名字,例如百度的小度、小米的小爱、阿里巴巴的天猫精灵等)暂时不理解你讲了啥。这种场景下,用户会想这个语音助手真笨,一点都不智能。场景2、用户:你能帮我找一个离我最近的能给孩子喂奶的地方吗,孩子饿了,拜托了。语音助手:对不起,xx暂时不理解你说的,请您换个简单点的说法试试。用户:我需要找个离我最近的能给孩子喂奶的地方。语音助手:对不起,xx暂时不理解你说的,请您换个简单点的说法试试。这种场景下,用户通过多次尝试和更换说法,语音助手仍不能够理解用户需求,用户很容易就失去了耐心。这种交互方式对于用户而言,显然效率是非常低下的,用户体验也非常差。有鉴于此,本申请的核心思想在于,当用户输入的语音指令进行语音识别和需求解析后,若需求解析失败,会进一步对语音指令进行需求预测,“猜测”用户可能的需求表述以返回给用户确认,而不是简单粗暴地告知用户无法理解用户所说的。下面结合实施例对本申请提供的方法进行详细描述。实施例一、图2为本申请实施例一提供的语音交互方法的流程图,如图2中所示,该方法可以包括以下步骤:在201中,对用户输入的第一语音指令进行语音识别和需求解析。该第一语音指令可以是用户唤醒语音助手后,输入的第一句语音指令。也可以是在某些特定场景下输入的语音指令。本申请中对于语音指令所涉及的“第一”、“第二”、“第三”等,例如“第一语音指令”、“第二语音指令”和“第三语音指令”,并不具备顺序、数量和名称上的限制,而仅用于区分不同的语音指令。对于用户输入的第一语音指令,首先要进行语音识别。在获取到语音识别得到的文本后,进行需求解析。该需求解析的目的主要是了解用户的具体需求(也可以称为意图),获取结构化信息,以为用户提供精准地服务。具体的需求解析方式和解析结果可以与具体的垂直类服务相关。这部分内容可以采用已有技术,在此不做赘述。仅举一个例子:假设用户输入第一语音指令:“请帮我规划一条从西二旗出发途经南锣鼓巷到北京站的不堵车路线吧”,通过语音识别和需求解析后,得到的解析结果为:“意图:路线规划出行方式:驾车出发点:西二旗目的地:北京站路径点:南锣鼓巷筛选条件:不堵车”。在202中,若需求解析失败,则对所述第一语音指令进行需求预测,得到至少一个需求表述。但在进行需求解析时,由于种种原因可能会导致需求解析失败,即无法准确获取用户的需求类型、结构化信息等。在这种情况下,本申请并非简单粗暴地告知用户解析失败,而是对第一语音指令进行需求预测,即猜测用户的需求,并将预测得到的至少一个需求表述返回给用户。在203中,将所述需求表述中的至少一个通过问询的形式返回给所述用户。在204中,若接收到所述用户确定所述需求表述中的至少一个的第二语音指令,则利用所述用户确定的需求表述对应的需求解析结果进行服务响应。在本申请中可以采用多种实现方式,例如,可以采用多轮交互的方式每次向用户返回一个需求表述,然后采用一般疑问句的方式向用户问询,如果得到对其中一个需求表述的确定,则利用该确定的需求表述对应的需求解析结果进行服务响应。如果得到否定回答,则继续在下一轮采用一般疑问句的方式向用户返回一个需求表述,依次类推,直至达到预设的最大交互轮数。这种方式后续将在实施例二中进行详细描述。再例如,也可以每次向户返回多个需求表述,然后采用选择疑问句的方式向用户问询。若用户选择其中一个需求表述,则按照用户选择的需求表述对应的需求解析结果进行服务响应。这种方式后续将在实施例三中进行详细描述。实施例二、图3为本申请实施例二提供的语音交互方法的流程图,如图3中所示,该方法可以包括以下步骤:在301中,对用户输入的第一语音指令进行语音识别和需求解析,若需求解析成功,则执行302;若需求解析失败,则执行303。在302中,利用第一语音指令对应的需求解析结果进行服务响应,结束本次语音交互流程。如果能够直接对用户输入的第一语音指令进行需求解析成功,则直接利用需求解析结果进行服务响应即可,无需进行多轮交互。在303中,将第一语音指令输入预先训练得到的需求预测模型,该需求预测模型将第一语音指令映射至至少一个需求表述,将其中置信度最高的需求表述作为第一需求表述。如果对用户输入的第一语音指令进行需求解析失败,则对第一语音指令进行需求预测。在本申请实施例中,可以利用预先训练得到的需求预测模型进行需求预测。该需求预测模型能够将第一语音指令映射为多种与第一语音指令接近的需求表述,从而对第一语音指令所代表的用户需求进行“猜测”。需求预测模型映射得到的至少一个需求表述均具有置信度,该置信度代表能够预测第一语音指令所对应需求的准确程度。为了方便理解,在此对需求预测模型的训练过程举一个优选的实施方式进行介绍。鉴于语音交互的局限性,一方面不可能非常泛化地向用户返回多样的搜索结果,另一方面返回的搜索结果数量不会很多,通常只会在明确用户需求的情况下,返回对应需求的若干个搜索结果。而对于文本搜索而言,则没有这方面的局限性。只要用户输入了文本搜索请求query,就会基于相似度排序向用户返回数量较多的搜索结果,用户能够从众多搜索结果中找寻自己需要的内容,并进行点击甚至进一步地获取垂直类服务。在本申请实施例中,就可以采用文本搜索日志的内容作为依据,从中提取用户的query所对应的需求表述。即从文本搜索日志中获取训练数据对需求预测模型进行训练。具体地,需求预测模型的训练过程可以包括以下步骤:步骤s1、获取训练数据,该训练数据包括大量的语句对,每个语句对均包括两个语句:第一语句和第二语句,其中第二语句能够被需求解析成功,也就是说,第二语句采用的表达是经过需求解析后能够明确需求的表达。步骤s2、利用训练数据seq2seq(训练序列到序列)模型,得到需求预测模型,其中语句对中第一语句作为seq2seq模型的输入,第二语句作为seq2seq模型的目标输出。作为一种优选的实施方式,可以首先从文本搜索日志中获取训练数据。当然除了文本搜索日志中获取训练数据之外,也可以采用其他方式,例如人工构造训练数据的方式。本申请中仅以从文本搜索日志中获取训练数据为例进行详细描述。在文本搜索日志中,可以将用户输入的文本搜索请求即query作为第一语句,利用query所对应的被点击搜索结果得到第二语句,由第一语句和第二语句构成语句对,第二语句的置信度由第一语句作为query时第二语句的被点击次数确定。通常用户在进行文本搜索时,输入query后会从大量的搜索结果中查找自己需要的搜索结果。那么用户点击的搜索结果可以认为在一定程度上符合用户需求的搜索结果。并且,越多次点击,说明该搜索结果越符合用户需求,更进一步地,若用户请求并获取了与该搜索结果相关的服务,则该搜索结果更符合用户需求。在利用被点击搜索结果得到第二语句时,该第二语句可以从搜索结果的标题中摘取,也可以从搜索结果的内容中获取。具体的获取方式可以与具体应用相关。下面以地图类应用为例,假设用户在地图类应用中输入了文本搜索请求“附近能给孩子喂奶的地方”,向用户返回的大量搜索结果均为poi(pointofinterest,兴趣点),例如返回的poi包括:poi1:妈妈爱萌宝母婴用品店poi2:贝爱贝亲月子中心poi3:欧美汇购物中心假设用户点击了其中的poi3,可以利用该poi的类别,或者poi的类别和该poi的属性标签构成第二语句。例如“欧美汇购物中心”的poi类别为“购物中心”,属性标签包括“有母婴室”,那么可以得到“有母婴室的购物中心”作为第二语句,其与第一语句“附近能给孩子喂奶的地方”构成一个语句对。采用类似的方式,假设可以获取到如下语句对以及置信度:第一语句第二语句置信度附近能给孩子喂奶的地方购物中心0.51附近能给孩子喂奶的地方有母婴室的购物中心0.25附近能给孩子喂奶的地方月子中心0.11附近能给孩子喂奶的地方母婴店0.09附近能给孩子喂奶的地方有充电桩的购物中心0.04将置信度低于预设置信度阈值的语句对过滤掉后,优先选择poi的类别和该poi的属性标签构成的第二语句。可以将得到的语句对以及置信度作为训练数据,其中第一语句作为seq2seq模型的输入,第二语句及其置信度作为seq2seq模型的输出。在获取训练数据seq2seq模型是一个encoder(编码器)-decoder(解码器)输入是一个序列,输出也是一个序列。encoder将一个可变长度的输入序列变为固定长度的向量,decoder将这个固定长度的向量解码成可变长度的输出序列,在训练时可以采用最大似然估计的方式。另外,还可以将上述方式确定出的语句对作为正样本,将query和未被点击的搜索结果得到的第二语句构成的语句对作为负样本,进行seq2seq模型的训练。训练目标为:最大化正样本中第二语句的置信度与负样本中第二语句的置信度的差值。当然,除了采用训练seq2seq模型得到需求预测模型的方式之外,也可以采用其他方式实现需求预测模型。例如,人为构建需求映射表的方式,即将一个语句作为输入,通过查询需求映射表能够得到至少一个映射的语句作为输出。对于需求预测模型映射得到的至少一个需求表述,本实施例中可以将置信度最高的需求表述作为第一需求表述用于首先返回给用户。本申请中对于需求表述所涉及的“第一”、“第二”等,例如“第一需求表述”、“第二需求表述”,并不具备顺序、数量和名称上的限制,而仅用于区分不同的需求表述。仍以用户输入第一语音指令“你能帮我找一个离我最近的能给孩子喂奶的地方吗,孩子饿了,拜托了”为例,因某种或某些原因需求解析失败后,将其输入需求预测模型中,需求预测模型将第一语音指令进行映射后得到的各需求表述及其对应的置信度分别如下:有母婴室的购物中心0.92月子中心0.81母婴店0.68……将“有母婴室的购物中心”与预设的模板进行组合得到“找一个离您最近的有母婴室的购物中心”作为第一需求表述。其中“找一个离您最近的”为预设的模板,目的是为了使得需求表述更加顺畅和符合话术,但不附加预设模板也同样可以。在304中,将第一需求表述通过问询的形式返回给用户。在本实施例中,可以采用一般疑问句的形式将第一需求表述返回给用户,这样用户仅需要回答“是/不是”、“是/否”、“需要/不需要”、“可以/不可以”、“对/不对”等简单的语音即可。进一步地,为了明确告知用户本次为什么会需求解析失败,从而减轻用户的焦虑与疑惑,提升用户体验,在本申请实施例中,可以分析需求解析失败的原因,并且在上述问询中可以进一步携带需求解析失败的原因。分析需求解析失败的原因可以包括但不限于以下处理中的一种或任意组合:第一种处理:在语音识别时,对用户输入第一语音指令的背景进行噪声检测,对于噪声严重的情况,在语音识别阶段就会产生影响,从而导致后续需求解析失败。第二种处理:在语音识别过程中进行发音的检测,以检测用户是否发音准确。对于发音不准确的情况,同样在语音识别阶段就会产生影响,从而导致后续需求解析失败。第三种处理:对第一语音指令的语音识别结果进行文本长度的检测。对于过长的语句,通常会对需求解析产生不利影响,例如在进行语义分析时很难分析出过长语句的语义,从而导致需求解析失败。第四种处理:对第一语音指令的语音识别结果进行口语化检测。对于表达过于口语化的语句,会对语义分析产生不利影响,从而导致需求解析失败。还可能存在其他处理方式,在此不做一一穷举。对应于上述几种处理方式,得到的需求解析失败的原因可以包括:诸如:环境嘈杂、第一语音指令的发音不准确、第一语音指令的长度超限、第一语音指令过于口语化,第一语音指令过于泛化等等。另外,在问询时还可以利用预设的模板来形成一般疑问句,例如“需要为您查找吗”,“是否需要为您查找”,“是要……吗”等。接续上例,对于用户输入的第一语音指令:“你能帮我找一个离我最近的能给孩子喂奶的地方吗,孩子饿了,拜托了”,语音助手可以返回:“您输入的语句较宽泛,xx没有听清楚。是要找一个离您最近的有母婴室的购物中心吗”。在305中,接收用户针对第一需求表述的语音指令,若接收到用户确定上述第一需求表述的第二语音指令,则执行306;若接收到用户否定上述第一需求表述的第三语音指令,则执行307。在实施例中,用户仅需要针对第一需求表述进行确定或否定的回复。在306中,利用第一需求表述对应的需求解析结果进行服务响应,结束本次语音交互流程。接续上例,由于第一需求表述是置信度最高的需求表述,因此用户对于“您输入的语句较宽泛,xx没有听清楚。是要找一个离您最近的有母婴室的购物中心吗”很大概率是确定的,若用户回复的第二语音指令是确定该第一需求表述的,则对第一需求表述的需求解析结果为:“意图:信息检索出发点:当前位置检索词:购物中心筛选条件:有母婴室、距离最近”经过检索后,向用户返回距离其最近的有母婴室的购物中心。在307中,将需求预测模型映射得到的置信度次高的需求表述作为第二需求表述,将第二需求表述通过问询的形式返回给用户。接续上例,若用户对于“您输入的语句较宽泛,xx没有听清楚。是要找一个离您最近的有母婴室的购物中心吗”,返回的是第三语音指令“不是”,则可以向用户返回“是要找一个离您最近的月子中心吗”。在308中,接收用户针对第二需求表述的语音指令,若接收到用户确定上述第二需求表述的第二语音指令,则执行309;若接收到用户否定上述第二需求表述的第三语音指令,则执行310。在309中,利用第二需求表述对应的需求解析结果进行服务响应,结束本次语音交互流程。在310中,达到预设的最大交互轮数(假设预设的最大交互轮数为2轮),向用户返回需求理解失败的结果。若用户依然对第二需求表述是否定的,且预设的最大交互轮数为2,已经达到最大交互轮数,则可以向用户返回需求理解失败的结果,例如“没理解您的需求”。也可以提示用户重新输入第一语音指令,例如“没理解您的需求,请您换一个简单的说法”。在本实施例中以2轮作为最大交互轮数,若以更多轮次作为最大交互轮数,则可以继续将需求预测模型映射得到的置信度再次之的需求表述以问询的形式返回给用户,直至获得用户确认或达到预设的最大交互轮数。为了与传统的场景进行对比,本实施例对应的场景大多数是如下的情况:用户:你能帮我找一个离我最近的能给孩子喂奶的地方吗,孩子饿了,拜托了。语音助手:您输入的语句较宽泛,xx没有听清楚。是要找一个离您最近的有母婴室的购物中心吗?用户:是的。语音助手通过显示器或语音等形式向用户返回距离其最近的有母婴室的购物中心的信息。很显然,这种方式相比较传统方式大大提升了用户的交互效率和使用体验。实施例三、图4为本申请实施例三提供的语音交互方法的流程图,如图4中所示,该方法可以包括以下步骤:在401中,对用户输入的第一语音指令进行语音识别和需求解析,若需求解析成功,则执行402;若需求解析失败,则执行403。在402中,利用第一语音指令对应的需求解析结果进行服务响应,结束本次语音交互流程。在403中,将第一语音指令输入预先训练得到的需求预测模型,该需求预测模型将第一语音指令映射至至少一个需求表述,将置信度排在前n个的需求表述,通过问询的形式返回给用户,n为预设的正整数。本实施例三与实施例二的不同之处在于,对于需求预测模型映射得到的需求表述,不是在每一轮交互中逐个的返回给用户,而是将其中n个需求表述以选择疑问句的形式一起返回给用户,以供用户选择。进一步地,为了明确告知用户本次为什么会需求解析失败,从而减轻用户的焦虑与疑惑,提升用户体验,在本申请实施例中,也可以分析需求解析失败的原因,并且在上述问询中可以进一步携带需求解析失败的原因。该部分与实施例二中类似,在此不做赘述。以n是2为例,对于用户输入的第一语音指令:“你能帮我找一个离我最近的能给孩子喂奶的地方吗,孩子饿了,拜托了”,语音助手可以返回:“您输入的语句较宽泛,xx没有听清楚。您是要找一个离您最近的有母婴室的购物中心还是找一个离您最近的月子中心?”。这样,用户仅需要回复“前者/后者”即可。在404中,接收用户的语音指令,若接收到用户确定其中一个需求表述的语音指令,则执行405;若接收到用户否定所有需求表述的语音指令,则执行406。在405中,利用用户确定的需求表述对应的需求解析结果进行服务响应,结束本次语音交互流程。在406中,向用户返回需求理解失败的结果。若用户对于任何的需求表述都没有确认,则可以向用户返回需求理解失败的结果,例如“没理解您的需求”。也可以提示用户重新输入第一语音指令,例如“没理解您的需求,请您换一个简单的说法”。为了与传统的场景进行对比,本实施例对应的场景大多数是如下的情况:用户:你能帮我找一个离我最近的能给孩子喂奶的地方吗,孩子饿了,拜托了。语音助手:您输入的语句较宽泛,xx没有听清楚。您是要找一个离您最近的有母婴室的购物中心还是找一个离您最近的月子中心?用户:前者。语音助手通过显示器或语音等形式向用户返回距离其最近的有母婴室的购物中心的信息。很显然,这种方式相比较传统方式大大提升了用户的交互效率和使用体验。以上是对本申请所提供的方法进行的详细描述,下面结合实施例对本申请提供的装置进行详细描述。实施例四、图5为本申请实施例四提供的语音交互装置的结构图,如图5中所示,该装置可以包括:语音交互单元01、语音处理单元02、需求预测单元03和服务响应单元04,还可以进一步包括模型训练单元05和原因分析单元06。其中各组成单元的主要功能如下:语音交互单元01负责实现接收与传递来自用户的数据以及向用户返回的数据。首先接收用户输入的第一语音指令。语音处理单元02负责对第一语音指令进行语音识别和需求解析。对于用户输入的第一语音指令,首先要进行语音识别。在获取到语音识别得到的文本后,进行需求解析。该需求解析的目的主要是了解用户的具体需求(也可以称为意图),获取结构化信息,以为用户提供精准地服务。具体的需求解析方式和解析结果可以与具体的垂直类服务相关。本单元可以采用已有技术,在此不做赘述。若需求解析成功,则服务响应单元04利用第一语音指令对应的需求解析结果进行服务响应。若需求解析失败,则需求预测单元03对第一语音指令进行需求预测,得到至少一个需求表述。然后由语音交互单元01将需求表述中的至少一个通过问询的形式返回给用户。若语音交互单元01接收到用户确定需求表述中的至少一个的第二语音指令,则由服务响应单元04利用用户确定的需求表述对应的需求解析结果进行服务响应。具体地,需求预测单元03可以将第一语音指令输入预先训练得到的需求预测模型,需求预测模型将第一语音指令映射至至少一个需求表述。需求预测模型映射得到的至少一个需求表述均具有置信度,该置信度代表能够预测第一语音指令所对应需求的准确程度。模型训练单元05负责训练得到需求预测模型。具体地,模型训练单元05获取训练数据,训练数据包括多个语句对,语句对包括第一语句和第二语句,其中第二语句能够被需求解析成功;利用训练数据训练seq2seq模型,得到需求预测模型,其中语句对中第一语句作为seq2seq模型的输入,第二语句作为seq2seq模型的目标输出。作为一种优选的实施方式,上述训练数据可以从文本搜索日志中获取。具体地,可以将文本搜索日志中query作为第一语句,利用query所对应的被点击搜索结果得到第二语句,将第一语句和第二语句构成语句对,第二语句的置信度由第一语句作为query时第二语句的被点击次数确定。被点击次数越多对应的置信度越高。语音交互单元在将需求表述中的至少一个通过问询的形式返回给用户时,可以采用但不限于以下两种方式:第一种方式:将需求预测模型映射得到的至少一个需求表述中置信度最高的需求表述作为第一需求表述,将第一需求表述通过问询的形式返回给用户。若接收到用户否定第一需求表述的第三语音指令,则将需求预测模型映射得到的至少一个需求表述中置信度次高的需求表述作为第二需求表述,将第二需求表述通过问询的形式返回给用户。这种方式下的问询可以采用一般疑问句的形式,这样用户仅需要回答“是/不是”、“是/否”、“需要/不需要”、“可以/不可以”、“对/不对”等简单的语音即可。另外,在这种方式下可以限制最大交互轮数,当达到最大交互轮数后,语音交互单元01可以向用户返回需求理解失败的结果,也可以提示用户重新输入第一语音指令。第二种方式:将需求预测模型映射得到的至少一个需求表述中置信度排在前n个的需求表述,通过问询的形式返回给用户,n为预设的正整数。这种方式下,可以采用选择疑问句的形式将n个需求表述返回给用户,以供用户选择。若用户对于任何的需求表述都没有确认,则语音交互单元01可以向用户返回需求理解失败的结果,也可以提示用户重新输入第一语音指令。更进一步地,原因分析单元06可以分析需求解析失败的原因,在问询中进一步携带需求解析失败的原因。分析需求解析失败的原因可以包括但不限于以下处理中的一种或任意组合:第一种处理:在语音识别时,对用户输入第一语音指令的背景进行噪声检测,对于噪声严重的情况,在语音识别阶段就会产生影响,从而导致后续需求解析失败。第二种处理:在语音识别过程中进行发音的检测,以检测用户是否发音准确。对于发音不准确的情况,同样在语音识别阶段就会产生影响,从而导致后续需求解析失败。第三种处理:对第一语音指令的语音识别结果进行文本长度的检测。对于过长的语句,通常会对需求解析产生不利影响,例如在进行语义分析时很难分析出过长语句的语义,从而导致需求解析失败。第四种处理:对第一语音指令的语音识别结果进行口语化检测。对于表达过于口语化的语句,会对语义分析产生不利影响,从而导致需求解析失败。还可能存在其他处理方式,在此不做一一穷举。对应于上述几种处理方式,得到的需求解析失败的原因可以包括:诸如:环境嘈杂、第一语音指令的发音不准确、第一语音指令的长度超限、第一语音指令过于口语化,等等。根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。如图6所示,是根据本申请实施例的语音交互方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。如图6所示,该电子设备包括:一个或多个处理器601、存储器602,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图6中以一个处理器601为例。存储器602即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的语音交互方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的语音交互方法。存储器602作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的语音交互方法对应的程序指令/模块。处理器601通过运行存储在存储器602中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的语音交互方法。存储器602可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据该电子设备的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器602可选包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至该电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。语音交互方法的电子设备还可以包括:输入装置603和输出装置604。处理器601、存储器602、输入装置603和输出装置604可以通过总线或者其他方式连接,图6中以通过总线连接为例。输入装置603可接收输入的数字或字符信息,以及产生与该电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置604可以包括显示设备、辅助照明装置(例如,led)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(lcd)、发光二极管(led)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用asic(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。由以上描述可以看出,本申请提供的方法、装置、设备和计算机存储介质可以具备以下优点:1)本申请在对用户输入的语音指令需求解析失败后,会进一步对语音指令进行需求预测,“猜测”用户可能的需求表述以返回给用户确认,而不是简单粗暴地告知用户无法理解用户所说的,从而提高用户的交互效率,提升用户体验。2)对于语音助手通过问询形式返回的需求表述,用户仅需要简单地确认或选择即可实现有效的指令输入,而无需自己换一种方式进行语音指令的重新输入,进一步提高用户的交互效率,提升用户体验。3)在需求理解失败后,在预测用户需求的同时会对需求理解失败的原因进行分析,并向用户返回分析得到的原因,从而减轻用户的疑惑和焦虑,进一步提升用户体验。应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1