APP下载

一种基于GRU神经网络的语音增强方法

2021-02-14彭月蒙祖强杨丽娜

关键词:音频噪声神经网络

彭月,蒙祖强,杨丽娜

(广西大学 计算机与电子信息学院, 广西 南宁 530004)

0 引言

语音增强是信号处理研究的一个重要内容,其目的是处理带有噪声的语音信号,得到尽量干净的语音信号,以获得更好的语音分辨效果。

在语音通讯的过程中不可避免地受到各种干扰和影响,干扰来自环境噪声、电气噪声、传输介质等,干扰后将影响人的收听辨识效果或者影响其他语音信号的处理(如语音识别)。因此有必要在音频数字化后实行适当的增强措施来提高辨识度。带噪语音信号包含语音信号与噪声两部分,通常需要语音增强的场合中,原始音频的噪声部分的强度较大,而语音信号强度较低,增强的重点在于提高可辨识度而不偏重于保真度。人对音频的辨识与感受主要体现为功率谱的变化,而由于相位谱的改变造成的最终时域信号波形的变化对辨识度的影响微弱。

对语音增强的方法研究开始于20世纪70年代,随着研究的成熟,形成了4大类传统的语音增强方法,包括谐波增强法、谱减法、基于语音生成模型的算法、基于短时谱估计的算法。但语音信号本身为非平稳信号,无论时域分析或者频域分析,其本身的信号特征均不明显;同时噪声信号常常多个叠加,特征复杂、频带宽。因此传统的语音增强方法的增强效果都不显著,甚至容易引入音乐噪声[1-2]。

近年业界已越来越重视神经网络尤其是循环神经网络(recurrent neural network, RNN)在语音增强方向的研究。文献[3-4]提出结合时间维度与频率维度两个处理路径的思路,其中时间维度使用门控循环单元(gated recurrent unit, GRU)来表达含噪语音的时间相关性。文献[5]提出语音信号的因果性,即长时依赖性,提出使用LSTM神经网络以提高性能。文献[6-7]重点考虑结合人耳听觉特性调整神经网络的估计器,以及加入MEE代价函数的优化问题。文献[8-9]提出使用深度神经网络(deep neural networks, DNN)做噪声估计并结合心理遮蔽效应有一定效果。在语音增强上的应用中普通DNN 已有使用[10]。

带有递归结构的长短时记忆(long short-term memory, LSTM)网络进行语音增强的谱估计比一般DNN有更好效果[11-13],以及在LSTM网络中使用噪声谱估计原理提高泛化能力[14-15]。结合对上述文献的参考,本文提出一种综合了多种方法的新语音增强处理结构,该结构结合短时傅里叶变换、谱减法、噪声谱估计,以求发现一种更具研究价值的语音增强处理结构和达到增强效果的提升。

本文的研究方向主要为语音增强处理器模型方案的设计、GRU神经网络算法设计以及利用GPU加速的算法优化方案。

1 基于GRU神经网络语音增强的理论

本章主要内容为语音增强的理论依据和神经网络算法的基本方法。

带噪语音中,语音信号的特征为短时稳定、长时变化[16]。即在语音的一个较短的时间片内波形时域表现为较稳定的周期波形,频域表现为稳定的一组频谱。为解决传统的音频处理器的不足之处,在多窗谱谱减法的基础之上,通过将帧间平滑以及先验信噪比估计结合起来,提出了一种改进的语音增强算法[23]。本文提出了一种结合GRU神经网络、谱减法的利用混合噪声估计原理工作的音频处理器结构。在GRU神经网络运算前进行标准化和运算后进行逆标准化,能提高神经网络学习效率,加快收敛速度,谱减法的目的是在带噪语音功率谱中去除噪声,训练部分本文使用带动量的批量梯度下降算法对神经网络模型进行收敛。

标准化是一种数据预处理方法,用于提升梯度下降的求解速度,提升模型的收敛速度。本文中将数据集按时间维度线性变换为均值为0,方差为1,以抑制频响不均衡对处理效果的影响。使用Z-score法如下:

式(3)和式(4)分别为标准化运算和标准化逆运算方法,如下:

本文使用谱减法,设Ps为带噪语音功率谱;Pn为估计噪声功率谱;Ps′为结果;w为频点。标准谱减法中当差值为负数时输出为0的做法会引入音乐噪声,本文为改善此情况,使用Berouti改进方法如下:

Dw=Psw-α·Pnw,

(5)

式中,α为相减因子,控制噪声抑制比例;β为频谱下限阈值,设定输出的底噪。

在神经网络训练模型中,通过对均方误差(MSE)的计算,使用带动量的批量梯度下降算法对神经网络模型进行收敛。已知第n帧含噪语音的功率谱Xn,噪声功率谱Yn,设待训练的神经网络模型函数为f,即

X={X1,X2,X3,…,XN},

(7)

Y={Y1,Y2,Y3,…,YN},

(8)

2 对于语音增强的音频处理器设计

2.1 音频处理器运行时结构

针对带噪语音的各种特征,设计相应的处理方案。从人对语音信号的辨识角度考虑,主要影响因素是幅频特性,而且多种噪声也是在频域上有明确表现,因此宜采用频域处理。采用功率谱的处理方法可以避免处理相位谱。短时快速傅里叶变换(STFFT)是指使用快速蝶形算法的按帧处理的时域到频域变换。

上两式中,xi,n为时域信号;Xi,k为频域信号;N为傅里叶变换点数;M为帧数。

在处理方法上可以采取神经网络估计噪声的功率谱,再使用谱减法,对源信号功率谱减去估计出来的噪声谱得出最终结果。神经网络结构的设计需要考虑噪声的特征。其中白噪声、粉噪声、定频噪声等与长期信号有关,需要时间相关的网络结构。而环境噪声需要多层和时间相关的网络结构,靠较多的库来训练。选取的多层GRU循环神经网络重点解决时变多噪声模型问题。

音频处理器结构(运行)如图1所示,输入信号为连续时域带噪音的语音信号。在输入缓冲区中分为带一定重合区域的等长帧,对每帧信号分别加窗和FFT变换,结果转为幅频、相频信号。接着对幅值信号进行标准化处理生成标准化的频域信号流和标准化参数。标准化的作用是避免输入增益和均衡区别对给GRU算法带来额外压力以提高系统效果。然后使用GRU神经网络算法估计输入信号中的噪声成分。再使用GRU神经网络结果以及标准化参数进行标准化逆处理得到处理器计算出的噪声幅频信号。使用谱减法对原幅频信号与处理器计算出的噪声幅频信号相减,得到处理后的幅频信号。最后通过IFFT以及去窗、合并计算得到时域音频信号。

图1 音频处理器结构(运行)Fig.1 Audio processor architecture (runtime)

由于人的听感对于声音相位不敏感,因此上述结构中只对幅频信号进行处理,而不改变相频信号。

此方法相比于传统的谱减法最大的区别就是噪声谱的估计方式不同。传统的谱减法通常假设音频段的开始部分无语音只包含噪声,且假设噪声谱是不随时间变化的。显然这一假设有局限,若非短音频段,环境噪声的变化不可避免。此方法中噪声谱的估计采用GRU深度神经网络从实时输入中估计,可以应对变化的噪声,同时GRU相比普通BP神经网络具有帧间相关性,也能较好兼顾缓变噪声。GRU神经网络的参数是通过预先的丰富的噪声模型训练得出,使神经网络能识别和预测噪声的成分。

而此方法相比于只使用神经网络而不使用谱减法的区别在于,环境噪声信号的时间稳定性及在音频流中的时间占比通常比语音信号更大,估计噪声频谱比估计语音频谱的复杂度更低。且对于估计误差,估计噪声频谱并谱减法后误差不明显,而直接估计语音谱产生的误差对原语音的音色影响较大。

2.2 音频处理器训练时结构

对于GRU神经网络的训练使用标记信号训练的方法。为了使用任意语音库与噪声库进行训练,需要自动生成标记信号。同时,为了防止训练与实际运行的算法差异带来的误差,应使输入信号经过与运行时的神经网络处理前一致的处理步骤,而使参考信号经过与运行时的神经网络处理后一致的处理步骤。音频处理器训练时的结构图可由运行时的基本结构图通过函数计算和化简重新设计为如图2所示结构。

图2 音频处理器结构(训练)Fig.2 Audio processor architecture (training)

训练时使用标准语音库和噪声库信号,两者增益在训练时随机选取。其中噪声信号与语音信号时域相加,作为训练用输入信号;语音信号作为训练用参考信号。首先对输入信号与参考信号分别进行分帧、加窗和FFT运算,得到幅频信号。输入信号的幅频与参考信号的幅频进行谱减法计算,得出噪声估计器应估计出的噪声幅频信号。对输入信号的幅频信号进行标准化处理,得到神经网络训练用的输入量以及标准化参数。对噪声估计器应估计出的噪声幅频信号使用同一标准化参数进行标准化,得到神经网络训练用的标记量。对于连续音频流,取连续的T帧作为1次BPTT计算周期,每个计算周期修正一次神经网络参数。

3 GRU神经网络算法的描述

3.1 GRU神经网络表达式

设输入为X,输出为Y,网络模型参考图3,GRU神经网络单层结构参考图4,表达式如下:

Xt={X1,X2,X3,…,X64}t,

(13)

arl,t=Url·hl,t-1+Wrl·xl,t+Brl,

(15)

rl,t=σ(arl,t),

(16)

azl,t=Uzl·hl,t-1+Wzl·xl,t+Bzl,

(17)

zl,t=σ(azl,t),

(18)

asl,t=Usl·hl,t-1°rl,t+Wsl·xl,t+Bsl,

(19)

sl,t=tanh(asl,t),

(20)

hl,t=(1-zl,t)°hl,t-1)+zl,t°sl,t,

(21)

3.2 GRU神经网络结构与LSTM的对比

神经网络部分经过分析,可以选择RNN类型的神经网络,能有效应对长时间相关噪声,但是RNN神经网络的梯度存在长期依赖问题,容易导致梯度爆炸或者梯度消失,使用效果不佳。LSTM与GRU是两种可以解决RNN的长期依赖问题的改进型结构。

图3 多层GRU神经网络模型图Fig.3 Multi layer GRU neural network model diagram

LSTM的结构如图5所示,x为当前时刻的输入,v[n-1]为上一时刻的输出,s[n-1]为上一时刻的记忆,v为当前时刻的输出,s为当前时刻的记忆。LSTM神经网络虽然有较优的效果,但是也存在不少缺点。每层LSTM中需要11个参数矩阵和4个参数向量。每层需要3个输入向量和2个输出向量,每层中2个向量沿时间传播。因此训练速度很慢,参数容量也过大。因此需要考虑对LSTM简化处理。

业界在LSTM的基础上发展了多种衍生结构[6,9],其中的GRU单层结构如图4所示,其中x[t]为当前时刻的输入(从上一层传入),h[t-1]为上一时刻的输出(从当前层传入),h[t]为当前时刻的输出(传到下一层以及传到当前层的下一时刻)。其每层需要6个参数矩阵和3个参数向量。每层需要2个输入向量和1个输出向量,每层中只有1个向量沿时间传播。因此处理量比LSTM小得多。

通过分析与对比,本文选择以GRU神经网络方案作为语音增强系统的神经网络模型,以下详细对GRU神经网络的计算方法设计和性能分析。

图4 GRU神经网络单层结构Fig.4 Single layer structure of GRU neural network

3.3 GRU神经网络正向分析

GRU神经网络正向计算中,每层按结构图及公式(15)至公式(21)计算,定义计算“°”为矩阵点乘,即矩阵元素对位相乘。定义双极性与单极性激活函数分别为

由L层GRU和1个线性输出层组成的神经网络模型如图5所示。在正向过程中,已知输入数据流xt,通过带入GRU正向方程组即可得到输出数据流hL+1,t。

图5 LSTM神经网络单层结构Fig.5 Single layer structure of LSTM neural network

3.4 GRU神经网络反向分析

GRU神经网络采用BPTT算法训练,由于图中GRU模块存在循环,为了便于分析,将图按时间序列展开,得到如图6所示的多层GRU神经网络BPTT展开图。通过xt经正向运算求得hL+1,t,和已知的标记结果yt对比,得到误差,再通过计算误差估计对各参数的偏导数,求各参数的修正量。在训练过程中,采用标记学习的方法,即已知每组给定带噪音频的噪音分量,通过前置计算可求出一一对应的每帧的带噪音频的功率谱xt和噪音功率谱yt。

图6 多层GRU神经网络BPTT展开图Fig.6 BPTT expansion of multi layer GRU neural network

为了控制计算量,可将递归时间限制在一个固定值T,把训练的音频每T帧分为1组,完成每组计算后更新所有参数。若假设参数为M,学习率为μ,则更新参数M⟸M-μ·M。

3.5 GRU神经网络计算量分析

分析每个GRU层的计算量见表1,设该层有m个维度,从上一层传入n个输入维度,下一层有p个维度,总结果y的维度是q,计算时刻从t=0到t=T累计。矩阵运算换算为等量的实数运算表示。参数M包含Us、Ws、Bz、Uz、Wz、Br、Ur、Wr。

表1 GRU计算量分析Tab.1 GRU calculation analysis

根据以上统计可得出此神经网络结构的总运算量需求,运算量大于传统BP神经网络,小于LSTM神经网络。若训练后参数以双精度浮点数表示,则GRU储存空间分析见表2。

表2 GRU储存空间分析Tab.2 GRU storage space analysis

若采用的GRU神经网络中,共8个隐含层,每层都有1 024个单元,输入与输出维度均为256,每组训练T=10,则可计算出每次训练的总运算量为:加减法运算42,261,774,336次,乘法运算42,401,031,168次,除法运算245,760次,指数运算491,520次;参数消耗储存空间402,849,792字节。

按照理论计算速度分析:若以CPU为Intel Xeon E5-2640 v2的双路工作站以CPU标准频率计算,其双精度浮点计算能力为256 Gflops,则每秒可进行3.024次训练;若采用单精度浮点计算,速度为512 Gflops,每秒可进行6.048次训练;若以最高频率单精度计算,速度为640 Gflops,每秒可进行7.56次训练。

使用MATLAB的GPU加速工具箱,可以使用NVIDIA的CUDA并行计算架构加速计算。若GPU为NVIDIA GeForce GTX 1060,包含1 280个CUDA运算核心,其单精度计算能力为4 400 Gflops,则每秒可进行51.975次训练。

并且为了加快计算速度,在正向计算时可保留中间变量以供反向运算使用,避免对激活函数重复求导。另外可发现结果中部分算子重复,因此设若干中间量以减少运算量。

4 实验分析

4.1 实验环境

表3 实验环境Tab.3 Experimental Environment

4.2 数据源

实验数据源包括纯净语音信号、噪音信号2种。其中纯净语音信号来源于TIMIT语音数据库的TRAINING集[24],噪声数据为Perception and Neurodynamics实验室的100类噪声。

混合语音信号使用纯净语音信号与2~3种随机噪音信号按平均功率-10~10 dB动态随机强度混合得到,训练时随机选取其中的70%作为训练集、25%作为验证集、5%作为测试集。

4.3 数据预处理方法

输入处理部分,包括重采样、分帧、加窗、STFFT、标准化5个步骤。

由于语音信号主要考虑人耳识别效果,因此数据处理时应考虑心理声学与语言声学原理设定参数,兼顾效果与运算量。根据人耳的听觉特性可知,人对语音信号的功率谱敏感而对相位信息不敏感,因此采用功率谱为其特征;另外,对于语音信号,其具有短时稳定性和长时非平稳性的特性,即人说话时在不大于20 ms的时间片以内频谱相对稳定。因此为得到较平稳的频谱特征可以对输入音频流信号进行分帧处理。为了方便计算机计算以及采用快速傅里叶算法,选取参数时以2的整数次幂优先。

第一步需要对于不同输入设备的音频流统一进行重采样,以减小数据冗余和加快计算速度。研究表明语音信号仅保留频带为300~3 400 Hz范围部分不会影响信息表达,因此可定系统带宽为4 000 Hz,即采样率8 000 Hz。重采样包括两个过程,分别为无限脉冲响应滤波器(IIR) 抗混叠低通滤波和线性抽样。IIR使用Matlab的数字信号处理工具箱设计,截止频率3 600 Hz、4阶切比雪夫II型低通滤波器。

第二步为分帧,即把音频流分成以帧为单位的独立部分,选取16 ms的时间片长度分帧,根据8 000 Hz采样率计算得到每个帧的采样点数为128点。为了保证信号恢复合并效果,采用帧重叠方法。重叠率可选取[0,1),一般选取0.25~0.5,此处选择0.5即每帧的前8 ms和上一帧重叠、后8 ms和下一帧重叠。输入处理过程分帧、加窗示例如图7所示。

第三步为加窗,语音信号不完全周期性,不利于短时傅里叶分析,采用加窗方法提高信号周期性,减小频谱泄露。加窗即对信号和窗函数做乘积,经实验选择汉明窗的效果较优。窗函数如下:

图7 输入处理过程分帧、加窗示例Fig.7 Example of input processing waveform

第四步为STFFT,对加窗后的每帧信号进行快速傅里叶变换即可得到对应帧的频域信号(公式11)。根据傅里叶变换特性,当输入时域信号为实数时,输出的实部镜像、虚部共轭,因此可只保留前一半的结果即64个点。计算其对数功率谱和相角,其中相角保留用于信号恢复,对数功率谱进行下一步处理。根据奈奎斯特定律,此时频点宽度为62.5 Hz。

第五步为标准化,运行时使用标准化并保留参数,而训练时使用标准化和带参数标准化令两者一致(公式3)。标准化语谱图如图8所示,标准化系数曲线如图9所示。

图8 标准化语谱图Fig.8 Standardized spectrogram

图9 标准化系数曲线Fig.9 Standardization coefficient curve

4.4 神经网络训练

为验证此处理算法的可行性和效果,本文采取相同上下文的处理结构,仅就神经网络部分使用深度前馈BP神经网络以及GRU神经网络进行训练,两种神经网络的隐含层都为5层,每层1 024个单元(公式9、10)。

训练时使用带动量的随机梯度下降法能达到较好的训练效果[20,25]。如图10和图11所示为训练过程的MSE曲线。前馈BP网络的训练与测试曲线差别较大,反映出其泛化能力不佳。

图10 前馈BP神经网络训练误差曲线Fig.10 Training error curve of feedforward BP neural network

图11 GRU神经网络训练误差曲线Fig.11 GRU neural network training error curve

4.5 输出处理方法

输出处理部分包含标准化逆处理、谱减、ISTFFT、去窗、帧合并5个步骤。

第一步为标准化逆处理是标准化处理的逆过程,标准化函数是一个线性可逆的函数,使用与标准化处理时相同的函数模型和保留的标准化参数带入计算得到估计的噪声功率谱(公式4)。标准化逆处理效果如图12所示,标准化逆处理系数如图13所示。

图12 标准化逆处理效果Fig.12 Result of standardized inverse processing

图13 标准化逆处理系数Fig.13 Normalized inverse processing coefficient

第二部为谱减,将混合信号功率谱与估计的噪声功率谱相减得到去噪功率谱(公式6)。

第三步为ISTFFT,首先把对数功率谱转换为线性功率谱,为了变换结果虚部为0,需要输入参数实部镜像、虚部共轭,因此使用处理后的64点功率谱和保留的相位谱换算前64点复频谱并重构后64点复频谱,IFFT后得到128点时域实数信号(公式12)。

第四步为去窗,去窗过程为加窗的逆过程,用IFFT结果除以窗函数(公式25)得到结果。短时傅里叶逆变换与去窗效果如图14所示。

图14 短时傅里叶逆变换与去窗效果Fig.14 Result of inverse short time Fourier transform and remove window

第五步为帧合并线性比例叠加合并效果如图15所示,帧合并方法有重叠相加、截断、线性比例重叠相加,此方案采用线性比例重叠相加。

式中,xk,n为第k帧的第n个点;y为合并后每点的值。

图15 线性比例叠加合并效果Fig.15 Result of linear scale superposition

4.6 实验结果分析

首先进行典型验证实验以证明方案可行性,在典型的噪声(白噪、粉噪等)环境下,使用麦克风录制语音片段,进行处理后与处理前对比,通过人听、时域的包络图和频域的语谱图对比语音增强效果。

如图16所示为使用GRU神经网络的处理器结构对一段含有平稳白噪声的语音片段的处理结果,证实本文设计的结构与算法能达到语音增强效果,具有可行性。

图16 使用GRU神经网络算法处理含平稳白噪声的语音示例Fig.16 Example of using GRU neural network to process speech with stationary white noise

其后主要不同的处理方法的效果进行对比,对于平稳和单一的噪音,无论是传统的谱减法或者使用此结构的使用GRU噪声估计器、DNN噪声估计器、LSTM噪声估计器都能达到近似的效果(由于普通RNN因为梯度爆炸问题难以在此方法中应用,因此使用RNN的两种衍生类型LSTM和GRU来实验)。实验可知对于动态混合噪声(强度非平稳、多种类叠加),GRU与LSTM两种结构具有明显优势。

图17 对含动态混合噪声的语音信号使用GRU神经网络与DNN神经网络效果对比Fig.17 Comparison of GRU and DNN neural network for speech signal with dynamic mixed noise

如图17所示为采用此处理算法结构,使用GRU神经网络与作为对比的使用DNN神经网络做噪声估计对同一段复杂的含有2种以上时变噪声的语音片段处理结果,证实本设计的结构与算法使用GRU在复杂噪声环境下比DNN更具优势。

评分对比实验使用相同的处理算法结构,DNN、LSTM、GRU三种神经网络结构,每种结构都是64维输入、64维输出、8层、中间层256节点。使用一段底噪较小的、时长较长的录制语音分别与不同的组合噪声源数字叠加后作为样本输入。处理结果使用多种测试方法对比,包括包络图、语谱图、主观评分、客观评分。其中客观评分使用PSEQ算法,PSEQ是ITU-T P.862.2-2007建议书中推荐的一种语音质量评估方法,广泛用于音频处理与通信质量检测,结果位于1.0~4.5,值越大效果越好。

图18 前馈BP和LSTM以及GRU神经网络对测试样本增强的PESQ评估对比Fig.18 Use PESQ to compare the enhancement of test samples by feed-forward BP, LSTM and GRU neural network

如图18所示为前馈BP和LSTM以及GRU神经网络对测试样本增强的PESQ评估对比,由图18可见LSTM仅比GRU增强效果有微弱的优势,且LSTM与GRU都明显优于前馈BP(DNN),而GRU在计算量上比LSTM小,因此可以验证本文研究的语音增强方案有一定的价值。

5 结语

在动态混合噪声混合信号的环境下使用传统谱减法不能实现语音增强的作用而使用前馈BP神经网络可实现语音增强,但是效果显示不佳,而此实验使用的GRU神经网络进行噪声估计实现语音增强效果有所提高。

此音频处理器结构相比传统方案对动态噪声和多噪声模型叠加的抑制效果有所提升,可作为一种新的研究思路继续深入研究。

利用GPU计算的方法比CPU单核心计算速度已经有了10倍以上的提升,但是测试程序的平均计算速度还只达到了GPU理论峰值计算速度的20%左右,算法还有较大的提升空间。经过分析,实验中发现的GPU利用率较低的原因主要因为本次实验算法使用MATLAB平台开发,利用MATLAB中的并行运算工具箱对GPU运算的支持,并不是使用C++直接编写基于CUDA的GPU算法,数据传输和执行效率都较低。

猜你喜欢

音频噪声神经网络
On Doors
Egdon Heath (Extract from The Return of the Native)
基于神经网络的船舶电力系统故障诊断方法
MIV-PSO-BP神经网络用户热负荷预测
基于改进Hopfield神经网络的对地攻击型无人机自主能力评价
基于声类比的仿生圆柱壳流噪声特性研究
柏韵音频举办Pureaudio 2021新产品发布会
汽车制造企业噪声综合治理实践
三次样条和二次删除相辅助的WASD神经网络与日本人口预测
要减少暴露在噪声中吗?