CN112632262A - 一种对话方法、装置、计算机设备及存储介质 - Google Patents
一种对话方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN112632262A CN112632262A CN202011632454.2A CN202011632454A CN112632262A CN 112632262 A CN112632262 A CN 112632262A CN 202011632454 A CN202011632454 A CN 202011632454A CN 112632262 A CN112632262 A CN 112632262A
- Authority
- CN
- China
- Prior art keywords
- terminal
- content
- conversation
- dialog
- virtual object
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 114
- 230000004044 response Effects 0.000 claims abstract description 41
- 238000004590 computer program Methods 0.000 claims description 9
- 239000013598 vector Substances 0.000 description 72
- 230000009471 action Effects 0.000 description 39
- 230000033001 locomotion Effects 0.000 description 36
- 108091026890 Coding region Proteins 0.000 description 31
- 230000001815 facial effect Effects 0.000 description 28
- 210000001097 facial muscle Anatomy 0.000 description 20
- 230000014509 gene expression Effects 0.000 description 17
- 230000008569 process Effects 0.000 description 17
- 230000001960 triggered effect Effects 0.000 description 15
- 230000003993 interaction Effects 0.000 description 13
- 230000002452 interceptive effect Effects 0.000 description 12
- 238000013528 artificial neural network Methods 0.000 description 11
- 230000008859 change Effects 0.000 description 11
- 210000003205 muscle Anatomy 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000000306 recurrent effect Effects 0.000 description 6
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008602 contraction Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000002996 emotional effect Effects 0.000 description 2
- 230000008921 facial expression Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 1
- 230000004397 blinking Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L17/00—Speaker identification or verification techniques
- G10L17/04—Training, enrolment or model building
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L17/00—Speaker identification or verification techniques
- G10L17/22—Interactive procedures; Man-machine interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Artificial Intelligence (AREA)
- Acoustics & Sound (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Databases & Information Systems (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本公开提供了一种对话方法、装置、计算机设备及存储介质,其中,该方法包括:获取来自第一终端的第一用户的第一对话内容;获取来自第二终端的第二用户的第二对话内容,所述第二对话内容包括对所述第一对话内容的响应内容;基于所述第二对话内容,控制所述第一终端展示的虚拟对象对所述第一对话内容进行响应。本公开实施例通过控制终端展示的虚拟对象,对用户输入的第一对话内容进行响应,从而提升交互性。
Description
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种对话方法、装置、计算机设备及存储介质。
背景技术
目前,基于神经网络的对话***通常被用于机器人客服***中;用户可以通过终端输入自己想要解答的问题,终端将问题传输至服务器,部署在服务器中的机器人客户根据问题,从预先设置的答案库中匹配目标答案,并通过终端向用户展示出来。但是在实际中,用户的问题多种多样,并非所有的问题都能够在答案库中匹配到合适的答案,在该种情况下,通常需要用户通过终端触发人工服务;人工服务被触发后,终端会跳转至对应的人工服务界面,并在人工服务界面中显示交互窗口,以便用户可人工客服之间进行交互。这种对话方式存在交互性差的问题。
发明内容
本公开实施例至少提供一种对话方法、装置、计算机设备及存储介质。
第一方面,本公开实施例提供了一种对话方法,所述对话方法包括:获取来自第一终端的第一用户的第一对话内容;获取来自第二终端的第二用户的第二对话内容,所述第二对话内容包括对所述第一对话内容的响应内容;基于所述第二对话内容,控制所述第一终端展示的虚拟对象对所述第一对话内容进行响应。
这样,通过获取来自第一终端的第一用户的第一对话内容,并获取来自第二终端的第二对话内容,并基于所述第二对话内容,控制第一终端展示的虚拟对象对所述第一对话内容进行响应,从而提升对话过程中的交互性。
一种可能的实施方式中,在获取来自第二终端的第二用户的第二对话内容之前,所述方法还包括:检测到所述第一终端的对话状态满足用于触发人工服务的第一条件;和/或,检测到所述第二终端的对话状态满足用于触发人工服务的第二条件。
一种可能的实施方式中,所述用于触发人工服务的第一条件包括以下条件中的任一种:接收来自所述第一终端的第一人工服务指令;接收来自所述第一终端的用于指示触发人工服务的第三对话内容;对所述第一终端的第一对话内容的响应时间大于预设的时间阈值;当前处于对话状态的第一终端的数量大于第一预设数量;所述第一终端的尚未响应的第一对话内容的数量大于第二预设数量。
一种可能的实施方式中,所述用于触发人工服务的第二条件包括:接收来自所述第二终端的第二人工服务指令。
这样,通过第一条件和/或第二条件,及时为第一用户触发人工服务,提升与第一用户的交互效率。
一种可能的实施方式中,所述对话方法还包括:利用预先训练的对话生成模型,基于所述第一对话内容,得到第四对话内容;基于所述第四对话内容,控制所述第一终端展示的虚拟对象对所述第一对话内容进行响应。
一种可能的实施方式中,所述利用预先训练的对话生成模型,基于所述第一对话内容,得到第四对话内容之前,还包括:检测所述第一终端的对话状态是否满足触发人工服务的条件;在所述第一终端的对话状态不满足触发人工服务的条件的情况下,利用预先训练的对话生成模型,基于所述第一对话内容,得到第四对话内容。
这样,利用对话生成模型得到第四对话,从而能够在无法对用户提供人工服务时,实现与用户的自动对话,且用户对人工和自动切换过程无感知,提升用户感受度。
一种可能的实施方式中,所述基于所述第二对话内容,控制所述第一终端展示的虚拟对象对所述第一对话内容进行响应,包括:识别第二对话内容对应的驱动模式;基于该驱动模式,根据第二对话内容获取虚拟对象的控制参数;根据所述控制参数控制所述虚拟对象的姿态。
根据第二对话内容确定驱动模式,来获取对虚拟对象的控制参数,以控制虚拟对象的姿态,对于不同的驱动模型可以通过不同的方式来获取相应的虚拟对象的控制参数,使得虚拟对象展示出与所述驱动数据的内容和/或对应的语音匹配的姿态,从而使用户产生与虚拟对象正在交流的感觉,提升了用户的交互体验。
一种可能的实施方式中,所述对话方法还包括:根据所述第二对话内容控制所述第一终端输出语音和/或展示文本。
一种可能的实施方式中,所述识别所述第二对话内容对应的驱动模式,包括:根据所述第二对话内容的类型,获取所述第二对话内容对应的语音数据序列,所述语音数据序列包括多个语音数据单元;若检测到所述语音数据单元中包括目标数据,则确定所述第二对话内容的驱动模式为第一驱动模式,所述目标数据与虚拟对象的预设控制参数相对应;所述响应于所述驱动模式,根据所述第二对话内容获取所述虚拟对象的控制参数,包括:响应于所述第一驱动模式,将所述目标数据对应的所述预设控制参数,作为所述虚拟对象的控制参数。
一种可能的实施方式中,所述目标数据包括关键词或关键字,所述关键词或所述关键字与虚拟对象的设定动作的预设控制参数相对应;或者,所述目标数据包括音节,所述音节与所述虚拟对象的设定嘴型动作的预设控制参数对应。
这样,使得虚拟对象做出的动作与语音能够匹配,具有更好的交互体验。
一种可能的实施方式中,所述识别所述第二对话内容对应的驱动模式,包括:根据所述第二对话内容的类型,获取所述第二对话内容对应的语音数据序列,所述语音数据序列包括多个语音数据单元;若未检测到所述语音数据单元中包括目标数据,则确定所述第二对话内容的驱动模式为第二驱动模式,所述目标数据与虚拟对象的预设控制参数相对应;所述响应于所述驱动模式,根据所述第二对话内容获取所述虚拟对象的控制参数,包括:响应于所述第二驱动模式,获取所述语音数据序列中的至少一个语音数据单元的特征信息;获取与所述特征信息对应的所述虚拟对象的控制参数。
这样,通过语音数据单元的特征信息,来控制虚拟对象的控制参数,也可以使得虚拟对象做出的动作与语音匹配,使用户具有更好的交互体验。
一种可能的实施方式中,所述语音数据序列包括音素序列,所述获取所述语音数据序列中的至少一个语音数据单元的特征信息,包括:对所述音素序列进行特征编码,获得所述音素序列对应的第一编码序列;根据所述第一编码序列,获取至少一个音素对应的特征编码;根据所述特征编码,获得所述至少一个音素的特征信息。
这样使得虚拟对象的姿态变化过度的更加平缓、自然,尤其是虚拟对象的表情变化更加平缓、自然,提高了用户的交互体验。
一种可能的实施方式中,所述语音数据序列包括语音帧序列,所述获取所述语音数据序列中的至少一个语音数据单元的特征信息,包括:获取所述语音帧序列对应的第一声学特征序列,所述第一声学特征序列包括与所述语音帧序列中的每个语音帧对应的声学特征向量;根据所述第一声学特征序列,获取至少一个语音帧对应的声学特征向量;根据所述声学特征向量,获得所述至少一个语音帧对应的特征信息。
一种可能的实施方式中,所述虚拟对象的控制参数包括面部姿态参数,所述面部姿态参数包括面部肌肉控制系数,用于控制至少一个面部肌肉的运动状态;所述根据所述第二对话内容获取所述虚拟对象的控制参数,包括:根据所述第二对话内容获取所述虚拟对象的面部肌肉控制系数;所述根据所述控制参数控制所述虚拟对象的姿态,包括:根据所获取的面部肌肉控制系数,驱动所述虚拟对象做出与所述第二对话内容匹配的面部动作。
这样,可以虚拟对象同步做出发出该声音时的表情,从而使虚拟对象产生该交互对象正在说话的感觉,提高了用户的交互体验。
一种可能的实施方式中,所述对话方法还包括:获取与所述面部姿态参数关联的身体姿态的第二对话内容;根据与所述面部姿态参数值关联的身体姿态的第二对话内容,驱动所述虚拟对象做出肢体动作。
这样,可以驱动虚拟对象同时做出相应的面部动作和肢体动作,使虚拟对象的说话状态更加生动自然,提高了用户的交互体验。
一种可能的实施方式中,所述虚拟对象的控制参数包括所述虚拟对象的至少一个局部区域的控制向量;所述根据所述第二对话内容获取所述虚拟对象的控制参数,包括:根据所述第二对话内容获取所述虚拟对象的至少一个局部区域的控制向量;所述根据所述控制参数控制所述虚拟对象的姿态,包括:根据所获取的所述至少一个局部区域的控制向量,控制所述虚拟对象的面部动作和/或肢体动作。
一种可能的实施方式中,所述获取与所述特征信息对应的所述虚拟对象的控制参数,包括:将所述特征信息输入至循环神经网络,获得与所述特征信息对应的所述虚拟对象的控制参数。
第二方面,本公开实施例还提供一种对话装置,所述对话装置包括:第一获取模块,用于获取来自第一终端的第一用户的第一对话内容;第二获取模块,用于获取来自第二终端的第二用户的第二对话内容,所述第二对话内容包括对所述第一对话内容的响应内容;控制模块,用于基于所述第二对话内容,控制所述第一终端展示的虚拟对象对所述第一对话内容进行响应。
第三方面,本公开可选实现方式还提供一种计算机设备,处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第四方面,本公开可选实现方式还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种对话方法的流程图;
图2示出了本公开实施例所提供的对话方法中控制虚拟对象对第一对话内容进行响应的方法的流程图;
图3示出了本公开实施例所提供的对音素序列进行特征编码的过程示意图;
图4示出了本公开实施例所提供的根据音素序列获得控制参数的过程示意图;
图5示出了本公开实施例所提供的根据语音帧序列获得控制参数的过程示意图;
图6示出了本公开实施例所提供的一种对话装置的示意图;
图7示出了本公开实施例所提供的一种计算机设备的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
经研究发现,自动对话***在应用于客服***中时,若机器人客服无法满足用户的使用需求,需要用户主动触发人工服务;用户使用的终端设备会由机器人客服页面跳转至人工服务页面,用户可以通过该服务页面输入语音、文字或者图像。人工客服的反馈也会通过该服务页面展示给用户。当前的对话方法仅为用户提供简单的交互界面,交互性较差。另外,当前需要用户主动触发人工客服,且终端设备在跳转至人工服务页面,且用户输入了对话内容后,才会为用户匹配对应的人工客服,且用户需要在机器人服务页面和人工服务页面重复输入对话内容,该过程响应速度慢,且交互效率低。
基于上述研究,本公开提供了一种对话方法,通过第一终端展示的虚拟对象,对用户输入的第一对话内容进行响应,从而提升交互性。另外,本公开实施例在检测到第一终端的对话状态满足用于触发人工服务的第一条件,或者检测到第二终端的对话状态满足用于触发人工服务的第二条件后,即可控制第一终端展示的虚拟对象对第一用户的第一对象内容进行响应,从而提升响应速度,且用户无需重复输入对话内容,交互效率更高。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种对话方法进行详细介绍,本公开实施例所提供的对话方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该对话方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。另外,该终端设备即可以是第一终端,又可以是第二终端。
下面对本公开实施例提供的对话方法加以说明。
参见图1所示,为本公开实施例提供的对话方法的流程图,方法包括步骤S101~S103,其中:
S101:获取来自第一终端的第一用户的第一对话内容;
S102:获取来自第二终端的第二用户的第二对话内容,第二对话内容包括对第一对话内容的响应内容;
S103:基于第二对话内容,控制第一终端展示的虚拟对象对第一对话内容进行响应。
在具体实施中,在该对话方法应用于不同的领域时,第一用户、第二用户也根据领域的不同会有所区别;示例性的,在将该对话方法应用于客服***中的情况下,第一用户例如包括客户,第二用户例如包括客服;在将该对话方法应用于学习***中的情况下,第一用户例如包括学生,第二用户例如包括为用户解答问题的教师等。
第一用户所使用的第一终端中,可以部署用于向第一用户提供服务的第一软件程序;在该第一软件程序启动后,在第一终端的图形用户界面中可提供输入第一对话内容的输入控件;第一用户可以基于该输入控件,输入第一对话内容。该第一对话内容例如包括:语音内容、文本内容、媒体内容中至少一种;媒体内容例如可以包括:图片和/或视频。在第一用户所使用的第一终端中,还展示有虚拟对象。该虚拟对象的具体形象可以基于实际的需要进行设定,例如该虚拟对象可以为卡通动物、虚拟合成人物等。
在第二用户所使用的第二终端中,部署有用户向第二用户提供服务的第二软件程序;在该第二软件程序启动后,第二终端的图形用户界面可提供输入第二对话内容的输入控件,以及展示第一对话内容的展示控件;第二用户可以通过展示控件展示第一用户输入的第一对话内容,并基于输入控件对第二对话内容进行响应,以输入第二对话内容。第二对话内容例如包括:语音内容、文本内容、媒体内容中至少一种。
下面以将对话方法应用于客服***中为例,对本公开实施例提供的对话方法加以详细说明。本公开示例提供的对话方法的执行主体可以包括第一终端、第二终端以及服务器中的至少一项。其中:
I:针对本公开实施例提供的对话方法在第一终端中执行的情况,第一终端可以响应第一用户的输入,得到第一对话内容。在得到第一对话内容后,第一终端可以将第一对话内容向服务器发送;终端设备在接收到第一终端发送的第一对话内容后,将第一对话内容转发给第二终端;第二终端在接收到服务器发送的第一对话内容后,向第二用户展示第一对话内容;第二终端响应第二用户的输入,得到第二对话内容,并将第二对话内容向服务器发送;服务器在接收到第二对话内容后,将第二对话内容发送给第一终端,从而使得第一终端得到来自第二终端的第二用户的第二对话内容。第一终端在获取到第二对话内容后,基于第二对话内容,控制第一终端展示的虚拟对象对第二对话内容进行响应。
另外,第一终端也可以直接将第一对话内容向第二终端发送;第二终端响应第二用户的输入生成的第二对话内容,也可以直接向第一终端发送。
II:针对本公开实施例提供的对话方法在第二终端中执行的情况,第二终端接收来自第一终端的第一用户的第一对话内容。此处,第一对话内容的生成方式,和第二终端接收第一对话内容的方式与上述I中类似,在此不再赘述。
第二终端在接收到第一对话内容后,向第二用户展示该第一对话内容;第二终端响应第二用户的输入,得到第二对话内容,然后可以基于第二对话内容,生成第一控制指令,并将该控制指令发送给第一终端,以控制第一终端展示的虚拟对象对第一对话内容进行响应。该第一控制指令例如包括:根据第二对话内容确定的对虚拟对象的控制参数。第二终端确定控制参数的具体方式,参见下述图2对应的实施例。
第一终端在接收到第二终端发送的第一控制指令后,执行第一控制指令,以驱动虚拟对象的姿态。
另外,第二终端也可以直接将第二对话内容发送给第一终端,以使第一终端基于第二对话内容,控制第一终端中展示的虚拟对象对第一对话内容进行响应。
III:针对本公开实施例提供的对话方法在服务器中执行的情况,服务器接收第一终端发送的第一用户的第一对话内容,然后将第一对话内容发给第二终端;第二终端将第一对话内容展示给第二用户;第二用户对第一对话内容进行响应的响应内容通过第二终端中设置的输入控件输入至第二终端,并生成第二对话内容;服务器接收第二终端发送的第二用户的第二对话内容后,基于第二对话内容生成第二控制指令,并将该第二控制指令向第一终端发送,以控制虚拟对象对第一对话内容进行响应。该第二控制指令例如包括:根据第二对话内容确定的对虚拟对象的控制参数。第二终端确定控制参数的具体方式,与下述图2对应的实施例。
第一终端在接收到第二终端发送的第二控制指令后,执行第二控制指令,以驱动虚拟对象的姿态。
另外,服务器也可以直接将第二对话内容发送给第一终端,以使第一终端基于第二对话内容,控制第一终端中展示的虚拟对象对第一对话内容进行响应。
在本公开另一实施例中,在获取来自第二终端的第二用户的第二对话内容之前,还包括:检测到第一终端的对话状态满足用于触发人工服务的第一条件;和/或,检测到第二终端的对话状态满足用于触发人工服务的第二条件。
此处,在仅检测第一终端的对话状态是否满足用于触发人工服务的第一条件的情况下,在检测到第一终端的对话状态满足第一条件后,获取来自第二终端的第二用户的第二对话内容;若第一终端的对话状态不满足第一条件,则利用预先训练的对话生成模型,基于第一对话内容,得到第四对话内容;基于第四对话内容,控制第一终端展示的虚拟对象对第一对话内容进行响应。
在仅检测第二终端的对话状态是否满足用于触发人工服务的第二条件的情况下,在检测到第二终端的对话状态满足第二条件后,获取来自第二终端的第二用户的第二对话内容;若第二终端的对话状态不满足第二条件,也可以利用预先训练的对话生成模型,基于第一对话内容,得到第四对话内容;基于第四对话内容,控制第一终端展示的虚拟对象对第一对话内容进行响应。
在检测到第一终端的对话状态是否满足用于触发人工服务的第一条件,且检测到第二终端的对话状态是否满足用于触发人工服务的第二条件的情况下,在第一终端的对话状态满足第一条件,且第二终端的对话状态满足第二条件,才会获取来自第二终端的第二用户的第二对话内容;在第一终端的对话状态不满足第一条件,且第二终端的对话状态不满足第二条件,利用预先训练的对话生成模型,基于第一对话内容,得到第四对话内容;基于第四对话内容,控制第一终端展示的虚拟对象对第一对话内容进行响应。
另外,在本公开另一实施例中,检测到第一终端的对话状态满足用于触发人工服务的第一条件的情况下:
A1:针对本公开实施例提供的对话方法在第一终端执行的情况,第一终端在检测到本地的对话状态满足用于触发人工服务的第一条件后,还可以为第一终端匹配第二终端。
在为第一终端匹配第二终端时,第一终端可以直接向至少一个第二终端发起对话请求;至少一个第二终端中的每个第二终端能够接收到第一终端发起的对话请求,并基于第二用户的触发,基于对话请求生成对话应答指令,并将对话应答指令发送给第一终端;第一终端在接收到任一第二终端基于对话请求反馈的对话应答指令后,将该任一第二终端确定为要进行对话的第二终端,并将获取的第一对话内容发送给匹配到的第二终端;接收来自第二终端的第二用户基于第一对话内容进行响应得到的第二对话内容。此处,第一终端确定的第二终端具有排他性;也即,在接收到多个第二终端发送的对话应答指令后,只能将其中的一个第二终端确定为匹配到的第二终端,直至与匹配到的第二终端之间的对话结束。
另外,在为第一终端匹配第二终端时,第一终端还可以向服务器发起对话请求;服务器在接收到第一终端发起的对话请求后,基于多个第二终端的对话状态,为第一终端匹配一个第二终端,并向第一终端反馈第二终端的链接信息;第一终端接收服务器反馈的链接信息,基于该链接信息建立与第二终端之间的链接,并将第一对话内容发送给匹配到的第二终端。此处,第一终端与第二终端之间的链接,可以是第一终端和第二终端直接建立的,也可以是基于服务器间接建立的。
B1:针对本公开实施例提供的对话方法在第二终端执行的情况,第二终端可以实时获取至少一个第一终端中每个第一终端的对话状态;在任一第一终端的对话状态满足第一条件的情况下,建立与该任一第一终端的链接;在建立与该任一第一终端的链接后,接收第一终端发送的第一对话内容,并将第一对话内容展示给第二用户;在获取第二用户对该第一对话内容的响应内容后,基于第二对话内容,生成如上述II中的第一控制指令,并将第一控制指令发送给建立了链接的第一终端,以控制第一终端展示的虚拟对象对第一对话内容进行响应。
C1:针对本公开实施例提供的对话方法在服务器执行情况下,服务器可以实时获取第一终端的对话状态;在第一终端的对话状态满足第一条件的情况下,基于至少一个第二终端中每个第二终端的对话状态,为第一终端匹配第二终端,并将获取到来自第一终端的第一对话内容发送给匹配到的第二终端;接收来自匹配到的第二终端的第二用户的第二对话内容,然后基于第二对话内容,生成如上述III中的第二控制指令,并将该第二控制指令发送给第一终端,以控制第一终端展示的虚拟对象对第一对话内容进行响应。
检测到二终端的对话状态满足用于触发人工服务的第二条件的情况下:
A2:针对本公开实施例提供的对话方法在第一终端执行的情况,第一终端可以实时检测至少一个第二终端的对话状态是否满足第二条件。在检测到任一第二终端的对话状态满足第二条件的情况下,将该任一第二终端确定为匹配到的第二终端,并将获取的第一用户的第一对话内容发送给该匹配到的第二终端。接收第二终端发送的第二用户的第二对话内容,并基于第二对话内容,控制在本地展示的虚拟对象对第一对话内容进行响应。
此处,第一终端在检测到多个第二终端的对话状态满足第二条件的情况下,仅能够将其中的一个第二终端确定为匹配到的第二终端。
B2:针对本公开实施例提供的对话方法在第二终端执行的情况,第二终端可以实时监测到自身的对话状态。在监测到自身的对话状态满足第二状态的情况下,从多个第一终端中,为第二终端匹配一个第一终端,然后接收来自该匹配到的第一终端发送的第一对话内容;第二终端在接收到第一对话内容后,将第一对话内容展示给第二用户,用接收第二用户对该第一对话内容进行响应的响应内容,生成第二对话内容,然后基于该第二对话内容,生成如上述II中的第一控制指令,并将该第一控制指令发送给匹配到的第一终端,以控制第一终端展示的虚拟对象对第一对话内容进行响应。
C2:针对本公开示例提供的对话方法在服务器中执行的情况,服务器可以实时获取第二终端的对话状态;在第二终端的对话状态满足第二条件的情况下,基于至少一个第一终端中每个第一终端的对话状态,为第二终端匹配第一终端,并将获取的自匹配到的第一终端发送的第一对话内容发送给第二终端,接收第二终端的第二用户对第一对话内容进行响应的第二对话内容,然后生成如上述III中的第二控制指令,将第二控制指令发送给匹配到的第一终端,以控制第一终端中展示的虚拟对象对第一对话内容进行响应。
在本公开另一实施例中,用于触发人工服务的第一条件包括:
(1):接收来自第一终端的第一人工服务指令。
在该种情况下,执行对话方法的主体可以包括第一终端、第二终端以及服务器中任一种。
a1:针对执行对话方法的主体为第一终端的情况,第一终端能够在本地对第一终端的对话状态进行检测;在检测到本地的对话状态满足用于触发人工服务的第一条件后,获取来自第一终端的第一用户的第一对话内容。
此处,所获取的第一对话内容,可以是在第一用户在第一终端满足第一条件输入的,也可以是第一用户在第一终端满足第一条件之前输入的。
针对第一对话内容为第一用户在第一终端满足第一条件之前输入的情况,第一终端可以将第一条件满足之前,确定输入时间与当前时间的时间差小于预设的时间差阈值的最近N条历史对话内容作为第一对话内容。其中,N为正整数。这样,无需第一用户在触发人工对话后,重复的输入第一对话内容,提升对话的效率,减少第一用户的操作,提升用户感受度。
a2:针对执行对话方法的主体为第二终端的情况,第二终端可以实时获取第一终端的对话状态信息,并基于获取的第一终端的对话状态信息,检测第一终端的对话状态是否满足第一条件。在检测到第一终端的对话状态满足第一条件后,获取来自第一终端的第一用户的第一对话内容。此处,第一对话内容,通常是在第一条件满足后第一用户从第一终端输入的。
a3:针对执行对话方法的主体为服务器的情况,服务器可以实时获取第一终端的对话状态信息,并基于获取的第一终端的对话状态信息,检测第一终端的对话状态是否满足第一条件;在检测到第一终端的对话状态满足第一条件后,获取来自第一终端的第一用户的第一对话内容。此处,第一对话内容,可以是在第一用户在第一终端满足第一条件输入,并且传输给服务器的,也可以是第一用户在第一终端满足第一条件之前输入,且由服务器进行保存的。
针对第一用户在第一终端满足第一条件之前输入第一对话内容的情况,服务器会保存第一用户输入的历史会话内容;在检测到第一终端的对话状态满足第一条件后,从历史会话内容中,确定输入时间与当前时间的时间差小于预设的时间差阈值的最近N条历史对话内容作为第一对话内容。其中,N为正整数。
另外,在本公开实施例中,该第一服务指令可以是第一用户在第一终端中主动触发的,也可以是第一终端在检测到与第一用户的对话满足一定的触发条件时,第一终端自动生成第一人工服务指令。
示例性的,针对第一服务指令为第一用户触发的情况下,在第一终端的图形用户界面中,例如可以为第一用户提供用户触发人工服务的控件;第一用户可以通过该控件触发人工服务。
针对第一服务指令为第一终端在检测到与第一用户的对话满足一定的触发条件的情况下,该触发条件例如包括:第一用户在预设时段内输入的第一对话内容条数达到预设条数,例如第一用户在30秒之内输入的第一对话内容的条数达到5条,在该种情况下,第一用户可能会处于比较焦急的,需要尽快回复并解答的状态;第一终端可以自动触发人工服务,生成第一人工服务指令,以通过人工服务能够尽快、且高效的为第一用户解决问题。
该触发条件例如还包括:第一对话内容中包括的目标字符数量达到预设字符数量阈值。在该种情况下,第一对话内容中很可能会包括用户需要解答的多个问题,或者用户需要解答的问题较为复杂;而机器人客服的自动对话通常仅能够针对用户提出的单个问题、或者较为简单的问题进行解答,自动对话可能无法满足用户的对话需求;因此需要用户需要解答的问题拆解成多个问题一一输入,这对于用户而言并不友好;因而第一终端在检测到第一对话内容中包括的字符数量达到预设字符数量阈值的情况下,自动触发人工服务,生成第一人工服务指令,以通过人工服务能够充分的解答用户较为复杂、或者一次性输入较多的问题。目标字符例如可以包括第一对话内容中所有字符的数量,也可以是对第一对话内容进行语义分析后,从第一对话内容中确定的能够表征第一对话内容语义信息的关键字符。
该触发条件例如还可以包括:第一对话内容中包括了预设字符。其中没预设字符可以根据实际的需要进行设定。第一终端可以对用户输入的第一对话内容进行文本检测,从中确定是否包括了预设字符;在第一对话内容中包括了预设字符的情况下,自动触发人工服务,生成第一人工服务指令。
另外,还可以设置其他触发条件,具体可以根据实际的应用场景需要进行设定,本公开实施例不做限定。
(2):接收来自第一终端的用于指示触发人工服务的第三对话内容。
在该种情况下,执行对话方法的主体可以包括第一终端、第二终端以及服务器中任一种。
b1:针对执行对话方法的主体为第一终端的情况,第一终端能够接收第一用户输入的对话内容;第一终端在接收到对话内容后,可以对第一用户输入的对话内容进行语义分析,得到该对话内容的语义分析结果;若该语义分析结果指示触发人工服务,则将接收到的对话内容作为第三对话内容,并获取第一对话内容。此处,第一终端获取第一对话内容的方式与上述(1)中a1类似,在此不再赘述。
另外,也可以预先设置用于指示触发人工服务的关键词;第一终端可以对接收到的对话内容进行检索,以确定在对话内容中是否存在预设的关键词,在对话内容中存在预设的关键词的情况下,则确定第一终端的对话状态满足用于触发人工服务的第一条件。
此处,预先设置的关键词例如可以包括:“人工”、“不能解决问题”等,具体根据实际的需要进行设置。
b2:针对执行对话方法的主体为第二终端的情况,第二终端可以接收第一终端发送的对话内容,并对接收到的对话内容进行语义分析,得到该对话内容的语义分析结果;若该语义分析结果指示触发人工服务,则该接收到的对话内容即为第三对话内容,并获取第一对话内容。此处,第二终端获取第一对话内容的方式与上述(1)中a2类似,在此不再赘述。
b3:针对执行对话方法的主体为服务器的情况,服务器可以接收第一终端发送的对话内容,并对接收到的对话内容进行语义分析,得到该对话内容的语义分析结果;若该语义分析结果指示触发人工服务,则接收到的对话内容即为第三对话内容。服务器可以为第一终端匹配第二终端,并将获取的第一对话内容第二终端,并获取来自第二终端我的第二用户第一对话内容进行响应生成的第二对话内容。
(3):对第一终端的第一对话内容的响应时间大于预设的时间阈值。
在该种情况下,执行对话方法的主体可以包括第一终端、第二终端或者服务器。
c1:针对执行对话方法的主体为第一终端的情况,第一终端可以记录第一用户输入对话内容的第一时刻,以及第一终端对第一对话内容进行回复的第二时刻,然后基于第一时刻和第二时刻,确定对第一对话内容的响应时间;若该响应时间大于预设的时间阈值,则意味着第一终端由于某种原因而无法及时对用户进行响应;此时,可以将第一用户输入的第一对话内容发送给第二终端,并接收第二终端的第二用户输入的对第一对话内容进行响应的第二对话内容。
c2:针对执行对话方法的主体为第二终端的情况,第二终端能够在未触发人工服务的情况下,利用在第二终端中部署的预先训练的对话生成模型,基于第一对话内容得到第四对话内容;基于第四对话内容,控制第一终端展示的虚拟对象对第一对话内容进行响应。第二终端还会记录接收第一对话内容的接收时刻、以及基于第四对话内容对第一对话内容的响应时刻;若接收时刻和响应时刻之间的时间差大于预设的时间差阈值,则意味着无法对第一终端进行及时的响应;此时,可以触发对第一终端进行人工服务。此时,第二终端将第一对话内容展示给第二用户,以使第二用户可以对第一对话内容进行响应,生成第二对话内容;第二终端基于第二对话内容控制第一对话内容中的虚拟对象对第一对话内容进行响应。
c3:针对执行对话方法的主体为服务器的情况,在未触发人工服务的情况下,服务器在接收到第一终端发送的第一对话内容后,可以利用部署在服务器中的预先训练的对话生成模型,基于第一对话内容得到第四对话内容;基于第四对话内容,控制第一终端展示的虚拟对象对第一对话内容进行响应。同时,服务器还会记录接收到第一对话内容的接收时刻、以及基于第四对话内容对第一对话内容的响应时刻;若接收时刻和响应时刻之间的时间差大于预设的时间差阈值,则触发对第一终端进行人工服务。此时,服务器为第一终端匹配第二终端,并将第一对话内容发送给匹配到的第二终端;第二终端将第一对话内容展示给第二用户,以使第二用户可以对第一对话内容进行响应,生成第二对话内容;第二终端在生成第二对话内容后,将第二对话内容发送给服务器;服务器基于第二对话内容控制第一对话内容中的虚拟对象对第一对话内容进行响应。
(4):当前处于对话状态的第一终端的数量大于第一预设数量。
在该种情况下,执行对话方法的主体通常包括服务器。服务器能够监测处于对话状态的第一终端的数量;在第一终端的数量大于第一预设数量的情况下,为其中的部分第一终端匹配第二终端,然后将第一终端的第一对话内容发送给匹配到的对应第二终端。第二终端接收到服务器发送的第一对话内容后,将第一对话内容展示给第二终端的第二用户;第二用户可以通过第二终端对第一对话内容进行响应,生成第二对话内容,并由第二终端将第二对话内容发送给服务器;服务器可以基于第二对话内容,控制第一终端展示的虚拟对象对第一对话内容进行响应。
(5):第一终端的尚未响应的第一对话内容的数量大于第二预设数量。
在该种情况下,执行对话方法的主体可以包括第一终端、第二终端或者服务器。
d1:针对执行对话方法的主体包括第一终端的情况,第一终端中可以部署有预先训练的对话生成模型;第一终端接收到第一对话内容后,能够基于第一对话内容,利用该预先训练的对话生成模型,得到第四对话内容;若第一用户输入了多条第一对话内容,且尚未响应的第一对话内容的数量大于第二预设数量,则对话生成模型可能无法实现对第一对话内容的响应,此时可以触发人工服务。
另外,预先训练的对话生成模型也可以部署在服务器;第一终端可以将第一对话内容发送给服务器;服务器在接收到第一对话内容后,能够基于第一对话内容,利用该预先训练的对话生成模型,得到第四对话内容,并将第四对话内容发送给第一终端;若第一终端监测到发送给服务器的第一对话内容中,未响应的第一对话内容的数量大于预设数量,则触发人工服务。
d2:针对执行对话方法的主体包括第二终端的情况,第二终端中部署有预先训练的对话生成模型;第二终端接收到第一对话内容后,能够基于第一对话内容,利用该预先训练的对话生成模型,得到第四对话内容;若第一用户输入了多条第一对话内容,且尚未响应的第一对话内容的数量大于预设数量,则对话生成模型可能无法实现对第一对话内容的响应,此时可以触发人工服务。
d3:针对执行对话方法的主体包括服务器的情况,服务器中可以部署有预先训练的对话生成模型;服务器接收到第一对话内容后,能够基于第一对话内容,利用该预先训练的对话生成模型,得到第四对话内容;若第一用户输入了多条第一对话内容,且尚未响应的第一对话内容的数量大于预设数量,则对话生成模型可能无法实现对第一对话内容的响应,此时可以触发人工服务。
在本公开另一实施例中,用于触发人工服务的第二条件包括:
(6):接收来自第二终端的第二人工服务指令。
此处,第二终端的第二人工服务指令,通常是第二用户主动触发的。
在该种情况下,执行对话方法的主体可以包括:服务器或者第二终端。
e1:针对执行对话方法的主体包括服务器的情况,服务器能够将当前第二终端的对话状态信息向第二终端发送,并由第二终端将各第一终端的对话状态信息展示给第二用户,由第二用户触发要接管哪一个第一终端的对话;第二用户触发要接管其中任一第一终端的对话后,第二终端会生成对应的第二人工服务指令,并将该第二人工服务指令发送给服务器;服务器在接收到第二人工服务指令后,将对应第一终端发送的第一对话内容发送给第二终端;第二终端将服务器发送的第一对话内容展示给的第二用户,并基于第二用户对第一对话内容的响应生成的第二对话内容,将生成的第一对话内容发送给服务器;服务器在接收到第二终端发送的第二对话内容后,基于第二对话内容,控制第一终端展示的虚拟对第一对话内容进行响应。
e2:针对执行对话方法的主体包括第二终端的情况,第二终端能够获取第一终端的对话状态信息,并将该对话状态信息展示给第二用户,由第二用户触发要接管与哪一个第一终端的对话;第二用户触发要接管其中任一第一终端的对话后,生成对应的第二人工服务指令,并基于该第二人工服务指令,将对应第一终端发送的第一对话内容展示给第二用户;第二用户能够对第一对话内容进行响应,生成第二对话内容,并基于第二对话内容,控制第一终端中的虚拟对象对第一对话内容进行响应。
在本公开另一实施例中,参见图2所示,本公开实施例还提供一种基于第二对话内容,控制虚拟对象对第一对话内容进行响应时的具体方法,包括:
S201:识别第二对话内容对应的驱动模式。
此处,在识别第二对话内容对应的驱动模式时,例如可以采用下述方式:根据第二对话内容的类型,获取第二对话内容对应的语音数据序列,语音数据序列包括多个语音数据单元;若检测到语音数据单元中包括目标数据,则确定第二对话内容的驱动模式为第一驱动模式,目标数据与虚拟对象的预设控制参数相对应。
其中,语音数据单元可以是以字或词为单位构成的,也可以是以音素或音节为单位构成的。对应于文本类型的,则可以第二对话内容对应的字序列、词序列等等;对应于音频类型的第二对话内容,则可以获得第二对话内容对应的音素序列、音节序列、语音帧序列等等,当然,音频数据和文本数据也可以互相转换,比如,将音频数据转换为文本数据之后再进行语音数据单元的划分,或者,将文本数据转换为音频数据之后再进行语音数据单元的划分,本公开对此并不限定。
在检测到语音数据单元中包括目标数据的情况下,则可以确定第二对话内容的驱动模式为第一驱动模式,目标数据与虚拟对象的预设控制参数相对应。目标数据可以是设置的关键词或关键字等等,关键词或关键字与虚拟对象的设定动作的预设控制参数相对应。
在本公开实施例中,预先为每一个目标数据匹配了设定动作,而每个设定动作通过相应的控制参数进行控制而实现,因而每个目标数据与设定动作的控制参数匹配。以关键词为“挥手”为例,在语音数据单元包含了文本形式的“挥手”,和/或语音形式的“挥手”的情况下,则可以确定第二对话内容中包含了目标数据。
示例性的,目标数据包括音节,音节与虚拟对象的设定嘴型动作的预设控制参数对应。
目标数据对应的音节属于预先划分好的一种音节类型,且一种音节类型与一种设定嘴型相匹配。其中,音节是由至少一个音素组合形成的语音单位,音节包括拼音语言的音节,和非拼音语言(例如,汉语)的音节。一种音节类型是指发音动作一致或者基本一致的音节,一种音节类型可与虚拟对象的一种动作对应,具体的,一种音节类型可与虚拟对象说话时的一种设定的嘴型对应,即与一种发音动作对应,这样,不同类型的音节分别匹配了设定的嘴型的控制参数,比如,拼音“ma”、“man”、“mang”这类型的音节,由于这类音节的发音动作基本一致,故可以视为同一类型,均可对应虚拟对象说话时“嘴巴张开”的嘴型的控制参数。
在未检测到语音数据单元中包括目标数据的情况下,则可以确定第二对话内容的驱动模式为第二驱动模式,目标数据与虚拟对象的预设控制参数相对应。
本领域技术人员应当理解,上述第一驱动模式和第二驱动模式仅用于示例,本公开实施例对于具体驱动模式不进行限定。
承接上述S201,本公开实施例提供的控制虚拟对象对第一对话内容进行响应的方法还包括:
S202:基于该驱动模式,根据第二对话内容获取虚拟对象的控制参数。
在具体实施中,对于第二对话内容的各种驱动模式,可以采用相应的方式获取虚拟对象的控制参数。
在一个示例中,响应于步骤201中确定的第一驱动模式,可以将目标数据对应的预设控制参数,作为虚拟对象的控制参数。例如,对于第一驱动模式,可以根据语音数据序列中包含的目标数据(比如“挥手”)所对应的预设控制参数,作为虚拟对象的控制参数。
在一个示例中,响应于步骤201中确定的第二驱动模式,则可以获取语音数据序列中的至少一个语音数据单元的特征信息;获取与特征信息对应的虚拟对象的控制参数。也即,在未检测到语音数据序列中包含目标数据的情况下,则可以语音数据单元的特征信息来获取对应的控制参数。特征信息可以包括对语音数据序列进行特征编码所获得的语音数据单元的特征信息、根据语音数据序列的声学特征信息所获得的语音数据单元的特征信息等等。
承接上述S202,本公开实施例提供的控制虚拟对象对第一对话内容进行响应的方法还包括:
S203:根据控制参数控制虚拟对象的姿态。
在一些实施例中,虚拟对象的控制参数包括面部姿态参数,面部姿态参数包括面部肌肉控制系数,用于控制至少一个面部肌肉的运动状态。在这种情况下,可以根据第二对话内容可以获取虚拟对象的面部肌肉控制系数;并根据所获取的面部肌肉控制系数,驱动虚拟对象做出与第二对话内容匹配的面部动作。
在一些实施例中,虚拟对象的控制参数包括虚拟对象的至少一个局部区域的控制向量。在这种情况下,根据第二对话内容获取虚拟对象的至少一个局部区域的控制向量;并根据所获取的至少一个局部区域的控制向量,控制虚拟对象的面部动作和/或肢体动作。
根据虚拟对象的第二对话内容的驱动模式,来获取虚拟对象的控制参数,以控制虚拟对象的姿态,对于不同的驱动模型可以通过不同的方式来获取相应的虚拟对象的控制参数,使得虚拟对象展示出与第二对话内容的内容和/或对应的语音匹配的姿态,从而使目标对象产生与虚拟对象正在交流的感觉,提升了目标对象的交互体验。
在一些实施例中,还可以根据第二对话内容控制第一终端输出语音和/或展示文本。并且可以在输出语音和/或文本的同时,根据控制参数控制虚拟对象的姿态。
在本公开实施例中,由于控制参数是与第二对话内容匹配的,因此根据第二对话内容输出的语音和/或文本,与根据控制参数控制虚拟对象的姿态是同步进行的情况下,虚拟对象所做出的姿态与输出的语音和/或文本是同步的,给目标对象以虚拟对象正在交流的感觉。
在一些实施例中,语音数据序列包括音素序列。响应于第二对话内容包括音频数据,可以通过将音频数据拆分为多个音频帧,根据音频帧的状态对音频帧进行组合而形成音素;根据音频数据所形成的各个音素则形成了音素序列。其中,音素是根据语音的自然属性划分出来的最小语音单元,真实人物一个发音动作能够形成一个音素。响应于第二对话内容为文本,可以根据文本中包含的语素,获得语素所包含的音素,从而获得相应的音素序列。
在一些实施例中,可以通过以下方式获取语音数据序列中的至少一个语音数据单元的特征信息:对音素序列进行特征编码,获得音素序列对应的第一编码序列;根据第一编码序列,获取至少一个音素对应的特征编码;根据特征编码,获得至少一个音素的特征信息。
图3示出对音素序列进行特征编码的过程示意图。如图3所示,音素序列310含音素j、i1、j、ie4(为简洁起见,只示出部分音素),针对每种音素j、i1、ie4分别获得与上述各音素分别对应的编码序列321、322、323。在各个编码序列中,在有音素的时间上对应的编码值为第一数值(例如为1),在没有音素的时间上对应的编码值为第二数值(例如为0)。以编码序列321为例,在音素序列310中有音素j的时间上,编码序列321的值为第一数值在没有音素j的时间上,编码序列321的值为第二数值。所有编码序列构成总编码序列320。
根据音素j、i1、ie4分别对应的编码序列321、322、323的编码值,以及该三个编码序列中对应的音素的持续时间,也即在编码序列321中j的持续时间、在编码序列322中i1的持续时间、在编码序列323中ie4的持续时间,可以获得编码序列321、322、323的特征信息。
例如,可以利用高斯滤波器对编码序列321、322、323中的音素j、i1、ie4在时间上的连续值进行高斯卷积操作,获得编码序列的特征信息。也即,通过高斯滤波器对于音素的0-1的时间上的连续值进行高斯卷积操作,使得各个编码序列中编码值从第二数值到第一数值或者从第一数值到第二数值的变化阶段变得平滑。对各个编码序列321、322、323分别进行高斯卷积操作,从而获得各个编码序列的特征值,其中,特征值为构成特征信息中参数,根据各个编码序列的特征信息的集合,则获得了该音素序列310所对应的特征信息330。本领域技术人员应当理解,也可以对各个编码序列进行其他的操作来获得编码序列的特征信息,本公开对此不进行限制。
在本公开实施例中,通过根据音素序列中每个音素的持续时间获得编码序列的特征信息,使得编码序列的变化阶段平滑,例如,编码序列的值除了0和1也呈现出中间状态的值,例如0.2、0.3等等,而根据这些中间状态的值所获取的姿态参数值,使得虚拟对象的姿态变化过度的更加平缓、自然,尤其是虚拟对象的表情变化更加平缓、自然,提高了目标对象的交互体验。
在一些实施例中,面部姿态参数可以包括面部肌肉控制系数。
人脸的运动,从解剖学角度来看,是由面部各部分肌肉协同变形的结果。因此,通过对虚拟对象的面部肌肉进行划分而获得面部肌肉模型,对划分得到的每一块肌肉(区域)通过对应的面部肌肉控制系数控制其运动,也即对其进行收缩/扩张控制,则能够使虚拟对象的面部做出各种表情。对于面部肌肉模型的每一块肌肉,可以根据肌肉所在的面部位置和肌肉自身的运动特征,来设置不同的肌肉控制系数所对应的运动状态。例如,对于上唇肌肉,其控制系数的数值范围为(0~1),在该范围内的不同数值,对应于上唇肌肉不同的收缩/扩张状态,通过改变该数值,可以实现嘴部的纵向开合;而对于左嘴角肌肉,其控制系数的数值范围为(0~1),在该范围内的不同数值,对应于左嘴角肌肉的收缩/扩张状态,通过改变该数值,可以实现嘴部的横向变化。
在根据音素序列输出声音的同时,根据与音素序列对应的面部肌肉控制系数来驱动虚拟对象做出面部表情,则可以实现第一终端在输出声音的同时,虚拟对象同步做出发出该声音时的表情,从而使目标对象产生该虚拟对象正在说话的感觉,提高了目标对象的交互体验。
在一些实施例中,可以将虚拟对象的面部动作与身体姿态相关联,也即将该面部动作所对应的面部姿态参数值与身体姿态相关联,身体姿态可以包括肢体动作、手势动作、走路姿态等等。
在虚拟对象的驱动过程中,获取与面部姿态参数值关联的身体姿态的第二对话内容;在根据音素序列输出声音的同时,根据与面部姿态参数值关联的身体姿态的第二对话内容,驱动虚拟对象做出肢体动作。也即,在根据虚拟对象的第二对话内容驱动虚拟对象做出面部动作的同时,还根据该面部动作对应的面部姿态参数值获取相关联的身体姿态的第二对话内容,从而在输出声音的同时,可以驱动虚拟对象同时做出相应的面部动作和肢体动作,使虚拟对象的说话状态更加生动自然,提高了目标对象的交互体验。
由于声音的输出需要保持连续性,因此可以通过在音素序列上进行移动时间窗口的方式输出在每次移动过程中时间窗口内的音素,并以设定时长作为每次滑动时间窗口的步长。例如,可以将时间窗口的长度设置为1秒,将设定时长设置为0.1秒。在输出时间窗口内的音素的同时,获取时间窗口设定位置处的音素或音素的特征信息所对应的姿态参数值,利用姿态参数值控制虚拟对象的姿态;随着时间窗口的每次移动,在输出时间窗口内的音素同时,都以时间窗口设定位置处对应的姿态参数值控制虚拟对象的姿态,从而使虚拟对象的姿态与输出的语音同步,给目标对象以虚拟对象正在说话的感觉。
通过改变设定时长,可以改变获取姿态参数的时间间隔(频率),从而改变了虚拟对象做出姿态的频率。可以根据实际的交互场景来设置该设定时长,以使虚拟对象的姿态变化更加自然。
在一些实施例中,可以通过获取虚拟对象的至少一个局部区域的控制向量控制虚拟对象的姿态。
局部区域是对虚拟对象的整体(包括面部和/或身体)进行划分而得到的。面部的其中一个局部区域可以对应于虚拟对象的一系列面部表情或动作,例如眼部区域可以对应于虚拟对象睁眼、闭眼、眨眼、视角变换等面部动作;又例如嘴部区域对应于虚拟对象闭嘴、不同程度的张嘴等面部动作。而身体的其中一个局部区域可以对应于虚拟对象的一系列肢体动作,例如腿部区域可以对应于虚拟对象走路、跳跃、踢腿等动作。
虚拟对象的局部区域的控制参数,包括局部区域的控制向量。每个局部区域的姿态控制向量用于驱动虚拟对象的局部区域进行动作。不同的控制向量值对应于不同的动作或者动作幅度。例如,对于嘴部区域的控制向量,其一组控制向量值可以使虚拟对象的嘴部微张,而另一组控制向量值可以使虚拟对象的嘴部大张。通过以不同的控制向量值来驱动虚拟对象,可以使相应的局部区域做出不同动作或者不同幅度的动作。
局部区域可以根据需要控制的虚拟对象的动作进行选择,例如在需要控制虚拟对象面部以及肢体同时进行动作时,可以获取全部局部区域的控制向量;在需要控制虚拟对象的表情时,则可以获取面部所对应的局部区域的控制向量。
在一些实施例中,可以通过在第一编码序列上进行滑窗的方式获取至少一个音素对应的特征编码。其中,第一编码序列可以是经过高斯卷积操作后的编码序列。
以设定长度的时间窗口和设定步长,对编码序列进行滑窗,将时间窗口内的特征编码作为所对应的至少一个音素的特征编码,在完成滑窗后,根据得到的多个特征编码,则可以获得第二编序列。如图4所示,通过在第一编码序列420或者平滑后的第一编码序列440上,滑动设定长度的时间窗口,分别获得特征编码1、特征编码2、特征编码3,以此类推,在遍历第一编码序列后,获得特征编码1、2、3、…、M,从而得到了第二编码序列440。其中,M为正整数,其数值根据第一编码序列的长度、时间窗口的长度以及时间窗口滑动的步长确定。
根据特征编码1、2、3、…、M,分别可以获得相应的控制向量1、2、3、…、M,从而获得控制向量的序列450。
控制向量的序列450与第二编码序列440在时间上是对齐的,由于第二编码序列中的每个编码特征是根据音素序列中的至少一个音素获得的,因此控制向量的序列450中的每个特征向量同样是根据音素序列中的至少一个音素获得的。在播放文本数据所对应的音素序列的同时,根据控制向量的序列驱动虚拟对象做出动作,即能够实现驱动虚拟对象发出文本内容所对应的声音的同时,做出与声音同步的动作,给目标对象以虚拟对象正在说话的感觉,提升了目标对象的交互体验。
假设在第一个时间窗口的设定时刻开始输出编码特征,可以将在设定时刻之前的控制向量设置为默认值,也即在刚开始播放音素序列时,使虚拟对象做出默认的动作,在设定时刻之后开始利用根据第一编码序列所得到的控制向量的序列驱动虚拟对象做出动作。以图4为例,在t0时刻开始输出编码特征1,在t0时刻之前对应的是默认控制向量。
时间窗口的时长,与编码特征所包含的信息量相关。在时间窗口所含的信息量较大的情况下,经循环神经网络处理会输出较均匀的结果。若时间窗口过大,可能导致虚拟对象说话时表情无法与部分字对应;若时间窗口过小,可能导致虚拟对象说话时表情显得生硬。因此,时间窗口的时长需要根据文本数据所对应的音素持续的最小时间来确定,以使驱动虚拟对象所做出的动作与声音具有更强的关联性。
进行滑窗的步长与获取控制向量的时间间隔(频率)相关,也即与驱动虚拟对象做出动作的频率相关。可以根据实际的交互场景来设置该设定时间窗口的时长以及步长,以使虚拟对象做出的表情和动作与声音的关联性更强,并且更加生动、自然。
在一些实施例中,在音素序列中音素之间的时间间隔大于设定阈值的情况下,根据局部区域的设定控制向量,驱动虚拟对象做出动作。也即,在虚拟对象说话停顿较长的时候,则驱动虚拟对象做出设定的动作。例如,在输出的声音停顿较大时,可以使虚拟对象做出微笑的表情,或者做出身体微微的摆动,以避免在停顿较长时虚拟对象面无表情地直立,使得虚拟对象说话的过程自然、流畅,提高目标对象的交互感受。
在一些实施例中,语音数据序列包括语音帧序列,获取语音数据序列中的至少一个语音数据单元的特征信息,包括:获取语音帧序列对应的第一声学特征序列,第一声学特征序列包括与语音帧序列中的每个语音帧对应的声学特征向量;根据第一声学特征序列,获取至少一个语音帧对应的声学特征向量;根据声学特征向量,获得至少一个语音帧对应的特征信息。
在本公开实施例中,可以根据语音帧序列的声学特征,确定虚拟对象的至少一个局部区域的控制参数,也可以根据语音帧序列的其他特征来确定控制参数。
首先,获取语音帧序列对应的声学特征序列。此处,为了与后续提到的声学特征序列进行区分,将语音帧序列对应的声学特征序列称为第一声学特征序列。在本公开实施例中,声学特征可以是与语音情感相关的特征,例如基频特征、共峰特征、梅尔频率倒谱系数(Mel Frequency Cofficient,MFCC)等等。第一声学特征序列是对整体的语音帧序列进行处理所得到的,以MFCC特征为例,可以通过对语音帧序列中的各个语音帧进行加窗、快速傅里叶变换、滤波、对数处理、离散余弦处理后,得到各个语音帧对应的MFCC系数。第一声学特征序列是针对整体的语音帧序列进行处理所得到的,体现了语音数据序列的整体声学特征。
在本公开实施例中,第一特征序列包含与语音帧序列中的每个语音帧对应的声学特征向量。以MFCC为例,第一特征序列包含了每个语音帧的MFCC系数。根据语音帧所获得的第一声学特征序列如图5所示。
接下来,根据第一声学特征序列,获取至少一个语音帧对应的声学特征。其中,在第一声学特征序列包括了语音帧序列中的每个语音帧对应的声学特征向量的情况下,可以将至少一个语音帧对应的相同数目的特征向量作为语音帧的声学特征。其中,上述相同数目的特征向量可以形成一个特征矩阵,一特征矩阵即为至少一个语音帧的声学特征。
以图5为例,第一声学特征序列中的N个特征向量形成了所对应的N个语音帧的声学特征。第一声学特征矩阵可以包括多个声学特征,各个声学特征所对应的语音帧之间可以是重叠的。
最后,获取声学特征对应的虚拟对象的至少一个局部区域的控制向量。
对于所获得的至少一个语音帧对应的声学特征,可以获取至少一个局部区域的控制向量。局部区域可以根据需要控制的虚拟对象的动作进行选择,例如在需要控制虚拟对象面部以及肢体同时进行动作时,可以获取全部局部区域的控制向量;在需要控制虚拟对象的表情时,则可以获取面部所对应的局部区域的控制向量。
在播放语音数据序列的同时,根据通过第一声学特征序列所获得的各个声学特征对应的控制向量驱动虚拟对象做出动作,则可以实现终端设备在输出声音的同时,虚拟对象做出与所输出的声音相配合的动作,包括面部动作、表情以及肢体动作等,从而使目标对象产生该虚拟对象正在说话的感觉;并且由于控制向量是与输出声音的声学特征相关的,根据控制向量进行驱动使得虚拟对象的表情和肢体动作具有了情感因素,使得虚拟对象的说话过程更加自然、生动,从而提高了目标对象的交互体验。
在一些实施例中,可以通过在第一声学特征序列上进行滑窗的方式获取至少一个语音帧对应的声学特征。
通过以设定长度的时间窗口和设定步长,对第一声学特征序列进行滑窗,将时间窗口内的声学特征向量作为对应的相同数目语音帧的声学特征,则可以获得这些语音帧共同对应的声学特征。在完成滑窗后,根据得到的多个声学特征,则可以获得第二声学特征序列。
以图5所示的虚拟对象的驱动方法为例,语音帧序列每秒包括100个语音帧,时间窗口的长度为1s,步长为0.04s。由于第一声学特征序列中的每个特征向量是与语音帧对应的,相应地,第一声学特征序列每秒同样包括100个特征向量。在第一声学特征序列上进行滑窗过程中,每次获得时间窗口内的100个特征向量,作为对应的100个语音帧的声学特征。通过在第一声学特征序列上以0.04s的步长移动时间窗口,分别获得第1~100语音帧对应的声学特征1、第4~104语音帧所对应的声学特征2,以此类推,在遍历第一声学特征后,得到声学特征1、2、…、M,从而获得第二声学特征序列,其中,M为正整数,其数值根据语音帧序的帧数(第一声学特征序列中特征向量的数目)、时间窗口的长度以及步长确定。根据声学特征1、2、…、M,分别可以获得相应的控制向量1、2、…、M,从而获得控制向量的序列。
如图5所示,控制向量的序列与第二声学特征序列在时间上是对齐的,第二声学特征序列中的声学特征1、2、…、M,分别是根据第一声学特征序列中的N个声学特征获得的,因此,在播放语音帧的同时,可以根据控制向量的序列驱动虚拟对象做出动作。
假设在第一个时间窗口的设定时刻开始输出声学特征,可以将在设定时刻之前的控制向量设置为默认值,也即在刚开始播放语音帧序列时,使虚拟对象做出默认的动作,在设定时刻之后开始利用根据第一声学特征序列所得到的控制向量的序列驱动虚拟对象做出动作。
以图5为例,在t0时刻开始输出声学特征1,并以步长对应的时间0.04s为间隔输出声学特征,在t1时刻开始输出声学特征2,t2时刻开始输出声学特征3,直至在t(M-1)时刻输出声学特征M。对应地,在ti~t(i+1)时间段内对应的是特征向量(i+1),其中,i为小于(M-1)的整数,而在t0时刻之间,对应的是默认控制向量。
在本公开实施例中,通过在播放语音数据序列的同时,根据控制向量的序列驱动虚拟对象做出动作,从而使虚拟对象的动作与所输出的声音同步,给目标对象以虚拟对象正在说话的感觉,提升了目标对象的交互体验。
时间窗口的时长,与声学特征所包含的信息量相关。时间窗口的时长越大,所包含的信息量越多,驱动虚拟对象所做出的动作与声音的关联性越强。进行滑窗的步长与获取控制向量的时间间隔(频率)相关,也即与驱动虚拟对象做出动作的频率相关。可以根据实际的交互场景来设置该设定时间窗口的时长以及步长,以使虚拟对象做出的表情和动作与声音的关联性更强,并且更加生动、自然。
在一些实施例中,声学特征包括L个维度的梅尔倒谱系数,其中,L为正整数。MFCC表示语音信号的能量在不同频率范围的分布,可以通过将语音帧序列中的多个语音帧数据转换至频域,利用包括L个子带的梅尔滤波器,获得L个维度的MFCC。通过根据语音数据序列的MFCC来获取控制向量,以根据控制向量驱动虚拟对象进行面部动作和肢体动作,使得虚拟对象的表情和肢体动作具有了情感因素,使得虚拟对象的说话过程更加自然、生动,从而提高了目标对象的交互体验。
在一些实施例中,可以将语音数据单元的特征信息输入至循环神经网络,获得与特征信息对应的虚拟对象的控制参数。由于循环神经网络是一种时间递归神经网络,其可以学习所输入的特征信息的历史信息,根据语音单元序列输出控制参数,例如面部姿态控制参数,或者至少一个局部区域的控制向量。
在本公开实施例中,利用预先训练的循环神经网络获取语音数据单元的特征信息对应的控制参数,将历史特征信息和当前特征信息进行融合,从而使得历史控制参数对当前控制参数的变化产生影响,使得虚拟对象的表情变化和肢体动作更加平缓、自然。
在一些实施例中,可以通过以下方式对循环卷积神经网络进行训练。
首先,获取特征信息样本。例如,可以通过以下方式获取特征信息样本。从获取的视频段中提取参考对象的语音段;对视频段进行采样获取多个包含参考对象的第一图像帧;以及,对语音段进行采样,获得多个语音帧;根据与第一图像帧对应的语音帧所包含的语音数据单元,获取语音帧对应的特征信息;将第一图像帧转化为包含虚拟对象的第二图像帧,获取第二图像帧对应的虚拟对象的控制参数。根据控制参数,对与第一图像帧对应的特征信息进行标注,获得特征信息样本。
在一些实施例中,特征信息包括音素的特征编码,控制参数包括面部肌肉控制系数。对应于上述获取特征信息样本的方法,利用所获得的面部肌肉控制系数,对与第一图像帧对应的音素的特征编码进行标注,则获得了音素的特征编码对应的特征信息样本。
在一些实施例中,特征信息包括音素的特征编码,控制参数包括虚拟对象的至少一个局部的控制向量。对应于上述获取特征信息样本的方法,利用所获得的至少一个局部的控制向量,对与第一图像帧对应的音素的特征编码进行标注,则获得了音素的特征编码对应的特征信息样本。
在一些实施例中,特征信息包括语音帧的声学特征,控制参数包括虚拟对象的至少一个局部的控制向量。对应于上述获取特征信息样本的方法,利用所获得的至少一个局部的控制向量,对与第一图像帧对应的语音帧的声学特征进行标注,则获得了语音帧的声学特征对应的特征信息样本。
本领域技术人员应当理解,特征信息样本不限于以上,对应于各个类型的语音数据单元的各种特征,可以获得相应的特征信息样本。
在获得特征信息样本后,根据特征信息样本对初始循环神经网络进行训练,在网络损失的变化满足收敛条件后训练得到循环神经网络,其中,网络损失包括初始循环神经网络预测得到的控制参数与标注的控制参数之间的差异。
在本公开实施例中,通过将一角色的视频段,拆分为对应的多个第一图像帧和多个语音帧,通过将包含真实角色的第一图像帧转化为包含虚拟对象的第二图像帧来获取至少一个语音帧的特征信息对应的控制参数,使得特征信息与控制参数的对应性好,从而获得高质量的特征信息样本,使得虚拟对象的姿态更接近于对应角色的真实姿态。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与对话方法对应的对话装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述对话方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图6所示,为本公开实施例提供的一种对话装置的示意图,所述装置包括:第一获取模块61,用于获取来自第一终端的第一用户的第一对话内容;第二获取模块62,用于获取来自第二终端的第二用户的第二对话内容,所述第二对话内容包括对所述第一对话内容的响应内容;控制模块63,用于基于所述第二对话内容,控制所述第一终端展示的虚拟对象对所述第一对话内容进行响应。
一种可能的实施方式中,所述用于触发人工服务的第一条件包括以下条件中的任一种:接收来自所述第一终端的第一人工服务指令;接收来自所述第一终端的用于指示触发人工服务的第三对话内容;对所述第一终端的第一对话内容的响应时间大于预设的时间阈值;当前处于对话状态的第一终端的数量大于预设数量;所述第一终端的尚未响应的第一对话内容的数量大于预设数量。
一种可能的实施方式中,所述用于触发人工服务的第二条件包括:接收来自所述第二终端的第二人工服务指令。
一种可能的实施方式中,还包括:响应模块64,用于利用预先训练的对话生成模型,基于所述第一对话内容,得到第四对话内容;基于所述第四对话内容,控制所述第一终端展示的虚拟对象对所述第一对话内容进行响应。
一种可能的实施方式中,响应模块64,在利用预先训练的对话生成模型,基于所述第一对话内容,得到第四对话内容之前,还用于:检测所述第一终端的对话状态是否满足触发人工服务的条件;在所述第一终端的对话状态不满足触发人工服务的条件的情况下,利用预先训练的对话生成模型,基于所述第一对话内容,得到第四对话内容。
一种可能的实施方式中,所述控制模块63,在基于所述第二对话内容,控制所述第一终端展示的虚拟对象对所述第一对话内容进行响应时,用于:识别第二对话内容对应的驱动模式;基于该驱动模式,根据第二对话内容获取虚拟对象的控制参数;根据所述控制参数控制所述虚拟对象的姿态。
一种可能的实施方式中,所述控制模块63,还用于根据所述第二对话内容控制所述第一终端输出语音和/或展示文本。
一种可能的实施方式中,所述控制模块63,在识别所述第二对话内容对应的驱动模式时,用于:根据所述第二对话内容的类型,获取所述第二对话内容对应的语音数据序列,所述语音数据序列包括多个语音数据单元;若检测到所述语音数据单元中包括目标数据,则确定所述第二对话内容的驱动模式为第一驱动模式,所述目标数据与虚拟对象的预设控制参数相对应;所述控制模块63,在响应于所述驱动模式,根据所述第二对话内容获取所述虚拟对象的控制参数时,用于:响应于所述第一驱动模式,将所述目标数据对应的所述预设控制参数,作为所述虚拟对象的控制参数。
一种可能的实施方式中,所述目标数据包括关键词或关键字,所述关键词或所述关键字与虚拟对象的设定动作的预设控制参数相对应;或者,所述目标数据包括音节,所述音节与所述虚拟对象的设定嘴型动作的预设控制参数对应。
一种可能的实施方式中,所述控制模块63,在识别所述第二对话内容对应的驱动模式时,用于:根据所述第二对话内容的类型,获取所述第二对话内容对应的语音数据序列,所述语音数据序列包括多个语音数据单元;若未检测到所述语音数据单元中包括目标数据,则确定所述第二对话内容的驱动模式为第二驱动模式,所述目标数据与虚拟对象的预设控制参数相对应;所述控制模块63,在响应于所述驱动模式,根据所述第二对话内容获取所述虚拟对象的控制参数时,用于:响应于所述第二驱动模式,获取所述语音数据序列中的至少一个语音数据单元的特征信息;获取与所述特征信息对应的所述虚拟对象的控制参数。
一种可能的实施方式中,所述语音数据序列包括音素序列,所述控制模块63,在获取所述语音数据序列中的至少一个语音数据单元的特征信息时,用于:对所述音素序列进行特征编码,获得所述音素序列对应的第一编码序列;根据所述第一编码序列,获取至少一个音素对应的特征编码;根据所述特征编码,获得所述至少一个音素的特征信息。
一种可能的实施方式中,所述语音数据序列包括语音帧序列,所述控制模块63,在获取所述语音数据序列中的至少一个语音数据单元的特征信息,时,用于:获取所述语音帧序列对应的第一声学特征序列,所述第一声学特征序列包括与所述语音帧序列中的每个语音帧对应的声学特征向量;根据所述第一声学特征序列,获取至少一个语音帧对应的声学特征向量;根据所述声学特征向量,获得所述至少一个语音帧对应的特征信息。
一种可能的实施方式中,所述虚拟对象的控制参数包括面部姿态参数,所述面部姿态参数包括面部肌肉控制系数,用于控制至少一个面部肌肉的运动状态;所述控制模块63,在根据所述第二对话内容获取所述虚拟对象的控制参数时,用于:根据所述第二对话内容获取所述虚拟对象的面部肌肉控制系数;所述控制模块63,在根据所述控制参数控制所述虚拟对象的姿态时,用于:根据所获取的面部肌肉控制系数,驱动所述虚拟对象做出与所述第二对话内容匹配的面部动作。
一种可能的实施方式中,所述控制模块63,还用于:获取与所述面部姿态参数关联的身体姿态的第二对话内容;根据与所述面部姿态参数值关联的身体姿态的第二对话内容,驱动所述虚拟对象做出肢体动作。
一种可能的实施方式中,所述虚拟对象的控制参数包括所述虚拟对象的至少一个局部区域的控制向量;所述控制模块63,在根据所述第二对话内容获取所述虚拟对象的控制参数时,用于:根据所述第二对话内容获取所述虚拟对象的至少一个局部区域的控制向量;所述控制模块63,在根据所述控制参数控制所述虚拟对象的姿态时,用于:根据所获取的所述至少一个局部区域的控制向量,控制所述虚拟对象的面部动作和/或肢体动作。
一种可能的实施方式中,所述控制模块63,在获取与所述特征信息对应的所述虚拟对象的控制参数时,用于:将所述特征信息输入至循环神经网络,获得与所述特征信息对应的所述虚拟对象的控制参数。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
本公开实施例还提供了一种计算机设备,如图7所示,为本公开实施例提供的计算机设备结构示意图,包括:
处理器71和存储器72;所述存储器72存储有处理器71可执行的机器可读指令,处理器71用于执行存储器72中存储的机器可读指令,所述机器可读指令被处理器71执行时,处理器71执行下述步骤:获取来自第一终端的第一用户的第一对话内容;获取来自第二终端的第二用户的第二对话内容,所述第二对话内容包括对所述第一对话内容的响应内容;基于所述第二对话内容,控制所述第一终端展示的虚拟对象对所述第一对话内容进行响应。
上述存储器72包括内存721和外部存储器722;这里的内存721也称内存储器,用于暂时存放处理器71中的运算数据,以及与硬盘等外部存储器722交换的数据,处理器71通过内存721与外部存储器722进行数据交换。
上述指令的具体执行过程可以参考本公开实施例中所述的对话方法的步骤,此处不再赘述。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的对话方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例所提供的对话方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的对话方法的步骤,具体可参见上述方法实施例,在此不再赘述。其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种对话方法,其特征在于,所述对话方法包括:
获取来自第一终端的第一用户的第一对话内容;
获取来自第二终端的第二用户的第二对话内容,所述第二对话内容包括对所述第一对话内容的响应内容;
基于所述第二对话内容,控制所述第一终端展示的虚拟对象对所述第一对话内容进行响应。
2.根据权利要求1所述的对话方法,其特征在于,在获取来自第二终端的第二用户的第二对话内容之前,所述方法还包括:
检测到所述第一终端的对话状态满足用于触发人工服务的第一条件;和/或,检测到所述第二终端的对话状态满足用于触发人工服务的第二条件。
3.根据权利要求2所述的对话方法,其特征在于,所述用于触发人工服务的第一条件包括以下条件中的任一种:
接收来自所述第一终端的第一人工服务指令;
接收来自所述第一终端的用于指示触发人工服务的第三对话内容;
对所述第一终端的第一对话内容的响应时间大于预设的时间阈值;
当前处于对话状态的第一终端的数量大于第一预设数量;
所述第一终端的尚未响应的第一对话内容的数量大于第二预设数量。
4.根据权利要求2或3所述的对话方法,其特征在于,所述用于触发人工服务的第二条件包括:
接收来自所述第二终端的第二人工服务指令。
5.根据权利要求1-4任一项所述的对话方法,其特征在于,所述对话方法还包括:
利用预先训练的对话生成模型,基于所述第一对话内容,得到第四对话内容;
基于所述第四对话内容,控制所述第一终端展示的虚拟对象对所述第一对话内容进行响应。
6.根据权利要求5所述的对话方法,其特征在于,所述利用预先训练的对话生成模型,基于所述第一对话内容,得到第四对话内容之前,还包括:
检测到所述第一终端的对话状态不满足触发人工服务的条件。
7.根据权利要求1-6任一项所述的对话方法,其特征在于,所述基于所述第二对话内容,控制所述第一终端展示的虚拟对象对所述第一对话内容进行响应,包括:
识别第二对话内容对应的驱动模式;
基于该驱动模式,根据第二对话内容获取虚拟对象的控制参数;
根据所述控制参数控制所述虚拟对象的姿态。
8.一种对话装置,其特征在于,所述对话装置包括:
第一获取模块,用于获取来自第一终端的第一用户的第一对话内容;
第二获取模块,用于获取来自第二终端的第二用户的第二对话内容,所述第二对话内容包括对所述第一对话内容的响应内容;
控制模块,用于基于所述第二对话内容,控制所述第一终端展示的虚拟对象对所述第一对话内容进行响应。
9.一种计算机设备,其特征在于,包括:处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时,所述处理器执行如权利要求1至7任一项所述的对话方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被计算机设备运行时,所述计算机设备执行如权利要求1至7任意一项所述的对话方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011632454.2A CN112632262A (zh) | 2020-12-31 | 2020-12-31 | 一种对话方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011632454.2A CN112632262A (zh) | 2020-12-31 | 2020-12-31 | 一种对话方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112632262A true CN112632262A (zh) | 2021-04-09 |
Family
ID=75289886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011632454.2A Pending CN112632262A (zh) | 2020-12-31 | 2020-12-31 | 一种对话方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112632262A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113077535A (zh) * | 2021-04-16 | 2021-07-06 | 深圳追一科技有限公司 | 模型训练、嘴部动作参数获取方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110413841A (zh) * | 2019-06-13 | 2019-11-05 | 深圳追一科技有限公司 | 多态交互方法、装置、***、电子设备及存储介质 |
US20200004245A1 (en) * | 2018-06-29 | 2020-01-02 | Ford Global Technologies, Llc | Handling rider service at autonomous vehicles |
CN111062728A (zh) * | 2018-10-17 | 2020-04-24 | 阿里巴巴集团控股有限公司 | 人工在线咨询的排队优化方法及其装置 |
CN112100352A (zh) * | 2020-09-14 | 2020-12-18 | 北京百度网讯科技有限公司 | 与虚拟对象的对话方法、装置、客户端及存储介质 |
-
2020
- 2020-12-31 CN CN202011632454.2A patent/CN112632262A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200004245A1 (en) * | 2018-06-29 | 2020-01-02 | Ford Global Technologies, Llc | Handling rider service at autonomous vehicles |
CN111062728A (zh) * | 2018-10-17 | 2020-04-24 | 阿里巴巴集团控股有限公司 | 人工在线咨询的排队优化方法及其装置 |
CN110413841A (zh) * | 2019-06-13 | 2019-11-05 | 深圳追一科技有限公司 | 多态交互方法、装置、***、电子设备及存储介质 |
CN112100352A (zh) * | 2020-09-14 | 2020-12-18 | 北京百度网讯科技有限公司 | 与虚拟对象的对话方法、装置、客户端及存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113077535A (zh) * | 2021-04-16 | 2021-07-06 | 深圳追一科技有限公司 | 模型训练、嘴部动作参数获取方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021169431A1 (zh) | 交互方法、装置、电子设备以及存储介质 | |
CN110688911B (zh) | 视频处理方法、装置、***、终端设备及存储介质 | |
CN110609620B (zh) | 基于虚拟形象的人机交互方法、装置及电子设备 | |
JP7227395B2 (ja) | インタラクティブ対象の駆動方法、装置、デバイス、及び記憶媒体 | |
CN111459454B (zh) | 交互对象的驱动方法、装置、设备以及存储介质 | |
CN111459450A (zh) | 交互对象的驱动方法、装置、设备以及存储介质 | |
US20230082830A1 (en) | Method and apparatus for driving digital human, and electronic device | |
CN113689879B (zh) | 实时驱动虚拟人的方法、装置、电子设备及介质 | |
CN113067953A (zh) | 客户服务方法、***、装置、服务器及存储介质 | |
KR102174922B1 (ko) | 사용자의 감정 또는 의도를 반영한 대화형 수어-음성 번역 장치 및 음성-수어 번역 장치 | |
CN110162598B (zh) | 一种数据处理方法和装置、一种用于数据处理的装置 | |
CN110139021B (zh) | 辅助拍摄方法及终端设备 | |
CN114995636A (zh) | 多模态交互方法以及装置 | |
CN117275485B (zh) | 一种音视频的生成方法、装置、设备及存储介质 | |
WO2021232877A1 (zh) | 实时驱动虚拟人的方法、装置、电子设备及介质 | |
CN113314104A (zh) | 交互对象驱动和音素处理方法、装置、设备以及存储介质 | |
CN112632262A (zh) | 一种对话方法、装置、计算机设备及存储介质 | |
CN116009692A (zh) | 虚拟人物交互策略确定方法以及装置 | |
CN114155849A (zh) | 一种虚拟对象的处理方法、装置和介质 | |
CN110166844B (zh) | 一种数据处理方法和装置、一种用于数据处理的装置 | |
CN110718119A (zh) | 基于儿童专用穿戴智能设备的教育能力支持方法及*** | |
CN116843805B (zh) | 一种包含行为的虚拟形象生成方法、装置、设备及介质 | |
CN117036556A (zh) | 虚拟形象驱动方法、装置及机器人 | |
Gjaci | Comunicazione Non Verbale Culturalmente Competente Basata Su Generative Adversarial Networks | |
CN114093341A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210409 |
|
RJ01 | Rejection of invention patent application after publication |