首页 / 专利库 / 人工智能 / 情感计算 / 在对话中生成响应

在对话中生成响应

阅读:298发布:2020-05-12

专利汇可以提供在对话中生成响应专利检索,专利查询,专利分析的服务。并且本公开内容提供了用于在人机对话中生成响应的方法和装置。可以在所述对话中接收第一声音输入。可以从所述第一声音输入中提取第一音频属性,其中所述第一音频属性指示用户的第一状态。可以在所述对话中接收第二声音输入。可以从所述第二声音输入中提取第二音频属性,其中所述第二音频属性指示用户的第二状态。确定所述第二音频属性和所述第一音频属性之间的差,其中所述差指示所述用户从所述第一状态到所述第二状态的状态变化。至少基于所述状态变化来生成对所述第二声音输入的响应。,下面是在对话中生成响应专利的具体信息内容。

1.一种用于在人机对话中生成响应的方法,包括:
接收所述对话中的第一声音输入;
从所述第一声音输入中提取第一音频属性,其中,所述第一音频属性指示用户的第一状态;
接收所述对话中的第二声音输入;
从所述第二声音输入中提取第二音频属性,其中,所述第二音频属性指示用户的第二状态;
确定所述第二音频属性与所述第一音频属性之间的差,其中,所述差指示所述用户从所述第一状态到所述第二状态的状态变化;以及
至少基于所述状态变化来生成对所述第二声音输入的响应。
2.根据权利要求1所述的方法,其中,
所述第一音频属性包括情感的第一多维向量,其中,所述情感的第一多维向量中的每个维度分别表示情感类别,并且所述用户的所述第一状态包括第一情感状态;
所述第二音频属性包括情感的第二多维向量,其中,所述情感的第二多维向量中的每个维度分别表示与所述情感的第一多维向量中表示的那些情感类别相同的情感类别,并且所述用户的所述第二状态包括第二情感状态;
所述第二音频属性与所述第一音频属性之间的所述差包括所述情感的第一多维向量与所述情感的第二多维向量之间的多维向量差;并且
所述状态变化包括所述用户从所述第一情感状态到所述第二情感状态的情感状态变化。
3.根据权利要求2所述的方法,还包括:
向所述多维向量差中的每个维度分配权重;以及
基于所述多维向量差中的所述一个或多个加权的维度来确定所述第二情感状态相对于所述第一情感状态的所述情感状态变化。
4.根据权利要求1所述的方法,其中,
所述第一音频属性包括环境的第一多维向量,其中,所述环境的第一多维向量中的每个维度分别表示环境类别,并且所述用户的所述第一状态包括第一环境状态;
所述第二音频属性包括环境的第二多维向量,其中,所述环境的第二多维向量中的每个维度分别表示与所述环境的第一多维向量中表示的那些环境类别相同的环境类别,并且所述用户的所述第二状态包括第二环境状态;
所述第二音频属性与所述第一音频属性的所述差包括所述环境的第一多维向量与所述环境的第二多维向量之间的多维向量差;并且
所述状态变化包括所述用户从所述第一环境状态到所述第二环境状态的环境状态变化。
5.根据权利要求4所述的方法,还包括:
向所述多维向量差中的每个维度分配权重;以及
基于所述多维向量差中的所述一个或多个加权的维度来确定所述第二环境状态相对于所述第一环境状态的所述环境状态变化。
6.根据权利要求1所述的方法,其中,
所述第一音频属性包括身体状况的第一多维向量,其中,所述身体状况的第一多维向量中的每个维度分别表示身体状况类别,并且所述用户的所述第一状态包括第一身体状况状态;
所述第二音频属性包括身体状况的第二多维向量,其中,所述身体状况的第二多维向量中的每个维度分别表示与所述身体状况的第一多维向量中表示的那些身体状况类别相同的身体状况类别,并且所述用户的所述第二状态包括第二身体状况状态;
所述第二音频属性与所述第一音频属性之间的所述差包括所述身体状况的第一多维向量与所述身体状况的第二多维向量之间的多维向量差;并且
所述状态变化包括所述用户从所述第一身体状况状态到所述第二身体状况状态的身体状况变化。
7.根据权利要求6所述的方法,还包括:
向所述多维向量差中的每个维度分配权重;以及
基于所述多维向量差中的所述一个或多个加权的维度来确定所述第二身体状况状态的所述身体状况变化。
8.根据权利要求1所述的方法,其中,
所述第一音频属性包括下列各项中的至少一项:情感的第一多维向量、环境的第一多维向量以及身体状况的第一多维向量;并且
所述第二音频属性包括下列各项中的至少一项:情感的第二多维向量、环境的第二多维向量以及身体状况的第二多维向量。
9.根据权利要求1所述的方法,其中,生成对所述第二声音输入的所述响应还基于下列各项中的至少一项:所述用户的所述第一状态、所述用户的所述第二状态、从所述第一声音输入中提取的第一语义信息、从所述第二声音输入中提取的第二语义信息、对话上下文以及用户简档。
10.根据权利要求1所述的方法,还包括:
从用户简档确定所述用户的初始音频属性,其中,所述初始音频属性指示所述用户的初始状态;
在接收所述第二声音输入之前,确定所述第一音频属性与所述初始音频属性之间的差,其中,所述差指示所述用户从所述初始状态到所述第一状态的初始状态变化;以及至少基于所述初始状态变化来生成对所述第一声音输入的响应。
11.根据权利要求10所述的方法,还包括:
基于所述第一音频属性和所述第二音频属性中的至少一项来对所述用户的所述初始音频属性进行更新。
12.根据权利要求10所述的方法,其中,生成对所述第一声音输入的所述第二消息还基于下列各项中的至少一项:所述用户的所述初始状态、所述用户的所述第一状态、从所述第一声音输入中提取的第一语义信息、对话上下文以及所述用户简档。
13.根据权利要求1所述的方法,还包括:
接收所述对话中的第三声音输入;
从所述第三声音输入中提取第三音频属性,其中,所述第三音频属性指示所述用户的第三状态;
确定所述第三音频属性与所述第二音频属性之间的差,其中,所述差指示所述用户从所述第二状态到所述第三状态的附加状态变化;以及
至少基于所述状态变化和所述附加状态变化来生成对所述第三声音输入的响应。
14.根据权利要求1所述的方法,还包括:
接收所述对话中的第三声音输入;
从所述第三声音输入中提取第三音频属性,其中,所述第三音频属性指示所述用户的第三状态;
确定所述第一音频属性与所述第二音频属性之间的平均属性,其中,所述平均属性指示所述用户的所述第一状态与所述第二状态之间的平均状态;
确定所述第三音频属性与所述平均属性之间的差,其指示所述用户从所述平均状态到所述第三状态的第二状态变化;以及
至少基于所述第二状态变化来生成响应于所述第三声音输入的第三消息。
15.根据权利要求1所述的方法,还包括:
在接收所述第一声音输入之前,基于独立于所述当前对话的用户信息来生成初始消息,其中,所述初始消息是针对所述第一声音输入的请求
16.根据权利要求1所述的方法,还包括:
在接收所述第二声音输入之前,生成用于确认所述用户的第一状态或者用于请求所述第二声音输入的中间响应。
17.一种用于在人机对话中生成响应的装置,包括:
第一接收模,其用于接收所述对话中的第一声音输入;
第一提取模块,其用于从所述第一声音输入中提取第一音频属性,其中,所述第一音频属性指示用户的第一状态;
第二接收模块,其用于接收所述对话中的第二声音输入;
第二提取模块,其用于从所述第二声音输入中提取第二音频属性,其中,所述第二音频属性指示用户的第二状态;
确定模块,其用于确定所述第二音频属性和所述第一音频属性之间的差,其中,所述差指示所述用户从所述第一状态到所述第二状态的状态变化;以及
响应生成模块,其用于至少基于所述状态变化来生成对所述第二声音输入的响应。
18.根据权利要求17所述的装置,其中,
所述第一音频属性包括下列各项中的至少一项:情感的第一多维向量,其中,所述情感的第一多维向量中的每个维度分别表示情感类别;环境的第一多维向量,其中,所述环境的第一多维向量中的每个维度分别表示环境类别;以及身体状况的第一多维向量,其中,所述身体状况的第一多维向量中的每个维度分别表示身体状况类别;
所述第二音频属性包括下列各项中的至少一项:情感的第二多维向量,其中,所述情感的第二多维向量中的每个维度分别表示与所述情感的第一多维向量中表示的那些情感类别相同的情感类别;环境的第二多维向量,其中,所述环境的第二多维向量中的每个维度分别表示与所述环境的第一多维向量中表示的那些环境类别相同的环境类别;身体状况的第二多维向量,其中,所述身体状况的第二多维向量中的每个维度分别表示与所述身体状况的第一多维向量中表示的那些身体状况类别相同的身体状况类别;
所述用户的第一状态包括下列各项中的至少一项:第一情感状态、第一环境状态以及第一身体状况状态;
所述用户的第二状态包括下列各项中的至少一项:第二情感状态、第二环境状态以及第二身体状况状态;
所述第二音频属性与所述第一音频属性之间的所述差包括下列各项中的至少一项:所述情感的第一多维向量与所述情感的第二多维向量之间的多维向量差;所述环境的第一多维向量与所述环境的第二多维向量之间的多维向量差;以及所述身体状况的第一多维向量与所述身体状况的第二多维向量之间的多维向量差;并且
所述状态变化包括下列各项中的至少一项:所述用户从所述第一情感状态到所述第二情感状态的情感状态变化、所述用户从所述第一环境状态到所述第二环境状态的环境状态变化、以及所述用户从所述第一身体状况状态到所述第二身体状况状态的身体状况状态变化。
19.根据权利要求17所述的装置,其中,所述确定模块还用于:从用户简档确定所述用户的初始音频属性,其中,所述初始音频属性指示所述用户的初始状态;并且所述装置还包括更新模块,所述更新模块用于:基于所述第一音频属性和所述第二音频属性中的至少一项来对所述用户的所述初始音频属性进行更新。
20.一种用于在人机对话中生成响应的装置,包括:
一个或多个处理器;以及
存储器,其存储计算机可执行指令,当被执行时,所述计算机可执行指令使所述一个或多个处理器:
接收所述对话中的第一声音输入;
从所述第一声音输入中提取第一音频属性,其中,所述第一音频属性指示用户的第一状态;
接收所述对话中的第二声音输入;
从所述第二声音输入中提取第二音频属性,其中,所述第二音频属性指示用户的第二状态;
确定所述第二音频属性和所述第一音频属性之间的差,其中,所述差指示所述用户从所述第一状态到所述第二状态的状态变化;
至少基于所述状态变化来生成对所述第二声音输入的响应;以及
在所述对话中向所述用户呈现包括所生成的响应的消息。

说明书全文

在对话中生成响应

背景技术

[0001] 人工智能(AI)聊天机器人正变得越来越流行,并且正在应用于数量日益增长的场景中。聊天机器人被设计为模拟与人的对话,并且可以通过文本、语音、图像等来与用户聊天。通常,聊天机器人可以扫描用户输入的消息中的关键字或者对消息应用自然语言处理,以及向用户提供具有最匹配关键字或最相似措辞模式的响应。发明内容
[0002] 提供本发明内容以便对下文在具体实施方式中进一步描述的设计构思的选择进行介绍。本发明内容并不旨在标识要求保护的发明主题的关键特征或重要特征,也不旨在用于限制要求保护的发明主题的范围。
[0003] 本公开内容的实施例提出了用于在人机对话中生成响应的方法和装置。可以在所述对话中接收第一声音输入。从所述第一声音输入中提取第一音频属性,其中所述第一音频属性指示用户的第一状态。可以在所述对话中接收第二声音输入。从所述第二声音输入中提取第二音频属性,其中所述第二音频属性指示用户的第二状态。确定所述第二音频属性与所述第一音频属性之间的差,其中所述差指示所述用户从所述第一状态到所述第二状态的状态变化。至少基于所述状态变化来生成对所述第二声音输入的响应。
[0004] 应该注意的是:上述一个或多个方面包括在下文中充分描述并在权利要求书中具体指出的特征。下文的描述和附图详细阐述了一个或多个方面的某些说明性的特征。这些特征仅指示各种方面的原理可以在其中使用的各种方式,并且本公开内容旨在包括所有这些方面以及它们的等价物。

附图说明

[0005] 将结合附图在下文中对所公开的方面进行描述,提供附图是为了对所公开的方面进行说明而非进行限定。
[0006] 图1是根据实施例示出用于收集和提供用户数据和环境数据的示例性客户端设备的框图
[0007] 图2是根据实施例的用于在客户端设备上提供智能聊天引擎的联网环境的框图。
[0008] 图3是根据实施例的向客户端设备提供聊天响应的聊天引擎服务器的框图。
[0009] 图4根据实施例示出了示例性用户界面
[0010] 图5根据实施例示出了用于至少基于情感状态变化来生成响应的示例性过程。
[0011] 图6根据实施例示出了用于提取情感向量的示例性情感分类模型。
[0012] 图7根据实施例示出了示例性情感状态变化图。
[0013] 图8示出了根据图5的实施例的用户与聊天机器人之间的对话的示例性对话窗口。
[0014] 图9示出了根据图5的实施例的用户与聊天机器人之间的对话的另一个示例性对话窗口。
[0015] 图10根据实施例示出了用于至少基于情感状态变化来生成响应的另一个示例性过程。
[0016] 图11示出了根据图10的实施例的用户与聊天机器人之间的对话的示例性对话窗口。
[0017] 图12根据实施例示出了用于至少基于情感状态变化来生成响应的示例性过程。
[0018] 图13示出了根据图12的实施例的用户与聊天机器人之间的对话的示例性对话窗口。
[0019] 图14根据实施例示出了至少基于情感状态变化、环境状态变化和身体状况状态变化的用户与聊天机器人之间的对话的示例性对话窗口。
[0020] 图15根据实施例示出了用于在人机对话中生成响应的示例性方法的流程图
[0021] 图16根据实施例示出了用于在人机对话中生成响应的示例性装置。
[0022] 图17根据实施例示出了用于在人机对话中生成响应的示例性装置。

具体实施方式

[0023] 现在将参考若干示例实现来讨论本公开内容。应当理解的是:讨论这些实现仅仅是为了使本领域技术人员能够更好地理解并因此实现本公开内容的实施例而不是暗示对本公开内容的范围的任何限制。
[0024] 本文中公开的示例针对用于在智能电话、移动平板电脑、联网玩具、汽车计算机或其它客户端设备上提供交互式聊天引擎的方法、包括若干模的装置以及包括一个或多个处理器和具有可执行指令的存储器的装置。使用所公开的示例,客户端设备配备有聊天引擎,该聊天引擎可以理解和解释用户的状况变化,以便至少基于用户的状况变化来生成响应。“聊天引擎”是指用于向用户呈现聊天对话的整个设备和软件组件,包括前端用户体验、中间聊天响应软件和用于呈现聊天响应的数据的后端数据库。在本文中,聊天引擎也可以被称为“聊天机器人”。用户的状态变化可以指示从用户的一个状态到另一个状态的变化,包括用户从第一情感状态到第二情感状态的情感状态变化,用户从第一环境状态到第二环境状态的环境状态变化,用户从第一身体状况状态到第二身体状况状态的身体状况状态变化等。在实施例中,可以通过从声音输入提取的音频属性来指示用户的状态,并且可以通过第二音频属性和第一音频属性之间的差来指示用户的状态变化。在一些示例中,可以通过对在客户端设备上从用户捕捉的文本、视频、图像、声音、触摸或其它信息的解释来确定用户的状态。
[0025] 在本文中,用户的状态可以主要通过对在客户端设备上捕捉的声音(如语音、噪声等)的解释来确定。在本公开内容的实施例中,可以通过对从用户捕捉的语音的声学特征的解释来检测情感状态。例如,语音的声学特征可以包括下列各项中的一项或多项:音调、响度、音高、基频、梅尔频率倒谱系数(MFCC)、共振峰、声波、短时能量、过零率、短时幅度、速度、停顿等。例如,用户语音的音调的变化可以指示用户现在变得兴奋,非常大声地说话可以指示用户处于生气状态等。在本公开内容的实施例中,可以通过对在客户端设备上捕捉的环境噪声的解释来确定环境状态。例如,家庭噪声(如电视声音)可以指示用户在家;公共汽车噪声(如关于售票或关于站名的声音)可以指示用户在公共汽车上等。在本公开的实施例中,可以通过对来自用户的人造噪声的解释来确定身体状况状态。例如,咳嗽可以指示用户感冒,打哈欠可以指示用户困了等等。
[0026] 情感状态可以包括任何情感标示,如,中性、快乐、生气、悲伤、恐惧、惊讶或其它类别的情感。情感状态还可以包括各种级别的情感,例如,与“快乐”相对应的各种级别的狂喜、兴高采烈、愉快、宁静、喜悦;各种级别的警惕性、好奇心、兴趣、期望、注意预期;与“恐惧”相对应的各种级别的恐怖、恐慌、害怕、沮丧、忧虑、胆怯;与“惊讶”相对应的各种级别的吃惊、惊奇、不确定、分心;与“悲伤”相对应的各种级别的悲痛、伤心、沮丧、忧郁、沉思;与“厌恶”相对应的各种级别的憎恶、嫌恶、反感、不喜欢、厌倦;与“生气”相对应的各种级别的狂怒、盛怒、敌意、烦恼;与“信任”相对应的各种级别的钦佩、接受、宽容;等等。
[0027] 为了创建智能聊天引擎,本文中公开的示例捕捉客户端设备上的声音输入中包括的各种相关用户和环境数据;向聊天引擎服务器传送所捕捉的用户和环境数据以用于:确定用户的情感状态变化、环境状态变化和用户的身体状况状态变化中的一项或多项,至少基于用户的情感状态变化、环境状态变化和用户的身体状况状态变化来生成聊天响应,并且向用户呈现所生成的聊天响应。
[0028] 在一些示例中,由客户端设备或聊天引擎服务器对用户的输入数据和环境数据进行分析,以确定用户的状态变化。在本文中,用户的输入数据和环境数据可以是要输入到客户端设备的声音形式。使用响应生成模块生成用于在对话中与用户交互的聊天响应,该响应生成模块基于用户输入和环境数据来访问各种信息的索引。对话模块可用于选择以文本消息、语音消息、图像消息或视频消息的形式提供给用户的所生成的响应中的一种,同时考虑用户的检测到的状态变化和/或一些其它因素,例如,用户的检测到的状态,以及从用户输入、对话上下文、用户简档等中提取的语义信息。
[0029] 基于用户的状态变化来定制所选择或所生成的响应,以便提供比传统数字助理更具沟通性以及更智能的聊天体验。同样,今天的数字助理没有考虑用户的状态变化。使用本文中公开的各种示例,聊天响应可以具体地适合用户的状态变化。例如,当用户的情感状态从生气变为中性时,将使用某些聊天响应,例如,“you are not so angry now,are you?(你现在不是很生气了,是吗?)”或者“you are better now,let’s play a new game(你现在好多了,让我们玩个新游戏吧)”。智能聊天响应通过提供更加主动的方式与客户端设备上的用户进行通信来增强用户体验。
[0030] 在本公开内容中,“聊天”、“对话”或“聊天对话”是指用户与计算设备之间的电子交互,如一系列交换的文本、视频、图像、声音等。例如,呈现在计算机屏幕上的化身可以与用户说话、呈现文本或执行动画。
[0031] 为了确定用户的状态变化,一些示例可以捕捉客户端设备上的输入数据并将捕捉的输入数据传送到聊天引擎服务器。输入数据可以包括声音输入,其包括用户数据和环境数据。用户数据的示例可以包括但不限于来自用户的语音和其它音频。在本文中,“环境数据”指的是与由计算设备的一个或多个传感器或电子组件捕捉的用户的周围环境、位置或正在执行的其它活动有关的信息。例如,环境数据可以包括从客户端设备的麦克检测到的信息,例如但不限于音频记录的背景噪声、来自音频记录中的其它用户的语音。例如,可以通过麦克风来接收街道噪声,并且可以使用它来确定用户的位置,如在街道上,等等。环境数据还可以包括从用户的输入数据中获取的信息,例如但不限于,用户的输入数据可以包括用户现在站立的街道的信息,例如“I am on Happy Street(我在快乐街)”。在一些示例中,环境数据是由通过网络从客户端设备接收输入数据的聊天引擎服务器在声音输入数据中识别的。在替代示例中,环境数据可以由客户端设备从输入数据中解析并分别发送到聊天引擎服务器。
[0032] 在本文中,“用户简档”指的是与用户有关的电子存储的信息集合。此类信息可以包括用户的姓名、年龄、性别、身高、体重、人口统计、当前位置、居住地、公民身份、家庭、朋友、学校教育、职业、爱好、技能、兴趣、网络搜索、健康信息、生日、周年纪念、庆祝假期、情绪、用户的状态以及与用户相关联的任何其它个性化信息。用户简档包括静态简档元素(例如,姓名、出生地等),以及随时间变化的动态简档元素(例如,居住地、年龄、状态等)。可以通过向用户调查问题或通过对用户在一个或多个客户端设备上的行为进行分析来构建用户简档。
[0033] 如下文更加详细讨论的,可以基于用户数据和/或环境数据来确定用户的状态变化。在一些示例中,聊天引擎服务器可以使用用户数据和/或环境数据来确定用户的状态变化,然后使用状态变化来影响向用户提供的聊天响应。
[0034] 已经概括地提供了一些所公开的示例的概述,请注意附图以进一步说明一些附加细节。提供图示配置和操作顺序以帮助读者理解所公开的示例的一些方面。附图并不意味着限制所有示例,因此一些示例可以在不脱离本文中讨论的所公开的示例的范围的情况下包括不同的组件、设备或操作顺序。换句话说,一些示例可以以与所示出的那些方式不同的方式来体现或者起作用。
[0035] 通过定制针对用户的状态变化的聊天响应,本公开内容的方面创建了更好的聊天用户体验。因此,理解用户的状态变化并相应地定制聊天消息可以大大扩展传统计算设备的能力,从而提供可以存在智能应用的平台。
[0036] 参照图1,框图示出了用于收集和提供用户数据和环境数据的示例性客户端设备100。在一些示例中,客户端设备100具有至少一个处理器106、收发机108、一个或多个呈现组件110、一个或多个输入/输出(I/O)端口112、一个或多个I/O组件114以及存储器124。
[0037] 客户端设备100可以采用移动计算设备或任何其它便携式设备的形式,如移动电话、膝上型电脑、平板电脑、计算平板设备、笔记本电脑、游戏设备、便携式媒体播放器等。客户端设备100还可以包括较不便携的设备,如桌面式个人计算机、查询机(kiosks)、桌面设备、工业控制设备、无线充电站、电动汽车充电站等。此外,客户端设备100可以替代地采用以下形式:车辆的电子组件(例如,配备有麦克风或其它传感器的车辆计算机)、电子装备的玩具(例如,配备有本文中公开的电组件的填充动物玩偶或其它儿童色)或任何其它计算设备。其它示例可以将客户端设备100合并为多设备系统的一部分,其中,两个单独的物理设备共享或以其它方式提供对计算设备100的图示组件的访问。
[0038] 处理器106可以包括任何数量的处理单元,并且被编程为执行用于实现本公开内容的方面的计算机可执行指令。指令可以由处理器或计算设备内的多个处理器执行,或者由计算设备外部的处理器执行。在一些示例中,处理器106被编程为执行如附图15中所示的方法。附加地或替代地,一些示例可以使处理器106被编程为在用户界面(“UI”)(例如,图4、图8、图9、图11、图13、图14中所示的UI)中呈现聊天体验。此外,在一些示例中,处理器106可以表示用于执行本文中描述的操作的模拟技术的实现。例如,操作可以由模拟客户端设备100和/或数字客户端设备100执行。
[0039] 收发机108是能够发送和接收射频(“RF”)信号的天线。本领域技术人员将理解和理解:可以使用各种天线和相应的芯片组来提供客户端设备100与其它远程设备之间的通信能力。然而,示例不限于RF信号传输,因为可以替代地使用各种其它通信模态。
[0040] 呈现组件110可视地或可听地在计算设备100上呈现信息。呈现组件110的示例包括但不限于计算机显示器(monitor)、电视机、投影仪、触摸屏、电话显示器、平板显示器、可穿戴设备屏幕、电视机、扬声器、振动设备以及被配置为显示、口头通信或以其它方式指示对用户的聊天响应的任何其它设备。在一些示例中,客户端设备100可以是智能电话或移动平板电脑,其包括能够向用户播放可听聊天响应的扬声器。在其它示例中,客户端设备100是汽车中的计算机,其通过汽车扬声器系统呈现音频聊天响应,在汽车的显示屏幕(例如,位于汽车的仪表板中、头枕内、或下拉屏幕上等)上呈现视觉聊天响应,或者它们的组合。其它示例可以通过各种其它显示或音频呈现组件110来呈现所公开的聊天响应。
[0041] I/O端口112允许客户端设备100在逻辑上耦接到其它设备和I/O组件114,其中一些可以内置在客户端设备100中,而其它可以是外部的。具体到本文中讨论的示例,I/O组件114包括麦克风116、一个或多个传感器118、摄像头120和触摸设备122。麦克风116捕捉来自用户102的语音。传感器118可以包括移动计算设备、电子玩具、游戏控制台、可穿戴设备、电视机、车辆或其它计算设备100上或其中的任何数量的传感器。另外,传感器118可包括加速度计、磁力计、压力传感器、光度计、温度计、全球定位系统(“GPS”)芯片或电路条形码扫描仪、用于扫描指纹、掌纹、血液、眼睛等的生物识别扫描仪、陀螺仪近场通信(“NFC”)接收机,或者被配置为从用户102或环境捕捉数据的任何其它传感器。摄像头120捕捉用户102的图像或视频。触摸设备122可以包括触摸板跟踪板、触摸屏或其它触摸捕捉设备。图示的I/O组件114仅是可以包括在客户端设备100上的I/O组件的一个示例。其它示例可以包括附加的或替代的I/O组件114,例如,声卡、振动设备、扫描仪、打印机无线通信模块,或用于捕捉与用户或用户的环境有关的信息的任何其它组件。
[0042] 存储器124包括与计算设备100相关联或可由计算设备100访问的任何数量的存储器。存储器124可以在客户端设备100内部(如图1所示),在客户端设备100外部(图1中未示出),或这二者。存储器124的示例可以包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、电子可擦除可编程只读存储器(EEPROM)、闪存器或其它存储器技术、CDROM、数字多功能盘(DVD)或其它光学或全息介质、磁带盒、磁带、磁盘存储器或其它磁性存储设备、有线连接到模拟计算设备的存储器,或者用于对所需信息进行编码和用于由客户端设备100访问的任何其它介质。存储器124还可以采用易失性和/或非易失性存储器的形式;可以是可移动的、不可移动的或者它们的组合;并且可以包括各种硬件设备,例如,固态存储器、硬盘驱动器、光盘驱动器等。附加地或替代地,存储器124可以分布在多个客户端设备100上,例如,在虚拟化环境中,在该环境中指令处理是在多个客户端设备100上执行的。存储器124存储各种设备应用以及其它数据,所述各种设备应用在由处理器106执行时用于在计算设备100上执行功能。应用的示例可以包括聊天应用、即时消息传送应用、电子邮件应用程序、网络浏览器、日历应用程序、地址簿应用程序、消息传送程序、媒体应用、基于位置的服务、搜索程序等。应用可以与对应应用或服务(如经由网络104可访问的网络服务)通信。例如,应用可以包括客户端操作应用,其与在远程服务器或中的计算设备上执行的服务器侧应用相对应。
[0043] 具体而言,存储在存储器124中的指令包括通信接口应用126、用户界面应用128和聊天应用130。在一些示例中,通信接口应用126包括用于操作网络接口卡的计算机可执行指令和/或用于操作网络接口卡的驱动器。客户端设备100和其它设备之间的通信可以使用有线或无线连接上的任何协议或机制,或者跨网络104进行。在一些示例中,通信接口应用126可使用电子标签(如NFC标签、 品牌标签等)的RF和短程通信技术来操作。
[0044] 在一些示例中,用户界面应用128包括用于向用户显示数据并从用户接收数据的图形应用。用户界面应用128还可以包括用于操作图形卡以便在呈现组件110上或通过呈现组件110显示聊天响应和相应图像或语音的计算机可执行指令。用户界面应用128还可以与各种传感器118交互以通过呈现组件110来捕捉和呈现信息。
[0045] 聊天应用130在被执行时可以通过呈现组件110来呈现聊天响应。在一些示例中,聊天应用130在被执行时通过I/O组件114获取捕捉的用户数据和环境数据,并通过网络将获取的用户数据和环境数据传送到远程服务器。在一些示例中,远程服务器操作服务器应用,该服务器应用被配置为:从所传送的用户数据和环境数据识别用户情感状态变化和/或身体状况状态变化和/或环境状态变化,生成针对状态变化定制的聊天响应,并将聊天响应传送回客户端设备100以通过呈现组件110进行显示。在其它示例中,聊天应用130可以包括用于确定客户端设备100上的用户102的状态变化的指令—而不是在远程服务器上进行这样的确定。可以通过对用户的输入数据的音调或频率分析、对用户的输入数据的人为噪声分析、对环境输入数据的环境噪声分析等(通过聊天应用130或服务器)来执行对用户102的状态变化的确定。
[0046] 当在客户端设备100上确定用户的状态变化时,一些示例可以将所确定的状态变化单独地或者连同用户的先前和/或当前状态、从声音输入(也是在客户端设备100上捕捉的)中提取的语义信息一起传送到服务器,用于选择定制的聊天响应。例如,指示用户102的情感状态从中性变为快乐、用户102的身体状况状态从正常变为咳嗽,和/或环境状态从家庭噪声变为街道噪声(加权或不加权的)的状态变化可以连同用户的语义信息(例如,“I am glad to go shopping with my friend(我很高兴和我的朋友一起去购物)”)一起发送。作为响应,接收机服务器可以基于他/她的语音中的情感状态变化、用户的身体状况状态变化、环境状态变化和用户的语义信息来生成或选择适当的响应。
[0047] 附加地或替代地,客户端设备100或远程服务器还可以对由I/O组件114捕捉的环境数据进行分析,以确定在用户周围发生的各种环境事件。可以对背景噪声进行分析以获得关于用户102的周围环境的信息。例如,可以识别如背景中“the flight XXX will take off at 10minutes later(飞机XXX将在10分钟后起飞)”的声音和/或如来自其他人的“our boarding gate is at gate 5(我们的登机门在5号门)”的语音,并且将其用于指示用户在机场。在另一个示例中,可以识别在背景中谈论商品和价格的一些人并且可以指示用户在市场中。在又一个示例中,可以接收并分析课堂的铃声响铃以指示用户在学校。许多其它示例可以以不同的、替代的或另外的方式来解释环境数据,以便更好地理解用户102的周围环境和环境状态。
[0048] 虽然在下文中更深入地进行了讨论,但一些示例还为用户102构建和维护用户简档。为了准备或维护最新的用户简档,聊天应用130或聊天服务器可以被配置为:周期性地、响应地(例如,在某些用户交互之后)、自发地或间歇地用问题来向用户102进行调查以收集关于用户102的信息。例如,聊天应用130(单独地或在聊天服务器的指示下)可以最初向用户102询问某些静态不变的信息(例如,生日、出生地、父母或兄弟姐妹姓名等),以及本质上更动态的当前信息(例如,居住地、当前情绪、最好的朋友、当前的身体状况、位置等)。对于后者(即,动态信息),聊天应用130可以在将来对用户102进行调查或者对与用户102的聊天对话进行分析以获得动态信息的变化—以便确保这些信息不会过时。例如,如果用户简档先前指示用户102两年前住在西雅图,并且聊天应用130识别出客户端设备100花费超过阈值时间量(例如,一年中有数天、一周中有数个小时等在德克萨斯州休斯顿),则聊天应用130可以由聊天服务器配置或指导,以便向用户102询问他或她是否住在新的位置。这样的问题可以由用户输入数据、时间流逝、检测到的环境数据、用户102的状态或任何其它触发来触发。
[0049] 图2是用于在客户端设备100上提供智能聊天引擎的联网环境200的框图。联网环境200可以包括多个客户端设备100(图2中仅示出了一个)、聊天引擎服务器202以及通过网络104通信的数据库224。在一些示例中,用户数据和环境数据由客户端设备100通过网络104传送到聊天引擎服务器202,并且聊天引擎服务器202生成定制的聊天响应,其被提供回客户端设备100以作为与其各自的用户102的聊天对话的一部分来呈现。图2中示出的联网环境200仅仅是一个合适的计算系统环境的示例,并不旨在对本文中公开的示例的使用范围或功能提出任何限制。也不应该将所示出的联网环境200解释为具有与任何单个组件、模块、索引或它们的组合相关的任何依赖性或要求。
[0050] 网络104可以包括任何计算机网络,例如,互联网、私人网络、局域网(LAN)、广域网(WAN)等。网络104可以包括各种网络接口、适配器、调制解调器以及用于通信地连接客户端设备100的其它网络设备、聊天引擎服务器202和数据库224。网络104还可以包括用于点对点连接的配置。计算机网络对于本领域技术人员来说是公知的,因此不需要在本文中详细讨论。
[0051] 客户端设备100可以是上文参考图1讨论的任何类型的客户端设备。每个客户端设备100可以从其各自的用户捕捉用户数据和/或环境数据,并且通过网络104将捕捉的用户数据和环境数据传送到聊天引擎服务器202和/或数据库224。为此,每个设备可以配备有通信接口应用126,如上文参考图1所讨论的。作为响应,聊天引擎服务器202能够在聊天体验中向能够通过网络104传送其分别捕捉的用户数据和环境数据的许多客户端设备100提供智能聊天响应。换句话说,聊天引擎服务器202可以控制许多客户端设备100上的聊天引擎对话。
[0052] 客户端设备100可以配备有各种软件应用和呈现组件110,用于向其各自的用户呈现所接收的聊天响应。例如,移动电话可以在屏幕上呈现虚拟助理或聊天机器人以及通过扬声器呈现相应的音频。聊天机器人可以在屏幕上呈现文本或动画和/或通过扬声器呈现音频,并且可以使用任何形式的文本消息、图像消息、音频消息、视频消息和/或它们的任意组合来呈现聊天响应。图示的客户端设备和上述呈现机制不是涵盖所有示例的详尽列表。客户端设备100的许多不同变体和呈现技术可用于向用户传达聊天响应。
[0053] 聊天引擎服务器202表示被配置为执行不同的网络服务计算机可执行指令的服务器或服务器集合。聊天引擎服务器202包括:用于处理可执行指令的处理器204、用于通过网络104进行通信的收发机206、以及存储器208,其至少包含以下可执行指令:对话模块210、响应生成模块220和响应学习模块222。存储器208可以包括用于语义信息模块212、情感模块214、身体状况模块216和环境模块218的指令。虽然聊天引擎服务器202被示为单个框,但本领域技术人员将理解:聊天引擎服务器202实际上可以是可扩展的。例如,聊天引擎服务器202实际上可以包括操作软件的各个部分的多个服务器,它们共同生成聊天响应并控制客户端设备100上的聊天对话。
[0054] 数据库224提供网络、用户和环境数据的后端存储,其可以由聊天引擎服务器202或客户端设备100通过网络104访问并且由聊天引擎服务器202使用以生成聊天响应。存储在数据库中的网络、用户和环境数据包括:例如但不限于,用户简档226、对话上下文228等。另外,尽管为了清楚起见未示出,但数据库224的服务器可以包括其自己的处理器、收发机和存储器。此外,网络环境200将数据库224描绘为来自聊天引擎服务器202的单独设备的集合;然而,示例实际上可以将示出的所讨论的网络、用户和环境数据存储在聊天引擎服务器
202上的数据库224中。
[0055] 更具体地,用户简档226可以包括用于各个用户的任何先前提到的静态和动态数据参数。用户简档数据的示例包括但不限于用户的年龄、性别、种族、姓名、位置、父母、喜好、兴趣、网络搜索历史、网络评论、社交媒体连接和交互、在线群组、学校教育、位置、出生地、母语或习得语言、熟练程度、购买历史、日常行为、工作、宗教、医疗数据、就业数据、财务数据、先前或初始情感状态、先前或初始身体状况状态、先前或初始环境状态,或者几乎任何特定于用户的独特数据点。可以扩展用户简档226以包含用户生活的各个方面。在一些示例中,用户简档226可以包括从各种源接收的数据,诸如包含博客、评论部分等的网站、移动应用或其它源。与可以包括在用户简档228中的数据类型一样,这种信息的来源也是非常广泛的。
[0056] 对话上下文228可以包括:响应于聊天引擎的主动或被动提问的与用户的聊天对话,与用户的在线连接的聊天对话、与具有类似简档的用户的聊天对话、对话日志或者与用户的对话相关联的其它信息。
[0057] 在操作中,用户参与客户端设备100,客户端设备100可以主动地或被动地从用户或其周围环境捕捉用户和/或环境数据。在一些示例中,客户端设备100可以被配置为:通过询问关于用户的情感状态、身体状况状态、环境、体验或者可以用于构建或保持用户简档226的信息的问题来主动调查用户的信息。例如,客户端设备100可以捕捉用户的图像、接收用户的语音、读取各种传感器,或者向用户询问调查问题。附加地或替代地,客户端设备100可以在参与与用户的交互时被动地捕捉用户和环境数据。例如,用户可以询问问题、打开聊天引擎应用或以其它方式参与聊天应用130,提示客户端设备100捕捉相应的用户和/或环境数据。无论是主动获得还是被动地获得,可以将在客户端设备100上捕捉的用户和环境数据发送到聊天引擎服务器202,以生成合适的聊天对话响应。附加地或替代地,可以将捕捉的用户和环境数据中的一些或全部发送到数据库224以进行存储。例如,与客户端设备100上的聊天应用130收集的用户简档或对话相关的信息可以存储在数据库224上。
[0058] 聊天引擎服务器202基于从客户端设备100接收的用户和/或环境数据、数据库224中的数据、用户的情感状态变化、用户的身体状况状态变化、用户周围的环境状态变化或者它们的组合来控制客户端设备100上的聊天对话。为此,在一些示例中,语义信息模块212可用于确定用户语音中的用户语义信息,情感模块214可用于确定用户先前和当前的情感状态并因此确定情感状态变化,身体状况模块216可用于确定用户先前和当前的身体状况状态并因此确定身体状况状态变化,以及环境模块218可用于确定用户先前和当前的环境状态并因此确定环境状态变化。另外,响应生成模块220可以用于生成要向客户端设备100提供的聊天响应。响应生成模块220可以在选择或生成聊天响应时考虑所确定的用户的状态变化,包括用户的情感状态变化、用户的身体状况状态变化和/或用户周围的环境状态变化。替换地或附加地,在一些示例中,响应学习模块222基于来自先前聊天对话和相应状态的历史学习,提供用于将用户从一个状态(例如,悲伤)转移到另一个状态(例如,快乐)的规则或其它条件。使用本文中公开的技术、模块和组件,聊天引擎服务器202可以基于用户的状态变化和/或用户的语义信息、用户的先前和/或当前状态、对话上下文、用户简档等中的一项或多项来向客户端设备100提供对话聊天响应。
[0059] 在一些示例中,情感模块214通过对从客户端设备100接收的用户数据进行分析来确定用户的情感状态和/或情感状态变化。为此,可以基于用户数据(例如,基于从用户数据提取的音频属性,单独或与从捕捉的环境数据中提取的音频属性相结合)来确定用户的情感状态和/或情感状态变化。情感模块214可以执行用于对用户语音的音调、频率、音高、振幅、颤音、混响或其它声学特征进行分析的指令,以便确定用户的情感状态。此外,用户的语音可以由情感模块214翻译成用户正在说的文本或可听识别的内容,并且用户的识别出的单词或短语可以由情感模块214解释以理解用户的情感状态。
[0060] 在一些示例中,身体状况模块216通过对从客户端设备100接收的用户数据进行分析来确定用户的身体状况状态和/或身体状况状态变化。为此,可以基于用户数据(例如,基于从用户数据提取的音频属性,单独或与从捕捉的环境数据中提取的音频属性相结合)来确定用户的身体状况状态和/或身体状况状态变化。身体状况模块216可以执行用于对用户的人造噪声(如打喷嚏、咳嗽、嗅闻、打哈欠或其它特征)进行分析的指令,以便确定用户的身体状况状态。此外,用户的语音可以由身体状况模块216翻译成用户正在说的文本或可听识别的内容,并且用户的识别出的单词或短语可以由身体状况模块216解释以理解用户的身体状况状态。
[0061] 环境模块218对来自客户端设备100的声音输入中的环境数据进行分析,以确定用户的环境状态,从而确定环境状态变化。可以对声音输入中的环境噪声进行分析以确定用户周围发生的事情。例如,与用户的语音一起捕捉的环境噪声可以向环境模块218揭示用户在户外、在特定位置,或者被特定数量或可识别的人(例如,父亲、兄弟等)围着。
[0062] 在一些示例中,对话模块210从聊天引擎服务器202远程地管理客户端设备100的聊天对话。在这种情况下,对话模块210可以通过声音输入从客户端设备100接收用户和环境数据,并且将从响应生成模块220选择的聊天响应提供回客户端设备100。
[0063] 在一些示例中,响应学习模块222包括可操作用于实现尔可夫(Markov)决策过程强化学习模型的指令。在一些示例中,响应学习模块222使用由情感和/或身体状况和/或环境状态变化构成的不同状态变化;由聊天响应(例如,鼓励用户的响应、对用户表示同情的响应、对似乎理解用户的响应等)构成的动作;以及由期望的状态变化(例如,从悲伤到快乐的情感状态、从正常到感冒的身体状况状态、从家庭噪声到街道噪声的环境状态)构成的奖励。然后,响应学习模块222可以基于状态变化的不同组合和过去与该用户或其它用户实现奖励的动作来计算实现奖励的可能性(例如,期望的状态变化)。然后,响应学习模块222可以选择最有可能实现状态变化的响应。
[0064] 响应生成模块220包括可操作以基于用户数据、环境数据和用户的状态变化来生成聊天响应的指令。在一些示例中,响应生成模块220执行多层生成应用。多层生成应用可以表示用于客户端设备100上用户的语义信息或问题的不同级别的分析焦点的指令,并且多层生成应用可以访问存储在数据库224中的所公开的信息以提供本文中提到的聊天响应。对于给定的用户输入,响应生成模块220可以行进通过若干不同的层以生成一个或多个可能的聊天响应。
[0065] 在一些示例中,响应生成模块220通过若干不同的层顺序地处理语义信息,直至生成或识别出聊天响应,并且将生成或识别出的聊天响应提供回客户端设备100。例如,如果响应生成模块220基于用户的状态变化识别出了聊天响应,则对话模块210将该聊天响应发送到客户端设备,而不必处理用户的语义信息。以这种方式,响应生成模块220作为过滤模型进行操作,该过滤模型使用不同的层来提出聊天响应。
[0066] 附加地或替代地,响应生成模块220可以生成可能的聊天响应以在聊天对话中使用,然后对话模块210可以基于用户的情感状态变化和/或身体状况状态变化和/或环境状态变化和/或由响应学习模块222计算的每个响应的奖励来选择响应。例如,响应生成模块220可以基于由语义信息模块212确定的用户的语义信息,分别由情感模块214、身体状况模块216和环境模块218确定的相应的情感、身体状况和环境状态变化,以及用户的用户简档
226来生成九个可能的聊天响应。在一些示例中,响应学习模块222对每个可能的响应进行排名以确定响应将用户从一个状态转换到另一个状态(例如,情感从悲伤到快乐)或者将用户保持在给定状态中(例如,保持快乐)的可能性。基于这些排名,对话模块210可以选择要向用户提供的适当响应。
[0067] 图3是聊天引擎服务器202使用如图2所示的响应生成模块220向客户端设备100提供聊天响应的框图。客户端设备100以声音输入的形式向聊天引擎服务器202提供环境数据和用户数据。在一些示例中,环境模块218对环境数据进行处理以识别用户的特定环境情况,例如,在家中、在工作中、在公共汽车中、在街上、在汽车中等。用户数据可以包括用户的语音,该语音包括指示用户所说的内容、用户的情感状态和用户的身体状况状态的用户的语义信息。在一些示例中,语义信息模块212可以对用户数据进行处理以提取语义信息;情感模块214可以对用户数据进行处理以确定用户的当前情感状态(例如,中性、快乐、生气、悲伤、恐惧和惊讶等),并因此确定相对于先前情感状态的情感状态变化(例如,从悲伤到快乐、从生气到中性等);身体状况模块216可以对用户数据进行处理以确定用户的当前身体状况状态,并因此确定相对于先前身体状况状态的身体状况状态变化。可以向响应生成模块220提供用户数据、环境数据、所确定的当前环境状态、所确定的环境状态变化、所确定的当前情感状态、所确定的情感状态变化、所确定的当前身体状况状态、所确定的用户的身体状况状态变化,或者它们的任意组合,以便生成要向用户提供的一个或多个聊天响应。如果响应生成模块220生成了多个聊天响应,则对话模块210可以基于由响应学习模块222计算的多个响应的奖励来选择一个优选的聊天响应,用于将用户从一个情感状态转换到另一个情感状态(例如,使用户振奋),或者用于确保所提供的聊天响应与用户的当前状态一致(例如,选择最可能使欣喜若狂的用户保持欣喜若狂或以其它方式快乐的响应)。
[0068] 在一些示例中,为了生成聊天响应,图示示例通过响应生成模块220顺序地对用户的语义信息进行处理。响应生成模块220还可以考虑所确定的用户的状态变化,包括分别由情感模块214、身体状况模块216和环境模块218确定的情感状态变化、身体状况状态变化和环境状态变化。在一些示例中,由响应生成模块220进行的处理在这些组件中的一个组件识别或生成聊天响应时停止,然后对话模块210向客户端设备100提供所识别或生成的聊天响应。在其它示例中,从响应生成模块220收集可能的聊天响应,并且对话模块210基于由响应学习模块222计算的结果奖励排名来选择要向客户端设备100提供的聊天响应。在任一种情况下,由对话模块210选择的聊天响应最终被提供回客户端设备100以呈现给用户,并且可以在整个聊天对话中重复该过程。
[0069] 图4根据实施例示出了示例性用户界面400。
[0070] 用户界面400可以包括在终端设备中,并且可以包括聊天机器人图标410、呈现区域420、控制区域430和输入区域440。聊天机器人图标410可以是表示聊天机器人的照片或图片,如聊天机器人的标志、名称和主页URL。呈现区域420可以在用户和聊天机器人之间的对话中显示聊天窗口,该聊天窗口可以包含具有文本消息、语音消息、图像消息、视频消息等中的任何形式或者它们的任意组合的输入和响应。在本文中,为了便于描述,用户在可听声音中说出的语义信息或内容以文本形式显示在呈现区域420外部的虚线框中。控制区域430可以包括多个虚拟按钮,供用户执行消息输入设置。例如,用户可以选择通过控制区域
430来进行语音输入、附加图像文件、选择表情符号、制作当前屏幕的快捷方式、激活相机、与聊天机器人进行语音通话或视频对话等。输入区域440可以由用户用于输入消息。例如,用户可以通过输入区域440键入文本或发送语音消息。用户界面400还可以包括用于确认发送所输入的消息的虚拟按钮450。如果用户触摸虚拟按钮450,则可以将在输入区域440中输入的消息发送到呈现区域420。
[0071] 应当理解的是:图4中所示的所有元素及其布局都是示例性的。根据具体的应用需求,图4中的用户接口可以省略或添加任何元素,并且图4中的用户界面中的元素的布局也可以以各种方式改变。例如,尽管在呈现区域420中前三个消息和响应以语音形式示出,并且第四个响应以文本形式示出,但消息和响应也可以是任何其它形式或上文讨论的它们的任意组合。因此,聊天机器人和用户可以通过使用对话中的语音、图像、文本、视频的任意组合来进行聊天。
[0072] 本公开内容的实施例提出了用于至少基于用户的状态变化来生成响应的方法和装置。用户的状态变化可以包括用户的情感状态变化、用户的身体状况状态变化以及环境状态变化中的至少一项。为了简单起见,如图5-图13所示,将情感状态变化作为所有种类的状态的一个示例来说明本文中的响应生成过程。尽管仅示出了用于生成响应的用户的情感状态变化,但身体状态变化和环境状态变化也可以用于类似单独地或与上述状态变化中的任何一个状态变化组合地生成响应。
[0073] 图5根据实施例示出了用于至少基于情感状态变化来生成响应的示例性过程500。
[0074] 在502处,可以在用户和聊天机器人之间的对话期间在客户端设备100上接收第一声音输入。在一些示例中,第一声音输入可以包括第一用户数据和/或第一环境数据。此外,可以从第一用户数据中提取用户的第一语义信息和/或第一情感状态和/或第一身体状况状态。在一些示例中,可以从第一环境数据中提取第一环境状态。在本文中,为简单起见,第一情感状态、第一身体状况状态和第一环境状态可以统称为用户的第一状态,其可以由第一声音输入的第一音频属性指示。第一音频属性可以包括下列各项中的至少一项:指示用户的第一情感状态的第一情感向量、指示第一环境状态的第一环境向量、以及指示用户的第一身体状况状态的第一身体状况向量。
[0075] 在504处,可以从第一声音输入中提取第一语义信息,第一语义信息指示用户所说的内容。
[0076] 在506处,从第一声音输入中提取第一情感向量并将其馈送到操作512,其中,第一情感向量可以指示用户的第一情感状态并且可以是多维情感向量的形式。在一些示例中,多维情感向量中的每个维度分别表示情感类别。
[0077] 在508处,可以访问用户简档,并且在510处,可以从用户简档确定用户的初始情感向量。用户的初始情感向量可以是多维情感向量的形式,表示在对话之前的用户的初始情感状态,并且还被称为用户的平均情感向量、用户的参考情感向量,以及用户的默认情感向量等。在一些示例中,可以至少基于在对话期间提取的情感向量中的一个或多个情感向量,在对话期间或对话之后对用户的初始情感向量进行更新。在一些示例中,情感的第一多维向量中的每个维度可以分别表示与情感的初始多维向量中表示的那些情感类别相同的情感类别。
[0078] 在512处,基于在510处确定的初始情感向量V0和在506处提取的第一情感向量V1,可以通过对初始情感向量V0和第一情感向量V1进行比较来确定初始情感向量差Δ0,其中,初始情感向量差Δ0可以表示第一情感状态与初始情感状态之间的初始状态变化。
[0079] 在514处,可以至少基于初始情感向量差Δ0来生成对第一声音输入的响应。替换地或附加地,可以基于在504处提取的第一语义信息来生成响应,其在图5中未示出。另外,还可以基于下列各项中的至少一项来生成响应:由初始情感向量指示的初始情感状态、由第一情感向量指示的第一情感状态、对话上下文、用户简档等等。
[0080] 在516处,可以在对话期间在客户端设备100上接收第二声音输入。在一些示例中,第二声音输入可以包括第二用户数据和/或第二环境数据。此外,可以从第二用户数据中提取用户的第二语义信息和/或第二情感状态和/或第二身体状况状态。在一些示例中,可以从第二环境数据中提取第二环境状态。在本文中,为简单起见,第二情感状态、第二身体状况状态和第二环境状态可以统称为用户的第二状态,其可以由第二声音输入的第二音频属性指示。第二音频属性可以包括下列各项中的至少一项:指示用户的第二情感状态的第二情感向量、指示第二环境状态的第二环境向量、以及指示用户的第二身体状况状态的第二身体状况向量。
[0081] 在518处,可以从第二声音输入中提取第二语义信息,第二语义信息可以指示用户所说的内容。
[0082] 在520处,可以从第二声音输入中提取第二情感向量并将其馈送到操作522,其中,第二情感向量可以指示用户的第二情感状态并且可以是多维情感向量的形式。在一些示例中,情感的第二多维向量中的每个维度可以分别表示与情感的第一多维向量中表示的那些情感类别相同的情感类别。
[0083] 在522处,基于在520处提取的第二情感向量和在506处提取的第一情感向量,可以通过对第一情感向量和第二情感向量进行比较来确定第一情感向量差Δ1,其中,第一情感向量差Δ1可以表示第一情感状态与第二情感状态之间的情感状态变化。
[0084] 在524处,可以至少基于第一情感向量差Δ1来生成对第二声音输入的响应。替换地或附加地,可以基于在518处提取的第二语义信息来生成响应,其在图5中未示出。另外,还可以基于下列各项中的至少一项来生成响应:在504处提取的第一语义信息、由第二情感向量指示的第二情感状态、由第一情感向量指示的第一情感状态、对话上下文、用户简档等等。
[0085] 在526处,可以在对话期间在客户端设备100上接收第三声音输入。在一些示例中,第三声音输入可以包括第三用户数据和/或第三环境数据。此外,可以从第三用户数据中提取用户的第三语义信息和/或第三情感状态和/或第三身体状况状态。在一些示例中,可以从第三环境数据中提取第三环境状态。在本文中,为简单起见,第三情感状态、第三身体状况状态和第三环境状态可以统称为用户的第三状态,其可以由第三声音输入的第三音频属性指示。第三音频属性可以包括下列各项中的至少一项:指示用户的第三情感状态的第三情感向量、指示第三环境状态的第三环境向量、以及指示用户的第三身体状况状态的第三身体状况向量。
[0086] 在528处,可以从第三声音输入中提取第三语义信息,第三语义信息可以指示用户所说的内容。
[0087] 在530处,可以从第三声音输入中提取第三情感向量并将其馈送到操作532,其中,第三情感向量可以指示用户的第三情感状态并且可以是多维情感向量的形式。在一些示例中,情感的第三多维向量中的每个维度可以分别表示与情感的第二多维向量中表示的那些情感类别相同的情感类别。
[0088] 在532处,基于在530处提取的第三情感向量和在520处提取的第二情感向量,可以通过对第三情感向量和第二情感向量进行比较来确定第二情感向量差Δ2,并且其表示第三情感状态与第二情感状态之间的情感状态变化。
[0089] 在534处,可以至少基于第二情感向量差Δ2来生成对第三声音输入的响应。替换地或附加地,可以基于在528处提取的第三语义信息来生成响应,其在图5中未示出。另外,还可以基于下列各项中的至少一项来生成响应:在504处提取的第一语义信息、在518处提取的第二语义信息、由第二情感向量指示的第二情感状态、由第三情感向量指示的第三情感状态、对话上下文、用户简档等等。
[0090] 应该理解的是:尽管在图5中示出了三段声音输入,但是可以存在在对话中接收的第四个声音输入、第五个声音输入等等,为了简单起见未示出。还应当理解的是:尽管本公开内容的示例性实施例提供了用于通过使用用户的情感状态变化来在用户和聊天机器人之间的对话中生成响应的过程,但是可以以类似的方式实现身体状况状态变化和环境状态变化中的任何一项。在替代方式中,情感状态变化、身体状况状态变化和环境状态变化中的每一项以及它们的任意组合可以用于在对话中生成响应。可选地或另外地,还可以基于下列各项中的至少一项来生成响应:用户的初始状态、用户的先前状态以及当前状态、从声音输入中的用户数据中提取的用户的语义信息、对话上下文、用户简档等等。
[0091] 在一些示例中,与初始情感向量的更新类似,可以在对话期间或之后对来自用户简档的指示用户的初始状态的初始向量进行更新,以便至少基于在对话中提取的一个或多个向量来确定用于下一次对话的新的初始向量。本文中的初始向量可以包括初始情感向量、初始身体状况向量和初始环境向量中的至少一项。例如,可以通过对原始初始向量和对话中的一些或所有向量的平均值进行平均来计算新的初始向量。本文中的向量可以包括情感向量、身体状况向量和环境向量中的至少一项。作为替代方式,可以为原始初始向量和对话中的一些或所有向量的平均值分配相应的权重以计算新的初始向量。应当理解的是:可以通过使用任何可用的更新方法,基于原始的初始向量以及在对话期间提取的一个或多个向量来计算新的初始向量。
[0092] 继续图5中示出的示例性情感状态,图6根据实施例示出了用于提取情感向量的示例性情感分类模型600。
[0093] 在图6中,将声音输入信号序列s1、s2、......、sn提供给情感分类模型600,该模型是使用递归神经网络(RNN)实现的,例如,如图6所示的门控递归单位(GRU)单元、长短期记忆(LSTM)等作为隐藏层。可以堆叠多个隐藏层以构建深度神经网络。可以阻止每个序列的输出,直至达到序列结尾(EOS)。因此,序列的最终输出可以考虑序列中的所有信息。
[0094] 情感分类模型600的训练数据可以是具有情感类别标签的多个语音查询。举例来说,在训练空间中可能存在六种情感类别,如中性、快乐、生气、悲伤、恐惧和惊讶。对于语音查询,声音输入信号序列s1、s2、......、sn可以是从声音输入中提取的声学特征的列表。声学特征可以包括下列各项中的一项或多项:响度、音高、基频、梅尔频率倒谱系数(MFCC)、共振峰、声门波、短时能量、过零率、短时幅度、速度、停顿等。在该示例中,可以将每个输出y1、y2......、yn标记为6维向量,每个维度分别表示一种情感类别。例如,对于具有快乐情感的用户的语音,输出y可以被标记为[0,1,0,0,0,0],其中,值“1”的位置与情感类别“快乐”相对应;而对于具有悲伤情感的用户的语音,输出y可以被标记为[0,0,0,1,0,0],其中,值“1”的位置与情感类别“悲伤”相对应。
[0095] 在训练阶段,使输出层的实际标签和软最大化之间的交叉熵最大化。在应用期间,移除软最大化操作,然后将任何输入语音查询编码到向量中,例如,[0.1,0.85,0.01,0.01,0.02,0.01]。每个值可以被视为相应情感类别的可能性。
[0096] 图7根据实施例示出了示例性情感状态变化图700。如图7所示,在该示例中,V0表示在用户和聊天机器人之间的对话开始时的初始情感向量,其可以根据用户简档来确定,如图5中的510所示。V1表示通过对用户语音的上述任何声学特征(如音调、响度、音高等)进行分析从对话中的用户的语音消息中提取的情感向量,如图5中的506所示。V2表示通过对用户语音的上述任何声学特征进行分析从对话中的用户的另一个语音消息中提取的情感向量,如图5中的520所示。V3表示通过对用户语音的上述任何声学特征进行分析从对话中的用户的又一个语音消息中提取的情感向量,如图5中的530所示。在该示例中,Δ0(如图5中的512所示)表示V0和V1之间的向量差,并且指示用户从由V0指示的初始情感状态到由V1指示的情感状态的情感状态变化,例如,如图7所示,从“中性”到“快乐”的情感状态变化。仍然在该示例中,Δ1(如图5中的522所示)表示V1和V2之间的向量差,并且指示用户从由V1指示的情感状态到由V2指示的情感状态的情感状态变化,例如,如图所示,从“快乐”到“惊讶”的情感状态变化。类似地,Δ2(如图5中的532处所示)表示V2和V3之间的向量差,并且指示用户从由V2指示的情感状态到由V3指示的情感状态的情感状态变化,例如,如图所示,从“惊讶”到“更加惊讶”的情感状态变化。应该理解的是:为了简单起见,在图7中仅示出了3个维度的情感向量:中性、快乐、惊讶;然而,在本公开内容的一些示例中,可以存在6个维度的情感向量:中性、快乐、生气、悲伤、恐惧、惊奇或任何多维情感向量。
[0097] 根据至少基于图5中的情感状态变化来生成响应的示例性过程,图8根据实施例示出了用于用户和聊天机器人之间的对话的示例性对话窗口800。在图8的示例中,为了描述方便起见,在对话窗口外的虚线框中以文本形式示出了每个声音输入中的用户和聊天机器人说出的语义信息或内容(其在对话窗口中是不可见的)。同样为了便于理解,在图8的示例中,在对话窗口外的实线框中示出了对每个声音输入中的用户的多维情感向量的描述。
[0098] 在开始图8中所示的用户和聊天机器人之间的当前对话之前,聊天机器人可以例如从用户的用户简档来确定用户的初始多维情感向量V0[0.7,0.25,0.01,0.01,0.02,0.01],如图8中的805所示,其中,多维情感向量V0中的每个维度的数字可以与情感类别的值相对应,并且相应的情感类别在该示例中可以是[中性,快乐,生气,悲伤,恐惧,惊讶]。例如,第一个数字“0.7”指示用户的初始情感“中性”的值,第二个数字“0.25”指示用户的初始情感“快乐”的值,第三个数字“0.01”指示用户的初始情感“生气”的值,第四个数字“0.01”指示用户的初始情感“悲伤”的值,第五个数字“0.02”指示用户的初始情感“恐惧”的值,并且第六个数字“0.01”指示用户的初始情感“惊讶”的值。
[0099] 如图8中的810所示,当在对话中从用户接收到其中的语义信息为“I’m so angry(我很生气)”的声音输入时,多维情感向量V1[0.3,0.3,0.3,0.01,0.08,0.01]可以通过例如使用如图6所示的情感分类模型600对用户语音的音调进行分析来从声音输入中提取,其中,多维情感向量V1中的每个维度的数字可以分别指示情感类别的值,例如,V1中的第一个数字“0.3”指示用户的情感“中性”的值,V1中的第二个数字“0.3”指示用户的情感“快乐”的值,V1中的第三个数字“0.3”指示用户的情感“生气”的值,V1中的第四个数字“0.01”指示用户的情感“悲伤”的值,V1中的第五个数字“0.08”指示用户的情感“恐惧”的值,并且V1中的第六个数字“0.01”指示用户的情感“惊讶”的值。
[0100] 通过对V0和V1中的每个数字分别进行比较,例如,通过分别从V1中相应维度的值减去V0中每个维度的值,可以确定多维向量差Δ0[-0.4,0.05,0.29,0,0.06.0],其中,Δ0中的第一个数字“-0.4”指示用户的“中性”从V0到V1的情感变化量,Δ0中的第二个数字“0.05”指示用户的“开心”从V0到V1的情感变化量,Δ0中的第三个数字“0.29”指示用户的“生气”从V0到V1的情感变化量,Δ0中的第四个数字“0”指示用户的“悲伤”从V0到V1的情感变化量,Δ0中的第五个数字“0.06”指示用户的“恐惧”从V0到V1的情感变化量,以及Δ0中的第六个数字“0”指示用户的“惊讶”从V0到V1的情感变化量,如图8中的815所示。尽管本文中使用减法运算来获得向量差,但是可以通过使用任何可能的比较运算基于初始向量和第一向量来确定向量差。
[0101] 根据多维向量差Δ0,用户从初始状态到当前状态的情感状态变化可以如下:中性减少、快乐增加少许、生气增加很多、悲伤保持不变、恐惧增加少许、以及惊讶保持不变。至少基于向量差Δ0,聊天机器人可以确定用户现在生气了。作为示例,将与多维向量差中具有最高数量的维度相对应的情感类别作为参考,在该示例中,其是与多维向量差Δ0中的具有最高数量“0.29”的第三维度相对应的情感“生气”,可以确定用户的情感状态变化,即,用户现在是生气的。另外,至少基于如810’所示的由向量差Δ0指示的情感状态变化,可以以上述任何消息形式来生成和呈现对第一声音输入的响应(在该示例中,其优选是语音消息的形式),其中的语义信息为“What happened?(发生了什么?)”。除了情感状态变化之外,聊天机器人还可以基于声音输入中的用户的“I’m so angry(我很生气)”的语义信息来生成这样的响应。
[0102] 当从用户接收到其中语义信息为“My boyfriend watches beautiful girls on the street(我的男朋友在街上看漂亮女孩)”的声音输入时,如820所示,可以从820所示的声音输入中提取情感向量V2[0.3,0.3,0.3,0.01,0.08,0.01],并将其与先前的情感向量V1进行比较,以得到向量差Δ1[0,0,0,0,0,0],如图8中的825所示。可以从向量差Δ1确定用户的情感状态没有变化,即,用户仍然生气。因此,至少基于向量差Δ1,如820'所示,可以用上面提到的任何消息形式来生成和呈现820所示的对声音输入的响应,其中的语义信息为“It's no big deal.You also have favorite actor,all right?(没什么大不了,你也有最喜欢的男演员,是吧?)”,并且在这里其具有要提供给用户的语音消息的形式。
[0103] 当如830所示从用户接收具有语义信息为“It’s not the same thing.He is so flagrant(这不是一回事。他如此公然)”的声音输入时,可以从声音输入中提取情感向量V3[0.3,0.25,0.2,0.02,0.03,0.2],并与之前的情感向量V2[0.3,0.3,0.3,0.01,0.08,0.01]进行比较,以得到向量差Δ2[0,-0.05,-0.1,0.01,-0.05,0.19],如图8中的835所示。可以从向量差Δ2推导出用户的情感状态变成了“惊讶”,这意味着用户变得惊讶。因此,至少基于向量差Δ2,如830'所示,可以用上面提到的任何消息形式来生成和呈现对830所示的声音输入的响应,其中的语义信息为“Really?(真的吗?)”,并且在这里其具有要提供给用户的语音消息的形式。
[0104] 以类似的方式,可以通过将当前情感向量与先前情感向量或初始情感向量进行比较来确定对话中每个回合的向量差。可以至少基于对话中的每个回合的这种情感向量差来生成响应。
[0105] 附加地或替代地,用户和聊天机器人可以通过使用非语音输入来进行聊天,例如,通过文本、图像、表情符号、视频等,或者它们的任意组合。例如,如图8中的840所示,接收具有文本“Yes.He does not consider mu feeling(是。他并不考虑我的感受)”结合表情符号的形式的输入。可以通过使用针对文本的任何可用的情感提取技术来从文本输入中提取情感向量V4[0.55,0.25,0.09,0.05,0.05,0.01]。可以将情感向量V4与先前的情感向量V3[0.3,0.25,0.2,0.02,0.03,0.2]进行比较,以得到向量差Δ3[0.25,0,-0.11,0.03,0.02,-0.19],如图8中的845所示。可以从向量差Δ3推导出用户的情感状态变成了“中性”,这意味着用户平静下来。因此,至少基于向量差Δ3,如840'所示,可以用上面提到的任何消息形式来生成和呈现840所示的文本输入的响应,其中的语义信息为“It’s nothing.Let me show you the news of your favorite actor(没什么。让我向你展示你最喜欢的男演员的消息)”,并且在这里其具有要提供给用户的语音消息的形式。
[0106] 应当理解的是:用户和聊天机器人之间的对话可以以任何形式的文本、语音、图像、视频等或者它们的任意组合来进行。作为图8中的850所示的示例,用户可以呈现图像消息作为输入;并且可以通过使用针对图像的任何可用的情感提取技术从图像消息中提取情感向量V5[0.3,0.5,0.09,0.05,0.05,0.01],可以确定情感向量V5与先前情感向量V4[0.55,0.25,0.09,0.05,0.05,0.01]之间的向量差Δ4[-0.25,0.25,0,0,0,0],如855所示,其中,向量差Δ4可以指示用户的情感状态变成了快乐。可以至少基于所确定的向量差Δ4来生成语义信息为“Sure,we are close friends(当然,我们是亲密的朋友)”的响应,如850'所示。该响应可以以上文提到的任何消息形式来呈现,并且在这里其具有要提供给用户的文本消息的形式。
[0107] 同样在该示例中,用户和聊天机器人可以以语音的形式继续对话。如图8中的860所示,接收到输入,其中的语义信息为语音消息形式的“I really love you(我真的爱你)”。可以从860所示的输入中提取情感向量V6[0.3,0.6,0.02,0.05,0.02,0.01],并与先前的情感向量V5进行比较,以得到向量差Δ5[0,0.1,-0.07,0,-0.03,0],如865所示。根据向量差Δ5,可以确定用户的情感状态变为快乐,这意味着用户变得快乐。附加地或替代地,如果考虑先前的向量差Δ4,则还可以确定用户变得更加快乐了一点。至少基于向量差Δ5,可以生成对于860所示的声音输入的响应,其中的语义信息为“Me too(我也是)”,并将其以语音消息的形式呈现给用户,如860'所示。
[0108] 根据图8所示的示例性用户情感状态变化,用户的情感状态从如805所示的初始“中性”变为如815所示的“生气”,到如825所示的仍然“生气”,到如835所示的“惊讶”,到如845所示的“平静下来”,到如855所示的“快乐”,到如865所示的“快乐”或“更快乐一点儿”。
可以通过与图7中的图表700类似的情感状态变化图来描绘这种情感状态变化。
[0109] 附加地或替代地,存在一些情况,其中,聊天机器人可以仅基于用户的状态变化,基于规则但不使用响应生成模块来从响应池中选择响应。例如,当接收到具有情感向量差[-0.4,-0.2,0,0.6,0,0]的声音输入“He is so bad(他是如此糟糕)”时,聊天机器人可以确定用户的情感状态变化为“悲伤”,并且与情感“悲伤”的状态变化量相对应的情感向量差中的数字“0.6”大于预先定义的阈值。因此,聊天机器人可以基于规则从响应池中选择响应“It’s not a big deal,I am here(这没什么大不了,我在这里)”而不使用响应生成模块或过程。附加地或替代地,如果存在多个可选响应,则可以从多个可选响应中随机选择要呈现给用户的响应。
[0110] 作为替代方式,可以分别为情感的多维向量差中的每个维度分配权重,如图9所示。
[0111] 图9示出了根据图5的实施例的用户与聊天机器人之间的另一个示例性对话窗口900。在图9的示例中,可以为多维向量差中的每个维度分配权重,例如,在该示例中,相应的权重可以是(0.03,0.2,0.3,0.3,0.1,0.07),即向情感“中性”分配权重“0.03”、向情感“快乐”分配权重“0.2”、向情感“生气”分配权重“0.3”、向情感“悲伤”分配权重“0.3”、向情感“恐惧”分配权重“0.1”、向情感“惊讶”分配权重“0.07”。
[0112] 在开始图9所示的用户和聊天机器人之间的当前对话之前,可以例如从用户的用户简档中确定用户的初始多维情感向量V0[0.7,0.25,0.01,0.01,0.02,0.01],如图9中的905所示,与图8中的805类似。
[0113] 当接收到如910所示的具有语义信息“I’m so angry(我很生气)”的声音输入时,可以例如,通过对用户语音的音调分析,从声音输入中提取情感向量V1[0.3,0.3,0.3,0.01,0.08,0.01]。因此,V0和V1之间的加权向量差Δ0可以是[-0.4*0.03,0.05*0.2,0.29*
0.3,0*0.3,0.06*0.1,0*0.07]=[-0.012,0.01,0.087,0,0.006,0],如915所示。根据加权向量差Δ0,聊天机器人可以确定用户现在生气了。作为示例,将与加权多维向量差中具有最高数量的维度相对应的情感类别作为参考,在该示例中,其是加权向量差Δ0中的最高数量“0.087”,其指示情感“生气”的状态变化量,可以确定用户的情感状态变化,即,用户的情感状态可以变为生气。另外,至少基于如910’所示的由向量差Δ0指示的情感状态变化,在该示例中,可以以语音消息的形式生成和呈现对由910所示的声音输入的响应,其中的语义信息为“What happened?(发生了什么?)”。作为替代方式,除了情感状态变化之外,还可以基于声音输入中的用户的“I’m so angry(我很生气)”的语义信息来生成这样的响应。
[0114] 可以以与上述类似的方式至少基于加权向量差来生成对话的每一轮中的对声音输入的响应。在图9所示的示例中,如920所示,接收其中的语义信息是“My boyfriend watches beautiful girls on the street(我的男朋友在街上看漂亮女孩)”的声音输入,从920所示的声音输入中提取情感向量V2[0.3,0.3,0.3,0.01,0.08,0.01],并且如925所示确定加权向量差Δ1[0*0.03,0*0.2,0*0.3,0*0.3,0*0.1,0*0.07]=[0,0,0,0,0,0],并且因此,至少基于加权向量差Δ1生成响应并以语音消息的形式呈现该响应,其中的语义信息为“It's no big deal.You also have favorite actor,all right?(没什么大不了,你也有最喜欢的男演员,是吧?)”的响应,如920所示'。
[0115] 此外,如930所示,从用户接收到其中的语义信息为“It’s  not the same thing.He is so flagrant(这不是一回事。他如此公然)”的声音输入,可以从如930所示的声音输入中提取情感向量V3[0.3,0.25,0.2,0.02,0.03,0.2],并且如935所示,加权向量差Δ2[0*0.03,-0.05*0.2,-0.1*0.3,0.01*0.3,-0.05*0.1,0.19*0.07]=[0,-0.01,-0.03,0.003,-0.005,0.0133],并且因此,可以生成并以语音消息的形式呈现对如930所示的声音输入的响应,其中的语义信息为“Really?(真的吗?)”,如930'所示。
[0116] 由于加权多维向量差中的每个维度可以具有不同的权重,因此图9中的加权向量差可以与图8中的相应向量差不同。例如,使用840和940所示的具有相同语义信息“Yes.He does not consider my feeling(是的,他不考虑我的感受)”以及相同情感向量V4[0.55,0.25,0.09,0.05,0.05,0.01]的声音输入作为例子,当接收到如图8中的840所示的该声音输入时,聊天机器人可以根据向量差Δ3(其为[0.25,0,-0.11,0.03,0.02,-0.19])确定用户的情感状态变为中性,并如840'所示,至少基于由向量差Δ3指示的情感状态变化生成要以语音消息的形式向用户呈现的响应,其中的语义信息为“It’s nothing.Let me show you the news of your favorite actor(没什么。让我向你展示你最喜欢的男演员的消息)”。然而,当接收到如图9中的940所示的该声音输入时,由于情感“中性”可以被分配低权重,如0.03,因此加权向量差Δ3是[0.25*0.03,0*0.2,-0.11*0.3,0.03*0.3,0.02*0.1,-
0.19*0.07]=[0.0075,0,-0.033,0.009,0.002,-0.0133],如945所示。根据加权向量差Δ
3,聊天机器人可以确定用户的情感状态可能变为了悲伤。如940'所示,可以至少基于由加权向量差Δ3指示的情感状态变化来生成并以语音消息的形式向用户呈现具有语义信息“Oh,Baby,you are so lovely.Don’t mind that(哦,宝贝,你太可爱了。别介意)”的响应,这与图8中生成的相应响应不同。
[0117] 应该理解的是:尽管聊天机器人可以根据加权多维向量差来确定情感状态变化,例如,基于加权多维向量差中的具有最高加权值的维度,但可以通过其它方式来确定用户的情感状态变化,例如,基于多维向量差中的具有最低加权值的维度,基于具有最高加权值的若干维度,基于具有最低加权值的若干维度,基于具有中间值的一个或若干维度,等等。
[0118] 作为替代方式,可以至少基于一个以上的向量差来生成对声音输入的响应,如图10所示。
[0119] 图10根据实施例示出了用于至少基于情感状态变化来生成响应的另一个示例性过程1000。
[0120] 在1002处,可以在用户和聊天机器人之间的对话期间在客户端设备100上接收第一声音输入。在一些示例中,第一声音输入可以包括第一用户数据和/或第一环境数据。此外,可以从第一用户数据中提取用户的第一语义信息和/或第一情感状态和/或第一身体状况状态。在一些示例中,可以从第一环境数据中提取第一环境状态。在本文中,为简单起见,第一情感状态、第一身体状况状态和第一环境状态可以统称为用户的第一状态,其可以由第一声音输入的第一音频属性来指示。第一音频属性可以包括下列各项中的至少一项:指示用户的第一情感状态的第一情感向量、指示第一环境状态的第一环境向量、以及指示用户的第一身体状况状态的第一身体状况向量。
[0121] 在1004处,可以从第一声音输入中提取第一语义信息,第一语义信息可以指示用户所说的内容。
[0122] 在1006处,从第一声音输入中提取第一情感向量并将其馈送到操作1012,其指示用户的第一情感状态并且可以是多维情感向量的形式。在一些示例中,多维情感向量中的每个维度分别表示情感类别。
[0123] 在1008处,可以访问用户简档,并且在1010处,可以从用户简档确定用户的初始情感向量。用户的初始情感向量可以是多维情感向量的形式,表示在对话之前的用户的初始情感状态,并且还被称为用户的平均情感向量、用户的参考情感向量,以及用户的默认情感向量。在一些示例中,可以至少基于在对话期间提取的情感向量中的一个或多个情感向量,在对话期间或对话之后对用户的初始情感向量进行更新。在一些示例中,情感的第一多维向量中的每个维度可以分别表示与情感的初始多维向量中表示的那些情感类别相同的情感类别。
[0124] 在1012处,基于在1010处确定的初始情感向量和在1006处提取的第一情感向量,可以通过对初始情感向量和第一情感向量进行比较来确定初始情感向量差Δ0,其可以表示第一情感状态与初始情感状态之间的状态变化。
[0125] 在1014处,可以在对话期间在客户端设备100上接收第二声音输入。在一些示例中,第二声音输入可以包括第二用户数据和/或第二环境数据。此外,可以从第二用户数据中提取用户的第二语义信息和/或第二情感状态和/或第二身体状况状态。在一些示例中,可以从第二环境数据中提取第二环境状态。在本文中,为简单起见,第二情感状态、第二身体状况状态和第二环境状态可以统称为用户的第二状态,其可以由第二声音输入的第二音频属性来指示。第二音频属性可以包括下列各项中的至少一项:指示用户的第二情感状态的第二情感向量、指示第二环境状态的第二环境向量、以及指示用户的第二身体状况状态的第二身体状况向量。
[0126] 在1016处,可以从第二声音输入中提取第二语义信息,第二语义信息可以指示用户所说的内容。
[0127] 在1018处,可以从第二声音输入中提取第二情感向量并将其馈送到操作1020,其指示用户的第二情感状态并且可以是多维情感向量的形式。在一些示例中,情感的第二多维向量中的每个维度可以分别表示与情感的第一多维向量中表示的那些情感类别相同的情感类别。
[0128] 在1020处,基于在1018处提取的第二情感向量和在1006处提取的第一情感向量,可以通过对第一情感向量和第二情感向量进行比较来确定第一情感向量差Δ1,其可以被馈送到操作1022,并且表示第一情感状态与第二情感状态之间的情感状态变化。
[0129] 在1022处,可以至少基于初始情感向量差Δ0和第一情感向量差Δ1来生成对第二声音输入的响应。替换地或附加地,可以基于在1004处提取的第一语义信息以及在1016处提取的第二语义信息中的至少一项来生成响应。另外,还可以基于下列各项中的至少一项来生成响应:由第一情感向量指示的第一情感状态、由第二情感向量指示的第二情感状态、对话上下文、用户简档等等。
[0130] 在1024处,可以在对话期间在客户端设备100上接收第三声音输入。在一些示例中,第三声音输入可以包括第三用户数据和/或第三环境数据。此外,可以从第三用户数据中提取用户的第三语义信息和/或第三情感状态和/或第三身体状况状态。在一些示例中,可以从第三环境数据中提取第三环境状态。在本文中,为简单起见,第三情感状态、第三身体状况状态和第三环境状态可以统称为用户的第三状态,其可以由第三声音输入的第三音频属性来指示。第三音频属性可以包括下列各项中的至少一项:指示用户的第三情感状态的第三情感向量、指示第三环境状态的第三环境向量、以及指示用户的第三身体状况状态的第三身体状况向量。
[0131] 在1026处,可以从第三声音输入中提取第三语义信息,第三语义信息可以指示用户所说的内容。
[0132] 在1028处,可以从第三声音输入中提取第三情感向量并将其馈送到操作1030,其指示用户的第三情感状态并且可以是多维情感向量的形式。在一些示例中,情感的第三多维向量中的每个维度可以分别表示与情感的第二多维向量中表示的那些情感类别相同的情感类别。
[0133] 在1030处,基于在1028处提取的第三情感向量和在1018处提取的第二情感向量,可以通过对第三情感向量和第二情感向量进行比较来确定第二情感向量差Δ2,其可以被馈送到操作1032,并且表示第三情感状态与第二情感状态之间的状态变化。
[0134] 在1032处,可以至少基于第一情感向量差Δ1和第二情感向量差Δ2来生成对第三声音输入的响应。替换地或附加地,可以基于下列各项中的至少一项来生成响应:在1004处提取的第一语义信息、在1016处提取的第二语义信息以及在1026处提取的第三语义信息。另外,还可以基于下列各项中的至少一项来生成响应:由第二情感向量指示的第二情感状态、由第三情感向量指示的第三情感状态、对话上下文、用户简档等等。
[0135] 应该理解的是:尽管在图10中示出了三个片段的声音输入,但是可以存在在会话中接收的第四个声音输入、第五个声音输入等等,为了简单起见未示出。还应当理解的是:尽管本公开内容的示例性实施例提供了用于通过使用用户的情感状态变化来在用户和聊天机器人之间的对话中生成响应的过程,但是可以以类似的方式实现身体状况状态变化和环境状态变化中的任何一项。在替代方式中,情感状态变化、身体状况状态变化和环境状态变化中的每一项以及它们的任意组合可以用于在对话中生成响应。可选地或另外地,还可以至少基于下列各项中的一项来生成响应:用户的初始状态、用户的先前状态以及当前状态、从声音输入中的用户数据中提取的用户的语义信息、对话上下文、用户简档等等。
[0136] 图11示出了根据图10的实施例的用户与聊天机器人之间的对话的示例性对话窗口1100。
[0137] 在图11的示例中,为了描述方便起见,在对话窗口外的虚线框中以文本形式示出了每个声音输入中的用户和聊天机器人说出的语义信息或内容(其在对话窗口中可能不可见)。同样为了便于理解,在图11的示例中,在对话窗口外的实线块中示出了对每个声音输入中的用户的多维情感向量的描述。
[0138] 如图11所示,在开始用户与聊天机器人之间的当前对话之前,可以例如从用户的用户简档来确定用户的初始多维情感向量V0[0.7,0.25,0.01,0.01,0.02,0.01],如图11中的1105所示,与图8中的805类似。
[0139] 当在对话中从用户接收到具有语义信息“I’m so angry(我很生气)”的声音输入时,如1110所示,可以例如,通过使用如图6所示的情感分类模型来分析用户语音的音调,从1110所示的声音输入中提取多维情感向量V1[0.3,0.3,0.3,0.01,0.08,0.01]。通过对V0和V1进行比较,例如,通过分别从第一多维情感向量中的相应维度的值减去初始多维情感向量中的每个维度的值,可以确定多维向量差Δ0[-0.4,0.05,0.29,0,0.06,0],如1115所示,与图8中的815类似。至少基于向量差Δ0,聊天机器人可以确定用户现在生气了。
[0140] 至少基于由向量差Δ0指示的情感状态变化,可以以语音消息的形式生成和/或呈现由1110所示的具有语义信息“What happened?(发生了什么?)”的对声音输入的响应,如1110’所示。作为替代方式,除了情感状态变化之外,聊天机器人还可以基于声音输入中的用户的“I’m so angry(我很生气)”的语义信息来生成这样的响应。
[0141] 当从用户接收到具有语义信息“My boyfriend watches beautiful girls on the street(我的男朋友在街上看漂亮女孩)”的声音输入时(如1120所示),可以从第二声音输入中提取情感向量V2[0.3,0.3,0.3,0.01,0.08,0.01],并将其与先前的情感向量V1进行比较,以得到向量差Δ1[0,0,0,0,0,0],如图11中的1125所示。至少基于向量差Δ0和Δ1,可以推导出用户的情感状态没有变化,即,用户仍然生气。因此,至少基于向量差Δ0和Δ
1,可以以语音消息的形式产生和/或向用户呈现具有语义信息“It's no big deal.You also have favorite actor,all right?(这没什么大不了的。你也有最喜欢的男演员,是吧?)”的对1120所示的声音输入的响应,如1120'所示。在一些示例中,当生成响应时,可以使用Δ0和Δ1的平均值。在一些其它示例中,可以为Δ0和Δ1分配各自的权重并将其用作参考以生成响应。例如,Δ1可以具有比Δ0更高的权重,因为Δ1可以更多地与第二声音输入相关联。将理解的是:尽管Δ0和Δ1的平均值、加权的Δ0和加权Δ1可以用作生成响应的示例,但是可以以任何其它方式使用Δ0和Δ1以生成响应。
[0142] 以类似的方式,可以如1130所示接收具有语义信息“It’s  not the same thing.He is so flagrant(这不是一回事。他如此公然)”的声音输入,可以从1130所示的声音输入中提取情感向量V3[0.3,0.25,0.2,0.02,0.03,0.2],并与之前的情感向量V2[0.3,0.3,0.3,0.01,0.08,0.01]进行比较,以得到向量差Δ2[0,-0.05,-0.1,0.01,-0.05,0.19],如1135所示。可以至少基于Δ1和Δ2以语音消息的形式生成和/或呈现具有语义信息“It’s nothing.Let me show you the news of your favorite actor(没什么。让我向你展示你最喜欢的男演员的消息)”的对1130所示的声音输入的响应,如图11中的1130'所示。
[0143] 图12根据实施例示出了用于至少基于情感状态变化来生成响应的示例性过程1200,其中,可以通过对当前情感向量与对话中先前两个或更多个情感向量的平均值进行比较来确定由情感向量差指示的情感状态变化。
[0144] 在1202处,可以在用户和聊天机器人之间的对话期间在客户端设备100上接收第一声音输入。在一些示例中,第一声音输入可以包括第一用户数据和/或第一环境数据。此外,可以从第一用户数据中提取用户的第一语义信息和/或第一情感状态和/或第一身体状况状态。在一些示例中,可以从第一环境数据中提取第一环境状态。在本文中,为简单起见,第一情感状态、第一身体状况状态和第一环境状态可以统称为用户的第一状态,其可以由第一声音输入的第一音频属性来指示。第一音频属性可以包括下列各项中的至少一项:指示用户的第一情感状态的第一情感向量、指示第一环境状态的第一环境向量、以及指示用户的第一身体状况状态的第一身体状况向量。
[0145] 在1204处,可以从第一声音输入中提取第一语义信息,第一语义信息可以指示用户所说的内容。
[0146] 在1206处,从第一声音输入中提取第一情感向量并将其馈送到操作1214,其指示用户的第一情感状态并且可以是多维情感向量的形式。在一些示例中,多维情感向量中的每个维度分别表示情感类别。
[0147] 在1208处,可以在对话期间在客户端设备100上接收第二声音输入。在一些示例中,第二声音输入可以包括第二用户数据和/或第二环境数据。此外,可以从第二用户数据中提取用户的第二语义信息和/或第二情感状态和/或第二身体状况状态。在一些示例中,可以从第二环境数据中提取第二环境状态。在本文中,为简单起见,第二情感状态、第二身体状况状态和第二环境状态可以统称为用户的第二状态,其可以由第二声音输入的第二音频属性来指示。第二音频属性可以包括下列各项中的至少一项:指示用户的第二情感状态的第二情感向量、指示第二环境状态的第二环境向量、以及指示用户的第二身体状况状态的第二身体状况向量。
[0148] 在1210处,可以从第二声音输入中提取第二语义信息,第二语义信息可以指示用户所说的内容。
[0149] 在1212处,可以从第二声音输入中提取第二情感向量并将其馈送到操作1214,其指示用户的第二情感状态并且可以是多维情感向量的形式。在一些示例中,情感的第二多维向量中的每个维度可以分别表示与情感的第一多维向量中表示的那些情感类别相同的情感类别。
[0150] 在1214处,可以确定在1212处提取的第二情感向量和在1206处提取的第一情感向量的平均值,并将其馈送到操作1222。
[0151] 在1216处,可以在对话期间在客户端设备100上接收第三声音输入。在一些示例中,第三声音输入可以包括第三用户数据和/或第三环境数据。此外,可以从第三用户数据中提取用户的第三语义信息和/或第三情感状态和/或第三身体状况状态。在一些示例中,可以从第三环境数据中提取第三环境状态。在本文中,为简单起见,第三情感状态、第三身体状况状态和第三环境状态可以统称为用户的第三状态,其可以由第三声音输入的第三音频属性来指示。第三音频属性可以包括下列各项中的至少一项:指示用户的第三情感状态的第三情感向量、指示第三环境状态的第三环境向量、以及指示用户的第三身体状况状态的第三身体状况向量。
[0152] 在1218处,可以从第三声音输入中提取第三语义信息,第三语义信息可以指示用户所说的内容。
[0153] 在1220处,可以从第三声音输入中提取第三情感向量并将其馈送到操作1222,其指示用户的第三情感状态并且可以是多维情感向量的形式。在一些示例中,情感的第三多维向量中的每个维度可以分别表示与情感的第二多维向量中表示的那些情感类别相同的情感类别。
[0154] 在1222处,基于在1220处提取的第三情感向量和在1214处确定的第一和第二情感向量的平均值,可以通过对第三情感向量与第一和第二情感向量的平均值进行比较来确定情感向量差Δ,其可以表示第三情感状态与第一和第二情感状态的平均值之间的状态变化。
[0155] 在1224处,可以至少基于情感向量差来生成对第三声音输入的响应。替换地或附加地,可以基于在1218处提取的第三语义信息来生成响应。另外,还可以基于下列各项中的至少一项来生成响应:在1204处提取的第一语义信息、在1210处提取的第二语义信息、由第一情感向量指示的第一情感状态、由第二情感向量指示的第二情感状态、由第三情感向量指示的第三情感状态、对话上下文、用户简档等等。
[0156] 虽然在图12中没有示出对第一声音输入的响应和对第二声音输入的响应,但它们可以以与在图5中示出并且在上文中针对图5描述的类似的方式来生成。
[0157] 应该理解的是:尽管在图12中示出了三个片段的声音输入,但是可以存在在会话中接收的第四个声音输入、第五个声音输入等等,为了简单起见未示出。还应当理解的是:尽管本公开内容的示例性实施例提供了用于通过使用用户的情感状态变化来在用户和聊天机器人之间的对话中生成响应的过程,但是可以以类似的方式实现身体状况状态变化和环境状态变化中的任何一项。在替代方式中,情感状态变化、身体状况状态变化和环境状态变化中的每一项以及它们的任意组合可以用于在对话中生成响应。可选地或另外地,还可以至少基于下列各项中的一项来生成响应:用户的初始状态、用户的先前状态以及当前状态、从声音输入中的用户数据中提取的用户的语义信息、对话上下文、用户简档等等。
[0158] 图13示出了根据图12的实施例的用户与聊天机器人之间的对话的示例性对话窗口1300。
[0159] 在图13的示例性对话窗口中,仅示出了四个声音输入和相应的四个响应作为示例,并且这样的四个声音输入中的语义信息与图8中的语义信息相同。用于接收如1310、1320所示的声音输入的过程、用于获得或提取如1305、1315、1325所示的情感向量的过程、以及用于生成如1310'、1320'所示的响应的过程可以与图8中描述的过程类似,因此这里可以在图13中省略对上述过程的描述,并且这里可以根据图13中的实施例来对如1330'和
1340'所示的用于生成响应的过程(其可以与图8不同)进行描述。
[0160] 当接收到如1330所示的具有语义信息“It’s not the same thing.He is so flagrant(这不是一回事。他如此公然)”的声音输入时,可以从如1330所示的声音输入中提取情感向量V3[0.3,0.25,0.2,0.02,0.03,0.2],并且先前情感向量V1和当前情感向量V2的平均值为[0.3,0.3,0.3,0.01,0.08,0.01]。可以通过将情感向量V3与V1和V2的平均值进行比较来确定向量差Δ2[0,-0.05,-0.1,0.01,-0.05,0.19],如1335所示。至少基于向量差Δ2可以生成和/或以语音消息的形式呈现具有语义信息“Really?(真的吗?)”的对1330所示的声音输入的响应,如1330'所示。
[0161] 作为替代方式,可以通过对当前向量和若干先前向量的平均值进行比较来确定向量差。例如,如图13所示,当接收具有如1340所示的语义信息“Yes.He does not consider my feeling(是的,他不考虑我的感受)”的声音输入时,可以从1340所示的声音输入中提取情感向量V4[0.55,0.25,0.09,0.05,0.05,0.01],并且可以确定情感向量V1、V2、V3的平均值。因此,可以通过将情感向量V4与V1、V2、V3的平均值进行比较来确定向量差Δ3[0.25,-0.03,-0.17,0.04,-0.01,0],如1345所示。然后可以至少基于向量差Δ3以如1340'所示的语音消息的形式产生和/或呈现具有语义信息“Don’t mind that.I care about your feeling(不要介意。我关心你的感受)”的对1340所示的声音输入的响应。
[0162] 应当理解的是:尽管上述图5-图13以用户的情感状态变化为例,但用户的状态变化还可以包括用户的身体状况状态变化和关于用户的环境状态变化,并且用于至少基于情感状态变化来生成响应的上述过程也可以适合于至少基于身体状况状态变化,或环境状态变化,或者情感状态变化、身体状况状态变化和环境状态变化的任意组合来生成响应。以下内容可以描述考虑上述状态变化的组合的示例性对话窗口,如图14中的示例所示。
[0163] 图14根据实施例示出了至少基于情感状态变化、环境状态变化和身体状况状态变化的在用户与聊天机器人之间的对话的示例性对话窗口1400。
[0164] 在开始图14中所示的用户和聊天机器人之间的当前对话之前,可以例如从用户的用户简档确定用户的初始状态“sad,coughing,sneezing,hospital noise(悲伤、咳嗽、打喷嚏、医院噪声)”,如图14中的1405所示。例如,该初始状态可以指示用户不开心、感冒了并且在此对话之前去了医院。
[0165] 当接收到具有如1410所示的语义信息“Hi,Xiaoice(你好,Xiaoice)”以及具有如1415所示的状态“neural,no-user made noise,family noise(中性、没有用户制造的噪声、家庭噪声)”的声音输入时,可以从该声音输入中提取1415所示的状态。可以确定用户的状态可以从“sad,coughing,sneezing,hospital noise(悲伤、咳嗽、打喷嚏、医院噪声)”变为“neural,no-user made noise,family noise(中性、没有用户制造的噪声、家庭噪声)”。
因此,具有语义信息“Hi.Is your cold getting better?Your voice sounds good(嗨。你的感冒好些了吗?你的声音听起来很好)”的响应可以至少基于用户从1405所示的初始状态到1415所示的状态的这种状态变化以语音消息的形式来生成和/或呈现,如1410'所示。
[0166] 附加地或替代地,可以在没有初始声音输入的情况下生成初始响应。例如,聊天机器人可以在接收声音输入之前从用户简档获得用户信息,如初始状态“sad,coughing,sneezing,hospital noise(悲伤、咳嗽、打喷嚏、医院噪声)”,并且至少基于这样的用户信息来生成响应以请求用户主动进行声音输入。
[0167] 当接收到具有如1420所示的具有语义信息“Yes,I am better now(是,我现在好些了)”并且具有如1425所示的状态“happy,no-user made noise,family noise(快乐、没有用户制造的噪声、家庭噪声)”的声音输入时,可以从该声音输入中提取这样的状态,并将该状态与先前状态进行比较,以确定用户的状态变化,如从“neural,no-user made noise,family noise(中性、没有用户制造的噪声、家庭噪声)”变化到“happy,no-user made noise,family noise(快乐、没有用户制造的噪声、家庭噪声)”,这意味着情感状态从中性变化到快乐,身体状况状态没有变化,环境状态没有变化。因此可以至少基于用户的状态变化,以语音消息的形式生成和/或呈现具有语义信息“That’s good.Today is a sunny day,and it is suitable for going out to the park.Flowers are blooming(那很好。今天是个阳光灿烂的日子,适合外出去公园。鲜花正在盛开)”的对由1420所示的声音输入的响应,如1420'所示。
[0168] 以类似的方式,当接收到具有如1430所示的语义信息“I am allergic to pollen(我对花粉过敏)”并且具有如1435所示的状态“sad,sneezing,street noise(悲伤,打喷嚏,街道噪声)”的声音输入时,可以至少基于用户的状态变化(例如,情感状态从“快乐”变为“悲伤”,身体状况状态从“没有用户噪声”变为“打喷嚏”,环境状态从“家庭噪声”变为“街头噪声”),以语音消息的形式生成和/或呈现具有语义信息“Oh,pitiful guy.Howe about to go to see a movie?James Bond is on these days(哦,可怜的家伙。去看电影怎么样?最近在上映詹姆斯邦德)”的响应,如1430’所示。另外或可选地,可以基于相应声音输入中的语义信息和/或用户简档、对话上下文来生成响应。
[0169] 虽然声音输入具有如1440所示的语义信息“Really?I like James Bond very much(真的吗?我非常喜欢詹姆斯邦德)”以及具有如1445所示的状态“surprise,sneezing,street noise(惊讶、打喷嚏、街道噪声)”,但聊天机器人可能不会对该输入生成响应并且可能生成中间消息以请求其它信息。在一些示例中,在接收进一步的声音输入之前,聊天机器人可以生成中间消息以请求进一步的声音输入或确认用户的先前状态。例如,可以生成具有如1440'所示的语义信息“Where are you now?(你现在在哪里?)”的中间消息,以便从用户请求具有如1450所示的语义信息“I am on Happy Street(我在快乐街上)”以及具有如1455所示的状态“happy,no user-made noise,street noise(快乐、没有用户制造的噪声、街道噪声)”的进一步的声音输入。作为另一个示例,聊天机器人可以生成具有语义信息“Sorry,I can’t hear clearly.Are you on Harry Street?(抱歉,我听不清楚。你在哈里街吗?)”的另一个中间消息或响应,以确认用户的先前状态,如由环境状态的街道噪声指示的用户的位置,如图14中的1450'所示。然后,可以接收具有如1460所示的语义信息“I am on Happy H-A-P-P-Y Street(我在快乐H-A-P-P-Y街上)”以及具有如1465所示的状态“neutral,no user-madenoise,street noise(中性、没有用户制造的噪声、街道噪声)”的声音输入,并且可以至少基于用户从“happy,no user-made noise,street noise(快乐、没有用户制造的噪声、街道噪声)”到“neutral,no user-made noise,street noise(中性、没有用户制造的噪声、街道噪声)”的状态变化(这意味着,用户的情感从“快乐”下降到“中性”,用户的身体状况和用户周围的环境保持不变),以语音消息的形式生成和/或呈现具有如1460’所示的语义信息“Well,I get it.The nearest cinema from Happy Street is City Cinema,which is500m away(嗯,我知道了。距离快乐街最近的电影院是城市电影院,它在500米以外)”的响应。
[0170] 应当理解的是:尽管可以至少基于状态变化来生成上述响应,但还可以基于当前状态、先前状态、当前声音输入、先前声音输入、用户简档、对话上下文等中的至少一项来生成响应。
[0171] 图15根据实施例示出了用于在人机对话中生成响应的示例性方法1500的流程图。
[0172] 在1510处,可以在对话中接收第一声音输入。
[0173] 在1520处,可以从第一声音输入中提取第一音频属性,其中,第一音频属性可以指示用户的第一状态。
[0174] 在1530处,可以在对话中接收第二声音输入。
[0175] 在1540处,可以从第二声音输入中提取第二音频属性,其中,第二音频属性可以指示用户的第二状态。
[0176] 在1550处,可以确定第二音频属性与第一音频属性之间的差,其中,所述差可以指示用户从第一状态到第二状态的状态变化。
[0177] 在1560处,可以至少基于该状态变化来生成对第二声音输入的响应。
[0178] 在一种实现中,第一音频属性可以包括情感的第一多维向量,其中,情感的第一多维向量中的每个维度可以分别表示情感类别,并且用户的第一状态包括第一情感状态。在一些示例中,第二音频属性可以包括情感的第二多维向量,其中,情感的第二多维向量中的每个维度可以分别表示与情感的第一多维向量中表示的那些情感类别相同的情感类别,并且用户的第二状态可以包括第二情感状态。在一些示例中,第二音频属性与第一音频属性之间的差可以包括情感的第一多维向量与情感的第二多维向量之间的多维向量差。在一些例子中,状态变化可以包括用户从第一情感状态到第二情感状态的情感状态变化。
[0179] 在一种实现中,该方法还包括:向多维向量差中的每个维度分配权重,以及基于多维向量差中的一个或多个加权的维度来确定第二情感状态相对于第一情感状态的情感状态变化。
[0180] 在一种实现中,第一音频属性可以包括环境的第一多维向量,其中,环境的第一多维向量中的每个维度可以分别表示环境类别,并且用户的第一状态可以包括第一环境状态。在一些示例中,第二音频属性可以包括环境的第二多维向量,其中,环境的第二多维向量中的每个维度可以分别表示与环境的第一多维向量中表示的那些环境类别相同的环境类别,并且用户的第二状态可以包括第二环境状态。在一些示例中,第二音频属性与第一音频属性之间的差可以包括环境的第一多维向量与环境的第二多维向量之间的多维向量差。在一些例子中,状态变化可以包括用户从第一环境状态到第二环境状态的环境状态变化。
[0181] 在一种实现中,该方法还包括:向多维向量差中的每个维度分配权重,以及基于多维向量差中的一个或多个加权的维度来确定第二环境状态相对于第一环境状态的环境状态变化。
[0182] 在一种实现中,第一音频属性可以包括身体状况的第一多维向量,其中,身体状况的第一多维向量中的每个维度可以分别表示身体状况类别,并且用户的第一状态可以包括第一身体状况状态。在一些示例中,第二音频属性可以包括身体状况的第二多维向量,其中,身体状况的第二多维向量中的每个维度可以分别表示与身体状况的第一多维向量中表示的那些身体状况类别相同的身体状况类别,并且用户的第二状态可以包括第二身体状况状态。在一些示例中,第二音频属性与第一音频属性之间的差可以包括身体状况的第一多维向量与身体状况的第二多维向量之间的多维向量差。在一些示例中,用户状态变化可以包括用户从第一身体状况状态到第二身体状况状态的变化。
[0183] 在一种实现中,该方法还包括:向多维向量差中的每个维度分配权重,以及基于多维向量差中的一个或多个加权的维度来确定第二身体状况状态相对于第一身体状况状态的身体状况状态变化。
[0184] 在一种实现中,第一音频属性可以包括下列各项中的至少一项:情感的第一多维向量、环境的第一多维向量以及身体状况的第一多维向量。在一些示例中,第二音频属性可以包括下列各项中的至少一项:情感的第二多维向量、环境的第二多维向量以及身体状况的第二多维向量。
[0185] 在一种实现中,生成对第二声音输入的所述响应可以还基于下列各项中的至少一项:所述用户的所述第一状态、所述用户的所述第二状态、从所述第一声音输入中提取的第一语义信息、从所述第二声音输入中提取的第二语义信息、对话上下文以及用户简档。
[0186] 在一种实现中,该方法还包括:从用户简档确定用户的初始音频属性,其中,所述初始音频属性指示用户的初始状态;在接收第二声音输入之前,确定第一音频属性与初始音频属性之间的差,其中,所述差可以指示用户从初始状态到第一状态的初始状态变化;以及至少基于初始状态变化来生成对第一声音输入的响应。
[0187] 在一种实现中,该方法还包括:基于第一音频属性和第二音频属性中的一项或多项来对用户的初始音频属性进行更新。
[0188] 在一种实现中,生成对第一声音输入的响应可以进一步基于下列各项中的至少一项:用户的初始状态、用户的第一状态、从第一声音输入中提取的第一语义信息、对话上下文以及用户简档。
[0189] 在一种实现中,该方法还包括:从用户简档确定用户的初始音频属性,其中,所述初始音频属性指示用户的初始状态;在接收所述第二声音输入之前,确定第一音频属性与初始音频属性之间的差,其中,所述差可以指示用户从初始状态到第一状态的初始状态变化;以及至少基于初始状态变化来生成对第一声音输入的响应。
[0190] 在一种实现中,该方法还包括:基于第一音频属性和第二音频属性中的一项或多项来对用户的初始音频属性进行更新。
[0191] 在一种实现中,生成对第一声音输入的响应可以进一步基于下列各项中的至少一项:用户的初始状态、用户的第一状态、从第一声音输入中提取的第一语义信息、对话上下文以及用户简档。
[0192] 在一种实现中,该方法还可以包括:接收对话中的第三声音输入;从第三声音输入中提取第三音频属性,其中,所述第三音频属性指示用户的第三状态;确定第三音频属性与第二音频属性之间的差,其中,所述差可以指示用户从第二状态到第三状态的附加状态变化;以及至少基于状态变化和附加状态变化来生成对第三声音输入的响应。
[0193] 在一种实现中,该方法还可以包括:接收对话中的第三声音输入;从第三声音输入中提取第三音频属性,其中,所述第三音频属性指示用户的第三状态;确定第一音频属性与第二音频属性之间的平均属性,其中,所述平均属性可以指示用户的第一状态与第二状态之间的平均状态;确定第三音频属性与第一音频属性和第二音频属性之间的平均属性之间的差,其中,该差可以指示用户从平均状态到第三状态的第二状态变化;以及至少基于第二状态变化来生成响应于第三声音输入的第三消息。
[0194] 在一种实现中,该方法还可以包括:在接收第一声音输入之前,基于独立于当前对话的用户信息来生成初始响应,其中,所述初始消息是针对第一声音输入的请求。
[0195] 在一种实现中,该方法还可以包括:在接收第二声音输入之前,生成用于确认用户的第一状态或者用于请求第二声音输入的中间响应。
[0196] 应该理解的是:方法1500还可以包括用于如上所述根据本公开内容的实施例在问答会话中向用户提供响应的任何步骤/过程。
[0197] 图16根据实施例示出了用于在人机对话中生成响应的示例性装置1600。
[0198] 装置1600可以包括:第一接收模块1610,其用于接收对话中的第一声音输入;第一提取模块1620,其用于从第一声音输入中提取第一音频属性,其中,第一音频属性可以指示用户的第一状态;第二接收模块1630,其用于接收对话中的第二声音输入;第二提取模块1640,其用于从第二声音输入中提取第二音频属性,其中,第二音频属性可以指示用户的第二状态;确定模块1650,其用于确定第二音频属性和第一音频属性之间的差,其中该差可以指示用户从第一状态到第二状态的状态变化;以及响应生成模块1660,其用于至少基于状态变化来生成对第二声音输入的响应。
[0199] 在一种实现中,第一音频属性可以包括下列各项中的至少一项:情感的第一多维向量,其中,情感的第一多维向量中的每个维度可以分别表示情感类别;环境的第一多维向量,其中,环境的第一多维向量中的每个维度可以分别表示环境类别;以及身体状况的第一多维向量,其中,身体状况的第一多维向量中的每个维度可以分别表示身体状况类别。在一些示例中,第二音频属性可以包括下列各项中的至少一项:情感的第二多维向量,其中,情感的第二多维向量中的每个维度可以分别表示与情感的第一多维向量中表示的那些情感类别相同的情感类别;环境的第二多维向量,其中,环境的第二多维向量中的每个维度可以分别表示与环境的第一多维向量中表示的那些环境类别相同的环境类别;身体状况的第二多维向量,其中,身体状况的第二多维向量中的每个维度可以分别表示与身体状况的第一多维向量中表示的那些身体状况类别相同的身体状况类别。在一些示例中,用户的第一状态可以包括下列各项中的至少一项:第一情感状态、第一环境状态以及第一身体状况状态。在一些示例中,用户的第二状态可以包括下列各项中的至少一项:第二情感状态、第二环境状态以及第二身体状况状态。在一些示例中,第二音频属性与第一音频属性之间的差可以包括下列各项中的至少一项:情感的第一多维向量与情感的第二多维向量之间的多维向量差;环境的第一多维向量与环境的第二多维向量之间的多维向量差;以及身体状况的第一多维向量与身体状况的第二多维向量之间的多维向量差。在一些示例中,状态变化可以包括下列各项中的至少一项:用户从第一情感状态到第二情感状态的情感状态变化、用户从第一环境状态到第二环境状态的环境状态变化、以及用户从第一身体状况状态到第二身体状况状态的身体状况状态变化。
[0200] 在一种实现中,确定模块1650还可以用于从用户简档确定用户的初始音频属性,其中,初始音频属性可以指示用户的初始状态。装置还可以包括更新模块,更新模块用于:基于第一音频属性和第二音频属性中的一项或多项来对用户的初始音频属性进行更新。
[0201] 另外,装置1600还可以包括被配置用于根据如上所述的本公开内容的实施例在人机对话中生成响应的任何其它模块。
[0202] 图17根据实施例示出了用于在人机对话中生成响应的示例性装置1700。装置1700可以包括一个或多个处理器1710以及存储计算机可执行指令的存储器1720。当执行计算机可执行指令时,一个或多个处理器1710可以:接收对话中的第一声音输入;从第一声音输入中提取第一音频属性,其中,第一音频属性可以指示用户的第一状态;接收对话中的第二声音输入;从第二声音输入中提取第二音频属性,其中,第二音频属性可以指示用户的第二状态;确定第二音频属性和第一音频属性之间的差,其中该差可以指示用户从第一状态到第二状态的状态变化;至少基于状态变化来生成对第二声音输入的响应;以及在对话中向用户呈现包括所生成的响应的消息。在一些示例中,装置可以包括用于存储用户的用户简档的存储单元。举例来说,存储单元可以是数据库或表格。
[0203] 本公开内容的实施例可以体现在非临时性计算机可读介质中。非临时性计算机可读介质可以包括指令,当被执行时,指令使得一个或多个处理器根据如上所述的本公开内容的实施例执行用于在问答会话中向用户提供响应的方法的任何操作。
[0204] 应该理解的是:上述方法中的所有操作仅仅是示例性的,并且本公开内容不局限于这些方法中的任何操作或者这些操作的序列顺序,并且应该覆盖相同或相似概念下的所有其它等价物。
[0205] 还应该理解的是:上述装置中的所有模块可以以各种方式来实现。这些模块可以被实现为硬件、软件或它们的组合。此外,这些模块中的任何一个模块还可以在功能上分成子模块或组合在一起。
[0206] 已经结合各种装置和方法对处理器进行了描述。这些处理器可以使用电子硬件、计算机软件或它们的任意组合来实现。至于这些处理器是实现为硬件还是软件将取决于特定的应用和对系统所施加的整体设计约束。通过举例的方式,本公开内容中给出的处理器、处理器的任意部分或处理器的任意组合可以使用微处理器、微控制器数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、状态机、门控逻辑、分立硬件电路、以及被配置为执行贯穿本公开内容描述的各种功能的其它合适的处理组件来实现。本公开内容中给出的处理器、处理器的任意部分或处理器的任意组合的功能可以使用由微处理器、微控制器、DSP执行的软件或其它合适的平台来实现。
[0207] 软件应该被广义地解释为意指指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用程序、软件应用程序、软件包、例程、子例程、对象、执行线程、过程、功能等。软件可以位于计算机可读介质上。举例而言,计算机可读介质可以包括存储器,诸如磁存储设备(例如,硬盘、软盘、磁带)、光碟、智能卡、闪存设备、随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、寄存器或可移动磁盘。虽然在贯穿本公开内容给出的各个方面中存储器被示为与处理器分离,但存储器可以在处理器内部(例如,高速缓存器或寄存器)。
[0208] 提供了前述描述以使本领域任何技术人员能够实施本文所描述的各个方面。对这些方面的各种修改对于本领域技术人员将是显而易见的,并且本文定义的一般原则可应用于其它方面。因此,权利要求书不意图受到本文中示出的方面的限制。对本领域普通技术人员来说已知或者将要获知的与贯穿本公开内容所描述的各种方面的元素等效的所有结构和功能在此都通过引用的方式明确并入本文,并且旨在被权利要求书所包括。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈