技术支持 - 语音编码器(一) - 深圳市盈德实业有限公司

技术支持 - 语音编码器(一)


语音编码器(一)

作者: 全纳科技    发布时间: 2009-8-6 17:45:49  

 

本章综述在IP语音技术(VOIP)中常用的编码解码器(codess)。它们常被称为编码解器、语音编码器或者简称为编码器。有关这方面的知识很多。   

本章首先简要介绍编码器的主要功能、编码器的分类,然后阐述以及用于VOIP的三种编码器:IUT-T G.723语音编者按码器、ITU-T G.729语音编码器。   

一、 语音编码器的功能 语音编码器的主要功能就是把用户语音的PCM(脉冲编码调制)样值编码成少量的比特(帧)。这种方法使得语音在连路产生误码、网络抖动和突发传输时具有健壮性(Robustness)。在接收端,语音帧先被误码为PCM语音样值,然后再转换成语音波形。   

二、 语音编器的分类 语音编码器分为三种类形:(a)波形编器;(b)声码器;(c)混合编码器。波形编码器会尽可能构出包括背景噪单在内的模拟波形。由于波形编码器作用于所有输入信号,因此会产生高质量的样值。然而,波形编码器工作在高比特率。例如:ITU-G.711规范(PCM)用的比特率为64Kbps   声码器(vocoder)不会再生原始波形。这组编码器会提取一组参数,这组参数被送到接收端,用来导出语音产生模形。线性预测编码(LPC)用来获取一时变数字滤波器的参数。这个滤波器用来模拟说话人的声道输出[WEST96]。在电话系统中使用声码器,语音质量不够好。VOIP中常用的语音编码器是混合编码器,它融入了波形编码器和声器的长处,它的另一特点是它工作在非常低的比特率(4-6Kbps),混合编码器采用合成分析(AbS)。为了说明问题,考虑人的声道产生的一个语音模式:当人说话产生语音信号时就会发出浊音(如音素pada等)和清音(如音素shth)。激励信号就是由输入的语音信号导出的,其方法是使合成语音与输入语音的差别非常小。LPC的用法、激励的产生以及对合成分析(AbS)系统的误差检查均如图4-1所示。 长话质量编码器在比特率高于8Kbps时容易实现,如图4-2所示。长话质量的语音平均意见得分(MOS)必须在分或许分以上。传统的PCN语音在比特率小于32 Kbps,语音质量会严重恶化,在这里就不讨论PCN了。混合编码和声码器在比特率相当低的MOS上的得分是可接受的。在现阶段,大多数基于VOIP的编码器的工作范围在5.2~8kbps。研究表明,标准的编码器在比特率为4 Kbps时能提供可接受的NOS得分,一些分用系统在4.8 KbpsMOS上的得分为3.8 矢量量化和码激励线性预测 一种较好的方法就是用预测存储的最优参数(码元矢量)的码本对输入语音信号的表示矢量进行编码,这种技术称为矢量量化(VQvector quantization)。 VQAbS技术结合在一起会进一步提高编码性能。AbS VQ是技术构成CELP的基础。VQAbS VQ的主要区别在于进行矢量量化码簿搜索时采用的量化失真测量定义的不同[WONG96]  
    三、线性预测合成分析编码器 最常用的比特率在4.8kbps~16 kbps之间的语音编码器是基于模型编码器的,这些编码器都是线性预测合成分析(LPAS)方法。为了随着时间的变化模拟语音信号,线性预测语音产生模型必须用适当的信号来激励。每隔一段固定时间(如每隔20ms),语音模型参数和激励参数都必须做一次估计和更新,并用来控制语音模型。下面将介绍两种LPAS编码器:前向至应LPAS编码器和后向自适应LPAS编码器。 3.1 前向自适应LPAS编码器:8kbps G.729编码器和6.3kbps 5.3kbps G.723.1编码器 在前向自适应的AbS编码器中,预测滤波器的系数和增益是显示传送的。为了提供长话质量的语音性能,这两种编码器都依赖于信源模型。激励信号(以语音基调周期的信息形式表示)也要传送。这种编码器所提供的模型对语音信号来说是比较好的,但对于一些噪音或者多数器来说并不合适。因此,在背景噪音和音乐环境下,LPAS编码器的质量比7.7267.727的编码器的质量要差一些。   ① G.723.1 ITU-T G.723.1编码器在6.4kbps提供长话质量语音。同时 G.723.1还包括一个工作在5.3kbps的低质量语音编码器。G.723.1是为低比特率可视电话而设计的。在这种适应中,由于视频编码时延通常大于语音编码时延,因此对时延的要求不是很严格。G.723.1编码器的帧长为30ms,还有7.5ms的前视。再加上编码器的处理时延,编码器的单向总时延为67.5ms。其它时延是由系统缓冲区和网络造成的。   G.723.1编码器首先对语音信号进行传统电话带宽的波滤(基于G.712),再对语音信号用传统的8000Hz速率进行抽样(基于G.711),并变换成位的线性PCM码作作为该编码器的输入。在编码器中对输出进行逆操作来重构语音信号。 G.723.1系统用LPAS编码方法将语音信号编码成帧。编码器能够产生两种速率的语音流量:(a)用于高速率的6.3kbps   (b)用于低速率的5.3kbps。主速率编码器使用多脉冲最大自然量化(MP-MLQ),低速率编码器使用代数码激励线性预测(ACELPAlgebraic-Code-Excited Linear-Prediction)方法。编码器和解码器都必须支持两种速率,并通能够在帧间对两种速度进行转换,此系统同样能够对音乐和其它音频信号进行压缩和解压缩,但它对语音信号来说是最优的。   编码器对帧进行操作,每帧包括240个样点,采用速率为8000Hz。在进一步的处理(高通滤波器去直流分量)后把每帧分成4个子帧,每个子帧包括60个样点,其它的各种操作包括LPC滤波器以及LSP滤波器非量化系数的计算等,将会导致30ms的分组时延。对每个子帧,用未经处理的输入信号计算LPC滤波器。最后一个子帧的滤波器系数用来预测分裂矢量量化器(PSVQPredictive split Vector quantizer)进行量化。正如前面所介绍的,前视占有7.5ms,所以整个编码时延为37.5ms。这个时延在评介编码器,尤其是通过数据网络传输语音时是个很重要的因素,因为如果编码及解码时延比较小的话,就意味着处理互联网中的时延及其抖动时具有更大的自由度。 解码器的处理也是基于帧的,解码过程如下(G.723.1算法摘要):   ·对LPC的量化索引号进行解码。   ·对构造LPC合成滤波器。   ·对每个子帧,先对自适应码本激励和固定码本激励解码,然后再输入合成滤波器。   ·激励信号经基音后置滤波器处理后,再送入合成滤波器。   ·合成信号被输入到共振峰后置滤波器,该滤波器采用增益标度单元以使其输出能量维持在糨的输入水平。