1.本技术涉及语音语义的技术领域,特别是涉及一种自适应语音对话方法、系统、计算机设备和存储介质。
背景技术:2.目前来说,语音对话系统是自然度较高的人机交互系统之一。随着智能客服、智能音响、智能家电的加速普及,机器与人的对话已经是人工智能技术重要的落地方式之一。人与人的沟通不仅仅是语言信息的交流,更体现出对话双方说话习惯、情绪等多方面的表达。若对话双方在一段对话中表达方式甚至是情感上达到共鸣,可以快速拉进对话双方的关系。为了提升语音对话系统的自然度和情感表达,现有方法中主要通过韵律、基音频率、频谱参数等相关参数的调整使得合成语音能表达出高兴、愤怒、悲伤等情感,但是这种情感划分的颗粒度较大,不能紧密贴合对话人的情感需求。另一方面,对话过程中,人的情绪是动态变化的,现有方法合成的语音一成不变的情感类型难以适配这种动态变化。
3.因此,能够根据用户各项属性预测用户喜爱的音库并在对话过程中针对用户情绪变化或者需求变化动态调整合成语音的情感特征的语音对话系统是高自然度、高人性化的实施方案之一。
技术实现要素:4.为了解决上述问题,本发明提出了,
5.一种自适应语音对话方法,方法包括:
6.获取目标用户的用户画像,提取该目标用户的所有用户固有属性,将所有用户固有属性数值化为用户固有属性向量;
7.接收目标用户的用户语音,提取用户语音对应的声学参数,获取当前的用户情绪,将当前用户情绪数值化为当前的用户情绪向量;
8.识别用户语音的当前语音内容,数值化为当前的词向量;
9.拼接当前的用户情绪向量和用户固有属性向量,形成当前的用户属性向量,存储当前的用户属性向量和当前的词向量,并配置时间标签;
10.截取一段时间内的用户属性向量和词向量,获取时间相关用户属性向量和时间相关词向量,时间相关用户属性向量包括用户情绪变化,时间相关词向量包括用户意图;
11.根据时间相关词向量,生成当前对话文本;
12.根据时间相关用户属性向量,生成目标用户对应的音库及合成参数,根据当前对话文本,输出合成语音。
13.一个实施例中,在获取目标用户的用户画像之前,方法还包括:
14.构建训练模型,训练模型包括训练语音库和模块单元,模块单元至少包括用户情绪获取模块、匹配模块、语音识别模块、语义理解模块、话术生成模块和多音库语音合成模块;
15.其中,构建训练语音库的方法包括:
16.按照用户固有属性对所有样本用户进行分类;
17.从每一音库中随机选取若干条语音构成测试集;
18.每个样本用户确定最优音库及合成参数,合成参数包括语速、音高和音量,获取最优音库及合成参数作为该样本用户的用户标注;
19.采集样本用户的多条语音以及当前情绪状态,将样本用户的用户和用户固有属性组成样本用户的用户属性;
20.构建包含多条训练数据的训练语音库,每条训练数据包括每个样本用户的语音、用户属性以及用户标注。
21.一个实施例中,构建用户情绪获取模块的方法包括:
22.构建包括一层输入层、三个残差模块和一层输出层的用户情绪获取模型,其中每个残差模块由三层卷积网络构成,选取训练语音库中样本用户的语音,使用声码器提取语音的声学参数作为模型输入,将样本用户每条语音对应的用户属性中的用户情绪数值化为用户情绪向量作为模型输出,使用优化器迭代训练至收敛。
23.一个实施例中,构建匹配模块的方法包括:数值化样本用户的用户属性为用户属性向量,以用户属性向量作为输入,以样本用户选择的最优音库及合成参数作为输出,使用优化器迭代训练至收敛。
24.一个实施例中,存储当前的用户属性向量和当前的词向量,并配置时间标签,包括:
25.以队列形式构建存储区,将当前的用户属性向量和当前的词向量均配置时间标签,存储入队列。
26.一个实施例中,截取一段时间内的用户属性向量和词向量,获取时间相关用户属性向量和时间相关词向量,,包括:
27.以时间为轴,从当前时间t1开始,向前截取时间t2内的所有用户属性向量和词向量;
28.依据标签时间与当前时间t1的远近加权后获取时间相关用户属性向量和时间相关词向量。
29.一个实施例中,方法还包括:
30.对同一目标用户的语音对话,仅获取一次用户固有属性向量,且不改变已选择的音库,合成参数根据用户属性中的用户情绪的变化实时调整。
31.一种自适应语音对话系统,系统包括:
32.用户固有属性获取模块,用于获取目标用户的用户画像,提取该目标用户的所有用户固有属性,将所有用户固有属性数值化为用户固有属性向量;
33.用户情绪获取模块,用于接收目标用户的用户语音,提取用户语音对应的声学参数,获取当前的用户情绪,将当前用户情绪数值化为当前用户情绪向量;
34.语音语义模块,用于识别用户语音的当前语音内容,数值化为当前的词向量;
35.存储模块,用于拼接当前的用户情绪向量和用户固有属性向量,形成当前的用户属性向量,存储当前的用户属性向量和当前的词向量,并配置时间标签;
36.提取模块,用于截取一段时间内的用户属性向量和词向量,获取时间相关用户属
性向量和时间相关词向量,时间相关用户属性向量包括用户情绪变化,时间相关词向量包括用户意图;
37.话术生成模块,用于根据时间相关词向量,生成当前对话文本;
38.匹配模块,用于根据时间相关用户属性向量,生成目标用户对应的音库及合成参数,根据当前对话文本,输出合成语音。
39.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
40.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
41.本发明的自适应语音对话方法、系统、计算机设备和存储介质,针对不同用户画像不同,针对性的提供声模,根据用户的当前情绪状态,动态改变一个声模的声学参数,使得生成的语音与用户属性及其当前情绪状态相配。改变当前智慧客服一成不变的发音规则,降低智慧客服挂断率,提升沟通效果和服务质量;安抚用户情绪,降低客诉率和人工客服工作量。
附图说明
42.图1为一个实施例中一种自适应语音对话方法的步骤示意图;
43.图2为一个实施例中一种自适应语音对话方法的用户情绪模块流程示意图;
44.图3为一个实施例中一种自适应语音对话方法的匹配模块流程示意图;
45.图4为一个实施例中一种自适应语音对话方法的流程示意图;
46.图5为一个实施例中一种自适应语音对话系统的结构框图。
具体实施方式
47.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
48.本技术提供的一种自适应语音对话方法,在一个实施例中,如图1至图4所示,包括以下步骤:
49.s100,获取目标用户的用户画像,提取目标用户的所有用户固有属性,将所有用户固有属性数值化为该目标用户的用户固有属性向量。
50.在本实施例中,先与目标用户建立联系,通过已有的用户画像系统根据用户id获取用户画像,提取该用户画像包含的所有用户固有属性,并将其数值化为用户固有属性向量。
51.s200,接收目标用户的用户语音,提取用户语音对应的声学参数,获取当前的用户情绪,将当前的用户情绪数值化为用户情绪向量。
52.在本实施例中,通过麦克风等输入设备接收目标用户的用户语音,并传输至后台,提取该用户语音对应的声学参数,获取当前的用户情绪向量,并将当前的用户情绪数值化为用户情绪向量。
53.s300,识别用户语音的当前语音内容,数值化为当前词向量。
54.在本实施例中,识别步骤s200的目标用户的当前的用户语音,获取该目标用户当前的说话内容,将识别后的说话内容再次进行识别,获取文本语义,最后将文本语义数值化为当前词向量。
55.s400,拼接当前用户情绪向量和用户固有属性向量,形成当前用户属性向量,存储当前用户属性向量和当前词向量,并配置时间标签。
56.在本实施例中,联合步骤s200获取的用户情绪向量和步骤s100获取的用户固有属性向量,形成用户属性向量。存储当前的用户属性向量和当前的词向量,并配置时间标签。
57.在一个实施例中,以队列形式构建存储区,将当前的用户属性向量和当前的词向量均配置时间标签,存储入队列。
58.s500,截取一段时间内的用户属性向量和词向量,获取时间相关用户属性向量和时间相关词向量,时间相关用户属性向量包括用户情绪变化,时间相关词向量包括用户意图。
59.在本实施例中,以时间为轴,从当前时间t1开始,向前取一段时间 t2内的用户属性向量和词向量,作为替换的,如果用户属性向量和词向量的数据量不够,则选取全部时间的所有用户属性向量和词向量。依据标签时间与当前时间t1的远近设置不同权重后相加获取时间相关用户属性向量和时间相关词向量,该时间相关用户属性向量包括用户属性变化,特别是用户情绪的变化,时间相关词向量包括带有上下文的用户意图。其中, t1、t2为不为零的正数。
60.s600,根据时间相关词向量,生成当前对话文本。
61.在本实施例中,根据步骤s500中获得的时间相关词向量,生成针对该目标用户当前的用户语音的对话文本。
62.s700,根据时间相关用户属性向量,生成目标用户对应的音库及合成参数,根据当前对话文本,输出合成语音。
63.在本实施例中,根据步骤s500中得到的时间相关用户属性向量,预测生成该目标用户喜爱的音库类型以及音高、语速、音量等合成参数,通过该对应的音库类型以及音高、语速、音量等合成参数,将步骤s600中得到的对话文本,通过声码器合成语音后输出。
64.作为可替换的实施例,在步骤s700通过声码器合成语音后输出之后,本发明的方法还包括:
65.s800,对同一目标用户的语音对话,仅获取一次用户固有属性向量,且不改变已选择的音库,合成参数根据用户属性中的用户情绪的变化实时调整。
66.在本实施例中,不断循环步骤s100至步骤s700,其中步骤s700得到的目标用户喜爱的音库类型不再改变,但是音高、语速、音量等合成参数会根据目标用户的用户属性,尤其是用户情绪的变化进行动态的改变。另外,在步骤s300中预测到目标用户展示了想要改变合成参数意图时,同样会进行合成参数调整,例如,目标用户的语音内容为“你说什么,我听不清”,则会调整合成参数中的音量,相应提高音量数值;目标用户的语音内容为“你说话能不能慢点”,则会调整合成参数中的语速,相应降低语速数值;目标用户的语音内容为“你声音太尖了”,则会调整合成参数中的音高,相应降低音高数值等。
67.作为可替换的实施例,在步骤s100获取目标用户的用户画像之前,本发明的方法还包括:
68.s000,构建训练模型。
69.在本实施例中,构建的训练模型包括训练语音库和模块单元,模块单元至少包括用户情绪获取模块、匹配模块、语音识别模块、语义理解模块、话术生成模块和多音库语音合成模块。
70.在一个实施例中,构建训练语音库的方法包括:
71.按照用户固有属性对所有样本用户进行分类。该用户固有属性包括性别、年龄、地区、学历、收入、当前时间等方面,依据不同的用户固有属性对所有的样本用户进行分类。
72.从每一音库中随机选取若干条语音构成测试集。从现有音库中的每个音库中均分别随机选取相同数量的若干条语音,构成测试集。
73.每个样本用户确定最优音库及合成参数,合成参数包括语速、音高和音量,获取最优音库及合成参数作为该样本用户的用户标注。让每个样本用户对上述测试集进行试听,并且以音库为单位,每个样本用户可以自己调整音量、音高、语速等合成参数,样本用户根据自己的喜好选择最喜爱音库并调整其合成参数达到满意后,从而确定出每个样本用户选择的最优音库及相对应的合成参数,并获取该音库类型及合成参数作为该样本用户的用户标注。
74.采集样本用户自己的多条语音以及当前情绪状态,将样本用户的用户情绪和用户固有属性组成样本用户的用户属性。
75.构建包含多条训练数据的训练语音库,每条训练数据包括每个样本用户的语音、用户属性以及用户标注。
76.在一个实施例中,构建用户情绪获取模块的方法包括:
77.基于机器学习模型或深度神经网络构建包括一层输入层、三个残差模块和一层输出层的用户情绪获取模型,其中每个残差模块由三层卷积网络构成,使用3
×
3卷积核,leaky-relu激活函数。
78.选取训练语音库中样本用户自己的语音,使用声码器提取该语音的声学参数作为模型输入,将样本用户每条语音对应的用户属性中的用户情绪数值化为用户情绪向量作为模型输出,使用优化器迭代训练至收敛。
79.在一个实施例中,构建匹配模块的方法包括:
80.匹配模块用于匹配用户属性和语音合成音库及其合成参数,数值化样本用户的用户属性为用户属性向量,以用户属性向量作为输入,以上述样本用户选择的最优音库及合成参数作为输出,基于机器学习模型或者深度神经网络构建该模块,使用优化器迭代训练至收敛。
81.在一个实施例中,语音识别模块、语义理解模块、话术生成模块和多音库语音合成模块均采用现有方法进行训练。
82.在本发明的一个具体实施例中,在一智能客服项目中,需要针对问题咨询、投诉建议、电话外呼等多种不同场景下,与不同客户进行对话。
83.构建训练语音库。考虑反馈率,使用现有的用户画像系统获取100000 用户的用户固有属性,并以用户固有属性对这100000名用户进行划分分类,用户固有属性包括:所在省级行政区、年龄、性别、学历、年收入、消费偏好等。用户固有属性是通过调查问卷和电话回访等方式采集的数据。从现有的13个音库中的每个音库中随机选择5条声音,共65条声音给
用户,用户可以调节声音的语速、音高、音量三个参数,用户选择自己最喜爱的音库类型以及调整到自己最满意的语速、音高、音量参数后,根据提供的话术,朗读10条语音并选择自己当然的情绪状态。依据美国心理学家伊扎德对人类情绪的九种基本划分,用户填写自己当前情绪状态,将用户填写的当前情绪状态结合用户固有属性记为用户属性。打包用户的10条语音、最喜爱的音库类型、用户自己调整的该音库的语速、音高、音量参数以及用户属性为一条训练数据。经过核查、清洗和挑选,覆盖尽量多类型用户,获取到21000份有效数据,构成训练语音库。上述数据是通过调查问卷和电话回访等方式采集的。
84.构建用户情绪获取模块。基于深度神经网络构建用户情绪获取模型,分别为一层输入层,三个残差模块,每个残差模块由三层卷积网络构成,使用3
×
3卷积核,leaky-relu激活函数,一个输出层构成。数值化用户情绪向量为一个1
×
9的向量,分别对应兴趣、愉快、惊奇、悲伤、厌恶、愤怒、恐惧、轻蔑、羞愧,每个元素取值范围在[0,1]之间。数值化后的用户情绪向量作为用户情绪获取模型的输出。使用world声码器提取用户语音的mgc、lf0和bap声学特征共有210000条,随机选取200000作为训练集输入模型进行训练,剩余10000条作为测试集。使用adam优化器进行训练至收敛。
[0085]
将训练语音库中的用户固有属性进行数值化,省级行政区、性别、学历分别使用1
×
34、1
×
2、1
×
6维的one-hot编码表示,并与数值化后的用户情绪向量进行拼接构成用户属性向量。构建用户属性与语音合成音库及其参数的匹配模块。基于深度神经网络构建用户属性与语音合成音库及其参数的匹配模型,模型结构与用户情绪获取模型类似,但是在输入和输出层节点个数适配了本模型的输入和输出。以用户属性向量为输入,以用户选定的最喜爱的音库类型及用户调整后的参数为输出训练模型,使用 adam优化器训练至收敛。
[0086]
使用现有的语音识别系统、语义理解系统、话术生成系统和可切换的多音库语音合成系统的各个接口提供支持。
[0087]
具体的运行过程为:
[0088]
接收到与用户对话需求,开启服务,获取用户id,输入用户画像系统得到用户固有属性并数值化为用户固有属性向量。获取用户说话语音(如“我想查询一下我的快递到哪里了”),一方面:提取其mgc、lf0和bap 声学特征,输入训练收敛的用户情绪获取模型预测出当前用户情绪向量,并将上述用户固有属性向量和当前用户情绪向量进行拼接得到当前用户属性向量;另一方面,使用上述语音识别系统获取对应文本,将文本输入上述语义理解系统获取语义词向量。以队列形式构建存储区,队列大小为20,当前用户属性向量和词向量均打上时间标签,入队。
[0089]
取队列全部数据,计算当前时间与数据时间标签的差值,取倒数并进行归一化作为权重,分别于对应数据相乘后并求和,得到时间相关的用户属性向量和时间相关的词向量。将时间相关的用户属性向量输入训练收敛的用户属性与语音合成音库及其参数匹配模块预测出当前用户最喜爱的音库和音库参数(如音高为8、语速为1.05、音量为16db),根据语义理解模块的输出调整音库参数(如用户表达“我听不到”,提高音量;“你慢点说”,降低语速等),若无调整意图,则保持不变。将时间相关的词向量输入话术生成系统得到要回答的话术(如“那么请您输入运单编号,以井号键结束”)。
[0090]
选定多音库语音合成系统中用户喜爱的音库,输入上述调整后的音库参数和上述要回答的话术生成相应语音,将语音送出给用户。
[0091]
循环上述运行过程,在服务进行期间,对同一用户只获取一次id,得到一次用户固有属性向量,并且在后续对话不更改音库类型,只改变音库参数直至用户挂断或者服务终止。
[0092]
应该理解的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,附图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0093]
在一个实施例中,如图5所示,提供了应用上述方法的自适应语音对话系统,包括:用户固有属性获取模块100、用户情绪获取模块200、语音语义模块300、存储模块400、提取模块500、话术生成模块600和匹配模块700。其中:
[0094]
用户固有属性获取模块100,用于获取目标用户的用户画像,提取该目标用户的所有用户固有属性,将所有用户固有属性数值化为用户固有属性向量;
[0095]
用户情绪获取模块200,用于接收目标用户的用户语音,提取用户语音对应的声学参数,获取当前的用户情绪,将当前用户情绪数值化为当前用户情绪向量;
[0096]
语音语义模块300,用于识别用户语音的当前语音内容,数值化为当前的词向量;
[0097]
存储模块400,用于拼接当前的用户情绪向量和用户固有属性向量,形成当前的用户属性向量,存储当前的用户属性向量和当前的词向量,并配置时间标签;
[0098]
提取模块500,用于截取一段时间内的用户属性向量和词向量,获取时间相关用户属性向量和时间相关词向量,时间相关用户属性向量包括用户情绪变化,时间相关词向量包括用户意图;
[0099]
话术生成模块600,用于根据时间相关词向量,生成当前对话文本;
[0100]
匹配模块700,用于根据时间相关用户属性向量,生成目标用户对应的音库及合成参数,根据当前对话文本,输出合成语音。
[0101]
关于自适应语音对话系统的具体限定可以参见上文中对于自适应语音对话方法的限定,在此不再赘述。上述系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0102]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是数据管理服务器。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的数据源终端通过网络连接通信,以接收数据源终端上传的数据。该计算机程序被处理器执行时以实现自适应语音对话方法。
[0103]
本领域技术人员可以理解,上述结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0104]
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述自适应语音对话方法。
[0105]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom) 或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0106]
本发明公开了一种自适应语音对话方法、系统、计算机设备和存储介质,根据用户固有属性不同,个性化预测用户喜爱的音库类型。在交互过程中,建立用户和音库类型及其合成参数之间的映射关系,切实关注用户情绪变化并动态自适应调整音库参数,以达到合成最符合当前用户属性和情绪的情感语音的目的。本发明能根据上下文对话内容以及用户的属性变化动态调整合成参数,在连续对话的基础上,使得合成的语音更加迎合用户的喜好和情绪的变化,提升沟通效率和用户满意度,使得客户更愿意与智能客服进行沟通并解决问题,降低客诉率和人工客服工作量。
[0107]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0108]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。