在实际 的IP语音通信中,通常将特定长度的语音信号进行打包后传输,即将一帧或者多帧数据存储在一个数据包中进行传输,这就面临有可能丢失数据包的问题,一旦接收端没有接收到某一个包,或者这个包的传输时间过于长,则将这一包视为丢失。为了缓解丢包对语音的质量造成负面影响,除了基于发送端的前向纠错技术外,基于接收端的丢包隐藏方法(Packet Loss Concealment, PLC)同样可以恢复语音信号,并且这种方式不占用传输带宽。
对于传统的接收端PLC方法而言,文献[1]的作者提出了应用正确接收到的语音包替代丢失包的两种PLC方法,这两种方法都基于波形替代机理,一种是基于模式匹配,另一种则是基于基音估计,这两种方式均优于零值波形替代。文献[2]中的作者提出了一种线性预测方法,即利用线性预测分析提取正确接收的语音的残差信号,通过周期复制这个残差信号近似得到丢失的语音的激励信号,然后使用该激励信号生成合成语音。在此基础上,文献[3]的作者提出了一种双向的线性预测方法,即当一个包丢失的相邻包均为浊音,且基音周期相似时,则利用双向线性预测恢复出丢失包。
随着深度学习技术的发展,文献[4]的作者利用对数功率谱(log power spectrum,LPS)和相位谱,提出了基于深度神经网络(deep neural network,DNN)的丢包隐藏方法。本文也是在此基础上探讨了相位谱的优化问题。除此之外,也有作者利用生成式对抗网络(Generative Adversarial Network, GAN)[5]和循环神经网络(Recurrent Neural Network, RNN)[6]对时域波形信号进行学习,获得了不错的包丢隐藏效果。
对于深度学习而言,训练集数据本身的结构性对网络训练的准确性十分重要,结构性在概率的角度分析就是数据服从某种特殊分布。在文献[7]中,假设语音信号在频域中呈现复高斯分布,可以推导出其幅值会服从瑞利分布(Rayleigh Distribution),同时相位会服从均匀分布。LPS是通过幅度值变换而来,保留了结构性,而相位服从均匀分布则很难被DNN学习。在文献[8]中,使用了余弦差值函数作为损失函数学习相位,提升了重建后的语音可懂度。在文献[9]中,引入具有结构性的瞬时相位差(Instantaneous Phase Deviation, IPD)作为神经网络的学习目标,构建了一种单通道语音增强算法。
本文基于文献[4]中丢包复数谱的重建思路,利用DNN分别预测丢失包的LPS和IPD,得到了一种有效恢复丢失包内的语音信号的方法。语音质量的PESQ(Perceptual Evaluation of Speech Quality)[10]测试结果和语音可懂度的STOI(Short-Time Objective Intelligibility)[11]测试结果表明,本文提出的基于DNN和IPD的PLC方法的性能优于传统的基于DNN的PLC方法[4]。
本文的第2节将介绍基于IPD和DNN的PLC方法,包括IPD的定义和PLC算法的流程及实现,第3节将介绍仿真实验及结果,第4节给出了本文的结论。
本文在文献[4]基础上提出的基于IPD和DNN的PLC算法流程如图1所示。在该算法中,语音包是按时序传输的,即只能判断当前语音包的状态,可以分析的只有当前时刻到达的包和此包之前的接收包。因此,当包到达时,首先判断其是否为丢失包,若不是丢失包,则继续传输,若判定为丢失包,则进入PLC算法中。该算法首先对接收包进行特征提取,再将其送入训练好的DNN中,将输出的LPS和IPD重构为语音波形,最后输出帧流,完成PLC。为了简化模型,我们设置每一包中只包含一帧的语音。接下来将具体介绍特征提取和网络隐藏这两部分。
图1 基于IPD和DNN的PLC算法流程图
Fig.1 Flow chart of PLC algorithm based on the IPD and DNN
语音信号x(n)经过短时傅里叶变换后会得到如下的复数谱X(k,l):
(1)
式(1)中w(n)表示长度为N的窗函数,用于对语音信号进行分帧;L表示每次分帧的帧移,k表示离散频率序号,l表示帧的序号,角频率Ωk=2πk/N。式(1)的极坐标形式为:
X(k,l)=|X(k,l)|ejφx(k,l)
(2)
其中,|X(k,l)|为幅度谱,φx(k,l)为区间[-π,π]上均匀分布的相位谱。通过定义如下与输入复数谱X(k,l)相联系的瞬时相位差IPDx(k,l),可使相位φx(k,l)在[-π,π]区间内具有特殊的结构。
IPDx(k,l)=arg(X(k,l)X*(k,l-1))
(3)
式(3)中符合“*”表示复共轭,arg(·)表示对复数求相角。对于第一帧而言,瞬时相位差等于第一帧的相位,余下帧的瞬时相位差则是当前帧的复数谱与上一帧的复共轭谱相乘后取相角的结果。由此可以保证瞬时相位差只存在于[-π,π]区间之内。为了消除瞬时相位差在时间轴上产生平行条纹的问题,文献[12]通过在每个频点减去固定相位φ=2πL/N,得到了修正的瞬时相位差(Modified IPD,MIPD),增强了相位特征的结构:
MIPDx(k,l)=arg(X(k,l)X*(k,l-1)e-jφk)
(4)
由于需要将MIPD送入深度神经网络中进行学习,需对其进行归一化处理,即将MIPD的取值范围限制在0和1之间,得到修正和归一化的IPD(Modified and Normalized IPD,MNIPD)为:
(5)
图2给出了一段语音信号的LPS、相位谱、归一化的IPD(Normalized IPD, NIPD)和MNIPD的频谱比较,从中可以看出, MNIPD比NIPD更类似于LPS,动态范围远小于LPS,且去除了NIPD中的平行条纹,非常适合DNN的输入特征要求。
图2 语谱图比较
Fig.2 Spectrogram comparison
对于DNN而言,0与1表示的是完全不同的状态数值,两者状态的跳变为1,而对于MNIPD所代表的相位值而言,两者是等价的关系。因此,需将MNIPD聚集在0.5处,以便减少它在0与1附近的分布。MNIPD的分布特征可以有效地做到这一点,图3给出了相同窗长和不同的帧重叠情况下MNIPD的统计直方图。从图3可以看出,帧重叠比率越高,MNIPD的分布越趋向于归一化的角频率0.5。此外,可以看出MNIPD的分布比NIPD更符合Von-mises分布[8],因此,MNIPD更有利于DNN的学习。
图3 帧重叠50%和75%情况下的NIPD和MNIPD统计直方图
Fig.3 Histograms of NIPD and MNIPD in the case of 50% and 75% overlap of the frames
在DNN的训练阶段,本文按时序及相邻帧的相关性[13]分别训练LPS和MNIPD的DNN,且只利用丢失帧前面的语音信息恢复当前的丢失帧语音。LPS的DNN训练结构如图4所示,DNN的输入特征为连续10帧的LPS,训练目标为后续的第11帧的LPS。对于用于MNIPD的DNN, 网络结构类似于LPS,DNN的输入特征为帧重叠75%、连续9帧的MNIPD,训练目标为后续的第10帧MNIPD。
图4 训练LPS的DNN结构
Fig.4 The structure of the DNN for the LPS training
在测试阶段,对于语音信号按照时序进行丢帧判别。当一帧内所有数据均为0时,这一帧被认定为语音丢失,并且丢失帧之前的所有帧都是未丢失的或恢复后的语音。将丢失帧前10帧的LPS送入网络中,即可恢复出丢失帧的LPS。但是对于MNIPD特征而言,由于实际语音编码中的帧重叠比率为50%,导致结构性不理想,需进行帧重叠变换,具体如图5(a)所示。先选取帧重叠50%的丢失帧前面5帧,将其恢复语音波形,再对语音信号进行帧重叠75%的分帧处理,如图5(b)图所示,这样变换后的前9帧可看成是完整未丢失的,如果想得到丢失帧(点状帧)的相位,需要经过两次DNN学习过程,即先将前9帧的MNIPD送入网络中,输出第10帧(斜条纹帧)的MNIPD,之后将第2帧至第10帧特征再次送入网络中,得到目标丢失帧的MNIPD(点状帧),根据IPD的定义即可得到丢失帧的相位。与LPS网络得到丢失帧的幅度结合,可以恢复出丢失帧的复频谱,再经过逆短时傅里叶变换,可以得到丢失帧的时域波形。在包传输过程中,可能会发生连续丢包的情况,此时可采取逐帧恢复的办法,即将丢失的第一帧恢复后,再恢复丢失的第二帧,直到恢复所有的丢失帧。
图5 50%至75%的帧重叠转换
Fig.5 Overlap transform of the frame from 50% to 75%
为了验证本文所提出的PLC算法的有效性,本文依据ITU-T G.191中的基尔伯特丢包发生器[14]完成PLC的模拟实验。在实际情况下,网络的信道往往具有“记忆”功能,即丢包之间存在短暂的相关性。在大多数情况,很少发生丢包现象,但是一旦出现了丢包,会按随机概率发生连续丢包,ITU-T G.191中的丢包发生器可按信道记忆有效模拟随机丢包的情况。
我们选择了Librispeech[15]语音数据集作为网络的训练集和测试集,共计选取了时长为8.39小时的训练语音,并且选用了时长为1.35小时的测试集语音来进行评价。语音信号的采样率为16 kHz,采用汉明窗进行语音的分帧,窗长为20 ms(320个样点),构建LPS和MNIPD的帧移分别为10 ms(160个样点,50%帧重叠)和5 ms(80个样点,75%帧重叠)。
神经网络由四层全连接层构成,每层的神经元个数为2048个,每层包含着一个批量归一化(Batch Normalization)层[16]和一个Dropout[17]层,以提高网络的泛化特性。每一层的激活函数均为线性整流函数(Rectified Linear Unit, ReLU),这种函数可以提高网络的收敛速度。网络的优化算法是Adam算法,初始学习率设置为0.0005。损失函数是均方误差(Mean Squared Error, MSE)函数。为了加快网络的收敛速度,使用了mini batch算法,批量的大小设置为1200。共计迭代120个周期。
本实验验证了丢包率为5%,10%,15%,20%,30%情况时,丢包隐藏的恢复效果。其中,包丢失包含随机单独丢包和连续丢包两种情况。我们设置每个数据包中只包含一帧语音信息。波形比较和质量评测验证了本文方法的有效性。
基于DNN的语音丢包隐藏本质上是一种回归问题,训练集越大,学习效果越佳。但大的训练集也会带来网络过拟合的问题。同时,训练集过大也会增加学习成本,降低网络的收敛速度。为了减少这类问题,本文选用批量归一化[16]和Dropout[17]来优化网络的训练。如图6所示,使用这两种技术可使得验证集的损失函数更贴近训练集的损失函数,这也表明优化网络的训练过程没有发生过拟合现象,而且最终的学习效果更好。
图6 不同网络的损失函数
Fig.6 Loss functions of different networks
接下来,对LPS和MNIPD进行DNN预测,图7给出了它们的学习结果比较示例,其中,实线表示原始特征,虚线表示学习恢复的特征。从图7(a)给出的结果看,MNIPD在均值0.5附近随机波动,低频处的拟合度较好,而高频处的拟合效果较差。造成这样的学习结果,主要是两方面的原因。一方面是在恢复丢失帧相位过程中,需要经过两次DNN学习,导致学习效果减弱,另一方面则是MNIPD本身特性,因为MNIPD的频谱有类似于LPS的谐波结构,在低频处有较为良好的结构性,而高频处的结构性不强。语音信号的LPS除了反映语音信号的能量,也反映了语音信号的周期性谐波结构,因此,它很容易被深度神经网络学习,从图7(b)可以看出,学习后的LPS的包络与原始的LPS大体相近,但幅度谱的细节信息(谐波结构)未能体现。
图7 LPS和MNIPD的学习结果示例
Fig.7 Examples of the LPS and MNIPD learning
分析完LPS和MNIPD特征的学习结果后,接下来进行对不同方法波形整体重建的评价。本文共选用了三种方法进行比较。第一种方法[4]将丢失帧的前一帧的相位作为丢失帧的相位,DNN只训练LPS,该方法用LPS表示;第二种方法使用两个DNN分别训练特征LPS和NIPD,最后利用学习后的相位与幅度恢复出丢失帧的波形,该方法用LPS+NIPD表示;第三种方法将方法二中NIPD替换成MNIPD,其他不变,该方法用LPS+MNIPD表示。
首先比较的是上述方法对丢失一帧语音的重建效果。图8中的实线表示原始帧的波形,虚线表示恢复帧的波形。如图8(a)所示,方法LPS恢复的效果不佳,原始帧的波峰和重建的波峰有较大的位移,原始的波形与学习后波形贴合并不紧密,原因是该方法学习的特征只有LPS。对于图8(b)和图8(c),经过相位学习,方法LPS+NIPD和LPS+MNIPD的波峰贴合更为紧密了,尤其相位特征为MNIPD时,恢复后的波峰与原始波峰接近重合,这是因为相位信息对语音信号有时移的影响,提高相位信息的精准度,自然会提高波形的准确度。
图8 单帧丢失波形的比较
Fig.8 Waveform comparison for the individually lost frame
其次,在高丢包率的传输过程中会发生连续丢包的情况,因为丢失帧的恢复需要前几帧的信息,所以连续丢包恢复对丢包隐藏有很大的挑战。图9给出一段丢包率为50%语音连续丢包的示例,可以看出,上面介绍的三种方法对于连续丢帧的语音段均有一定的信息补偿。但只有方法LPS+MNIPD恢复后的信号有一定的周期性,并在30 ms、40 ms和50 ms处显示了比较接近原始信号的波峰,原因是MNIPD的引入补偿了复数谱的相位信息,使得语音信号在时域的周期性得以恢复,从而提升了语音质量。
图9 连续丢帧波形的比较
Fig.9 Waveform comparison for the consecutively lost frames
最后, 我们用PESQ和STOI评估使用PLC后的语音质量和语音可懂度。对于丢包语音而言,丢失帧内全部数据用0值代替也可视作一种丢包隐藏的方法,本文将其视为基准方法。表1和表2分别给出了PESQ和STOI测试结果,从中可以看出,三种PLC方法都比基准方法提高很多,其中,LPS+MNIPD方法提升最为明显,这也进一步证明了基于相位特征学习的方法可以提高语音质量和可懂度,且基于MNIPD的方法要强于NIPD方法。
表1 不同丢包率下的PESQ结果
Tab.1 PESQ results at different packet loss rates
丢包率PESQ基准LPS[4]LPS+NIPDLPS+MNIPD5%3.163.293.483.5010%2.682.913.133.1715%2.412.732.942.9720%2.092.542.732.7630%1.652.222.382.41
表2 不同丢包率下的STOI结果
Tab.2 STOI results at different packet loss rates
丢包率STOI基准LPS[4]LPS+NIPDLPS+MNIPD5%0.95720.96850.97540.976610%0.92170.94330.95450.956415%0.88870.91830.93460.937220%0.85380.89400.91230.915930%0.78070.84050.86290.8679
本文提出了一种基于瞬时相位差和深度学习的丢包隐藏算法,该方法通过引入相位特征MNIPD训练DNN,有效提升了只使用LPS训练DNN的丢包隐藏算法的性能,增强了传统丢包隐藏方法的泛化性和适用性。
[1] GOODMAN D, JAFFE O, LOCKHART G, et al.Waveform substitution techniques for recovering missing speech segments in packet voice communications[J].ICASSP′86 IEEE International Conference on Acoustics, Speech, and Signal Processing, 1986, 11: 105-108.
[2] GUNDUZHAN E, MOMTAHAN K.Linear prediction based packet loss concealment algorithm for PCM coded speech[J].IEEE Transactions on Speech and Audio Processing, 2001, 9(8): 778-785.
[3] XIE Qingsong, WEI Wei, CHEN Quji.A new packet loss concealment algorithm in VoIP[C]∥2016 IEEE Advanced Information Management, Communicates, Electronic and Automation Control Conference(IMCEC).Xi’an, China.IEEE, 2016: 1597-1601.
[4] LEE B K, CHANG J H.Packet loss concealment based on deep neural networks for digital speech transmission[J].IEEE/ACM Transactions on Audio, Speech, and Language Processing, 2016, 24(2): 378-387.
[5] SHI Yupeng, ZHENG Nengheng, KANG Yuyong, et al.Speech loss compensation by generative adversarial networks[C]∥2019 Asia-Pacific Signal and Information Processing Association Annual Summit and Conference(APSIPA ASC).Lanzhou, China.IEEE, 2019: 347-351.
[6] GOVALKAR P, FISCHER J, ZALKOW F, et al.A comparison of recent neural vocoders for speech signal reconstruction[C]∥10th ISCA Speech Synthesis Workshop.ISCA: ISCA, 2019: 7-12.
[7] ASTUDILLO R F.Integration of short-time Fourier domain speech enhancement and observation uncertainty techniques for robust automatic speech recognition[EB/OL].2010.https:∥www.researchgate.net/profile/Ramon-Astudillo/publication/44254286_Integration_of_ShortTime_Fourier_Domain_Speech_Enhancement_and_Observation_Uncertainty_Techniques_for_Robust_Automatic_Speech_Recognition/links/00463528881491e5aa000000/Integration-of-Short-Time-Fourier-Domain-Speech-Enhancement-and-Observation-Uncertainty-Techniques-for-Robust-Automatic-Speech-Recognition.pdf.
[8] TAKAMICHI S, SAITO Y, TAKAMUNE N, et al.Phase reconstruction from amplitude spectrograms based on von-mises-distribution deep neural network[C]∥2018 16th International Workshop on Acoustic Signal Enhancement(IWAENC).Tokyo, Japan.IEEE, 2018: 286-290.
[9] ZHENG Naijun, ZHANG Xiaolei.Phase-aware speech enhancement based on deep neural networks[J].IEEE/ACM Transactions on Audio, Speech, and Language Processing, 2019, 27(1): 63-76.
[10] HU Yi, LOIZOU P C.Evaluation of objective quality measures for speech enhancement[J].IEEE Transactions on Audio, Speech, and Language Processing, 2008, 16(1): 229-238.
[11] TAAL C H, HENDRIKS R C, HEUSDENS R, et al.A short-time objective intelligibility measure for time-frequency weighted noisy speech[C]∥2010 IEEE International Conference on Acoustics, Speech and Signal Processing.Dallas, TX, USA.IEEE, 2010: 4214-4217.
[12] STARK A P, PALIWAL K K.Speech analysis using instantaneous frequency deviation[J].Proceedings of the Annual Conference of the International Speech Communication Association, INTERSPEECH, 2008: 2602-2605.
[13] SEYMORE K, MCCALLUM A, ROSENFELD R.Learning hidden Markov model structure for information extraction[J].In AAAI 99 Workshop on Machine Learning for Information Extraction, 1999: 37-42.
[14] FISHMAN G, BRADNER S.Internet engineering task force and international telecommunication union-telecommunications standardization sector collaboration guidelines[R].RFC Editor, 2002.
[15] PANAYOTOV V, CHEN Guoguo, POVEY D, et al.Librispeech: An ASR corpus based on public domain audio books[C]∥2015 IEEE International Conference on Acoustics, Speech and Signal Processing(ICASSP).South Brisbane, QLD, Australia.IEEE, 2015: 5206-5210.
[16] IOFFE S, SZEGEDY C.Batch normalization: Accelerating deep network training by reducing internal covariate shift[C]∥International Conference on Machine Learning, Lille, France, 7-9 July 2015: 448-456.
[17] KRIZHEVSKY A, SUTSKEVER I, HINTON G E.ImageNet classification with deep convolutional neural networks[J].Communications of the ACM, 2017, 60(6): 84-90.
Reference format: HUANG Jinwei, BAO Changchun.Packet loss concealment based on instantaneous phase deviation and deep neural network[J].Journal of Signal Processing, 2021, 37(10): 1791-1798.DOI: 10.16798/j.issn.1003-0530.2021.10.001.
黄晋维 男,1998年生,河北秦皇岛人。北京工业大学信息学部硕士研究生,主要研究方向为语音信号处理。
E-mail: S202071013@emails.bjut.edu.cn
鲍长春 男,1965年生,内蒙古赤峰人。北京工业大学信息学部教授,博士生导师。主要研究方向为语音与音频信号处理。
E-mail: chchbao@bjut.edu.cn