您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 第08讲_码本激励线性预测编码
物理层关键技术1信源编码CELP码本激励线性预测编码语音信号的特点随机激励线性预测合成模型语音信号的特点人发声时有清音和浊音之分:清音无基音,呈现与白噪声类似的平坦频谱,所以可用白噪声作为清音的激励;浊音则有振动的基本频率(基音),故可用具有一定基音频率的脉冲源作激励;而人的声管相当于一组滤波器,对不同的激励产生不同的响应,形成特定声音的输出。为了提高重建话音的自然度,编码端可以增加一组预测滤波器,采用闭环LPC结构,由特征参数激励得到预测信号,将此信号与原信号s(n)相减得到残差信号e(n),把此信号与有关参数一并编码传送,在解码端进行误差修正可有效改善语音质量。随机激励线性预测合成模型随机激励线性预测合成模型的基本思想利用几乎是白噪声的信号激励两个时变的线性递归滤波器,在每个滤波器反馈环路上有一个预测器,其中一个是长时预测器(或基音预测器)LTP(Long-TermPredictor)P(z),用来生成浊音语音的音调结构(谱的细致结构),另一个是短时预测器STP(Short-TermPredictor)F(z),用来恢复语音的短时谱包络。源自于它的逆过程,如图2-1(b)。F(z)用于去除语音信号的近样点冗余度;P(z)用于去除语音信号的远样点冗余度,经过两级预测得到的归一化残差信号近似服从标准正态分布。短时预测器STP的的传递函数其中,ai为预测器系数,p为预测器阶数,一般介于8-16之间,基于CELP的编码器中通常取10。短时合成器也就是LPC共振峰合成滤波器,其传递函数为:,A(z)是线性预测误差滤波器,预测系数ai,一般每隔20-30ms修正一次。长时预测器LTP的传递函数M为基音延迟,βi为长时预测器增益。通常,M随βi一起修正,比短时预测器系数的修正速率高,一般每隔5-10ms修正一次。求和限I通常取0或1,I=0时,对应于1阶长时预测器,I=1时,对应于3阶基音预测器基音合成滤波器的的传递函数CELP语音编码CELP语音编码算法用线性预测提取声道参数,用一个包含许多典型的激励矢量的码本作为激励参数,每次编码时都在这个码本中搜索一个最佳的激励矢量,这个激励矢量的编码值就是这个序列的码本中的序号。CELP已经被许多语音编码标准所采用,美国联邦标准FS1016就是采用CELP的编码方法,主要用于高质量的窄带语音保密通信ITU-T建议G.728,G.729,G.723.1CELP编码器框图编码器译码器基于CELP的编码方法低迟延码激励线性预测LD-CELP编码算法矢量和激励线性预测VSELP编码算法,IS-543个码书-2个随机码书,1个自适应码书最佳的激励信号为三个激励矢量的和。基音同步更新码激励线性预测PSI-CELP代数码书激励线性预测ACELP共扼结构代数码激励线性预测CS-ACELPQualcomm码激励线性预测QCELP编码算法CELP编码的基本思想对一定时间内残差信号可能出现的各种样值的组合按一定规则排列构成一个码本,编码时从本地码本中搜索出一组最接近的残差信号,然后对该组残差信号对应的地址编码并传送,解码端也设置一个同样的码本,按照接收到的地址取出相应的残差信号加到滤波器上完成话音重建,则显然可以大大减少传输比特数,提高编码效率。两个预测滤波器,短时预测计算每一采样的残差,长时预测计算每个子帧(5ms)的残差。由码本取出的激励e(n)经长短时预测后得到预测值,与输入信号s(n)相减得到差值,将此差值通过感知加权滤波器,以最小均方误差准则(LMS)判定最佳激励码本e(n)。CELP语音编码基本步骤1初始化短时合成滤波器和基音合成滤波器历史(通常初始化为零值或低电平随便机噪声)缓存一帧语音信号,然后对这帧语音信号进行线性预测分析,确定一组LPA系数。利用已经确定的LPA系数和线性预测误差滤波器A(z),计算未量化的残差信号。为了有效的确定激励参数,将LPA帧分为几个子帧。CELP语音编码基本步骤2对于每个子帧,首先用开环方法或闭环方法确定基音预测参数。一旦确定了基音预测器参数,则将基音合成滤波器和短时合成滤波器组合在一起形成一个级联的滤波器。其次用激励码书中的某一矢量去激励这个级联滤波器,得到合成语音s^(n),再计算合成语音s^(n)和原始语音s(n)之间的误差e(n),经感知特性进行加权后,选取均方误差最小的激励矢量作为最佳矢量。借助于滤波器的初始记忆内容,将最佳激励信号通过级联滤波器产生合成语音。CELP语音编码器计算一组预测系数{ai}将语音信号通过线性预测误差滤波器A(z)就可以得到LPC残差信号,也就是短时残差信号v(n)。残差信号将按块(4-8ms)来进行编码,称这个块为子帧(subframe)。经过LP分析的残差信号v(n)中的短时分量大部分已经被滤除,剩下的长时相关性和激励信号的提取则采用了闭环估计(closed-loopestimation)的合成分析法。经过量化的LPC激励信号v(n),是在许多侯选激励信号中,按照感觉加权原则,选择重建语音与原始语音最接近的激励而得到的。长时相关性的计算长时相关性计算说明1长时相关性的计算也就是基音参数的提取。使用滤波模式的基音提取法,其中长时误差滤波器P(z)=1-λz-d。上一帧的短时残差经过延时d和增益控制λ,得到长时相关分量λv(n-d),和激励信号c(t)相加,就得到了LPC合成滤波器的输入v(n),d和λ则表达了过去信号与当前帧信号之间的长时相关性。在不改变音调预测激励c(n)的情况下,改变不同的延时值d,生成许多不同的合成语音,再通过最小均方误差准则(MMSE)进行最佳参数选择,最优延时和增益即是通过这个过程得到的。长时相关性计算说明2这个过程也可以从波形匹配的角度来解释:编码算法以每一子帧为基础,选择过去的LPC激励信号中的一段,与当前子帧的LPC残差信号相匹配,再经过增益控制,然后把它作为对当前子帧LPC激励信号的主要分量。选择合适的激励信号1在完成基音预测参数估计后,采用固定码本(fixedcodebook)来表示激励信号c(n),它通常使用码本索引和码本增益来表示一串声音脉冲。在每次综合分析中,进行比较的原始语音和合成语音都是经过感觉加权滤波器w(z)的,这样获得的语音在听觉上效果更好。选择合适的激励信号2CELP模型中的最大问题在于用闭环的方式来搜寻最佳码本和增益,这将带来很大的计算量,并将影响到语音的合成质量。所以,如何设计一个合理而高效的码本结构,一直是CELP模型研究的一个重要方面。CELP模型的意义在于,它使得人们终于可以在较低速率(8kbps)的情况下获得较高自然度的合成语音。IS-95系统的QCELP声码器Qualcomm公司的码激励线性预测编码(QualcommCodeExcitedLinearPredictiveCoding,QCELP)8-kbps声码器(以下简称Qcelp8k),是最早使用可变数据传输速率的CELP声码器,于1995年5月成为北美宽带扩频数字通讯系统的语音服务选择标准——TIAIS-96A,1996年7月经过修改定为IS-96B,98年又少量修改了注释等,定为IS-96C。Qcelp8k声码器主要用于提供基站与移动台之间双向语音通信的语音信号的编解码处理。其语音编码采用可变速率的编码算法,可用速率有:全速率、半速率、1/4速率和1/8速率,分别对应9600bps,4800bps,2400bps和1200bps的帧速率。因为Qcelp8k性能较为优异,成为IS-95CDMA系统的语音服务标准选项1,也是CDMA2000的语音编解码器标准之一。QCELP编码器QCELP算法,即码激励线性预测的可变速率混合编码算法:Qcelp8k声码器的基本模型与CELP的模型基本一致,只是在编码端增加了速率检测模块;Qcelp8k声码器的编解码按照每20ms进行一次,先对语音信号按照8kHz的频率采样,再将每20ms的信号作为一帧进行处理,这样每帧含有动态范围为13比特PCM编码的160个样点数据;基于线性预测编码,使用矢量码表替代简单线性预测中产生浊音准周期脉冲的脉冲位置和幅度,即使用码表矢量量化差值信号。QCELP编码步骤首先对模拟话音按8kHz取样;其次按照20ms划分为一个话音帧,每帧有160个样本。将160个样本生产3个参数子帧,3个参数不断更新,更新后参数按一定的帧结构送至接收端。滤波参数a1、a2、⋯、a10,对任何速率每20ms更新一次;音调参数,不同速率更新次数不一样;码表参数,不同速率更新次数不一样。QCELP译码器框图主要参量信息15个。其中滤波参量10个,分别为a1、a2、⋯、a10、音调参数L和b、增益参数G、码表参数I、以及解码种子。对应不同速率的参数变化不同速率的参数帧结构每一个参数帧均对应一个160样本话音帧。数据速率的选择基于每一帧中的能量与3个门限值的比较;3个门限值的选择基于背景噪声电平估计;每帧中的能量由自相关函数R(0)值决定,T1(Bi)、T2(Bi)、T3(Bi),其中Bi为背景噪声值:若R(0)大于3个门限,则选择速率“1”;若R(0)大于2个门限,则选择速率“1/2”;若R(0)大于1个门限,则选择速率“1/4”;若R(0)小于所有门限,则选择速率“1/8”。每次只允许变化一级;半速率时,门限“1”实际为门限“1/2”。Qcelp13k算法的提出1虽然Qcelp8k被认为是效率最高的声码器,但其语音质量仍达不到有线话音的水平,所以在Qcelp8k被推出不久,高通公司又提出了语音质量更高的Qcelp13k声码器。Qcelp13k以其接近有线通信的话音质量获得好评,并于1998年3月成为北美宽带扩频数字通讯系统的语音服务选择标准——TIAIS-733。Qcelp13k与Qcelp8k都是在CELP算法基础上发展而来的可变速率声码器,大部分模块使用相同的算法。Qcelp13k算法的提出2和Qcelp8k一样,Qcelp13k将原始语音分割为20ms的帧,每帧含有以8k采样的160个采样点。编码器对每帧的输入数据,生成一个压缩数据的传送包作为输出。每一帧被编码为四个不同的数据速率之一全速率时传输包有266bits,1/2速率有124bits,1/4速率为54bits,1/8速率为20bits。因此,数据传输速率分别为13.3kbps,6.2kbps,2.7kbps和1kbps。Qcelp13k为了获得更好的语音质量,在Qcelp8k基础上做了很多的改进与增强。但复杂度也非常之高,且损失了50%的带宽容量。Qcelp13k和Qcelp8k比较1在LSP参数的量化时,Qcelp13k采用矢量量化的方法,而Qcelp8k使用的是线性量化,也就是梯度量化。因此Qcelp13k可以用尽可能少的传输代码达到更高的精度。Qcelp13k和Qcelp8k比较2Qcelp13k采用了较复杂的方法实现速率检测第一个阶段根据信号能量和背景噪音将输入的语音分为两类:一类是“活动语音”,采用全速率或1/2速率编码,另一类为“背景噪音或停顿”,用1/8速率编码。第二个阶段进一步分析输入语音的特性以确定当前帧是否可以采用较低速率进行编码而不影响声音质量。通过较复杂的算法将语音分为不同的帧类型,其中全速率用于过渡帧、周期变化帧或需要更高的编码速率以获得较好的声音质量的帧;1/2速率用于较好模拟的帧、固定帧和周期帧;1/4速率用于清音语音;1/8速率用于背景噪音或停顿。通过这样的处理,使用尽可能低的速率传输数据,同时又能获得较好的语音质量。Qcelp13k和Qcelp8k比较3在基音参数的搜索计算中,两者都使用闭环的搜索方式,但Qcelp8k只进行一次,而Qcelp13k在完成了第一次的搜索(又称为“整数基音搜索”)后,还要在该结果的前后进行一次更仔细的搜索,即“小数基音”的搜索,经过这样的搜索后,可以得到更准确的基音周期,使语音
本文标题:第08讲_码本激励线性预测编码
链接地址:https://www.777doc.com/doc-931297 .html