一种语音信号重建算法

时间:2022-05-27 09:47:17

一种语音信号重建算法

摘 要:为了减轻因信包丢失而造成的语音失真,提出了一种基于双边线性预测的信包丢失隐藏算法。这种方法利用丢失信包的前一信包或邻接信包 (在后一信包可获得的情况下) 预测丢失信包,通过线性加权双边线性预测的样点获得最终的重建信号,使用重叠相加和幅度调整操作平滑重建信号和真实信号之间的边界。经过非正式试听和ITU-T P.862协议所推荐的PESQ算法测试,该算法的重建语音信号质量与其他四种流行重建算法相比,有了较为明显的改善。

关键词:IP语音;信包丢失隐藏;双边线性预测;语音质量评估

中图分类号:TN912.3 文献标识码:B

文章编号:1004-373X(2008)11-167-03

A Speech Signal Reconstruction Algorithm

TIAN Xu′an,XU Yibing,ZHU Min

(Xi′an Communication Institute,Xi′an,710106,China)

Abstract:In this paper,a two-sided linear prediction-based packet loss concealment algorithm is presented to alleviate the speech distortion caused by lost packets in VoIP.This algorithm predicts lost packets from speech segments via either preceding or both preceding and subsequent packets (If subsequent packet is available).Predicted samples are smoothed by linear weighting to obtain the final reconstructed signal.It also performs overlap-and-adding and amplitude-scaling operations to alleviate discontinuity at packet boundaries.The assessment of resultant speech quality via informal listening test and objective measurement with PESQ algorithm from ITU-T P.862 shows that the proposed algorithm has a significant improvement over other four popular reconstruction algorithms.

Keywords:VoIP speech;packet loss concealment;two-sided LP-based reconstruction;perceptual evaluation of speech quality

1 引 言

信包丢失问题是VoIP系统的主要考虑之一。当一个信包不能按时出现在接收端用于解码时,听到的语音信号质量就会降低。为此,很多算法被提了出来,控制从发送端、传输过程一直到接收端的各个环节,以检测和处理因信包丢失而造成的传输语音质量下降问题[1,2]。这些方法分为基于发端和基于收端两类[1]。基于发端的PLC由收、发两端共同参与完成;基于接收端的各类PLC算法根据接收端正常接收到的信包、丢失信包编号,以及预先知道的编码方式尽可能地恢复出原来的语音。基于收端的技术不需要发端数据的参与,不会增加系统的带宽和时延。本文主要考虑基于接收端的信包丢失隐藏(Packet Loss Concealment)方法。

基于收端常用的PLC方法有静音替代、前一信包重复、基音波形复制[3]和线性预测[4]。这些方法都没有考虑丢失信包的后续信包。在“尽力而为”型服务的IP网络中,由于接收缓冲器的存在,丢失信包后面的信包 (即未来信包,此后均用后一信包表示) 经常可以获得。适当利用丢失信包的后续样点重建丢失信包,在VoIP系统中是完全可以做到的。本文采用线性预测技术,用丢失信包的前一信包或前一信包及后一信包 (在后一信包可获得的情况下)重建丢失信包。重建语音信号的质量经过主观和客观测试,与上述四种常见方法比较有了较为明显的改善,得到了满意的效果。

2 双边线性预测

本文建议的基于双边线性预测PLC算法只在接收端实施,算法的基本操作是从丢失信包的邻接信包中估计出丢失语音分段的线性预测 (LP) 系数a(k)Ш图だ信号e(n)В再通过线性预测综合合成丢失信包的重建信号。

建议算法分为三部分:前向线性预测、后向线性预测和线性加权、幅度调整。当丢失信包的后一信包接收到时,实施双边线性预测;反之,只实施前向线性预测。重建信号产生后,经线性加权和幅度调整得到丢失信包的估计信号并输出。

2.1 前向线性预测

前向线性预测是指以丢失信包前的信号为参考样点通过线性预测分析综合方法合成丢失信包的前向预测信号Иf(n),0≤n

2.2 后向线性预测

后向线性预测与前向线性预测类似,不同之处在基音检测和激励信号产生这两个模块。基音检测采用文献[2]中的峰值检测法。当后续样点基音检测成功时,激励信号的产生方法如下:

И

b(n)=eb(N-L-P1+n), 0≤n

P1≤n

(1)

И

其中,P1为基音周期,L为线性预测的阶数。

若基音检测失败,激励信号按如下方式产生:

И

b(n)=eb(n), 0≤n

b(n-N+L),N-L≤n

(2)

И

线性加权、幅度调整的策略与信包丢失的类型有关,将在信包重建过程详细叙述。

3 信包重建过程

3.1 信包丢失前的好帧

在接收到好语音帧时,为了隐藏将来丢失的信包需要做两个准备:拷贝输出信号最后BЦ鲅点到历史缓冲器;输出信号延时DЦ鲅点。在第一个信包丢失期间,历史缓冲器用于计算线性预测系数、产生残差信号、估计基音周期、生成激励信号和合成重建信号;算法延时用于重叠相加(Overlap-and-Add ) 操作,平滑真实信号到重建信号的过渡。

为了进行实时处理,历史缓冲器更新如下:

И

hj(n)=hj-1(n+N),0≤n

hj(B-N+n)=xj(n),

0≤n

(3)

И

信号经DЦ鲅点延时后输出:

И

yj(n)=hj-1(B-D+n),0≤n

xj(n-D),D≤n

(4)

И

3.2 第一个丢失的信包

该信包的隐藏方法与后一信包是否正确接收到有关,具体隐藏方法如下。

3.2.1 后一信包丢失

在这种情况下,采用前向预测信号作为丢失信包的重建信号。

И

(n)=f(n+D), 0≤n

(5)

И

3.2.2 后一信包收到

当单个信包丢失,其邻接信包都收到时,实施前、后向线性预测,得到丢失信包的前、后向预测信号Иf(n)和b(n)。д饬礁鲂藕旁诟髯缘钠鹗级危大约一至两个基音周期内都非常好地逼近了原始语音样点。重建信号可通过线性加权这两个预测信号获得。

И

(n)=N-nN+1f(n+D)+n+1N+1b(n),0≤n

(6)

И

为了减轻丢失信包边界处的听觉失真,用历史缓冲器最后DЦ鲅点重叠相加前向预测信号前DЦ鲅点,平滑真实信号到重建信号的过渡。该结果替换历史缓冲器最后DЦ鲅点。

И

h′(n)=D-nD+1h(B-D+n)+n+1D+1f(n),0≤n

(7)

И

产生第一个丢失信包的重建信号后,用该信号更新历史缓冲器。

И

hj+1(n)=hj(n+N), 0≤n

hj+1(B-D-N+n)=h′(n), 0≤n

hj+1(B-D-N+n)=j(n), D≤n

(8)

И

3.3 后续丢失的信包

3.3.1 当前信包的后一信包丢失

在这种情况下,只使用前向线性预测,LP系数和基音周期与前一信包的值相同。

3.3.2 当前信包的后一信包可获得

在这种情况下,线性加权前、后向线性预测综合合成的信号作为丢失信包的重建信号,重建方法同3.2.2。

3.4 信包丢失后的第一个好帧

为了平滑重建信号到真实信号的过渡,用目前信包前D个样点重叠相加前一信包重构信号最后D个样点,结果替代该信包的前DЦ鲅点。

И

xj(n)=D-nD+1j-1(N+D+n)+n+1D+1xj(n),

0≤n

(9)

И

3.5 幅度调整

第一个G失信包对应输出信号的幅度保持不变,其余输出信号的幅度调整方法参考文献[5]。

4 测试结果

衡量不同PLC算法性能最根本的原则就是比较重建语音信号的质量。原则上讲,语音信号的质量是一个主观评判量,应该组织大量人员按照规范条件进行大量试听实验以给出一个语音质量的平均打分 (MOS)。但是,这种费时费力的方式对VoIP研究环境而言是不现实的。因此,我们在初步非正式试验粗略感觉到建议算法重建语音信号质量有所提高之后,就转为主要借助于客观质量评判方法比较重建语音信号质量上的变化。这就是文献[5]中的PESQ算法,该算法是ITU-T建议P.862描述的一种对语音质量的客观评价方法。他能够比较待测试语音信号与指定参考信号之间的听觉距离,提供一个类似于MOS的语音质量打分PESQ MOS。其取值在-0.5~4.5之间,与主观语音质量MOS取值域接近,且关联程度非常高。通过该方法,语音质量的主观感受MOS可以被客观评估量PESQ MOS很好地反映出来。

测试语音取自ITU-T P.23[6]数据库中四位英语说话人样点,两男两女,在该数据库中编号分别为OF01,OF02 (女)及OM01,OM02(男)。每个人有46个长8 s的句子,采样频率16 000 Hz,16 b编码保存。句子测试时,先读出原始记录,低采样到8 000 Hz,然后进行语音活动检测 (VAD)。在语音活动区域按照指定的信包丢失率随机选择一些信包设置为丢失,将其中样点用零替换。

测试参数设置如下:历史缓冲器长度B=240В信包长度N=160В线性预测阶数L=20В输出延时D=8В信包丢失率在2%~30%之间。在所有设置下共重建了212 805个丢失语音段。

表1 重建语音信号质量 (PESQ MOS)

表1按照9种信包丢失率,对5种算法重建语音信号的质量进行了比较。从数据表格中可以看出本文建议算法在所有信包丢失率下均优于其他算法。

5 结 语

通过标准数据库中大量语音信号的测试可以看出,基

于双边线性预测的信包丢失隐藏算法重建语音信号的质量得到了有效的提高。目前,通过考虑动态表示重建语音段类型和相位调整等因素以进一步提升重建语音信号质量的研究正在进行中。

参 考 文 献

[1]Colin P,Orion H,Vicky H.A Survey of Packet Loss Recovery Techniques for Streaming Audio[J].IEEE Networks,1998,12(5):40-48.

[3]ITU-T Recommendation G.711 Appendix I.A High Quality Low-Complexity Algorithm for Packet Loss Concealment with G.711,1999.

[4]Emre G,Momtahan K.A Linear Prediction-based Packet Loss Concealment Algorithm for PCM Coded Speech[J].IEEE Trans.on Speech and Audio Processing,2001,9(8):778-785.

[2]David J G,Gordon B L,Ondria J W,et al.Waveform Substitute Techniques for Recovering Missing Speech Segments in Packet Voice Communications[J].IEEE Transactions on Acoustics,Speech and Signal Processing,1986,34(6):1 440-1 448.

[5]ITU-T Recommendation P.862.Perceptual Evaluation of Speech Quality (PESQ),an Objective Method for End-to-End Speech Quality Assessment of Narrow-band Telephone Networks and Speech Codecs,2001.

[6]Supplement 23 to ITU-T P Series Recommendations.ITU-T Coded-speech Database,1998.

作者简介 田绪安 男,1955年出生,陕西长安人,副教授。从事计算机科学与应用研究。

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。

上一篇:基于DSP Builder的正弦信号源优化设计及其FPGA... 下一篇:利用单片机实现多路监测系统的设计与研究