第17卷第5期
通 信 学 报
JOURNALOFCHINAINSTITUTEOFCOMMUNICATIONS
Vol.17No.5
September1996
改进型LPC声码器语音编码算法
王 田 崔慧娟 冯重熙(清华大学 北京100084)摘 要 本文给出了一种改进的LPC语音编码算法,用于实现低速率声码器。与传统LPC声码器算法相比,本算法在参数提取及合成等方面采取了一些改进措施,使得合成语音质量有很大的提高。
本文在引言后概述了编码算法改进的考虑,然后给出编译码器的算法,重点讨论了本文提出的用动态规划法进行基音提取和平滑的新算法,以及合成端混合激励算法。本算法已经用
TMS320C25实现单片编解码。
关键词 低速率语音编码 LPC声码器 基音提取 动态规划
ImprovedLPCSpeechCodingAlgorithm
WangTian CuiHuijuan FengChongxi
(TsinghuaUniversity,Beijing100084)
Abstract ThispapergivesanimprovedLPCspeechcodingalgorithmforlowbit2ratevocoder.ComparedwithconventionalLPCvocoder,ourimprovedonehasseveralimprovementsonparam2etersextractionandsynthesis,etc.Thespeechqualityofourvocoderismuchbetterthanthatofconventionalone.
Afterabriefintroduction,thei.Thenthenewal2mprovingmethodsarediscussedingeneral
gorithmsofpitchextractionusingdynamicprogrammingandmixedexcitationofsynthesizerare.ThevocoderhasbeenidiscussedindetailmplementedusingasingleTMS320C25DSPchipforcodinganddecoding.
Keywords lowbit2ratespeechcoding,LPCvocoder,pitchextraction,dynamicprogramming
1 引言
速率为2.4kbit80年s甚至更低的语音编码算法的研究,长期以来一直受到人们的重视。
代初,美国国防部公布了LPC210算法标准[1],基于这个算法的声码器用于美国保密电话单元(STU2II)。该声码器采用简单的激励模型,有较好的可懂度,但自然度和抗噪声能力较差。随后美国国防部又公布了LPC210的改进型算法LPC210e[2],使得自然度、鲁棒性有所提高,但其话音质量仍然满足不了人们的需要。
90年代以来,低速率语音编码算法有了新的进展,出现了多带激励(MBE)等新的算法。但多带激励算法需要采用浮点的数字信号处理器(DSP)来实时实现,功耗大且成本高。本文给出了一种新的改进型LPC声码器。该声码器不仅算法较简单,可用一片TMS320C25定点数字信号处理器实时实现编解码,而且合成语音质量比采用LPC210(e)算法的LPC声码器有了很
・2・通 信 学 报1996年
大的提高,与MBE声码器质量接近。
本文第2部分为对LPC算法的改进。第3部分介绍编码器算法,重点在自相关法加动态规划来进行基音提取的算法。第4部分介绍合成器的算法,主要是混合激励算法。最后是系统性能和实时实现。
2 LPC算法的改进
211 传统LPC声码器存在的问题
传统的LPC声码器采用二元激励模型。这个模型将短时语音段分为清音和浊音两种类型。分别采用随机噪声序列和周期序列激励全极点合成滤波器,从而得到合成语音信号,其合成语音的自然度较差,合成声重,声音发紧,而且系统的鲁棒性较差,在背景噪声较大的环境中,合成语音质量下降较大。
传统模型语音质量差主要由两方面原因造成的。一是受语音生成模型所限;二是语音生成模型参数估计不够准确。
实际语音很难确切分为清音或浊音,往往是两者并存,特别是在过渡段及噪声较强的语音段。一旦清浊音判决错误,语音质量就会受到很大的影响。即使没有判决错误,简单的二元激励也会造成合成语音的机器声较重,影响自然度。
在LPC210算法中,要估计的参数包括:线性预测系数(LP系数);清浊音判决;浊音的基音周期;短时语音段的能量等。其中基音周期提取和清浊音判决难度较大。在LPC210声码器中,基音周期的提取采用平均幅度差函数(AMDF)的方法,这种方法不需要乘法运算,但是准确度较差,严重影响了语音的质量。212 算法的改进
前面提到影响传统LPC算法质量的两个主要方面,算法的改进正是从这两方面出发,一方面改进语音的生成模型,一方面提高参数提取的准确度。 (1)语音的生成模型
本文所述的改进型LPC声码器采用混合激励的模型[5],其模型原理框图如图1所示。
图1 改进型声码器混合激励模型
在混合模型中,浊音段激励信号不是简单采用周期信号,而是将随机噪声序列通过高通滤波器,周期信号通过低通滤波器,两者混合作为激励信号;清音段激励信号仍然采用随机噪声序列。这个模型更符合语音的实际特性,同时清浊音判决的灵敏度下降了。由于浊音段激励信号中存在随机成分,可以适当调整门限,使得清浊音判决中浊音比例提高,合成时后向提取混合比例因子,决定随机成分在激励信号中的比例。采用这个模型,清浊音判决变得容易了,同时避免了浊音过多造成的合成声太重,提高了合成语音的自然度。 (2)基音周期的提取与平滑
第5期王 田等:改进型LPC声码器语音编码算法・3・
采用AMDF的方法提取基音周期,可以避免乘法运算。随着数字信号处理器的发展,乘累加运算可在单周期中完成,所以乘法运算已经不是影响运算速度的重要因素。改进的LPC算法采用自相关函数的方法提取基音,以提高参数估计准确度。
对于实际语音信号,基音周期的变化比较缓慢,帧间的相关性较大。在合成语音时,基音周期要进行插值,使得合成语音能较好地连接。如果提取的基音周期帧间变化较大,合成语音会因为衔接不好而极大地影响语音质量。所以提取基音周期的同时还要考虑基音周期的平滑。为此本文提出了一种自相关函数结合动态规划的新算法,进行基音周期的提取和平滑。采用了该算法后,语音质量有了显著的提高,这是整个算法改进的关键。在本文第3部分中,将给出算法的细节。
213 算法的基本参数 改进LPC算法的一些基本参数见表1: 表1
符号
算法基本参数
名称抽样率
FRAMESIZEORDERHAMMING
数值
8kHz
180samples(22.5ms)
10205samples
帧长短时滤波器阶数
HAMMING窗长
算法需要分析的参数包括:谱包络信息、采用线谱对(LSP)量化、基音周期、清浊音判决、能量、抖动与嚓音。比特分配见表2。 表2
符号
SYNLSP[0]LSP[1]LSP[2]LSP[3]LSP[4]LSP[5]LSP[6]LSP[7]LSP[8]LSP[9]PITCH&UV
RMS
JITTERFRICATIVE
传输参数比特分配
名称同步第1个线谱对系数第2个线谱对系数第3个线谱对系数第4个线谱对系数第5个线谱对系数第6个线谱对系数第7个线谱对系数第8个线谱对系数第9个线谱对系数第10个线谱对系数基音周期及清浊判决
能量抖动或嚓音
总计
比特数
1344443333375148
・4・通 信 学 报1996年
传输参数中,用线谱对代替了传统算法中的反射系数,根据改进的LPC算法,设计了LSP量化码本。LSP34比特量化与反射系数41比特量化相比,谱误差基本都在1dB左右,主观听音时两者无法区分,但传输比特每帧可减少7bit。
因为帧长为180个样点,算法(包括同步)使用48bit。所以传输速率不到2.2kbits。可以加纠错编码或其它比特达到通常的2.4kbits,用于实际系统。
3 编码器算法
311 编码器框图
图2为编码器的总体框图。其中关键的基音提取、清浊音判决等模块采用了新的方法。
图2 编码器的总体框图
312 基音提取与清浊音判决
基音提取与清浊音判决密切相关。本算法中采用自相关结合动态规划的方法进行基音提取和平滑。考虑到本算法中清浊音判决灵敏度低,主要根据自相关函数进行判决。下面给出算法的细节。
(1)自相关函数计算
首先,语音经过去直流,800Hz低通滤波器,进行2阶逆滤波,然后求算自相关函数R(m)
m=18,…,148。因为语音的基音周期一般在18到148之间,所以只计算18到148之间的自
相关函数值。仅保留大于零的值并进行归一化后得到
(1)G(m)=R(m)R(0)m=18,…,148
(2)清浊音判决
进行二阶逆滤波时可得到低通滤波后、二阶逆滤波前的能量ELP,求出语音的平均幅度
Eavr=
ELPHAMMING
(2)
第5期王 田等:改进型LPC声码器语音编码算法・5・
设G的最大峰值为Gpeak,G的平均值为Gavr。
M=argmaxG(m)
18≤m≤148
(3)(4)(5)
Gpeak=G(M)
148
Gavr=
m=18
∑G
2
(m)131
取Eavr和Xperiod=Gpeak+2Gavr作为清浊音判决的依据[7]。
当Eavr小于一定的门限时,语音能量太小,判决为清音,否则当Xperiod小于一定的门限时,说明周期性不强,判决为清音,大于门限时判决为浊音。(3)基音提取 如果直接取自相关函数最大峰对应的下标为基音周期,判决错误的可能性较大。帧间基音可能有较大的跳跃,或提取到基音周期的倍数上。这些错误对语音质量有很大的影响。所以需要采取基音平滑的措施。
本算法中基音周期的平滑需要2帧的延迟。考虑到受基音的倍频和分数倍频等的影响,准确的基音周期对应的相关值可能不是自相关函数的最大峰,但是一般不会在前5个峰以外。所以我们取自相关函数的前5个峰,基音周期必须从前5个自相关局部最大峰中选取。设当前帧的自相关函数G的前5个局部最大峰为Gpeak3[0]~Gpeak3[4],对应的基音周期为P3[0]~P3[4]。再前一帧的基音周期已求出,设为Phis。见图3。
图3 基音平滑图示
我们记当前帧为第3帧,前两帧为第2和第1帧,而第0帧的基音周期已经求出。现在的目的是输出第1帧的基音周期。我们根据连续4帧的信息提取和平滑基音周期,就可以使基音周期参数的估计较为准确。
在基音提取和平滑之前,首先要选取一个准则,即把什么是合理的基音提取转换成数量比较,也就是要定义一个合理的代价函数,使得问题转化为选取基音周期使代价函数最小。 设第i帧第j个自相关峰为Lij,定义第i帧第j个峰到第i+1帧第k个峰之间的距离为d(Li,j,Li+1,k)。
d(L
i,j
,L
i+1,k
)=
∞
(1-Gi+1[k])100
当第i+1帧为清音帧时 当第i帧为清音帧时 (6)
Pi[j]-Pi+1[k]+(1-Gi+1[k])100其它
・6・通 信 学 报1996年
从式(6)的第3种情况可以看出,等式右边的第1项越小,相邻帧的基音变化越小;等式右边的第2项越小,自相关函数的峰值越大,周期性越强。
从第0帧出发,经过第1帧、第2帧到第3帧路径的一条路径,对应一组可选择的基音周期估计,其累计距离为各段距离之合,选取此累计距离为代价函数,则求基音周期可以归结为在这些路径中找一条代价最小即最短的路径。这样就可以采用著名的动态规划算法,找到最短路径,它经过第1帧的峰点所对应的基音周期就作为最后的基音输出。具体的判决如下: (1)如果第0帧为清音帧,则输出P1[0]。
(2)如果第0帧为浊音帧,第2帧为清音帧,在第0帧到第1帧之间的五条路径中,找距离最短的路径,输出对应第1帧的基音周期。 (3)如果第2帧是浊音帧,但第3帧是清音帧,则从第0帧到第2帧的路径中找最短路径,输出对应第1帧的基音周期。
(4)如果第3帧也是浊音帧,则从第0帧到第3帧的路径中找最短路径,输出对应第1帧的基音周期。
(5)在求出基音周期后,更新历史。313 抖动和嚓音
浊音时,当周期度指标Xperiod<0.6时,考虑周期性不是很强,此时抖动标志为1。合成端基音长度进行适当抖动,使得合成语音的周期性不至于太强而造成合成声太重。 清音时,求低通幅度与全带幅度之比
R1prms=
EavrRMS
(7)
当R1prms<1.4时,说明高带能量较大,此时嚓音标志为1。合成端的合成语音经过高通再输出。这样处理,对于某些高带能量较大的辅音清晰度有所提高。
4 合成端算法
411 合成端框图
图4为合成端的总体框图。合成算法主要在混合激励部分,下面给出混合激励的算法。412 混合激励算法
如果激励信号中周期成分太强,合成语音的合成声重;反之激励信号中噪声成分太强,合成语音含混,清晰度下降。所以要选择合适的混合度。考虑到传输速率的限制,混合模型的参数在合成端求算。通过混合控制算法决定混合比例,如果取低通和高通滤波器的传输函数分别为1+a・z-1和1-b・z-1[5]。根据激励谱要保持平坦的要求,定出滤波器的系数a和b。 首先估计全浊音能量(Epower),只在浊音段更新全浊音能量。
Epower,currentframe=max[RMS,Epower,lastframe0.96]
(8)
合成端要进行基音插值,每个基音周期插值出的能量为Ermsi。比较Ermsi与Epower。
Sdbrate=20log10
Ermsi(dB)
Epower
(9)
如果Ermsi低于Epower在6dB以内,混合度(Cmix为0.25(80◊混合);如果在18dB以下,混合度为1.0(50◊混合);在两者之间,进行线性插值得到混合度。根据激励信号谱平坦的要求,可以得出a和b之间的关系
a=bCmix
2
(10)
第5期王 田等:改进型LPC声码器语音编码算法・7・
图4 合成端的总体框图
实际计算中,取b=1,由混合度Cmix和式(10)得到a。
5 系统性能与实时实现
低速率语音编码质量的客观量度比较困难,一般通过主观听音来衡量,包括可懂度及自然度等。LPC210(e)算法的可懂度及自然度均较差。通过采用混合激励语音自然度有明显的提高,但是变调和声音发哑等现象仍然很多。通过波形分析得知,变调是因为基音周期提取错误,声音发哑是因为浊音段判决为清音造成的。采用本文提出的自相关结合动态规划的算法基音及清浊音判决的方法后,波形分析表明,在一般噪声环境下,基音周期提取基本没有错误,变调现象消失。清浊音判决要进行平滑,去掉连续3帧为:清—浊—清、浊—清—浊的情况。判决的阈值是通过波形分析加实时听音决定的。
通过主观听音测试,采用本算法的声码器语音质量在可懂度及自然度方面比LPC210(e)算法有明显的提高,抗噪声能力也有所提高。汉语DRT测试对干净语音平均得分为92。 基于本文所述算法的声码器,已经用单片TMS320C25数字信号处理器实时实现。听音测试表明语音质量与高级语音模拟结果几乎完全一样。
参 考 文 献
1 TremainTE.Thegovernmentstandardlinearpredictivecodingalgorithm:LPC210.In:SpeechTechnology,19822 BlakleyJR,BroukJR,KleijnWB,MylesRJ,ProrokBC,ZurawskiRJ.AnefficientimplementationoftheLPC210e
speechcodingalgorithm.In:MilitaryCommunication,1987
・8・通 信 学 报1996年
3 MakhoulJ,ViswanathanR,SchwartzR,HugginsAWF.Amixed2sourcemodelforspeechcompressionandsynthesis.
~1581JAcoustSocAmer,1978,64(12):1577
4 KangGS,EverettSS.Improvementoftheexcitationsourceinthenarrow2bandlinearpredictionvocoder.IEEETrans
~386onASSP,1985,33(4):377
5 ~596McCreeAV,BarnwellIIITP.AnewmixedexcitationLPCvocoder.In:ICASSP’91.1991,593
6 McCreeAV,BarnwellIIITP.ImprovingtheperformanceofamixedexcitationLPCvocoderinacousticnoise.In:
~II140ICASSP’92.1992,II137
7 KrubsackDA,NiederjohnRJ.Anautocorrelationpitchdetectorandvoicingdecisionwithconfidencemeasuresdevel2
~329opedfornoise2corruptedspeech.IEEETransonSignalProcessing,1991,39(2):319(1994年11月22日收到,1996年4月17日改定)
因篇幅问题不能全部显示,请点此查看更多更全内容