[0006] 本发明的目的就是为了解决上述现有语音的抑郁症识别技术的不足,提供一种基于注意力机制和卷积神经网络的语音抑郁症识别方法,用于实现根据语音来自动检测抑郁症,提高抑郁症识别的准确率。
[0007] 本发明解决上述技术问题所采用的技术方案为:
[0008] 一种基于注意力机制和卷积神经网络的语音抑郁症识别方法,通过语音数据的预处理、提取语音频谱图、构建深度卷积神经网络(DCNN)预训练模型得到片段级特征、用注意力机制算法得到句级特征、SVM模型分类输出结果;
[0009] 该方法包含的具体步骤如下:
[0010] 步骤1、语音数据的预处理,包括:
[0011] 将语音抑郁症识别的语音数据集中的所有语音样本,分为训练集、验证集和测试集三部分。分析所有语音样本的语音数据,从提问方式的语音样本中挑选出10句最长的句子,去掉提问者的语音,只保留被试者的语音数据。最后对每个语音样本的10个句子进行标定标签,标定和原语音样本相同的标签。从而产生语音抑郁症识别的样本;
[0012] 步骤2、提取语音频谱图,包括:
[0013] 对每个语音样本的10个句子,按窗口大小分割语音数据,从而对每个片段提取RGB三通道的语音频谱图。然后堆叠三通道的频谱图,调整频谱图的尺寸大小,作为卷积神经网络的输入;
[0014] 步骤3、构建深度卷积神经网络,包括:
[0015] 构建深度卷积神经网络,对网络进行预训练,然后将语音频谱图输入到卷积神经网络中,进行权值的微调,从而提取语音频谱图中更深层的特征,即得到每个语音分割片段的语音特征;
[0016] 步骤4、注意力机制算法提取语音的句级特征,包括:
[0017] 通过卷积神经网络得到了每个片段的语音特征,然后融合一个句子的所有片段特征,填充到相同长度,并用attention模型对得到的融合特征进行权值调整,最后训练attention模型,得到语音的句级特征。
[0018] 步骤5、SVM模型分类输出结果,包括:
[0019] 构建SVM分类器模型,然后用得到的句级特征进行训练,最后输出语音的抑郁症识别结果。
[0020] 步骤1中所述的语音数据集,采用的是AVEC2017比赛子项目的数据库。数据库包含了189个被试者,包含107个训练集、35个验证集和47个测试集。该数据库的语音数据采集的过程是虚拟机器人Ellie通过访谈的方式提问被试者问题,记录其语音对话,每个个体的语音长度从7‑35min不等。
[0021] 步骤1中所述的在每个语音样本中挑选10个最长的句子,一方面为了去除和抑郁症不相关问题的语音数据,比如访谈交谈过程的客套问题;另一方面为了扩充样本集,增强模型训练,提高模型的适应能力。挑选最长的10个句子其提问的问题都是和抑郁症比较相关的问题,比如:你最近睡眠质量怎么样,你最近是否有被诊断为抑郁症,最近令你烦恼的事情是什么等问题。之后去除提问者的语音数据,只提取对应回答者的回答语音,作为一个新的样本,依据的是提问者的语音对抑郁症识别毫无相关,只需提取被试者的语音数据。
[0022] 步骤1中所述的标签标定每个语音样本中10个句子的标签都是和原语音样本的标签一致,即原语音样本的标签如果是抑郁症,则对应的10个句子都是抑郁症标签,这等于将原来的数据集扩充了10倍数据,能够更好的训练网络。
[0023] 步骤2中所述语音频谱图的提取过程,包含如下步骤:
[0024] 2‑1.对每条语音数据进行预加重;
[0025] 2‑2.将预加重后的语音信号进行分帧;
[0026] 2‑3.对分帧后的语音信号进行加窗处理;
[0027] 2‑4.将加窗后的波形信号进行快速傅里叶变换;
[0028] 2‑5.最后将语音数据转换为RGB三通道的语音频谱图。
[0029] 步骤2中所述的RGB三通道的语音频谱图,三个通道分别为static、delta,、delta delta。其中static是上述过程后得到的原始语音频谱图,delta是通过static求解其一阶回归系数得到,delta delta是通过static求解其二阶回归系数得到。
[0030] 步骤2中所述调整语音频谱图大小,是由于输入到卷积神经网络的尺寸是固定的,需要调整频谱图的大小使其适合卷积神经网络的输入。本发明选择64个梅尔滤波器,频率从20~8000Hz。语音分割段的长度选择64帧,则分割段的长度为10ms×63+25ms=655ms。最后得到64×64像素的语音频谱图,由于DCNN的输入固定为227×227,因此需要调整频谱图的大小以适应DCNN的输入。通过双线性插值的方法,将输出得到的64×64×3像素的频谱图调整为227×227×3像素大小。
[0031] 步骤3中所述的DCNN卷积神经网络用到的是Alexnet网络模型。Alexnet包括5层卷积层、2层全连接层和1层softmax分类层。第1层卷积层后和第5层卷积层后面分别有1层池化层,池化层选择最大池化(Max pooling),全连接层后设有dropout层,用于防止训练数据不平衡出现过拟合现象,softmax层用于训练时的分类,本发明中分为2类,即抑郁症和非抑郁症。
[0032] 步骤3中所述的预训练和权值微调过程,其步骤包括:
[0033] 3‑1.首先采用重复采样方法对语音的抑郁症数据集进行数据平衡,使抑郁症和非抑郁症的语音片段数据大致做到相等。
[0034] 3‑2.迁移在ImageNet数据集上预训练Alexnet网络模型的权重参数,固定前5层卷积层的权重参数,使在网络训练时前5层的权重参数不变,只调整之后2层全连接层的参数;
[0035] 3‑3.用平衡好的语音数据集训练Alexnet神经网络,微调后2层全连接层的权值参数。在网络微调训练过程中,经softmax激活函数判断是否是抑郁症。
[0036] 3‑4.训练完后去除softmax层,然后连接上步骤4中的attention算法模块。训练后续模块和测试时将DCNN的权值参数固定。
[0037] 步骤4中所述的融合一个句子的所有片段级语音特征是将一个句子的所有片段级语音特征按时间序列拼接成一个矩阵。由于每个句子的长度不相同,因此每个句子分割的片段数是不同的,因此矩阵的长度是不同的。本发明将填充补0到相同长度的特征矩阵。依据的是,attention算法对抑郁症相关的特征片段赋予很高的权值,对于不相关的特征赋予很小或者0的权值,这样填充0的部分等于和抑郁症不相关,权值设为0,因此填充0到相同长度不影响整个识别结果。
[0038] 步骤4中所述的注意力机制算法,其方法可以表述如下:
[0039]
[0040] 式中,t为每一时段帧的编号,T为一个句子中帧的总数量,τ指某一帧的序号。yt为经过卷积神经网络输出的片段级特征,u为注意力参数向量,两者进行内积操作。αt可以解释为对最终整句语音的抑郁症表达所贡献的权值分数。
[0041] 将得到的权值分数进行加权平均,z为得到的句级特征表示:
[0042]
[0043] 步骤中所述的训练attention模型的过程实际是训练权重矩阵的过程,权值分数αt和融合得到的片段级特征yt进行内积操作得到最后的句级特征。
[0044] 步骤中所述SVM分类输出结果的过程,包括构建SVM分类模型和训练模型两个过程。首先构建SVM分类器模型,然后用步骤4得到的句级特征进行训练,最后输出语音的抑郁症识别结果。
[0045] 步骤5中所述的SVM分类过程,在语音的抑郁症识别测试中,采用10倍交叉验证的技术,即所有语音数据平分为10份,9份数据用于训练,剩下1份数据用于测试,这样的过程重复10次得到的平均值作为最终的识别结果。
[0046] 与现有技术相比,本发明的有益效果在于:
[0047] (1)本发明充分考虑了每个个体语音数据的长度不同以及和语音片段和抑郁症之间的相关性,利用attention算法进行权值调整,使和抑郁症相关的特征更加凸显,分配更大的权值;和抑郁症不相关的特征分配更小的权值或设置为0,提高了识别的准确率。
[0048] (2)本发明方法使用语谱图和预训练的深度卷积神经网络,同时对语音数据进行数据平衡,提高了网络训练的速度,同时提高了识别准确率。