基于准循环神经网络的语音增强方法

2020-04-20 13:14娄迎曦袁文浩彭荣群
计算机工程 2020年4期
关键词:语音速度函数

娄迎曦,袁文浩,彭荣群

(山东理工大学 计算机科学与技术学院,山东 淄博 255000)

0 概述

在噪声环境中,语音增强是语音进行信号处理的必要环节[1-2]。传统的语音增强方法基于概率论中的统计学原理,假设纯净语音和含噪语音服从某种分布,然后根据这种分布关系从含噪语音中估计出纯净语音[3-4]。这种传统的语音增强方法适用于一些含平稳噪声的语音增强情况[5],但是在多数含有非平稳噪声或者低信噪比的情况下,并没有很好的处理效果[6],同样无法适用于复杂多变的噪声环境[7]。近年来,随着深度学习技术的不断发展,深度神经网络(Deep Neural Network,DNN)已经被广泛地应用在语音增强中,有效地提升了不同类型噪声环境下的语音增强性能[8]。基于DNN的语音增强方法是对大量的含噪语音和纯净语音进行建模,通过不断训练网络模型来提高模型对含噪语音的适应能力[9],相比传统的语音增强方法具有更好的泛化能力[10]。

由于语音具有序列性,文献[11]使用循环神经网络(Recurrent Neural Network,RNN)对含噪语音进行处理。RNN将输入的含噪语音样本作为序列问题处理,并随着时间的变化进行建模,相比基于DNN的方法,显著提高了语音增强性能。但是RNN网络模型的循环连接通常使用反向传播算法来进行训练,因此在训练时有可能面对梯度消失和梯度爆炸的问题,无法体现出RNN长期记忆的效果。

作为RNN的一种升级版本,长短时记忆网络(Long Short-Term Memory Network,LSTM)有效地缓解了这一问题,其在网络结构上又添加了门函数和记忆单元,使网络模型可以通过存储单元来存储记忆,因此在处理语音增强问题时,基于LSTM的方法比基于RNN的方法更有效[12]。但由于这种模型每个时间上的计算都依赖于前面时间上的输出,因此在处理大规模的含噪语音数据时,LSTM的并行计算能力较弱,导致网络模型的训练速度较为缓慢。

实际上在设计语音增强模型时主要考虑两个方面,一方面,由于含噪语音序列问题上下文之间的相关性,网络模型必须对含噪语音序列上的时间变化进行建模,另一方面,在保证网络模型增强性能的前提下,如何尽可能地提高并行计算能力,从而提高模型的训练效率。基于此,本文提出一种基于准循环神经网络(Quasi Recurrent Neural Network,QRNN)的语音增强方法。QRNN通过门函数和记忆单元确保含噪语音序列信息上下文的相关性[13],但在门函数的计算中除去对上一时刻输出的依赖,同时在处理含噪语音输入和门函数时利用矩阵的卷积运算同时处理多个时刻的含噪语音序列信息,从而提高网络模型的并行计算能力。

1 基于深度神经网络的语音增强模型

(1)

其中,xm是网络第m帧时的含噪语音输入,θ是网络参数的集合,则基于DNN的语音增强就是通过训练网络模型得到fθ,误差函数可用范数表示为:

(2)

2 网络结构

2.1 LSTM网络结构

LSTM作为一个有记忆的网络,通过存储单元来存储记忆,其内部有由上一时刻网络输出和当前时刻网络输入共同决定的3个门函数以及当前输入的单元状态,3个门函数分别是遗忘门、输入门、输出门。LSTM通过遗忘门控制哪些之前的序列信息被保留,通过输入门控制哪些序列信息允许被输入,从而控制该单元状态的内容。且新的单元状态由当前输入的单元状态与上一时刻的单元状态共同决定。最后通过输出门控制有多少单元状态能作为网络当前时刻的输出。

这种时间上具有依赖性的单元状态更新方式,一方面,使得LSTM能够在语音增强中充分利用语音序列中上下文的相关性,另一方面,由于语音增强模型的训练要依赖于大规模的含噪语音数据,因此导致LSTM在处理语音增强问题时并行计算能力较差,网络训练速度缓慢。

2.2 基于QRNN的语音增强方法

Z=elu(Wz*X)

(3)

QRNN仍然使用门函数获得池化层需要的序列向量,但其在网络结构上将LSTM门函数中的线性操作改为卷积操作且仅使用了遗忘门F和输出门O。QRNN中各个门函数的计算公式为:

对工件再用射线探伤法进行探伤,并用当量法和半波高度法对缺陷进行分析,此缺陷为线状缺陷,直径大约在4.0 mm左右.

F=σ(Wf*X)

(4)

O=σ(Wo*X)

(5)

图1 语音增强网络模型Fig.1 Speech enhanced network model

(6)

(7)

(8)

QRNN的第二层池化层,是类似于LSTM的单元状态构造一个合适的由门控制的函数。为了对含噪语音序列上的时间变化进行建模以维持含噪语音序列上下文的相关性,不同时刻记忆单元状态ct更新方式为:

ct=ft∘ct-1+(1-ft)∘zt

(9)

网络最终的输出ht由输出门和当前时刻的记忆单元状态组合得到:

ht=ot∘ct

(10)

3 实验结果与分析

3.1 实验配置

为验证本文提出的基于QRNN的语音增强方法能够提高网络模型的训练速度,本文将QRNN语音增强实验结果与LSTM进行比较,并采用两种评价标准对两种网络模型增强效果进行评估。本次实验采用的所有纯净语音数据和噪声数据的采样频率都为8 kHz,然后在该采样频率下合成含噪语音数据。实验计算所用的短时傅里叶变换帧长为32 ms,帧移为16 ms。网络采用连续15 frame的训练特征作为输入,minibatch size分别设为512、1 024、2 048进行训练和测试。网络模型的每个隐层都有256个单元节点。本次实验采用的网络训练工具为微软的Cognitive Toolkit[17],迭代次数为20。

下文将通过具体的实验数据对本文提出的QRNN的语音增强效果进行分析。

3.2 LSTM与QRNN实验结果对比

3.2.1 增强性能对比

本次实验采用PESQ(Perceptual Evaluation of Speech Quality)来评价增强后语音的质量,其得分范围为-0.5~4.5,得分越高表示增强后的语音质量越好[18];采用STOI(Short Time Objective Intelligibility)来评价增强后语音的可懂度[19],其得分范围为0~1,得分越高表示增强后语音的可懂度越高。表1和表2分别给出了4种不同类型噪声在3种不同信噪比下的PESQ和STOI得分。

表1 两种方法的平均PESQ得分Table 1 Average PESQ scores of two methods

表2 两种方法的平均STOI得分Table 2 Average STOI scores of two methods

为了更直观地比较两种模型增强性能,图2给出了LSTM和QRNN两种网络模型在同一信噪比下4类噪声的平均得分取值。综合以上增强性能实验结果对比可以发现,两种网络模型在两种评估标准下都取得了近似的得分。

图2 LSTM和QRNN在不同评价标准下的语音增强性能对比

3.2.2 训练时间对比

在本次实验中,将minibatch size分别设为512、1 024、2 048进行训练和测试。minibatch在一定取值范围内取值越大,网络模型进行一次epoch所需要的迭代次数就越少,那么网络模型确定梯度下降的方向就越快,从而网络模型的训练速度就越快。图3给出了在3种不同minibatch size取值情况下,2种网络模型的训练时间对比,可见QRNN在训练时间上要远小于LSTM。

图3 不同minibatch size下训练时间对比Fig.3 Comparison of training time under different minibatch sizes

表3给出了在不同含噪语音序列长度和minibatch size取值下,QRNN网络模型相比LSTM训练速度的提升率,可见基于QRNN的语音增强方法比基于LSTM的语音增强方法的训练速度提升了3倍~5倍。且在minibatch size取值相同的情况下,随着含噪语音序列长度的增加,基于QRNN网络模型训练速度增加的更快。

表3 不同minibatch size下训练速度提升值Table 3 Training speed improvement values under different minibatch sizes

QRNN同时利用了并行性和上下文的相关性,综合以上增强性能和训练速度的实验结果表明,QRNN表现出比LSTM更好的增强效果,在保证语音增强性能提升与LSTM相似的情况下,能在很大程度上提高网络模型的训练速度。

4 结束语

由于LSTM的计算方式在时间上具有依赖性,因此该模型在处理大规模含噪语音数据的语音增强问题时训练速度十分缓慢。针对该问题,本文提出一种基于QRNN的语音增强方法。QRNN采用门函数和记忆单元来维持含噪语音序列信息上下文的相关性,但在门函数的计算中除去了对上一时刻输出的依赖性,然后在含噪语音序列的输入和门函数的计算中引入矩阵的卷积操作以提高模型的并行计算能力,从而加快网络模型的训练速度。实验结果表明,与基于LSTM的语音增强方法相比,该方法能在保证增强后语音性能的前提下大幅提升模型的训练速度。

猜你喜欢
语音速度函数
行驶速度
二次函数
第3讲 “函数”复习精讲
速度
二次函数
函数备考精讲
魔力语音
基于MATLAB的语音信号处理
基于MQ3与MP3的价廉物美的酒驾语音提醒器
对方正在输入……