一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

语音消息生成方法和装置、计算机设备、存储介质与流程

2022-04-27 15:58:32 来源:中国专利 TAG:


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.对多个所述问题样本数据进行分词,得到多个问题分词数据;
28.对多个所述回答样本数据进行分词,得到多个回答分词数据;
29.获取第一原始模型;
30.根据多个所述问题分词数据、多个所述回答分词数据和多个所述预设表情对所述第一原始模型进行训练,得到所述第一模型。
31.在一些实施例,所述第一原始模型包括编码器和解码器;所述根据多个所述问题分词数据、多个所述回答分词数据和多个所述预设表情对所述第一原始模型进行训练,得到第一模型,包括:
32.将多个所述问题分词数据和多个所述回答分词数据输入至所述编码器进行第一编码,得到样本编码数据;
33.将多个所述预设表情输入至所述编码器进行第二编码,得到表情编码数据;
34.对所述样本编码数据和所述表情编码数据进行拼接,得到样本拼接数据;
35.将所述样本拼接数据输入至所述解码器进行解码,得到样本解码数据;
36.根据所述样本拼接数据和所述样本解码数据,计算所述第一原始模型的损失函数,得到损失值;
37.根据所述损失值更新所述第一原始模型,得到第一模型。
38.在一些实施例,所述对所述回答文本消息进行语音转换,得到对应的回答语音消息,包括:
39.对所述回答文本消息进行语音转换,得到初步语音消息;
40.对所述初步语音消息进行变换,得到声谱图;
41.提取所述声谱图的音频特征;
42.通过第五神经网络模型对所述音频特征进行解码,得到每一帧对应的音频数据;
43.将所述音频数据进行合成处理,得到对应的回答语音消息。
44.本公开实施例的第二方面提出了一种基于表情识别的语音消息生成装置,包括:
45.数据采集模块,用于获取语音数据及其对应的面部图像:
46.语音识别模块,用于对所述语音数据进行语音识别得到文本消息;
47.表情识别模块,用于对所述面部图像进行表情识别得到表情消息:
48.文本消息获取模块,用于将所述文本消息和所述表情消息输入至第一模型,所述第一模型根据所述文本消息和所述表情消息得到回答文本消息:
49.语音消息获取模块,用于对所述回答文本消息进行语音转换,得到对应的回答语音消息。
50.本公开实施例的第三方面提出了一种计算机设备,所述计算机设备包括存储器和处理器,其中,所述存储器中存储有程序,所述程序被所述处理器执行时所述处理器用于执行如本技术第一方面实施例任一项所述的方法。
51.本公开实施例的第四方面提出了一种存储介质,该存储介质为计算机可读存储介质,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如本技术第一方面实施例任一项所述的方法。
52.本公开实施例提出的基于表情识别的语音消息生成方法和装置、计算机设备、存储介质,通过获取语音数据及其对应的面部图像,对语音数据进行语音识别得到文本消息,并对面部图像进行表情识别得到表情消息;将文本消息和表情消息输入至第一模型,由第一模型根据文本消息和表情消息得到回答文本消息,最后对回答文本消息进行语音转换,得到对应的回答语音消息。本技术实施例将面部图像加入到聊天机器人中,通过对面部图像的识别,能够更加精准判断出当前的情景,并由第一模型根据文本消息和表情消息得到回答文本消息,且将回答文本消息转换成语音回复消息,进而提高语音回复消息的准确率。
附图说明
53.图1是本公开实施例提供的基于表情识别的语音消息生成方法的第一流程图;
54.图2是图1中的步骤s200的流程图;
55.图3是图1中的步骤s300的流程图;
56.图4是图3中的步骤s330的流程图;
57.图5是图1中的步骤s500的流程图;
58.图6是本公开实施例提供的基于表情识别的语音消息生成方法的第二流程图;
59.图7是本公开实施例提供的基于表情识别的语音消息生成方法的实际应用流程图;
60.图8是本公开实施例提供的基于表情识别的语音消息生成装置的模块结构框图;
61.图9是本公开实施例提供的计算机设备的硬件结构示意图。
具体实施方式
62.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。
63.需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别
类似的对象,而不必用于描述特定的顺序或先后次序。
64.除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
65.首先,对本技术中涉及的若干名词进行解析:
66.人工智能(artificial intelligence,ai):是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学;人工智能是计算机科学的一个分支,人工智能企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能可以对人的意识、思维的信息过程的模拟。人工智能还是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
67.聊天机器人(chatterbot):是经由对话或文字进行交谈的计算机程序。能够模拟人类对话,通过图灵测试。聊天机器人可用于实用的目的,如客户服务或资讯获取。有些聊天机器人会搭载自然语言处理系统,但大多简单的系统只会撷取输入的关键字,再从数据库中找寻最合适的应答句。聊天机器人是虚拟助理(如google智能助理)的一部分,可以与许多组织的应用程序,网站以及即时消息平台(facebook messenger)连接。非助理应用程序包括娱乐目的的聊天室,研究和特定产品促销,社交机器人。
68.卷积神经网络(convolutional neural networks,cnn):是一类包含卷积计算且具有深度结构的前馈神经网络(feedforward neural networks),是深度学习(deep learning)的代表算法之一。卷积神经网络具有表征学习(representation learning)能力,能够按其阶层结构对输入信息进行平移不变分类(shift-invariant classification)。随着深度学习理论的提出和数值计算设备的改进,卷积神经网络得到了快速发展,并被应用于计算机视觉、自然语言处理等领域。卷积神经网络仿造生物的视知觉(visual perception)机制构建,可以进行监督学习和非监督学习,其隐含层内的卷积核参数共享和层间连接的稀疏性使得卷积神经网络能够以较小的计算量对格点化(grid-like topology)特征,例如像素和音频进行学习、有稳定的效果且对数据没有额外的特征工程(feature engineering)要求。
69.循环神经网络(recurrent neural network,rnn)是一类以序列(sequence)数据为输入,在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的递归神经网络(recursive neural network),其中双向循环神经网络(bidirectional rnn,bi-rnn)和长短期记忆网络(long short-term memory networks,lstm)是常见的循环神经网络。循环神经网络具有记忆性、参数共享并且图灵完备(turing completeness),因此在对序列的非线性特征进行学习时具有一定优势。循环神经网络在自然语言处理(natural language processing,nlp),例如语音识别、语言建模、机器翻译等领域有应用,也被用于各类时间序列预报。引入了卷积神经网络构筑的循环神经网络可以处理包含序列输入的计算机视觉问题。
70.门控循环单元(gated recurrent unit,gru):是循环神经网络中的一种门控机制,与其他门控机制相似,其旨在解决标准rnn中的梯度消失/爆炸问题并同时保留序列的
长期信息。gru在许多诸如语音识别的序列任务上与lstm同样出色,不过它的参数比lstm少,仅包含一个重置门(reset gate)和一个更新门(update gate)。
71.ctc(connectionist temporal classification):是序列标注问题中的一种损失函数,主要用于处理序列标注问题中的输入与输出标签的对齐问题。传统序列标注算法需要每一时刻输入与输出符号完全对齐,而ctc扩展了标签集合,添加空元素。在使用扩展标签集合对序列进行标注后,所有可以通过映射函数转换为真实序列的预测序列,都是正确的预测结果,也就是在无需数据对齐处理,即可得到预测序列。其目标函数就是最大化所有正确的预测序列的概率和,在查找所有正确预测序列时,采用了前向后向算法。
72.感兴趣区域(region of interest,roi):机器视觉、图像处理中,从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,称为感兴趣区域。
73.opencv:是一个基于apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在linux、windows、android和mac os操作系统上。它轻量级而且高效,由一系列c函数和少量c 类构成,同时提供了python、ruby、matlab等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。opencv用c 语言编写,它具有c ,python,java和matlab接口,并支持windows,linux,android和mac os,opencv主要倾向于实时视觉应用,并在可用时利用mmx和sse指令,如今也提供对于c#、ch、ruby,go的支持。
74.vgg模型(visual geometry group network):该网络是在ilsvrc 2014上的相关工作,主要工作是证明了增加网络的深度能够在一定程度上影响网络最终的性能。vgg有两种结构,分别是vgg16和vgg19,两者并没有本质上的区别,只是网络深度不一样。vgg16相比alexnet的一个改进是采用连续的几个3x3的卷积核代替alexnet中的较大卷积核(11x11,7x7,5x5)。对于给定的感受野(与输出有关的输入图片的局部大小),采用堆积的小卷积核是优于采用大的卷积核,因为多层非线性层可以增加网络深度来保证学习更复杂的模式,而且代价还比较小(参数更少)。
75.嵌入(embedding):embedding是一种向量表征,是指用一个低维的向量表示一个物体,该物体可以是一个词,或是一个商品,或是一个电影等等;这个embedding向量的性质是能使距离相近的向量对应的物体有相近的含义,比如embedding(复仇者联盟)和embedding(钢铁侠)之间的距离就会很接近,但embedding(复仇者联盟)和embedding(乱世佳人)的距离就会远一些。embedding实质是一种映射,从语义空间到向量空间的映射,同时尽可能在向量空间保持原样本在语义空间的关系,如语义接近的两个词汇在向量空间中的位置也比较接近。embedding能够用低维向量对物体进行编码还能保留其含义,常应用于机器学习,在机器学习模型构建过程中,通过把物体编码为一个低维稠密向量再传给dnn,以提高效率。
76.交叉熵(cross entropy):是shannon信息论中一个重要概念,主要用于度量两个概率分布间的差异性信息。语言模型的性能通常用交叉熵和复杂度(perplexity)来衡量。交叉熵的意义是用该模型对文本识别的难度,或者从压缩的角度来看,每个词平均要用几个位来编码。复杂度的意义是用该模型表示这一文本平均的分支数,其倒数可视为每个词的平均概率。平滑是指对没观察到的n元组合赋予一个概率值,以保证词序列总能通过语言模型得到一个概率值。通常使用的平滑技术有图灵估计、删除插值平滑、katz平滑和kneser-ney平滑。
77.jieba分词器:jieba分词器也叫结巴分词器,是一种开源分词器;中文分词是中文文本处理的一个基础步骤,也是中文人机自然语言交互的基础模块,在进行中文自然语言处理时,通常需要先进行分词,其中,常用jieba分词器进行分词;jieba分词算法使用了基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能生成词情况所构成的有向无环图(dag),再采用了动态规划查找最大概率路径,找出基于词频的最大切分组合,对于未登录词,采用了基于汉字成词能力的hmm模型,使用了viterbi算法。jieba分词支持三种分词模式:第一种是精确模式,该精确模式试图将句子最精确地切开,适合文本分析:第二种是全模式,该全模式是把句子中所有的可以成词的词语都扫描出来,速度非常快,但是不能解决歧义;第三种是搜索引擎模式,该搜索引擎模式是在精确模式的基础上,对长词再词切分,提高召回率,适合用于搜索引擎分词。
78.analyzer分词器:analyzer分词器是专门处理分词的组件,一般包括三部分:character filters、tokenizer(按照规则切分为单词)、token filters;其中,character filters主要用于处理原始文本,例如去除html、特殊字符;tokenizer用于按照规则切分为单词;token filters用于将切分的单词加工,包括小写、删除stopwords(停用词),增加同义词等。
79.encoder:编码,就是将输入序列转化成一个固定长度的向量;解码(decoder),就是将之前生成的固定向量再转化成输出序列;其中,输入序列可以是文字、语音、图像、视频;输出序列可以是文字、图像。
80.word2vec(word to vector):是一群用来产生词向量的相关模型。这些模型为浅而双层的神经网络,用来训练以重新建构语言学之词文本。网络以词表现,并且需猜测相邻位置的输入词,在word2vec中词袋模型假设下,词的顺序是不重要的。训练完成之后,word2vec模型可用来映射每个词到一个向量,可用来表示词对词之间的关系,该向量为神经网络之隐藏层。
81.自注意力机制(attention mechanism):注意力机制可以使得神经网络具备专注于其输入(或特征)子集的能力,选择特定的输入,可以应用于任何类型的输入而不管其形状如何。在计算能力有限情况下,注意力机制是解决信息超载问题的主要手段的一种资源分配方案,将计算资源分配给更重要的任务。
82.seq2seq:是一种重要的rnn模型,也称为encoder-decoder模型,可以理解为一种n
×
m的模型。模型包含两个部分:encoder用于编码序列的信息,将任意长度的序列信息编码到一个向量c里。而decoder是解码器,解码器得到上下文信息向量c之后可以将信息解码,并输出为序列。
83.短时傅里叶变换(short time fourier transform,stft),只适用于平稳信号,豚类的whistle信号属于非平稳信号,频率特性随时间变化,为了捕捉这一时变特征,需要对信号进行时频分析,常用短时傅里叶变换、小波变换、希尔伯特黄变换等。
84.梅尔频率倒谱(mel-frequency cepstrum):是基于声音频率的非线性梅尔刻度(mel scale)的对数能量频谱的线性变换。梅尔频率倒谱系数(mel-frequency cepstral coefficients,mfccs)就是组成梅尔频率倒谱的系数。它衍生自音讯片段的倒频谱(cepstrum)。倒谱和梅尔频率倒谱的区别在于,梅尔频率倒谱的频带划分是在梅尔刻度上等距划分的,它比用于正常的对数倒频谱中的线性间隔的频带更能近似人类的听觉系统。
这样的非线性表示,可以在多个领域中使声音信号有更好的表示。
85.griffin-lim:是一种声码器,常用于语音合成,用于将语音合成系统生成的声学参数转换成语音波形,这种声码器不需要训练,不需要预知相位谱,而是通过帧与帧之间的关系估计相位信息,从而重建语音波形。
86.softmax分类器:为逻辑回归分类器面对多个分类的一般化归纳,输出的是属于不同类别的概率值。
87.随着计算机技术的发展,如即时通信工具、手机短信等通讯手段日渐风行。基于这些通讯手段,除了实现人与人之间的沟通交流外,也使得人与人工智能系统之间的沟通交流成为可能。例如,聊天机器人就是一种借助于通讯手段实现与人沟通交流的人工智能系统。目前用户所接触到的大多数聊天机器人属于被动交互型,但是目前被动交互型的聊天机器人交互功能比较单一,即只能根据用户的语音识别出的文本进行相应的回答,但是采用这种单一的识别方式,往往影响聊天机器人所生成的语音回复消息的准确率。
88.基于此,本公开实施例提供一种基于表情识别的语音消息生成方法和装置、计算机设备、存储介质,能够提高文本情感分类的准确率。
89.本公开实施例提供基于表情识别的语音消息生成方法和装置、计算机设备、存储介质,具体通过如下实施例进行说明,首先描述本公开实施例中的基于表情识别的语音消息生成方法。
90.本公开实施例提供的基于表情识别的语音消息生成方法,涉及人工智能领域。本公开实施例提供的基于表情识别的语音消息生成方法可应用于终端中,也可应用于服务器端中,还可以是运行于终端或服务器端中的软件。在一些实施例中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机或者智能手表等;服务器端可以配置成独立的物理服务器,也可以配置成多个物理服务器构成的服务器集群或者分布式系统,还可以配置成提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn以及大数据和人工智能平台等基础云计算服务的云服务器;软件可以是实现基于表情识别的语音消息生成方法的应用等,但并不局限于以上形式。
91.本公开实施例可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本技术可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本技术,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
92.参照图1,根据本公开实施例第一方面实施例的基于表情识别的语音消息生成方法,包括但不限于包括步骤s100至步骤s500。
93.步骤s100,获取语音数据及其对应的面部图像:
94.步骤s200,对语音数据进行语音识别得到文本消息;
95.步骤s300,对面部图像进行表情识别得到表情消息:
96.步骤s400,将文本消息和表情消息输入至第一模型,第一模型根据文本消息和表
情消息得到回答文本消息:
97.步骤s500,对回答文本消息进行语音转换,得到对应的回答语音消息。
98.在一些实施例的步骤s100中,通过麦克风捕捉用户发出的语音数据,即用户对聊天机器人说话的内容;捕捉用户发出的语音数据的同时,利用摄像头捕捉用户说话时的图像,具体地可以捕捉用户的面部图像。在实际应用中,摄像头捕捉到的某些图像可能没有拍到用户的面部区域,或者图像中并不仅仅包含用户的面部区域,此时还需要对摄像头捕捉到的图像进行进一步的筛选。具体地,可以将不包含用户面部区域的图像进行删除。为了进一步提高表情识别的准确率,还可以对图像的感兴趣区域,例如人脸区域进行检测,其中人脸区域为本技术实施例中的表情需要重点关注的区域。
99.在一些实施例中,还可以采用开源的opencv中的cascadeclassifier函数来自动检测图片中的所有人脸区域,以实现图像的人脸检测定位。
100.在一些实施例的步骤s200中,采集到用户发出的语音数据之后,还需要将语音数据转换成文本,得到文本消息。
101.在一些实施例的步骤s300中,采集到用户的面部图像之后,需要对面部图像进行表情分类处理,例如需要判断某一面部图像是哪一个表情,并根据该表情生成对应的表情消息,例如该表情对应的文字向量或者图像向量,用于使第一模型生成回答文本消息。在本技术实施例中,可以将表情分为高兴、伤心、生气、中性、惊讶和害怕等。
102.在一些实施例的步骤s400中,将文本消息和表情消息输入至第一模型,第一模型根据文本消息和表情消息得到回答文本消息。
103.在一些实施例的步骤s500中,对回答文本消息进行语音转换,得到对应的回答语音消息,生成回答语音消息之后,由聊天机器人根据语音消息对用户做出相应的语音回答。
104.在一些实施例中,如图2所示,步骤s200具体包括但不限于步骤s210至步骤s250。
105.步骤s210,对语音数据的时域信号进行积分变换得到频域信号;
106.步骤s220,根据时域信号和频域信号,构建平面空间;
107.步骤s230,通过第一神经网络,在平面空间中对语音数据进行卷积运算,得到语音序列和序列长度;
108.步骤s240,根据序列长度对语音序列进行切片,得到多个切片序列;
109.步骤s250,通过第二神经网络对多个切片序列进行文本转换,得到文本消息。
110.在一些实施例的步骤s210中,对语音数据的时域信号进行积分变换得到频域信号,在本技术实施例中,积分变换可以采用傅里叶变换,其中,傅里叶变换是将原来难以处理的时域信号转换成了易于分析的频域信号,快速傅里叶变换的功能就是把时域的数字信号变换到频域当中,可以在频域上来分析能量较高的位置,这些位置可能就是需要关注的声音所处的频段。
111.在一些实施例的步骤s220中,将时域信号和频域信号组成一个二维空间,也即平面空间。
112.在一些实施例的步骤s230中,通过第一神经网络,在平面空间中对语音数据进行卷积运算,得到语音序列和序列长度。其中,第一神经网络由多个cnn组成,用于对语音数据进行卷积运算,得到语音序列,以及该语音序列的长度。
113.在一些实施例的步骤s240中,根据序列长度对语音序列进行切片,具体地,对该语
音数据进行建模,建模的过程中,可以将语音序列切成多片,得到切片序列,例如将语音序列切成n片,得到n个切片序列。
114.在一些实施例的步骤s250中,通过第二神经网络对多个切片序列进行文本转换,得到文本消息。具体地,第二神经网络可以为rnn网络,rnn网络运用到多个gru单元,将步骤s240得到的n个切片作为rnn的n个输入,并获取rnn输出的文本消息,由此完成了将语音数据转换成文本消息的过程。需要说明的是,当时间步数较大或者时间步较小时,rnn网络的梯度较容易出现衰减或爆炸。虽然裁剪梯度可以应对梯度爆炸,但无法解决梯度衰减的问题,从而导致rnn网络在实际中较难捕捉时间序列中时间步距离较大的依赖关系,基于此,本技术实施例在rnn网络中采用gru单元,能够更好地捕捉时间序列中时间步距离较大的依赖关系,并控制信息的流动,以此达到较好的模型训练效果,使转换得到的文本消息更为准确。
115.在一些实施例中,第一神经网络与第二神经网络可构成语音模型,语音模型能够实现将语音数据转换成文本消息。为了进一步提高语音模型的训练效果,考虑使用损失函数对语音模型进行优化,例如采用ctc损失函数,具体地损失函数如公式(1)所示,其中,x表示给定的一段语音,z表示与x对应的文本,π为求积运算,p表示概率,p(z|x)表示给定x输出为x的概率,l表示x对应的z的输出概率,通过最小化概率的乘积最小化损失函数,具体地,可以通过按照相同字母连续出现多次则去重的策略以及去除空格的策略来最小化损失函数。
[0116][0117]
在一些实施例中,如图3所示,步骤s300具体包括但不限于步骤s310至步骤s330。
[0118]
步骤s310,通过第三神经网络对面部图像进行自注意力筛选,得到变换参数;
[0119]
步骤s320,根据变换参数对面部图像进行扭曲变换,得到变换图像;
[0120]
步骤s330,通过第四神经网络对面部图像和变换图像进行表情识别,得到表情消息。
[0121]
在一些实施例的步骤s310中,通过第三神经网络对面部图像进行自注意力筛选,得到变换参数,即参数θ。其中,第三神经网络在本技术实施例指的是自注意力网络,由两个卷积层和两个全连接层组成,可以定位到面部的重点区域。由于不同的表情拥有不同的重点区域,例如,用户在生气时,其面部表情的重点区域为眉眼;用户在开心时,其面部表情的重点区域在嘴巴;用户在惊讶时,其面部表情的重点区域在嘴巴、眼睛等,采用自注意力网络能够更精准地对面部图像进行表情分类。
[0122]
在一些实施例的步骤s320中,根据变换参数θ对面部图像进行扭曲变换,得到变换图像,具体地,变换参数可以为多种,例如,若变换参数为变换方向,且变换方向为顺时针旋转90度,则可根据该变换参数变换面部图像的方向;若变换参数为向上翻转,则可根据该变换参数将面部图像进行镜像翻转处理等,从而确定面部图像中的哪些区域属于和表情相关的重点区域。
[0123]
在一些实施例的步骤s330中,对面部图像进行特征提取处理,得到对应的特征向量,将特征向量以及步骤s320得到的变换图像输入至第四神经网络,输出表情的分类结果。在实际应用中,可以采用vgg-19网络对面部图像进行特征提取。需要说明的是,本技术所述
的分类消息体现为多种形式,例如输出为表情图像的形式,或者表情文字的形式,若为表情图像的形式,则将表情图像转换成向量,得到表情消息;若为表情文字的形式,则将表情文字转换成向量,得到表情消息。
[0124]
在一些实施例中,第四神经网络包括卷积层、全连接层和分类器,如图4所示,步骤s330具体包括但不限于步骤s331至步骤s333。
[0125]
步骤s331,通过卷积层对面部图像和变换图像进行特征提取,得到多个图像特征向量;
[0126]
步骤s332,通过全连接层对多个图像特征向量进行拼接,得到图像拼接向量;
[0127]
步骤s333,通过分类器对图像拼接向量进行表情分类,得到表情消息。
[0128]
在一些实施例的步骤s331中,将面部图像和变换图像输入至第四神经网络的卷积层,通过卷积层对面部图像进行特征提取处理,得到多个图像特征向量。
[0129]
在一些实施例的步骤s332中,将多个图像特征向量输入至全连接层,通过全连接层对多个图像特征向量进行拼接,得到图像拼接向量。
[0130]
在一些实施例的步骤s333中,将图像拼接向量输入至分类器,由分类器输出表情的分类结果,根据分类结果得到表情消息。在实际应用中,本技术所指的分类器可以为softmax分类器等。
[0131]
在一些实施例中,第三神经网络和第四神经网络可构成表情识别模型,表情识别模型能够实现面部图像的表情分类。为了进一步提高表情识别模型的训练效果,考虑使用损失函数对表情识别模型进行优化,例如采用交叉熵损失函数,如公式(2)所示,其中m为类别的数量,y
ic
为真实类别,p
ic
为观测样本i属于m个类别中的某一类别c的预测概率。
[0132][0133]
在一些实施例中,通过vgg-19对人脸照片,即本技术实施例提到的面部图像进行特征提取,得到面部图像对应的图像特征向量;与此同时,将人脸照片输入到自注意力网络生成一个参数θ,根据参数θ得到t
θ
(g)。其中,t
θ
(g)相当于对输入作了一个仿射变换,θ就是变换的参数,相当于对输入的人脸照片生成一个扭曲变换后的样本,即变换图像,有助于神经网络在人脸中找到跟表情相关的重要区域。接着,对变换图像进行特征提取,得到变换图像对应的图像特征向量。最后,将面部图像对应的图像特征向量和变换图像对应的图像特征向量输入至两个全连接层,由全连接层输出表情的分类结果。本技术实施例引入了注意力机制,可以根据不同的表情,定位脸部不同的重点区域,使神经网络关注人脸中与表情相关的区域,使表情识别的效果更加精准。
[0134]
在一些实施例中,如图5所示,步骤s500具体包括但不限于步骤s510至步骤s550。
[0135]
步骤s510,对回答文本消息进行语音转换,得到初步语音消息;
[0136]
步骤s520,对初步语音消息进行变换,得到声谱图;
[0137]
步骤s530,提取声谱图的音频特征;
[0138]
步骤s540,通过第五神经网络模型对音频特征进行解码,得到每一帧对应的音频数据;
[0139]
步骤s550,将音频数据进行合成处理,得到对应的回答语音消息。
[0140]
在一些实施例的步骤s510中,对回答文本消息进行语音转换,得到初步语音消息,
在实际应用中,可通过ocr文字识别等软件进行语音转换。
[0141]
在一些实施例的步骤s520中,对初步语音消息进行变换,得到声谱图。具体地,初步语音消息指的是回答文本消息所对应的声音信号,通过stft能够将声音信号转换为对应的二维信号,从而得到声谱图。具体地,stft的原理为:把一段长信号分帧、加窗,再对每一帧做傅里叶变换(fourier transform,fft),最后把每一帧的结果沿另一个维度堆叠起来,得到类似于一幅图的二维信号形式,从而得到对应的声谱图。
[0142]
在一些实施例的步骤s530中,利用编码器提取声谱图的mfcc音频特征。
[0143]
在一些实施例的步骤s540中,使用基于自注意力机制的第五神经网络对音频特征进行解码,得到每一帧对应的音频数据。具体地,第五神经网络为rnn网络,具体由两层gru网络层构成,其中,每一gru网络层包含256个gru单元。
[0144]
在一些实施例的步骤s550中,由于从频谱生成音频的时候,需要考虑连续帧之间相位变化的规律,所以得到了每一帧对应的音频之后,需要采用griffin_lim重建算法去微调连续帧之间的相位变化,进而生成连续帧音频,得到对应的回答语音消息。需要说明的是,在连续帧之间的相位变化较大的情况下,需要求得一个中间相位,使得连续帧音频的相位变化不至于太大,从而影响回答语音消息生成的效果。此外,本技术实施例还能够根据不同的表情,对语音语调等输出音频参数进行变换,使机器人做出更加应景的回答。
[0145]
在一些实施例中,如图6所示,在步骤s400之前,还包括步骤:构建第一模型,具体包括但不限于步骤s610至步骤s650。
[0146]
步骤s610,获取消息数据集;
[0147]
步骤s620,对多个问题样本数据进行分词,得到多个问题分词数据;
[0148]
步骤s630,对多个回答样本数据进行分词,得到多个回答分词数据;
[0149]
步骤s640,获取第一原始模型;
[0150]
步骤s650,根据多个问题分词数据、多个回答分词数据和多个预设表情对第一原始模型进行训练,得到第一模型。
[0151]
在一些实施例的步骤s610中,获取用于进行模型训练的消息数据集。其中,消息数据集包括多个问题样本数据、多个预设表情和多个回答样本数据,问题样本数据和预设表情一一对应以形成绑定组,每个绑定组与回答样本数据具有映射关系;
[0152]
在一些实施例的步骤s620中,采用中文分词工具jieba或者analyzer对多个问题样本数据进行分词处理,得到多个问题分词数据。
[0153]
在一些实施例的步骤s630中,采用中文分词工具jieba或者analyzer对多个回答样本数据进行分词处理,得到多个回答分词数据。
[0154]
在一些实施例的步骤s640中,获取第一原始模型,其中第一原始模型具体可以为seq2seq模型,该模型还没有经过训练。
[0155]
在一些实施例的步骤s650中,根据多个问题分词数据、多个回答分词数据和多个预设表情对第一原始模型进行训练,得到第一模型。
[0156]
在一些实施例中,步骤s650还包括但不限于如下步骤:
[0157]
将多个问题分词数据和多个回答分词数据输入至编码器进行第一编码,得到样本编码数据;
[0158]
将多个预设表情输入至编码器进行第二编码,得到表情编码数据;
[0159]
对样本编码数据和表情编码数据进行拼接,得到样本拼接数据;
[0160]
将样本拼接数据输入至解码器进行解码,得到样本解码数据;
[0161]
根据样本拼接数据和样本解码数据,计算第一原始模型的损失函数,得到损失值;
[0162]
根据损失值更新第一原始模型,得到第一模型。
[0163]
更具体地,将多个问题分词数据和多个回答分词数据输入至编码器进行第一编码,得到样本编码数据。其中,编码器指的是word2vec,所生成的样本编码数据为词嵌入向量。同时,将多个预设表情输入至word2vec进行第二编码,得到表情编码数据。接着,将样本编码数据和表情编码数据输入至seq2seq模型中,进行训练。具体地,通过seq2seq模型对样本编码数据和表情编码数据进行拼接,得到样本拼接数据,将样本拼接数据输入至解码器进行解码,得到样本解码数据;根据样本拼接数据和样本解码数据,计算第一原始模型的损失函数,例如交叉熵损失函数,得到损失值;根据损失值更新第一原始模型,得到第一模型。为了解决seq2seq中解码器只接受编码器最后一个输出,而远离了之前的输出导致的信息丢失问题,本技术实施例还使用了attention模型,将注意力集中在问题的一些关键位置。
[0164]
在一些实施例中,如图7所示,本技术采用了多个模块以实现基于表情识别的语音消息生成方法的过程。具体地模块包括:语音识别模块、表情识别模块、文本理解模块和语音转换模块,具体地方法包括:语音识别模块识别用户对聊天机器人说话的语音信息,且将语音信息转换成对应的文本。与此同时,摄像头获取用户说话时的图像,并捕捉人脸区域,得到人脸区域图像,将人脸区域图像输入至表情识别模块,由表情识别模块识别出对应的表情。将语音识别模块得到的文本以及表情识别模块得到的表情输入至文本理解模块中,由文本理解模块根据文本和表情生成文本回答。将文本输入至语音转换模块中,生成语音回答,由此完成基于表情识别的语音消息生成方法的过程。
[0165]
本公开实施例提出的基于表情识别的语音消息生成方法,通过获取语音数据及其对应的面部图像,对语音数据进行语音识别得到文本消息,并对面部图像进行表情识别得到表情消息;将文本消息和表情消息输入至第一模型,由第一模型根据文本消息和表情消息得到回答文本消息,最后对回答文本消息进行语音转换,得到对应的回答语音消息。本技术实施例将面部图像加入到聊天机器人中,通过对面部图像的识别,能够更加精准判断出当前的情景,并由第一模型根据文本消息和表情消息得到回答文本消息,且将回答文本消息转换成语音回复消息,进而提高语音回复消息的准确率。
[0166]
本公开实施例还提供一种基于表情识别的语音消息生成装置,如图8所示,可以实现上述基于表情识别的语音消息生成方法,该基于表情识别的语音消息生成装置包括:数据采集模块710、语音识别模块720、表情识别模块730、文本消息获取模块740和语音消息获取模块750,其中数据采集模块710用于获取语音数据及其对应的面部图像:语音识别模块720用于对语音数据进行语音识别得到文本消息;表情识别模块730用于对面部图像进行表情识别得到表情消息:文本消息获取模块740用于将文本消息和表情消息输入至第一模型,第一模型根据文本消息和表情消息得到回答文本消息:语音消息获取模块750用于对回答文本消息进行语音转换,得到对应的回答语音消息。本技术实施例将面部图像加入到聊天机器人中,通过对面部图像的识别,能够更加精准判断出当前的情景,并由第一模型根据文本消息和表情消息得到回答文本消息,且将回答文本消息转换成语音回复消息,进而提高语音回复消息的准确率。
[0167]
本公开实施例的基于表情识别的语音消息生成装置用于执行上述实施例中的基于表情识别的语音消息生成方法,其具体处理过程与上述实施例中的基于表情识别的语音消息生成方法相同,此处不再一一赘述。
[0168]
本公开实施例还提供了一种计算机设备,包括:
[0169]
至少一个处理器,以及,
[0170]
与至少一个处理器通信连接的存储器;其中,
[0171]
存储器存储有指令,指令被至少一个处理器执行,以使至少一个处理器执行指令时实现如本技术第一方面实施例中任一项的方法。
[0172]
下面结合图9对计算机设备的硬件结构进行详细说明。该计算机设备包括:处理器810、存储器820、输入/输出接口830、通信接口840和总线850。
[0173]
处理器810,可以采用通用的中央处理器(central processin unit,cpu)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本公开实施例所提供的技术方案;
[0174]
存储器820,可以采用只读存储器(read only memory,rom)、静态存储设备、动态存储设备或者随机存取存储器(random access memory,ram)等形式实现。存储器820可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器820中,并由处理器810来调用执行本公开实施例的基于表情识别的语音消息生成方法;
[0175]
输入/输出接口830,用于实现信息输入及输出;
[0176]
通信接口840,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信;和
[0177]
总线850,在设备的各个组件(例如处理器810、存储器820、输入/输出接口830和通信接口840)之间传输信息;
[0178]
其中处理器810、存储器820、输入/输出接口830和通信接口840通过总线850实现彼此之间在设备内部的通信连接。
[0179]
本公开实施例还提供一种存储介质,该存储介质是计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使计算机执行本公开实施例的基于表情识别的语音消息生成方法。
[0180]
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0181]
本公开实施例描述的实施例是为了更加清楚的说明本公开实施例的技术方案,并不构成对于本公开实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本公开实施例提供的技术方案对于类似的技术问题,同样适用。
[0182]
本领域技术人员可以理解的是,图1至图7中示出的技术方案并不构成对本公开实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。
[0183]
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0184]
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
[0185]
本技术的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0186]
应当理解,在本技术中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
[0187]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0188]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0189]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0190]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等各种可以存储
程序的介质。
[0191]
以上参照附图说明了本公开实施例的优选实施例,并非因此局限本公开实施例的权利范围。本领域技术人员不脱离本公开实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本公开实施例的权利范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献