陈利峰,秦永左
(长春理工大学 电子信息工程学院,长春 130022)
语音编解码延时是衡量语音编码性能的重要指标之一,较大的编码延时不仅会降低语音通信的服务质量,同时还可能减小系统容量。1992年ITU正式公布了G.728标准[1],即16kbit/s LD-CELP低延迟码激励线性预测编码标准,它能达到0.625ms帧缓冲,一路编解码延时小于2ms。1996年公布的8Kbps、15ms延时的G.729标准[2],比特率有所下降,音质也略低于G.728。文献[3]提出的BI-CELP的算法,性能略高于G.729标准但延时仍为15ms。
ITU-T G.718编码器[4]是ITU-T于2008年6月制定的全新的嵌入式宽带语音和音频编解码器标准,编解码器采用了嵌入式分层结构,即将低速率的码流嵌入在高码率的码流中。G.718最主要的应用是分组语音传输,编码器的嵌入式结构可以在不影响低层解码的情况下丢弃高层,能够适用于拥塞控制和服务质量管理。G.718的另一个重要应用是高质量的音频和视频会议。其他应用包括多点接入家庭网关和多媒体流等。
G.718编码器是在帧长为20ms下进行处理的。对于WB输入和输出,核心层的算法延时为32.875ms,其中包括20ms的帧长,1.875ms的输入输出重采样滤波器延时,10ms的前向预测,以及1ms的后滤波延时。对于NB的输入和输出,核心层的算法延时为33.875ms,包括20ms的帧长,2ms的输入重采样滤波器延时,10ms的前向预测,以及1.875ms的输出重采样滤波器延时。
下面介绍G.718编码器的信号分类、线性预测(LP)系数的分析和量化以及开环基音搜索过程。
为了在8Kbps时获得最好的语音编码性能,首先进行VAD(Voice Activitity Detection)检测判断语音信号是否为活动语音信号,非活动语音信号如果采用DTX(Discontinuous Transmission)可以按照 CNG(Comfort Noise Generator)进行编码。对于非活动语音不采用DTX方式时和活动语音,核心层将信号分成清音(unvoiced)、浊音(voiced)、过渡音(transition)和普通音(generic)四种类型,对这四种类型信号分别采用不同的编码模式:清音编码UC(Unvoiced Coding)、浊音编码VC(Voiced Coding)、过渡音编码TC(Transition Coding)和普通音编码GC(Generic Coding)。核心层编码时的信号分类流程如图1所示。
图1 核心层编码时的信号分类
在G.718编码器编码过程中,frame-end帧和mid-frame帧的LP(Linear Predictive)参数被估计,每一部分都使用一个25ms的对称窗(汉明窗),在frame-end自相关计算中使用了10ms的前向预测。帧结构如图2所示。
图2 LP分析窗的相关位置和长度
frame-end语音帧利用相邻帧间的ISF(Immittance Spectral Frequency)残差系数进行量化。ISF参数采用了两种不同的预测量化器进行量化:在第一个预测器中,预测系数值接近0.7,称为strongly-predictive路径;在第二个预测器中,预测系数值设置为0或0.3附近,分别称为safety-net路径和weakly-predictive路径。
对于mid-frame帧,首先将ISF系数表示为前一帧和当前帧的量化frame-end帧ISF系数的加权和,然后在一个闭环方式内对权值进行搜索,使得未量化mid-frame帧ISF系数与这个加权和之间的均方误差最小。另外,由于没有足够比特来传输每个ISF系数的权值,所以将ISF系数矢量分裂成一系列的子矢量,每个子矢量只传输一个权值。分裂点、每个分裂组的比特数和权值在不同编码模式下是不同的。在TC模式下中间帧的ISF是不用量化的。
开环基音分析是为了平滑基音演变轮廓,将闭环基音估计的值限定在开环估计值附近,以达到简化基音分析过程的目的。
(1) 灌浆材料中的块状渣体含量对化学灌浆固结效果影响明显,块状渣体占比越高(由5%提高至10%),其孔隙率相对增大,浆液扩散越容易,固结强度越高。
开环基音分析是将加权信号2倍后采样进行运算的。开环基音分析在每帧进行三次估计,以找到基音延时的三个估计值(运算长度均为10ms),其中两个在当前帧进行运算,第三个在前向预测中进行运算。
每个10ms区间的相关值是在两组基音延时的基础上的计算得来的,两组的每个基音延时值的自相关函数由采样信号sd(n)计算得来,公式为:
其中,求和上限Lsec取决于延时值所在的延时区间,对一个给定的延时值,在相关计算中至少包含一个基音周期。
该方案在帧长为5ms基础上进行编解码。由于VC编码模式比GC编码模式的基音周期平稳,在帧长5ms的条件下无法得到基音周期的稳定性,所以需要改变信号的分类过程。汉明窗不适合帧长较短的情况,在线性预测分析中使用非对称混合窗[5]代替原来的对称汉明窗,避免了前向预测,从而降低了延迟,并且改变了LPC参数量化方法,在降低延迟的同时尽可能少增加额外的比特率。在G.718编码器中,开环搜索的自相关计算中加权长度随基音延迟的变化而改变,在低延时方案中帧长有时不能包含一个周期,相关计算中采用统一的加权长度计算。
由于低延时编码中帧长为5ms,所以要在G.718编码器核心层子帧的基础上进行编码。通过判断每帧中四个子帧基音周期的平稳性,G.718编码器将语音编码方式分为GC编码模式和VC编码模式,但由于本算法中帧长较短,无法得到基音周期的平稳性估计,所以采用同一种编码方式:VC编码模式。另外,由于帧长的原因TC编码模式也不适用,所以本算法中只采用VC编码模式和UC编码模式两种编码方式。语音分类过程如图3所示。
图3 低延时编码时信号分类
在不引入前向预测的情况下,本方案采用非对称混合窗代替汉明窗,混合窗包含两个部分,自回归部分和非自回归部分。相对于汉明窗,混合窗没有使用前向预测,所以混合窗使得延时降低了10ms,如图4所示。
图4 LPC分析中的混合窗说明
混合窗函数wm(k)定义如下:
混合窗函数中参数b=0.988861084,α=0.992833749,c=0.0239,m=0.1673。该窗中长度为114个样点(即N值为114),其中自回归部分包括70个样点(即L值为70),非自回归部分包括64个样点。加窗后语音信号仍采用自相关法和Durbin-Levinson算法得到LP参数,此窗相对于汉明窗不仅加强了当前帧的数据,而且避免了引入前向预测。
在低延时编码器中,ISF参数的量化类似于G.718中frame-end部分的量化过程。VC模式和UC模式都采用strongly-predictive路径和weakly-predictive路径进行量化,比较两种路径加权误差,选择误差较小的预测器量化值作为最后的量化结果。具体量化比特分配情况如表1所示。
在低延时编码中对ISF参数进行多级矢量量化,对于每个编码模式和每级的子码本规划如表2所示。
表1 ISF参数量化比特数分配
表2 子码本规划
表中U1(6)表示码本U1的大小为6比特,在量化过程中,最后一级的码本没有全部使用。例如,对于VC,NB模式的safety-net量化方法,总的量化比特数(预测器选择除外)为26比特,所以最后一级的量化只需要4个比特,尽管C3码本有32个比特,但是只使用了C3的前一半码本(8个码字)进行量化。
由于帧长的限制,开环搜索自相关计算采用统一的加权长度,即帧长。开环搜索过程具体如下:
首先在以下三个区间内i=1:124,…,231;i=2:64,…,123;i=3:34,…,63通过自相关计算得到三个相关值最大值,信号s(n)自相关计算公式为
对于三个区间
保留下来的最大值R(ti)通过下式归一化:
类似于G.718编码器,通过比较t的大小决定最后的基音延时,为了避免选择多个基音延时值,所以在三个最大值中更倾向于选择较低范围内的值作为最后的开环搜索值。
在语音编码中,在降低编码延时的条件下,必须保证尽可能少地增加比特率,在本方案中浊音信号编码(VC模式)和清音信号编码(UC模式)比特数分配情况分别如表3和表4所示。
表3 VC模式的比特分配
表4 UC模式比特分配
由表3和表4可以看出,在VC编码模式和UC编码模式中使用的比特数为65bits,由于帧长为5ms,所以在低延时编码方案中比特率为13kbit/s。
本实验使用了NTT-AT中文语料库为实验数据,包括8kHz语料和16kHz语料各96条(4男4女各12条),对算法进行性能估计。实验通过对G.718编解码器和它的低延时编解码器合成语音进行PESQ(Perceptual Evaluation of Speech Quality)评分[6],表5为96句语音平均的PESQ得分对比,实验结果表明,与G.718编码器相比,低延时编码器的重建语音质量只是略有下降,听觉效果并无明显差别。
表5 G.718低延时编码器和G.718编码器PESQ得分对比
本文提出了基于G.718编码器核心层的一种低延时编码方案,它对于宽带输入和输出具有7.875ms的算法延时,对于窄带输入和输出具有8.875ms算法延时。该方案编码速率为13kbit/s,而且具有接近G.718核心层的编码质量。
[1]CCITT Recommendation G.728,Coding of speech at 16kbit/s using low-delay code excited linear prediction[S].Geneva,1992.
[2]ITU-T Recommendation G.729,Coding of speech at 8kbit/s using conjugate-structure algebraic-code-excited linear-prediction(CS-ACELP)[S].1996.
[3]Kwon S Y,Hochong Park,Hyokang Chang.A high quality BI-CELP speech coder at 8kbit/s and below[C].IEEE International Conference on Acoustics,Speech,and Signal Processing.1997.
[4]ITU-T Recommendation G.718,Frame error robust narrow-band and wideband embedded variable bit-rate coding of speech and audio from 8-32kbit/s[S].2008.
[5]Zhang Gang,Xie Keming,Zhang Xueying.Improving G.728’s Hybrid Window and Excitation[C].IEEE APCCAS,2004:185-188.
[6]杨海.感知语音质量评价PESQ及其在通信系统中的应用[J].江西通信科技,2004(2):46-47.