




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
g 7 2 3 1 语音编码算法研究 。摘要 “扣螽 、”国际电联( i t u ) 为多媒体通信制定了g7 2 3 1 双速率( 53 63 k b p s ) 语音编 1码标准。该编码标准是c e l p 语音编码的一种,在电视会议、口电话领域得 到广泛应用。本论文介绍了语音编码的基本知识( 包括l p c 、v q 与c e l p ) , 对g 7 2 3l 语音编解码器的原理、算法、源代码及静音压缩部分进行了详细 的分析。 关键字:语音编码、c e l p 、g7 2 31 标准 a b s t r a c t g7 2 31d u a lr a t es p e e c hc o d i n gr e c o m m e n d a t i o nf o rm u l t i m e d i ac o m m u n i c a t i o n i sak i n do fc e l ps p e e c hc o d i n gt h i st h e s i si n t r o d u c e st h eb a s i ck n o w l e d g eo f s p e e c hc o d i n g ,i n c l u d i n gl p c ,v oa n dc e l pt h i st h e s i s a l s oa n a l y s i z e st h e p r i n c i p l e 、a l g o r i t h m 、s o u r c ec o d ea n ds i l i e n c ec o m p r e s s i o np a r to f g7 2 31 v o c o d e ri nd e t a i l 。 k e yw o r d s :s p e e c hc o d i n g 、c e l p 、g7 2 31r e c o m m e n d a t i o n 第一章绪论 第一章绪论 1 1 概述 随着多媒体和通信技术的发展,信息传输中的频带资源变得越来越珍贵, 在有限的频带中传送尽量多的信息成为迫切的问题。在这样的背景下,语音 作为信息传输的重要一种,其压缩编码技术的应用越来越广。随着需求的不 断增加,语音压缩编码算法不但要有较高的合成质量,较低的编码速率,并 且算法的复杂度要受到现有d s p 芯片运算能力的限制。本论文所研究的算法 是i t u ( 国际电联) 的g 7 2 3l 语音编码标准,具有53 k b p s 6 3 k b p s 两种编 码速率,丽且增加了话音激活功能,自动检测语音信号的存在与否,是低码率 多媒体通信标准h3 2 4 的音频组成部分,是r r u 语音编码的最新标准( l a t e s t v e r s i o n ) 。 本论文将在第一章,介绍一下语音编码的基本知识和c e l p 、v q 、l p c 等基本概念。g7 2 3 1 语音编码标准的主体部分,即编解码算法部分,将在第 二章中详细分析论述。第三章将分析g 7 2 3l 语音编码标准的附录a ,静音压 缩部分。 1 2 语音编码的基本知识 1 2 1 语音信号基本特征 在研究各种语音编码之前,首先应了解语音信号的一些基本特征。 一般来说,语音信号的频谱集中在3 0 0 3 4 0 0 i - i z 的范围内,其对应的采 样率为8 k h z ,而为了实现更高质量的编码器,相应编码器采样率应提高到15 2 0 k h z ,g 7 2 3l 标准的采样率为8 k h z 。语音信号的另一个重要特点是它的 短时性,即只有在一段短时间内( 典型为5 5 0 m s ) ,语音信号才保持相对稳 定的特征,便于我们提取其中的参数。 语音信号的基本组成单位是音素,如果将没有语音而只有背景噪声的情况 称为“无声”,那么音索可分为“清音”,“浊音”和“无声”,一般在短时分 析的基础上分析一段语音属于哪一类音素。在汉语拼音中的声母也称为辅音 ( c o n s o n a n t ) ,可以认为是“清音”,如b , p ,t 等;韵母也称为元音( v o w e l ) , 可以认为是“浊音”,如a , u ,e 等。我们在读拼音的时候能明显觉察到元音与 辅音在声带震动上的不同,丽这种不同就是由音素间的频谱差异造成的。对 于元音的短时谱,有以下特点:有明显的周期性起伏,频谱中有明显的凸起 点,称为“共振峰”,一般来说,前三个共振峰对于区别不同语音是关键的。 对于辅音的短时谱,则没有这种周期性结构,其短时谱呈现出随时间变化较 大的特点而类似于随机噪声,因此可以将辅音看成是动态性很强的音。两种 音素的特点是由发声时的状态决定的,这里只做简单介绍。所有辅音的共同 特点是发音时声道处于受到某种阻碍的状态,发声器官变化较大;元音与辅 音相反,发声时声道不受明显的阻挡,频谱结构相对稳定。 第一蕈绪论 在我们平时说话中( 以汉语为例) 的最小发声单位是“音节” ( s y l l a b l e ) ,也就是单字。一个音节由元音与辅音共同构成,其中元音构 成一个音节的主干,在音节中占主要地位,位于音节的后部辅音则出现在 音节的前部。因此,汉语的音节结构是“辅音一元音”结构,也称“c v ” 结构。例外的情况,如“啊”等只有元音没有辅音的情况称为“零辅音”。 1 2 2 语音信号的产生模型 语音的产生过程可以近似看成是气流通过发声器官( 喉、声道、嘴) 的 结果,我们可以建立一个离散时域的信号产生模型对其近似,这个模型在语 音编码中是非常重要的,尽管这个模型有许多变形,但其中最简单也是最基 本的如下图所示: 基 号 在这个模型中,周期脉冲发生器产生的脉冲经过声门脉冲模型g ( z ) 的 滤波,代表了语音中的浊音部分,随机噪声发生器代表了清音部分。系数a ,和 氏用来调节浊音信号与清音信号的幅度。声道模型函数如下: 矿( z ) = 1 ( 1 + q z l ) 此函数将声道看成一个全极点的滤波器,p 称为这个滤波器的阶。p 值取 得越大,模型与声道的传输函数吻合的越好,但计算也越复杂,因此对于一 般的应用,p 值取8 1 2 之间。应当再次指出,这个模型中的所有参数都是随 时间变化的。只在一段短时间内保持相对的稳定,这是由语音信号的短时性所 决定的。 1 2 3 语音编码的基本种类 自从p c m 原理以及声码器( v o c o d e r ) 的概念提出后,语音编码一一直 沿着两个基本方向发展,这两个方向就是“波形编码”与“参数编码”。 波形编码力图使重建语音信号保持原有形状,通常将语音信号当成一般 波形信号处理,而很少涉及语音信号的自身特点。波形编码的基本优点是话 音质量好,适应能力强,但其缺点也是明显的,即所需的编码速率高。脉冲 编码调制( p c m ) 、自适应脉冲编码调制( a d p c m ) 等都属于波形编码。波 形编码在1 6 k b p s 卅p s 的编码速率内能给出较高的编码质量,因此般 不适用于对带宽和速率要求很严格的场合。 一姆 声 赢v 一商 立舻一 自 圄弱 f 第一章绪论 参数编码与波形编码的优缺点恰为互补,它通过提取声音及声道的参数 来试图重建语音,尽量但不保证恢复原语音的语义。参数编码的速率很低 ( 2 8 k b p s ) ,但受周围环境噪声的影响较大,而且合成语音的自然度不够。 线性预测编码( l p c ) 是参数编码中最基本的方式,而以规则脉冲激励线形预 测编码( r p e l p c ) 和码本激励线性预测编码( c e l p ) 为代表的新一代参数 编码,则克服了两种基本编码方式的缺点,结合了各自的长处,广泛应用于 移动通信、多媒体数据通信中。 本论文所讨论的标准属于参数编码中的c e l p 范畴。 1 3 c e l p 的基本知识 1 3 1 线性预测编码( l p c ) 线性预测分析是在估计语音参数方面已经成为一种主要技术,它能较精 确的估计各种参数,而且计算速度也较快。 线性预测的实质是:一个语音抽样能够用过去的若干语音抽样的线性组 合来逼近,通过一段采样时间内使实际语音抽样与预测值之间差值的平方和 达到最小,确定一缀唯一的预测器系数。在这里预测器系数实际就是线性组 合中所用的加权系数,即式1 1 中的a l 。线性预测分析的基本问题也就是 通过对一短段语音的分析直接决定一组( a 1 ) 用于对语音的预测。l p c 的详细 过程将在算法研究时讨论。 1 3 2 矢量量化( v 0 ) 矢量量化的英文为v e c t o rq u a n t i z a t i o n ,简写为v q ,是一种极为重要的 信号压缩方法,广泛应用于图象、语音的低速编码领域。我们平常接触到的 最简单的量化方法是标量量化,如p c m ,是用若干个离散的数字值来表示每 一个幅度具有连续取值( 模拟值) 的离散采样信号。矢量量化则是将若干个 采样值分成一组,构成一个矢量,然后从码本中选出一个标号代表各个矢量。 为了更清楚地说明v q 和码本的概念,请看下图: 信号码本 图i2 码本 第一章绪论 说明如下: 每输入一组采样系列( 或称一个矢量) ,【s ,s :s 。】,经过特征矢 量形成部分,产生一个与之相对应的特征矢量,x ,维数为k ,则x = 【x ,x : x 。】。系统中有两个完全相同的码本,每个码本中包括m 个码字,被编为卜m 号,每个码字是一个k 维矢量。v q 编码器从码本中根据某种规则选出一个 码字y 与输入x 相对应,其输出v 就是此码字矢量的下标,般称为标号。 这一过程可以表示为: v = r ( x ) 在这里提到的某种规则一般来说将使x 与y 两个矢量的畸变最小,如使 用均方误差最小规则,则将两个矢量的对应分量相减后再平方相加,得到算 出最小值的y j v 可经过信道传输或被介质存储,如果此过程不引入误差,则从信道收端 收到或从介质取出的信号仍是v 。在v q 译码器端的码本是相同的( 如果编译 码在同一处所,则码本只需一个) ,根据v 选出相应下标的码字作为输出。 矢量量化的好处是在信道上只用传递码字的标号,而不是信号本身,从 而达到了压缩的目的。但随之带来的问题是码本的设计、存储和搜索效率与 速度问题。 1 3 3 o e l p 的基本模型 1 9 8 5 年i e e e1 c a s s p 年会上首先提出了用码本作为激励源的线形预测编 码技术( c e l p ) 的基本原理。c e l p 以高质量的合成语音及优良的抗噪声性 能,在1 6 k 以下的语音编码上得到了广泛应用。 c e l p 采用分帧技术,帧长一般在2 0 - - 3 0 毫秒。c e l p 编码采用合成分析 的搜索方式,利用v q ,从码本中搜索出最佳的码矢量,乘以最佳增益作为激 励信源,并将码字的标号传递给解码端。其编码示意图如下: 标号a 标号b 图1 3 c e l p 用自适应码本代表语音中的基音部分,用随机码本代表清音部分。 搜索出来的最佳码矢量,乘以各自的增益后相加,成为c e l p 激励信号源。 激励信号输入p 阶l p 综合滤波器i a ( z ) ,得到合成语音信号s ( n ) ,s ( n ) 与 原始语音信号s ( n ) 的误差经过感觉加权滤波器得到加权误差e ( n ) 。c e l p 用感觉加权的最小平方预测误差作为搜索最佳码矢量的准则。 两个码本的搜索过程在本质上是一致的。为了减少计算量,通常我们不 4 第一蕈绪论 将曲个码本同时搜索,而采用两级码本顺序搜索的方法,先计算自适应码木, 后计算随机码本。在这里我们可以看出,c e l p 编码器的计算量主要集中在对 码本及幅度的搜索上。计算的复杂度与合成语音的质量取决于码本的大小。 以下的章节,将以上面所介绍的基本知识为基础,对g7 2 3l 语音编鸲 标准进行具体研究。 第二章g 7 2 31 编蜒码嚣算法礤巍 第二章g 7 2 3 。1 编解码器算法硪究 i t u 的g 7 2 3 1 标准是双速率语音编码标准,用来实现对语音信号进行低 速率编码,楚h 3 2 4 可视电话标准的谢啻部分。其中6 3 k b p s 提供了很高的通 话矮爨,悉s3 k b p s 则奁较好通话赝爨的裁提下,为系统设计者提供了一定 鹊灵活褴。溺时北标准的话音激活算法,能够自动检测语索孬在与否,并用 噪声填充话音间隙,迸一步压缩了数码率。本标准圭要应用语音信号戆压缡, 对音乐等其他音颓信号鲻有一定的压缩损失。编码嚣戳3 0 m s 为一愤,7 5 m s 为一子帧,又需用到后一顿的第一子帧,一共产生3 75 m s 的简商延迟。其它 附加的延迟包括整个系统从输入到输出的算法处理延迟,信道传输延迟,及 复缓时的缓冲延迟。 本牵分为两个部分,2 1 为编码器算法的分掇,2 2 为解码器算法分析。 在编码器部分体现了语巍处理避稷中的核心闼题,其中又霰要用到模拟解码, 所以对娃7 2 3l 标准的编码器算法将徽最为滞尽的分橱。 2 。1 编码器 2 1 1 编码着总述 编码器基本涟纛 编码器的输入应为模拟语鸯接号先按照g 7 1 2 标准进露电话带宽豹滤波, 再以8k 差z 采样,1 6 b i t 线性编码后的线性p c m 鹳。解码器的输战经过襁反 处理,还原为横攒语音信弩。 编码器基予线性预测,合成分析原理,使感觉加权误差簸小优。编码裾戳2 4 0 个采样点为一帧,每一帧先通过一个高通滤波器,滤除直流成分,并分解为4 个6 0 样点的予帧。对于每一子帧,利用还未处理的输入信号计算出个l o 盼线性预测滤波爨( l p cf i l t e r ) ,最最个子帧的l p c 参数,采用预测矢量 量化器进符曩化。寒星化的l p c 参数被髑寒建立短对感觉加权滤波器,整蛾 信号透过该滤波器褥到感糍期投傣号。对于每辫子帧傣号( 1 2 0 榉点) 搜索讨 算一个汗环基音瑙期搜索范灞献1 8 1 4 2 ,剩用感觉加投菇的语音样点。 戳下的处理每子帧计箨一次。 在开环莲音周期的基础上建立谐波滤波器,并与线经预浏滤波器,感觉 加权滤波器构成联合滤波器,并求出其冲击响应。 刹用开环基啻周期和冲击响应计算闭环基音周期。以开环基啬周期为中 心,做小范阑搜索,得到每一个子帧的精确基音周期,并将出此搿到的自适 应矢曩从强标矢量中扣除。 最后计箅谗嚣中熬菲周期性成分,对于寒码率,采熙多脉冲最大似然量 纯( m p - m l q ) ;对于低磷率,采蠲代数礴本激励。 编码器静框图如胬2 1 掰示 蓬) a n s ic 程序的基本粲构 r r u 的g7 2 31 的源程弹,包含主程序及许多予程序与头文件。大致可分 为4 层 6 第二章g7 2 31 编解码器算法研究 第层为主流程,名为i b c c o d e cc 。此函数可控制编解码速率、是否静音 压缩等选择开关,并调用第二层的子程序。 第二二层的子程序包括编解码器的初始化,编码器流程c o d e r ( ) 与解码器流 程d e c o d 0 ,并调用第三层程序。 第三层程序,包括高通滤波、求解l s p 参数,计算基音延时等子程序, 是整个编解码器的算法核心。 第四层包括一些基本的加减乘除、移位、饱和等操作,是针对定点d s p 所写,在b a s o pc 中体现。 另外,程序中所用到的表格、数组及码本是非常重要的组成部分,放在 t a bi b cc 中。各种常量、结构体的说明在c s t 1 b ch 中。 图21 编码器原理图 第= 章g 7 2 31 编解码器算法研究 2 1 2 分帧 编码器将连续的语音信号采样y 【n 】,分为每帧2 4 0 个采样s n 】,其中每1 2 0 个采样训算一次基音预测,又将1 2 0 个采样分为两个子帧,这样每帧2 4 0 采样 分为4 个子帧。 在程序中体现为 l b c c o d e cc 中调用r e a di b c ( ) 函数,读入2 4 0 个1 6 位字 调用c o d e r ( ) ,进入编码过程 2 1 3 高通 去除输入信号s e n 的直流成分,传递函数为 一鸶2 器 1 ) 1 2 8 输出为x t n m2 3 9 在程序中体现为c o d e r 调用u t m j b cc 中的r e i nd e ( ) 2 1 4l p 0 分析 离通后的信号x 【n 】用来做十阶l p c 分析。l p c 即线性预测编码,在语音 编码中必不可少。l p c 分析的实质是求出声道的近似模型 a 。( z ) = l f 一( i _ 0 ,1 , 2 ,3 ) ( 22 ) l 一a v z l j = l 在这里每一子帧6 0 个采样求一次:先用一个长为1 8 0 样点的汉明窗进行 加窗,窗的中心为当前子帧,利用加窗后的语音信号计算1 1 个自相关系数。 求出的1 1 个系数还需用白噪声改正系数相乘,然后用l e v i n s o n d u o b i n 算法 计算l p c 系数,即a 这些l p c 系数将被用来建立短时感觉加权滤波器。 在程序中体现为c o m p) 计算系数lpc(lpc d u r b i n ( ) 计算l e v i n s o n d u r b i n 算法 在c o m pl p c ( ) 中需要求出每次1 8 0 样点的自相关r ( 0 卜r ( 1 0 ) n - i 一1 月( d = s 。( 胛+ ,) s 。( ,力n = 1 8 0 ,0 ,1 0 ( 23 ) h = 0 ) 为加窗后的采样点 d u r b i n 算法是推导l p c 参数的一种简洁算法,见文献1 ( p 7 6 页) 程序中主要变量对应为: 程序中的e l t 在第一次循环中对应于算法中的r ( 0 ) ,在其他循环中对应 r e ;。 第二章g 7 2 3i 编解码器算法研究 程序中的p k 对应于算法中的k ( ”。 程序中的a c c o 对应于算法中的k ( 。的分母项。 注:在l p c 分析中,还有一段程序为检测输入是否为正弦值。( 具体说明 见321 ) 2 1 5l s p 量化 l s p ( l i n e s p e c t r u m - p a i r ) 是一种l p c 的重要特征参数,具有相对独立 性、稳定性和短时相关性特点,在语音编码中,上一步l p c 分析所得到的a , 因动态范围较大与稳定性问题不宜被曩化,而l s p 系数的实质是0 - t t 之间的 频率,若进一步用余弦值代表则其范围在 一1 ,+ l 】之间,宜于量化。 这里采用了预测分裂矢量量化器,将2l4 中所得至的a ,( z ) l p 参数量化: 1 ) 将l p 参数 a d h 。转换为l s p 系数 p7 ,k 。o 2 ) 将慢变化的d c 分量p 。从p7 中除去,得到新矢量p 3 ) 前一帧解码后的矢p 。量与常量b = 1 2 3 2 相乘得到一个除去d c 直流 分量的预测l s p 矢量声和l s p 残差矢量e n r p 一= p p 2 一p 1 0 。】 ( 2 4 ) 碍= 鼻。只鼻。】 p = 6 【p “一】 e = p ,一p n ( 2 5 ) ( 2 6 ) ( 27 ) 4 ) 袒化的l s p 矢量p7 。( 是由a j 转换过来的p j ,即第一步) ,量化的l s p 矢量p 。l s p 残差矢量e n 分别分为维数为3 ,3 ,4 的子矢量,每个子矢量 用8 比特码本量化,子矢量的索引,将使b 。最小。 耻嵋。“0 h l 吒3 仨3 芝0f f掰=1 二7,二二二,0 m 2 n 一叭2 m ,m 】 ls 丢6 p = p + p d c ( 28 ) ( 2 9 ) ( 2 1 0 ) 9 第二章g 7 2 31 编解码器算法研究 。= j d 。+ 尼,。+ e l m 鹭墨黧 ( 2 e 1 m = ( r 一7 帆( 巴一1 0 - ,m 2 _ 5 2 6 ( 21 2 ) e 。是第m 个分裂残差l s p 码本的第,个矢量 w ,是对角加权矩阵,由未量化的l s p 系数得到: w | 2 研瓦了: 5 ) 传递索引号 2 j 9 ( 21 3 ) 在程序中为 调用a t o l s p ( ) 将l p c 参数转换为l s p 系数 思路如下: ( 21 4 ) ( 21 5 ) p ( z ) = a ( z ) + z 。a ( z “) = 1 + z 一1 一【( 口l + a l o ) z 一1 + ( 口2 + n 9 ) z 一2 + + ( n 9 + 口2 ) z 一9 + ( 口l 。+ 口1 ) z 一1 。】 ( 21 6 ) q ( z ) = a ( z ) 一z 。1 a ( z 。) = 1 一z 一”一【( 口i a l o ) z 一+ ( 口2 一a 9 ) z 一2 + + ( 口9 一a 2 ) z9 + ( a l 。一a i ) z 州】 ( 21 7 ) 可看出一l 为p ( z ) 的一个根,+ l 为q ( z ) 的一个根 相= 等与= 臀分别除去了两协赋- + 1 帆 p ( z ) 与q ( z ) 各有5 对共轭的根在单位圆上,可写作: 耳 l 喝 二p 一 一。 一一 兰三童坚! 堕壁型鳖竺塑 j d ( z ) = 兀( 1 2 q 。z 。+ z 。2 ) ( 21 8 ) q ( z ) = 兀( 卜2 q ,z 一1 + z2 ) ( 21 9 ) 24 1 0 q ,= c o s ( 彬) ,彬即所谓的l s f ,满足o w i w 2 w l 。 兀是余弦域上 的l s p 。 p ( z ) 与q ( z ) 是对称多项式,设其前五项系数为( i ) 与五( i ) ( o i 4 ) 则 由尸( z ) = 等与q ( z ) = 等的长除法可得递推公式。 j 一( i + 1 ) = 一z ( f ) 一口。一a 。,l i 厶( f + 1 ) = 厶( f ) 一a l 十l + 口j o 一,j ( 22 0 ) 在这里 ( o ) 芎如( 0 ) 2 l 根据p ( z ) 与q ( z ) 根的性质,将单位圆上帆区间等分为2 5 6 个区域, 交替搜索函数1 0 个过零点。( 具体准则是本次所求得的p ( z ) 或q ( z ) ,与 上次所求得的q ( z ) 或p ( z ) 符号不同) 所用式子如下: j p ( z ) = ( e ( x ) + z ( 1 ) 五( x ) + z ( 2 ) 五( x ) + z ( 3 ) 如( x ) + z ( 4 ) 五( x ) + 五笋) 口1 5 w ( 22 1 ) q ( z ) = ( 瓦q ) + 六( 1 ) 五( z ) + 五( 2 ) 五( x ) + 五( 3 ) 正( z ) + 以( 4 ) 五( x ) + t f a s ) 弦叫w ( 22 2 ) 其中t 。( x ) = c o s m x ,在表中可查x = r f i 2 5 6 ( i = o - 2 5 6 ) 求得的l s p 系数用1 6 位表示,其中7 1 4 位表示在哪一段7 c 2 5 6 范围内,o 6 位则表示在此段内具体位置。若不是l o 个零点,则用上一帧得l s p 系数代替。 l s p v e c t 数组存放1 0 个l s p 系数。 调用l s pq n t 对所求得的l s p 系数进行量化 在l s pq n t 中先求出加权矩阵w n ,再求出要搜寻得v q 目标矢量,即l s p 残差矢量,求法是:从本帧的l s p 矢量中扣除d c 。直流分量,再扣除前一l s p 矢量减去d c 直流分量再经过一个一阶固定预测器b = 1 2 3 2 后的值,这就是 p s v q 中的所谓预测。 调用l s ps v q ( ) 搜寻。在搜寻中,将目标矢量分为准数位3 ,3 ,4 的 三个子矢量,分别在各自的码本中搜寻,这就是p s v q 中的所谓分裂。 21 2 式的表达实际上就是( 巴一e h ) 7 玎,卅( 只一e 。) p r o 为目标矢量,e , 。为 第二章g 7 2 3l 编解码器算法研究 鹛本。 设目标子矢量数组,权重矩阵对角线数组,码本数组分别为:p 。【】,w 。 】 e f 。【】0 ms2 ,】,2 5 6 以m = o 为例,21 2 式展开即为: 2 ( , 0 0 2 【f 】眠【小 p 乙 f 】k 【f 】一2 p o i e f o 【f 】w o 【m 1 ,2 5 6 ( 22 3 ) l = 0 在此式中p 2 0 i w 。【i 】为常数项,比较大小时不起作用。 21 2 式可化简为: 2 0 孟【妇【f 】一2 p o i l e j 0 【f 】氓 f 】) ( 22 4 ) i = 0 从卢l 到- - 2 5 6 搜寻码本使此式最小,即为此分量的码本索引。 最后,将3 个索引共2 4 位放到一个3 2 位的字节中,即完成了l s p 的码 本搜寻工作。 2 1 6l s p 解码 l s p 系数的解码过程如下 1 ) 根据索引将三个子矢量组成一个十维矢量;。 2 ) 预钡t 矢量p n ,解码矢量;。与d c 矢羹p d c 相加得到解码后的l s p 矢 量,p 一 3 ) 对尸一进行稳定性检测,使其满足下条件: j pj + 1 n 只,。= 3 1 2 5 h z 1 ,9( 22 5 ) l s p 系数递增排列,且间隔不小于3 1 2 5 h z ,若不满足。则按如下方 式修改: p w = ( p + 尸j + i ) 2 尸,= j p 一。2 尸,+ l = p m * + a 。2 上述修改将反复进行,直到稳定性条件满足。 合要求,则采用以前的l s p 。 在程序中由l s p i n q ( ) 完成。 ( 22 6 ) ( 22 7 ) ( 2 2 8 ) 如果反复1 0 次仍不符 第二章g 7 2 3l 编码器算法研究 2 1 7l s p 插值 对于每一帧2 4 0 个采样点来说,只计算第3 子帧的l s p 其它o 2 子帧的l s p 则果用插值的办法,四个插值后的l s p 矢量 p 。) 。,被转换成l p c 矢 量 ar ;。,。 p = 07 5 p 。l + 02 5 p f = 0 05 p + o5 p i = 1 ( 22 9 ) 02 5 j p “十07 5 尸f = 2 p i = 3 d 。7 = i 鳓a 2 o f 3 量化后的l p c 合成滤波器,a ( z ) 将用于合成解码语音。 程序中用l s pi n t ( ) 进行l s p 插值。 调用l s p t o a ( ) 将每一子帧的l s p 系数转换为l p c 参数。 ( 23 0 ) ( 23 1 ) 思路如下: 先将每一子帧的l s p i 】0 i 9 ,查表转换成余弦值c o s w 。,在这里l s p i 1 的1 5 7 位表征了w ,在哪一段2 r d 5 1 2 的范围内,6 加位则表征了在此段内的具 体位置,用线性值算出c o s w ,的值。 重写 p ( z ) = i - i ( 1 2 q z + z a ) t = l3 9 q ( z ) = 兀( 1 2 q ,z 。1 + z 4 ) 24 1 0 q 。= c o s ( 彬) 4 ( z ) = 1 一e a ,z “= ( 1 + z 。) p ( z ) + ( 1 一z “) q ( z ) 2 茹 一卜 = z ( 、4 第二章g 7 2 31 编码器算法研究 在l s p i l 中存放一2 q 。设p ( z ) ,q ( z ) 的因子多项式为p ,( z ) p s ( z ) 和 q ( z ) q ,( z ) ,先分别求出p 。( z ) p :( z ) 与q ,( z ) q :( z ) 的各项系数。 以p ( z ) 为例: p 。( z ) p :( z ) = i + k l z1 + k 2 z 。2 + k l z 3 + z 4 ( k o = l ,k l = l s p 0 + l s p 2 】,k 2 = 2 + l s p o 】+ l s p 2 】) 再用递推算法求出p 。( z ) p :( z ) p ,( z ) p “z ) p ,( z ) 的系数。 f o ri = 2 t 0 4 k h 2 l s p 2 i l ( i l + 2 k 2 f o r j = i - ld o w n t o2 ( k 2 k j + l s p 2 i k - + k j 2 ) k 1 2 k i + l s p 2 i 解出v ( z ) 与q ( z ) 之后。a 亿) 的系数即可求: 4 ( z ) = ; p ( z ) ( 1 + z _ ) + q ( z ) ( 1 一z 。) ) ( 23 2 ) 2 1 8 共振峰薯觉加权滤波器 对于每个子帧,利用未量化的l p c 系数( 口;,kw 建立一个共振峰感 觉加权滤波器,滤波器有传递函数: 彬( z ) = 1 一z 1 k j = l 1 一z 1 一 ( o s i 3 ) ( 23 3 ) y = 0 9 ,y :_ o5 。输入的语音信号 x 【n 】 n - - 0 2 3 9 被分为4 个子帧,每一 个子帧被w i z ) 滤波,得到加权信号 f 【n 】 n = 0 2 3 9 程序说明: 共振峰感觉加权的输入信号应为上一帧的最后子帧与本帧的前三子帧 m e r e 为此作用,输出的 数组即为待加权的信号。_ s h i f t ( ) 1 1 1 1 d a t a b u f f w g h t l p “) 利用未被量化的l p c 系数,得到共振峰加权滤波器的分子分 母系数数组p e r l p c ( ) e r r o r w g h t ( ) 对每子帧的信号进行加权。 感觉加权滤波器的依据是入耳的掩蔽效应。在语音频谱中能量较高的频段 即共振峰处的噪声相对于能量较低频段的噪声而言,不易被感知感觉。加权 滤波器频响中的峰谷值正好与语音谱中相反,其作用与掩蔽效应相吻合,产 生较好的主观听觉。 1 4 第二章g7 2 3i 编码器算法研究 2 1 9 基音估值 基音估值实际是求语音信号的周期性分量l ,也称自适应码本搜索。语音 信号的基音频率因人而异,但通常我们可以将它限制在5 0 4 0 0 h z 范围内, 这样,当采样率为8 k h z 时,l 的取值范围相应是2 0 1 6 0 ,在本标准中,取为 1 8 1 4 2 。 对于每一帧,我们计算两次基音周期。前两帧与后两帧各计算一次,利用 感觉加权语音信号f 【n 】,计算开环基音周期。 其准则如。f : 定义: 1 1 9 ( f n l f n j 1 ) 2 c o l ( j ) = 帝生一1 8 j 1 4 2 ( 23 4 ) f n 一疗f i n 一力 使c o l d ) 最大的索引号j 被选为相应两个子帧的开环基音周期。为了避免 基音周期的谐波,将在一定准则下选取索引号较小的基音周期。从索引号1 8 开始,对于每一个找到的c o l ( j ) ,我们将其与前一个最大点c o l ( j ) 比较:如 j - j c o l ( 7 ) 则j 可替换j ,若j - j 2 1 8 ,则只有当c o l ( j ) 比c o l ( j7 ) 大 1 2 5 d b 时,才认为j 可替换j 7 。 e s t o mp i t c h ( ) 即完成次项工作。 2 1 1 0 以下各节每子帧操作一次 从2 1 。1 l 到2 1 1 9 的算法每子帧操作一次 2 1 1 1 谐波滤波器 为提高语音编码的质量,建立如下的谐波滤波器 只( z ) = 1 一尼+ 最佳时延l t 将使如下c p w c j l 最大 ( 23 5 ) c m u ( j ) :可型j 2( 23 6 ) 九聍一疗f n - j 第二章g 7 2 3l 编码器算法研究 ( ,) = f n f n 一力 只取使n ( j ) 为正的j 值 l i = l d l 3 ,l 2 = l d l + 3 。最大的c p w ( i ) 被定义为c l 最佳滤波增益为: ( 23 7 ) e f l n e n 一纠 g ,= 百鲤一 ( 23 8 ) e f i n t l f n 一】 n = o g 。,被限制在【0 ,l 】范围之内。加权语音信号 f 【n 】 。,的能量 e = f 2 【胛】 谐波滤波器p ( z ) 的系数 纠0 3 1 。1 0 崦,。紫越。 q3 建立谐波滤波器后,经过21 8 中感觉加权的语音信号t i n ,又经过此谐 波滤波器,得到w n 】 降r 【h 】= y n 卜缪【n l 】0 ”5 9 ( 24 0 ) 程序中用c o m p p w ( ) 计算谐波滤波器的参数,返回p w d e f 型结构体 p w i m “j p w i i n d x 为l 值,p w i g a i n 为p 值。 用f i l t _ p w ( ) 执行滤波,滤波后的输出放在d a t a b u f t i 】中。 2 1 1 2 联合滤波嚣 为了进行闭环分析,建立如下滤波器: s ,( z ) = 一,( z ) 彬( z ) 只( z ) 0 i 3 ( 24 1 ) s ( z ) j l 个因子的定义见21 7 ,2l8 ,2l l l 节。 计算此滤波器的冲击响应 h i n 】 。,。程序中用c o m p l r ( ) 对每一 第二章g 7 2 3l 编码器算法研究 子帧计算一次,输出为i m p r e s p 】6 0 个字的数组。 设输入为x 【n 】,仅x o 】1 ,最终输出为q 【n 】( n 。0 ,5 9 ) 旦堕: ! 坦聍】l 一芝q z _ 型:翌 y 【门】1 一兰q e z 幽:l _ 彪一c z 【川 。 ( 2 4 1 ) ( 2 4 2 ) ( 2 4 3 ) 在这里y n 】与z 【n 】是中间数组,在程序中分别对应f i r d l 【】数组与l i r d l 【 数组。q n 】对应i m p r e s p 】数组。 2 1 1 3 零输入响应 计算联合滤波器s i ( z ) 的零输入响应 z n l n = o 5 9 ,从谐波滤波器的输出 w n 】中,减去零输入响应,得到目标矢量t 【n 】= w 【n 】一z 【n 】,程序中用s u b _ r i n g ( ) 完成,由于信号所经过的滤波器相同,程序大体与上- 4 , 节相仿,只是输入 不同,初始信号如x 【_ 1 】等也不同。 2 1 1 4 基音预测 基音预测就是求通常所说的自适应码本,基音预测器是一个五阶的预测 器,对子帧0 和2 的闭环基音延时从开环基音延时的l 范围内选取,用7 比特编码,对子帧l 和3 的闭环基音延时从上一子帧的1 - + 2 间选取,并编 码位2 比特,而实际上开环基音延时并不被传递,只是一个中间辅助量。从 这一时刻起,被量化和解码的基音延时被定义为l 。基音预测器的增益将被 矢量量化,对于高码率( 63 k b p s ) 使用大小为8 5 或1 7 0 的码本,对于低码率 ( 53 k b p s ) 使用1 7 0 的码本。对于两个码率,大小为1 7 0 的码本是相同的。 在高码率情况下,如果第0 ,第l 子帧l n 小于5 8 或第2 和第3 予帧的l 1 小于5 8 则采用大小为8 5 的码本进行增益量化;否则采用大小为1 7 0 的码本。 最后基音预测器的贡献 p i n 】 = o 5 9 从上- 4 , 节的目标矢量t 【n 】中扣除,得 到残余信号r n - - - t n p n 】。程序中用f i n da c b k ( ) 完成此项工作。设定一个 变量k ,意义是相对于开环基音延时减一的增最,对于偶数帧k = 0 ,l ,2 ,对于 奇数帧k = 0 ,1 ,2 ,3 ,该算法的具体过程还需参考2t1 8 基音解码部分。 对于每一子帧的每一个k ,子程序c - e tr e z ( ) 完成式2 5 7 的工作得到 r c z b u 】数组( 6 4 个字) 后,定义如下二维数组:f l t b u l 5 6 0 1 。 1 7 第二章g 7 2 3 1 编解码器算法研究 f l t b u f 【4 】数组存放r e z b u f i 】中r e z b u f 4 至1 r e z b u f 【6 3 】的序歹0 与2 ,l 1 2 中 所求h i ( n ) 的卷积 f d b u f l 3 】数组存放r e z b u f i 】中r e z b u 3 】到r e z b u 6 2 】的序列与2l 1 2 中所求札( n ) 的卷积 以此类推。然后计算如下2 0 个数:设为a t 勘 a l a ,分别为:p n l f l t b u f i l n i = o4 氐 a l 。分别为:萎凡曲矿【f 】m 衅i s , f j 】【刀】 ko 4 5 9i = 14 a ,分别为:f l t b u i n f l t b u f j n i 一一: 肛0j 一o 根据k 的个数不同,每个子帧计算出6 0 或8 0 个值,放在数组c o r v c t 8 0 】 中,根据基音周期的大小和码率的高低选择码本( 8 5 或1 7 0 ) 。码本实际e 是 8 5 或1 7 0 个2 0 维的矢量,每一个2 0 维矢量分别代表a r a 2 0 的增益。 对于每一个k 的组a 、,分别与码本中的每一个2 0 维矢量相乘,其 中得到的最大值所用的k 与码本索引i 被记录,最终对偶数帧求出7 位的基音 延时,l ,= p i n d i 。注意l 是基音周期对于1 8 的增量,因此真正的基音周期为 1 8 + l ,。对奇数帧求出2 位的相对延时,i ( 相对于l ,) 。将延时与增益码本 做为d e c o d a c b k ( ) 的参数得到自适应码本的贡献p i n ,具体方法见2l 1 8 。 最终从t 【n 】中扣除此矢量p f n 】,做为下步求固定码本的目标矢量r n j 。 2 1 1 5 高码率激励 根据编解码的速率,程序选择一种固定码本( 即前边所说的随机码本) 的搜索方式,在6 ,3 k b p s 速率下,残余目标矢量r f n 】被传送到高码率编码部分 进行量化。量化的过程是用,【n 】近似表示r 【n 】。 ,【,l 】= y h j 咖一刀 ( 2 4 4 ) v d 是冲击响应为h 【n 】的联合滤波器s ( z ) 的激励,被定义为: 川= g a i a n 一胁i 】0 ,5 9 ( 24 5 ) g 为增益因子,6 【n 】是狄拉克函数, 钆 。i nm ,和 呱 。,是每一个狄 拉克函数的符号和位黉,m 为脉冲个数,对偶数予帧为6 ,对奇数子帧为5 。 脉冲位置有所限制,要么全奇,要么全偶,一个格点比特将表示这个特征, 因此,高码率激励的求解变为估算出g 。 钆 “,和 m 。) 。,使e r r n 】均 方误差最小。 e r r n = r n l r 1 玎】= ,m g a , h n - m t 】 ( 24 6 ) k = o 第二蕈g 7 2 31 编解码器算法研究 系数的估计与量化过程是基于分析合成的方法( a b s ) ,g 。参数的估算 与量化如下进行: 首先计算h 【n 】与r n 】的互相关函数 5 9 讲】- r t n 蜘一j 】0 j 5 9 n 。, 估算增益为: ( 24 7 ) g :竺竺! 塑型业:! ! ( 24 8 ) 一f i 姒 e q h t n 坳】 将g 一对数最化为g 一。该量化器对两种码率是相同的,间距为 32 d b ,共2 4 级。对于在g 一3 2 到g + 6 4 的范围内每一个增益值, 脉冲位置与符号进行优化,包括所有的奇数位置与偶数位置。选择最佳组 合使e r r n 的均方差最小,并将最优的脉冲位置与增益传给编码器,脉冲位 置采用【嚣j 组合数。 为了提高短基音周期的语音质量,附加如下过程,若第0 和第l 子帧的 l o 或第2 和第3 子帧的l :小于5 8 ,则用一串周期为l 0 或l :的狄拉克函数来 代替原来位于m 。的单一狄拉克函数。采用一串狄拉克函数还是单一狄拉克函 数来代替残差信号是以最小均方误差准则为依据。我们采用最佳激励方式, 并将参数传递给解码器。 f i n d f c b k ( ) 是计算固定码本的主程序 首先根据码率决定使用m 口 或_mlq) a c e l p 计算脉冲位置符号后的编码,程序调用f 曲kp a c k ( ) 详细说明一下:用s f s d e f 结构体中的p a m p 每位代表脉冲正负如 1 1 0 0 0 0 代表前两个脉冲为负,后四
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 起重指挥考试题库及答案
- 森林火灾防治知识培训课件
- 森林消防扑灭火课件
- 桥梁预算编制课件
- 桥梁行车安全知识培训课件
- 风湿免疫科医师应聘试题试卷(临床专业)含答案
- 2025主管护师冲刺试题专业知识题目附答案
- 2025年气排球裁判试题库及答案
- 桥梁基础及下部结构
- 桥梁养护应急知识培训课件
- 《海上风电场工程测量规程》(NB-T 10104-2018)
- 物业保安、保洁项目投标书
- 2022智慧建筑评价标准
- 《危险化学品目录(2022调整版)》
- 高中信息技术开学第一课课件
- 【公开课】北师大版四年级上册数学《乘法分配律说课》课件
- 广东省义务教育阶段学生转学申请表
- 挫折是成长的必修课主题教育PPT模板
- 网络摄像机-模组接口规格书精简板
- 社工政策与法规
- 绿茶多酚及超级灵芝萃取物与预防癌症之关系博士
评论
0/150
提交评论