基于深度学习的可变长度语音片段情感识别

2021-11-12 17:18
散文百家 2021年3期
关键词:频谱语音卷积

王 振

河南林业职业学院

语音作为人类之间交流的主要传播媒体,已经引起研究者的广泛关注。在日益普遍的人机交互系统中,情感识别起着重要的作用。语音包含丰富的情绪信息,如何从语音信号中提取这些信息,对于自动语音情感识别具有重要意义。

声学特征作为语音情感识别的重要组成部分,对其提取引起了很多研究兴趣。这些研究都致力于设计一些手势特征,对于情感识别来说这些特征是最有特色的。最近,机器学习社区直接从原始未处理数据中推导出输入信号,背后的原因是网络可以对原始输入信号的中间表示自动学习,因此可以提高性能。因此,我们通过专门设计的可直接从输入语音频谱图中导出情绪类别的可变长度深度神经网络构建情绪识别系统。

频谱图是信号的时频分解。在我们的工作中,卷积神经网络首先被构造为空间谱图模式,它有效地学习代表情绪信息,然后使用递归神经网络来模拟句子上的时间结构,它由谱图表示,最后由全连接层导出情绪类别。

这类似于以前的Satt的工作。然而,与将语音输入分成较小的固定长度的段相比,我们这里的神经网络能够处理可变长度语音段,这是它的优点,它可以解决在语音分割过程中引起的精度损失。

一、相关工作

近年来,深度学习方法已经应用到语音处理领域,用于特征提取与分类/回归。在语音识别中,直接使用语音波形的自动语音识别特征的是Hinton和Jaitly。他们通过直接在语音时间信号上训练受限玻尔兹曼机器来学习中间表示,没有以端到端的方式对系统进行训练。Bhargava和Rose使用叠加的瓶颈深度神经网络训练窗口化语音波形,在相同体系结构上获得的结果比相应的MFCC略差。

在语音情感识别领域,已经使用深度神经网络进行了一些特征学习的研究。乔治等人提出了一个卷积循环神经网络,其对原始信号进行操作,在语音数据中执行端到端的情绪预测任务。Satt等人将CNN和LSTM结合,分类线性间隔频谱图中的情绪。然而,这些方法都是将语音输入分为较小的固定长度的部分,这会在训练和预测阶段损失准确性,我们使用可变长度的神经网络的方法来解决这个问题。

二、可变长度深度神经网络的情感识别

1.定长方法的问题。

每个长于3秒的句子被Satt等人分割成长度相等的短子句,在提取光谱图后,将不够3秒的部分用零填充到3秒。在整个提议的系统中,这些较短的子句都用于训练和测试阶段,每个子句被分配相应的整个句子的情感标签。在测试短语期间,整个句子的情感类别的预测通过平均各个子句的后验概率来实现。虽然这种方法可以减少构建神经网络的难度(确保输入长度相等),但会引入一些错误。实际上,为每个子句分配相应整句的情感标签并不是一个好的处理方法。观察表明,只有一部分语音在非中性情绪句子中包含明显的非中性情绪信息。

2.可变长度深度神经网络。

以上问题表明,使用整句作为输入比分成几段更合理。但是句子的长度一般是不同的,所以我们的研究旨在设计一个神经网络来处理可变长度的输入序列。

众所周知,卷积神经网络可以被认为是一种使用同一神经元的许多相同拷贝的神经网络。这可以使网络拥有大量的神经元并表达计算量大的模型,同时保持实际参数的数量描述神经元行为的值需要被学习得相当小。

递归神经网络是流行的模型,在许多序列建模任务中显示出很大的希望。它们对序列的每个元素执行相同的任务,输出依赖于以前的计算。为了计算效率,输入序列通常是固定长度的。可变长度序列通常被填充到相同的长度,但是我们可以忽略无效填充时间步的输出,以便可以正确处理可变长度的序列。

三、提出的方法

可变长度深度神经网络的输入是全句子的谱图,输出是句子情感类别的分类结果。为了比较,我们使用与Satt使用的相似的频谱图提取设置神经网络。

1.频谱图的提取。

每个句子都标有一种情感,采用一系列重叠的汉明窗口,帧步长为10毫秒,帧长度为40毫秒。对于每一帧,我们计算一个长度为1600的DFT(对于10Hz的网格分辨率)。我们使用0-4KHz的频率范围,忽略其余部分。在短时间谱聚合之后,我们得到一个大小为N×M的矩阵,其中N对于不同的句子是可变的,代表所选择的时间网格分辨率,并且M=400等于所选择的频率网格分辨率。然后将DFT数据转换为对数功率谱,然后使用训练数据集的平均值和标准差对z归一化进行归一化。

2.深度神经网络。

在我们的工作中,输入序列在训练阶段在同一批次中被填充到相同长度且为零,但不同批次之间的长度不同。预测阶段不使用填充,所以我们的神经网络需要具备避免填充值对输出干扰的能力。令S=[x1,x2,...,xV,...,xT]为输入序列,其中S1=[x1,x2,...,xV]为有效部分,S2=[xV+1,xV+2,...,xT]是填充部分。

首先,对于卷积神经网络,我们可以使用掩码来保留来自S1的输出并忽略来自S2的输出,其可以表示如下:

Sconv=Conv(S)·Mask(S)(1)

其中Conv(S)是S的卷积层的输出,Mask(S)是一个掩蔽矩阵,Sconv=[y1,y2,...,yV,...,yT]是与S相同长度的输出序列,其中[y1,y2,...,yV]是掩码矩阵有效部分的值,[yV+1,...,yT]是填充部分的零值。有效输出可以通过Conv(S)和Mask(S)之间的元素乘法实现。此外,卷积层通常与汇集层交织在一起。我们需要注意有效部分和填充部分之间的边界值,这会引入无效信息。例如,假设Sconv是最大池化层的输入。如果池化内核大小为2,并且输入路径包含yV和yV+1,则当yV<0且yV+1=0时,输出将为yV+1。但预期值应为yV,因为yV+1是填充值。在我们的实验中,这个问题会导致神经网络不会收敛的问题。因此,在我们的设计中输入到最大池层之前,yV将被屏蔽为零。这样,填充或不填充,相同的输入将在卷积层和合并层之后产生相同的输出,它确保了训练阶段和预测阶段的一致性,因为在预测阶段没有填充。

其次,对于递归神经网络,因为语音情感识别是一个序列分类问题,所以我们只需要最后一个有效时间步中的输出。假设S是递归神经网络的输入,预期结果应该是t=V时的输出。此外,在双向递归神经网络中,反向递归神经网络的输出应该在t=0处。最终输出是正向和反向递归神经网络输出的串联。

四、结论

在本文中,我们提出了一个可变长度的神经网络,在频谱图上运行,从可变长度的语音片段中执行情感分类任务。通过将全句输入到模型中,我们的方法可以有效地缓解传统定长方法将句子拆分为更小的固定长度段时所引入的中性情绪和其他情绪之间的混淆。与以前的固定长度神经网络相比,加权精度(WA)和不加权精度(UA)达到了普通基准数据集IEMOCAP的最新技术水平。

猜你喜欢
频谱语音卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种用于深空探测的Chirp变换频谱分析仪设计与实现
魔力语音
基于MATLAB的语音信号处理
从滤波器理解卷积
基于MQ3与MP3的价廉物美的酒驾语音提醒器
一种基于稀疏度估计的自适应压缩频谱感知算法
对方正在输入……
基于傅里叶域卷积表示的目标跟踪算法
一种基于卷积神经网络的性别识别方法