




已阅读5页,还剩56页未读, 继续免费阅读
(通信与信息系统专业论文)voip中宽带语音编码研究与dsp实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
独创性声明 1 删 独创性( 或创新性) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中 不包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或 其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所 做的任何贡献均已在论文中作了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 , 7 本人龋日期:丝l 翌:主:l 呈 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即: 研究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权 保留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅 和借阅;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印 或其它复制手段保存、汇编学位论文。( 保密的学位论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密在一年解密后适用本授权书。非保密 论文注释:本学位论文不属于保密范围,适用本授权书。 本人签名: 导师签名: 、 缓南 a 袋燃 日期: 日期: 加p 、弓,l 夕 k j。八令 trf、; 做、箩 o 摘要 v o l p 中宽带语音编码研究与d s p 实现 摘要 语音压缩编码是为了有效地存储大量的语音信息从而节省宝贵 的信道资源。随着通信带宽的扩展,在各种视听业务中,人们不仅仅 需要听懂对方的语意,还希望了解对方的情感和对方所处的环境中的 其它声音,如音乐等。也就是说,人们追求的是一种自然的面对面的 通信质量。因此,传统的窄带语音编码在3 0 0 h z 3 4 0 0 h z 的频带范 围内已经不能满足人们对高质量语音的追求,我们有必要在频带为 5 0 h z 7 0 0 0 h z 上进行宽带语音压缩编码的研究。 s p e e x 是在v o i p 的应用背景下提出的一种基于c e l p 算法的免 费、开源的语音编码器,由于其应用目标为v o i p ,因此在设计上必 须能够克服网络丢包造成的影响。其编码方式非常灵活,可以依据不 同的应用环境采用统一的码流格式和编码算法,实现多码率,多采样 率的灵活的语音编码,以适应网络语音通信的需求,其码率在窄带模 式下( 8 k 采样) 为2 5 0 b p s 2 4 6 k b p s ,宽带模式下( 1 6 k 采样) 为3 9 5 k b p s 一4 2 2 k b p s 。 本论文在对s p e e x 算法深入研究的基础上,针对其时间复杂度比 较大的缺点,提出了三种算法级的优化方法。结果表明,在p e s q 得 分影响很小的情况下,s p e e x 算法时间复杂度有大幅降低。然后在2 4 位定点的a r l 6 8 8 芯片对其进行了实现,在做好一致化工作后,对代 码进行了代码级的优化,大大的减少了程序的运算复杂度,提高了编 码效率。 最后结果表明,s p e e x 算法在a r l 6 8 8 芯片上可以运行良好。 关键词:语音编码s p e e x 算法优化代码优化 , p 的条件。这时自协方差法误差小的优点不 l o l i 譬 , 北京邮电大学硕士研究生论文v o i p 中宽带语音编码研究与d s p 实现 再突出,而自相关法的高效递推算法成为突出优点。所以在语音信号处理领域内 多数都采用自相关法。其中最广泛的就是莱文逊杜宾( i g v i n s o n - d u r b i n ) 递推 算法。莱文逊杜宾算法的主要思想是:利用自相关矩阵的t o e p l i t z 特性,i 阶方程 组的解可以用i 1 阶方程组的解来表示,i - 1 方程组的解又可以用i 2 阶方程组的解 表示,依此类推,因此只要解出一阶方程的解,就可以一步一步地递推来解出任 意阶方程组的解。 语音编码算法研究中,需要尽可能使得l p c 参数量化谱失真尽可能小。同 时,必须保证l p c 量化之后的全极点滤波器保持稳定。直接量化l p c 系数通常 会导致较大的量化谱失真以及合成滤波器的不稳定。因此,人们提出了很多l p c 系数的变换形式用于l p c 的量化。这些变换后的系数必须和l p c 系数一一映射, 且不引起合成滤波器的任何信息损失,如反射系数( r e f l e c t i o nc o e f f i d e n t ) 、a s r c ( a r c s i n er e f l e c t i o nc o e f f i d e n t ) 、l a r ( l o g a r e ar a t i o ) 以及l s f ( l i n es p e c 砌 f r e q u e n c y ) 。 在c e l p 中,l p c 系数是转换成线谱对( l s f ) 进行量化的,线谱对是线性预测 系数的另一种表示形式,由于线谱对参数是频域参数,所以它和语音信号谱包络 的峰有更紧密的关系,用线谱对系数构成合成滤波器一样容易保证其稳定性,其 中,l s f 参数有一些特别的性质,使得它比其他参数更富有吸引力,如,一个l s f 参数的误差仅仅影响全极点模型中邻近这个参数对应频率处的语音谱,因此l s f 是l p c 参数最有效的表示形式,广泛应用于低速率语音编码中l p c 参数的量化过 程。实验表明,实用l s f 参数能获得高质量的合成语音,主观性能也证明它能产 生高质量的合成语音。 2 1 2 短时预测和长时预测 在语音中存在着两种类型的相关性,即在样点之间的短时相关性和相邻基音 周期之间的长时相关性。利用线性预测方法对这两种相关性的去相关处理以后, 得到的就是预测余量信号。如果用预测余量信号作为激励信号源,输入长时预测 综合滤波器,再将其输出作为短时预测综合滤波器的输入,即可在其输出端得到 合成语音信号。 l p c 分析其实是分析了语音信号的短时相关性,属于短时预测( s t p ) ,它描 述了语音信号采样点之间的相关,语音信号经过l p c 分析之后,去除了相邻采 样点的相关,等价于去除了信号的频谱包络。l p c 残差信号仍然存在着相当大的 变化,如周期脉冲。在语音产生的源滤波器模型中就假定了这种周期脉冲信号的 输入,这种脉冲说明了语音信号存在着长时相关性。因此对语音信号进行s t p 分析之后,还需要进行长时预钡u ( l t p ) 。这也就是音调预测,预测滤波器的延迟 北京邮电大学硕士研究生论文v o i p 中宽带语音编码研究与d s p 实现 就是基音周期。 2 1 3 合成分析法a b s ( a n a i y s i s - b y - s y n t h e s i s ) 在中低速率参数语音编码中,用于余量信号编码的比特数较少。若对余量信 号进行直接的量化,并且使余量信号与它的量化值之间的误差达到最小,并不能 保证原始语音与重建语音之间误差最小。只有采用合成分析法来求得余量信号的 编码量化值,才能使得重建语音与原始语音的误差最小。 合成分析法即是将综合器引入编码器,使之与分析器相结合,在编码器中产 生与译码器端完全一致的合成语音,如图2 1 所示。将此合成语音与原始语音相 比较,根据一定的误差准则,来调整计算各个参数,使得二者之间的误差达到最 小,这种方法即称为合成分析法。由于该方法把系统输出引入编码端以调整编码 参数,所以也称作闭环分析,与此相对应,不将输出引入编码端的方法称作开环 法。 u ( n ) 2 1 4 感觉加权滤波器 图2 1a b s - l p c 编码框图 e ( n ) 合成语音的质量主要靠主观评价方法来评价,但主观评价往往受人的生理和 心理等因素的影响。因此采用感觉加权滤波器,使合成语音听起来更清晰、平滑。 感觉加权滤波器是根据人耳听觉的掩蔽效应,在语音频谱能量较高的频段即共振 峰处的噪声相对于能量较低频段的噪声而言不易被感知。因此在度量原始语音与 合成语音之间的误差时可以计入这一因素,在能量较高的频段,允许二者的误差 大一点,反之则小一点。 将感知加权滤波器应用到a b s l p c 编码方案中,通常不是放在误差信号的 分支上,而是分别在s 例和;( 以) 信号分支上进行加权。这使得语音信号输入的时 候,仅仅被加权一次,如图2 2 所示。 1 2 一 鲁 擘 北京邮电大学硕士研究生论文v o l p 中宽带语音编码研究与d s p 实现 r _ i 激励i | 码本 li l _ r 一 2 1 5 矢量量化 图2 - 2 调整后的c e l p 编码器 最简单的信号量化方法是标量量化,这就是用若干个离散的数字值来表示每 一个幅度具有连续取值的离散时域信号。矢量量化( v q :v e c t o rq u a n t i z a t i o n ) 则是将若干幅度连续取值的时域采样信号分成一组,然后用若干离散的数字值来 表示各种矢量。其主要思想是将若干个标量数据作为一个矢量,然后对矢量空间 做整体量化,达到压缩数据且不损失太多信息的目标。 在c e l p 语音编码中,广泛采用矢量量化对激励信号、l p c 参数以及码本增 益等进行数据压缩。矢量量化将若干个幅度连续取值的时域采样信号分成一组, 即构成矢量,然后用若干离散的数字值来表示该矢量。矢量量化的失真准则是在 给定码本大小时,使量化造成的失真最小。c e l p 编码时将事先经过训练得到的 一组码矢量组成一个码本,然后对每一帧语音信号从这组码本中选出一个在感觉 加权误差最小意义上的最佳码矢量作为激励源。它在编码时只需传送最佳码矢量 的下标,由此占用的比特数得到最大程度的降低,不过这样做就需要在编码端和 解码端都存放码本。 2 2s p e e x 编解码流程 对于宽带语音c e l p 编码有两种方式,整带c e l p 和分带c e l p 。整带c e l p 是指将全带0 - 8 k h z 语音信号整体进行c e l p 编码,而分带c e l p 则是先将语音 信号分解为高低两个子带,再分别编码。分带c e l p 较之整带c e l p 有更低的复 杂度,更容易实现。s p e e x 就是一种分带c e l p 算法。 s p e e x 宽带语音编码时,先利用正交镜像滤波器将经1 6 k h z 采样的输入信号 分为0 4 k h z 和4 8 k h z 的等带宽的两个子带。低频带部分继续延用窄带模式的编 码方法,这样可以使编码简化;高频带使用了和c e l p 编码器相似的编码方法, 1 3 北京邮电大学硕士研究生论文v o i p 中宽带语音编码研究与d s p 实现 不同点在于,高频带没有进行完整的c e l p 编码。由于高频部分信号的周期性不 明显,所以它不进行基音预测,只用了固定码本而没用自适应码本。高频带信息 的编码与低频带信号处于同个码流之中,位于低频带信息编码之后。高频带只 传输了3 个参数:高子带的l s p 系数,子帧增益和固定码本索引。其中,高频 带对l s p 系数量化过程中采用了多级量化( m s v q ) ,即首先对l s p 系数进行矢 量量化,再对量化后的误差进行二次矢量量化。编解码过程如图2 - 3 和2 - 4 所示: 输入谮 螽娥 弼流 2 - 3s p e e x 宽带编码结构图 告戒 码流 1 2 2 10 m f 镜像滤波器 2 - 4s p e e x 宽带解码结构图 成谗裔 s p e e x 宽带语音编码采用的是分带c e l p 算法,需要将输入信号划分为两个 等带宽的子带。传统的子带编码中采用一组带通滤波器将输入信号分割为若干个 子频带,但是为了获得更好的性能,就必须增加滤波器阶数,往往需要采用2 5 6 阶以上,甚至更高阶的f i r 滤波器,才能使滤波器组的滚降特性比较陡,尽管接 近理想带通特性,才能使混叠效应不至于对自带编码质量产生明显影响,这无疑 使实现子带滤波器组的运算负担太重,不利于实现。 正交镜像滤波器组q m f b t l 9 】( q u a d r a t u r em i n o r f i l t e rb a n k s ) 能够解决混叠 失真问题,对滤波器的滚降特性可以大大降低要求,从而使系统实现大大简化。 图2 5 为q m f b 一般结构框图。输入信号x n 】是经过频率获得的全带时域离散 信号,然后分别经过相同带宽的低通和高通滤波器,再分别经过2 :1 的比例抽 取,使上下两个子带信号采样率下降到形2 分别得到了低子带和高子带信号。合 成时刚好此过程相反,信号首先经过l :2 比例的内插恢复原来的采样频率和原 来的子带信号位置,然后分别经过低通和高通滤波器,最后相加后得到重建信号。 1 4 磬 北京邮电大学硕士研究生论文 v o l p 中宽带语音编码研究与d s p 实现 输入语 图2 - 5q m f b 的一般结构框图 图2 4 为q m f b 的幅频特性。由图可知,两个子带滤波器幅度响应关于万2 镜像对称的,但是由于滤波器都具有一定得滚降系数,这就造成了两个滤波器的 交叠。经过下采样以后,高于万2 的信号会折叠到低万2 区域,同样,低于万2 的信号也会折叠到高万2 区域,这样就产生了混叠。 可以证明,当q m f b 满足以下条件时,混叠影响可以消耐】。 ( 1 ) h i ( z ) 是偶数阶f i r 滤波器,其冲击响应对( n 1 ) 2 偶对称; h i ( n ) = h l ( n 一1 一n ) ,n = 0 ,1 ,( n 2 ) - 1 ( 2 ) h 2 ( z ) 是偶数阶f i r 滤波器,其冲击响应对( n 1 ) 忽奇对称; h 2 ( n ) = h 2 f n - 1 - n ) ,i l _ o ,1 ,( n 2 ) 1 ( 3 ) h 2 ( z ) = h l ( 一z ) ( 4 ) h 2 ( n ) = ( 1 ) 1 1 1 1 l ( n ) ,n - 0 ,l ,( n 一1 ) ( 5 ) k l ( z ) = h i ( z ) ( 6 ) k 2 ( z ) 一h 2 ( z ) 其中,( 3 ) 、( 4 ) 、( 5 ) 、( 6 ) 为镜像对称条件。 q m f b 实现上可分为f i r 滤波器和i i r 滤波器两种实现方式,其中f i r 滤波 器方式较为常用。s p e e x 中的q m f b 滤波器采用6 4 阶f i r 滤波器实现,其分析 滤波器和合成滤波器结构分别如图2 6 、2 7 所示 图2 - 6s p e e x 的q m f b 分析滤波器结构 北京邮电大学硕士研究生论文v o i p 中宽带语音编码研究与d s p 实现 l h 2 。 l 1 1 4 一 。f 【 图2 - 7s p e e x 的q m f b 合成滤波器结构 2 2 2s p e e x 低子带编码原理 s p e e x 编码帧长为2 0 m s ,对于采样率为1 6 k h z 的宽带语音来说,一帧就有 3 2 0 个采样点。s p e e x 首先用q m f b 把他分解成高低两个子带,低带部分为 0 4 k h z ,长度为1 6 0 个采样点,低子带部分继续延用窄带模式的编码方法,这 样我们就可以把s p e e x 宽带编码的低子带部分的编码当成窄带来处理。 窄带编码时,首先将信号经过高通滤波器,去掉直流信号和工频干扰,然后 进行整帧的开环分析【1 8 】,如图2 1 所示。首先对整帧信号进行1 0 阶线性预测编 码【2 2 1 ( l p c ) ,由l p c 系数可以构建l p c 合成滤波器1 a ( z ) ,然后将得到的1 0 个l p c 系数转化为线谱对系数f 3 0 l ( l s p ) ,在对这线谱对系数进行矢量量化编码, 最终送到解码器。在整帧的运算中,我们还要得出一个整帧激励增益,量化后送 至解码器。整帧分析是一个开环分析,其框图如图2 ,8 所示: s p e e c h f r a m e 图2 8 开环分析框图 整帧分析结束后,把1 6 0 个样点的整帧分解成四个子帧进行子帧分析,每个 子帧4 0 个样点。子帧分析流程如图2 7 所示。 1 6 北京邮电大学硕士研究生论文v o i p 中宽带语音编码研究与d s p 实现 印赫 t u b f l a m e l 一呵盂瀛二删哟 图2 9s p c e x 子帧分析框图 ( 1 ) l p c 和l s p 系数 每个子帧所使用的l s p 系数是用当前分析帧的l s p 系数和前一帧的l s p 系 数进行按公式2 2 插值得到。由于子帧分析中要进行自适应码本和固定码本的搜 索,为了使编码端和解码端匹配,所以子帧分析中使用的l p c 系数是由l s p 系 数变化回来的,利用这个l p c 系数构造滤波器五( z ) 。 = ( 1 一了k ) 六一lt 了k 正,k = 1 , 2 ,3 ,4 ( 2 2 ) t 其中,k 代表第几个子帧,是当前子帧的l s p 系数,一。是上一帧l s p 系数,疋是当前分析帧的l s p 系数。 ( 2 ) 感觉加权滤波器【2 0 】 上面我们已经介绍过感觉加权滤波器的用处,在这里只是给出s p c c x 感觉加 权滤波器的传输函数表达式: 1 7 北京邮电大学硕士研究生论文v o i p 中宽带语音编码研究与d s p 实现 晔) = 船 n i ,v uj ( 2 3 ) 在子帧分析中,自适应码本搜索和固定码本搜索都是在感觉加权域进行的。 ( 3 ) 去零输入响应 由于合成滤波器是线性滤波器,故她的输出等于零输入响应与零状态响应之 和,所以在对语音信号做基因预测前,需要减去零输入响应。零输入响应是由一 个零激励去过感觉加权滤波器和合成滤波器的联合滤波器得到的。 ( 4 ) 基音预测 为了更好的逼近语音实际的基音周期,一般的c e l p 编解码器中,基音预测 一个分数的基音周期和一个增益表示,而s p e e x 却是采用一个整数的基音周期和 三个增益( 三阶预测) 来计算激励信号。自适应码本激励产生的信号e 。( 刀) 表达 式如下: p 。i n = g o k n r 一1 】+ g l k n 一丁】+ 9 2 d ”- t + 1 】 ( 2 4 ) 其中,g 。、g 。、g :是三个基音增益,t 是基音周期,e e n 为编码器的激励 缓存值。如果,当基音周期小于子帧长度的时候,就用一个周期前的激励来替代。 例如,当疗一t + 1 0 时,就会用,z 一2 t + l o 来替代。信号e 。( 以) 过感觉加权滤 波器和合成滤波器后,按最小均方误差准则来求最匹配输入信号的最佳增益。 基音周期一般采用t o i t 量化,在1 7 1 4 4 内均匀量化,三个增益系数采用矢 量量化,当编码速率大于等于1 5 k b p s 时用7 b i t 量化,而当编码速率小于等于 1 l k b p s 时用5 b i t 量化。 ( 5 ) 固定码本搜索 s p e e x 在固定码本搜索时,并没有采用一般c e l p 使用的代数码本,而是将 每个子帧的4 0 个样点分解成5 2 0 个采样点的子向量,编码是每一个子向量从对 应的码本中选取最佳码本,所有子矢量联合起来表示一个子帧。 固定码本搜索也是要在感觉加权域进行匹配的,搜索前,首先根据所选速率 把码本分解成多个子矢量,然后把所有子矢量过感觉加权滤波器和生成滤波器的 联合滤波器,得到码本的感觉加权域合成信号,然后这这些合成信号中搜索和目 标信号最匹配的一个,然后将其对应的固定码本的索引作为最佳索引。然后把最 佳索引量化送至解码器。 一般的c e l p 都是采用滑动平均( m o v i n ga v e r a g e ) 方法来求固定码本的增益, 每一个子帧的码本增益基于以前编码帧的增益求平均得到,这种编码算法可以得 到较好的编码效果,但是增加了对以前编码帧的依赖性,在网络丢包的情况下会 对重建语音的质量造成很大的影响。s p e e x 使用整帧激励增益g 黔a m e 和子帧增益 修正参数昏“6 细小。联合表示预测增益。每一个子帧都有自己独立的增益参数,从 1 8 北京邮电大学硕士研究生论文v o i p 中宽带语音编码研究与d s p 实现 而在一定程度上减小了了对上一帧增益参数的完全依赖,对于丢包有较好的鲁棒 性。其中,其中求g s u m a , n e 用开环搜索,在自适应码本搜索后固定码本搜索之前 进行,采用0 3 b i t s 量化。 在s p e e x 中编码输出的码率从2 5 0 b p s 到2 4 6 k b p s 共9 种模式,其中,低于 5 9 k b p s 的模式在语音编码中不能使用。窄带编码中的每一帧由模式号( m o d ei d ) 开始,用4 个b i t 编码。表2 1 里列举了比特流中按照被打包的先后顺序的参数。 所有整帧运算的参数都是在子帧运算的参数之前打包的。对于当前子帧的参数则 都会在在下一子帧打包前被全部打包。 表2 - 1s p e e x 窄带编码的比特分配 w 硇曲a n db i tf r a m e l l llllll l m o d e i df r a m e444444444 l s pf r a m eo1 8 1 8 1 8 1 8 3 03 03 01 8 o l p i t c h f r a m eo77oooo07 o lp i t c hg a i nf r a m eo4 0o0 o004 o l e x c g m f r a m eo55555555 f i n ep i t c hs u b - f r o mooo77777o p i t c hg a i ns u b - f l a m eoo555777o i t m 倒- a t i o ng 池弧b - f r a m eololl333o h n o v a d o nv q辊l b 4 k 啪游o o 1 62 03 5 4 86 4 9 6 1 0 l t o l a l五:揪54 31 1 91 6 0 2 2 03 3 6 44 9 27 9 2 2 3s p e e x 高子带编码原理 s p e e x 高子带模式编码主要完成对高频带信号( 4 8 k h z ) 的编码,它采用了和 c e l p 编码器相似的编码方法。但是在高频带部分并没有进行基音预测,主要有 两个原因:第一,在高于4 k h z 的频带上,语音的谐波信号很少,几乎表现不出 周期性;第二,4 8 k h z 信号经过q m f 滤波器对折之后变成4 0 k h z 的,使得谐 波的位置不再是基音的整数倍了,基音搜索变得难以实现。在高子带编码中只做 了l p c 和固定码本搜索两部分。 宽带模式下高频带的l p c 与窄带模式完全相同,只是在l p c 系数转换成l s p 系数的时候,高子带编码使用m s v q ( m u l t i s t a g ev e c t o rq u a n t i z e r ) 技术对高频带 的l s p 系数进行量化,共分配1 2 比特,第一级量化用6 比特量化1 0 个l s p 系 数,剩下的6 比特再对误差进行量化。 固定码本搜索以及量化的方法和低子带编码中相同。 在宽带模式中,在高频段编码前所有的低频带编码均已被打包。高频段部分 的比特流分配见表2 2 。由于高频带部分也是由模式号开始打包,所以一个宽带 模式的帧有可能被一个窄带的解码器正确的解出来,如果一个包中有多帧,解码 1 9 北京邮电大学硕士研究生论文v o i p 中宽带语音编码研究与d s p 实现 器需要跳过高频段部分以保持与比特流同步。 表2 - 2s p c e x 高频带编码的比特分配 p a m m e t 嚣 u p d a m r a t el 0l2 34 w i d e b a n db i tf r a m elllll m o d e i df r a m e33333 l s pf r a m eo1 21 21 21 2 e x d m t i o ng a i n s u b - f r a m e o5 444 e x e i m u o nv qs u b - f r a m eo02 04 08 0 2 2 4 解码原理 解码就是编码的逆过程,读入一帧码流后,首先进行全帧开环解码分析,得 到线谱对( l s p ) 参数、基音增益、整帧激励增益,对l s p 系数插值,然后反量 化为各子帧的线性预测系数,构成l p c 综合滤波器。其次,在子帧解码分析中, 从码流中分解出自适应码本码矢量和固定码本码矢量,乘以各自的增益一起构成 重建信号的激励信号,l s p 系数按式( 2 2 ) 进行内插并转化为l p c 系数,从而 构成l p c 合成滤波器。最后,将子帧激励输入到l p c 合成滤波器以形成高质量 的重建语音信号。图2 8 给出了s p e e x 的解码过程,虚框外对应编码时的全帧开 环分析,解码出的参数为整帧激励增益、基音增益、l s p 系数。 广一一 i i i i i i i l i l i i l i i i 图2 1 0 s p e e x 解码过程 2 0 , , 北京邮电大学硕士研究生论文v o i p 中宽带语音编码研究与d s p 实现 第三章s p e e x 算法优化 s p e e x 编解码算法中较高速率模式下的复杂度很大,使得其在低功耗的d s p 芯片上难以进行实时通信,而且基因周期搜索和码本搜索是其运算量最大的一部 分,所以下面我们对这两部分进行可以降低运算量的算法优化。 3 1 简化互相关运算 在自适应码本搜索里面判断是不是最佳基因延时和基因增益的准则是最小 均方误差准则,最小均方误差准则表达式为: m s e = x ( 以) 一少( 刀) 】2 ( 3 1 ) 其中,x ( n ) 是输入语音,y ( 1 1 ) 是预测合成语音,n 是子帧长度。要使m s e 最 小就应该使3 2 式最大。 耻盟:望竺二竺 。3 乏, y ( n - l ) y ( n - l ) 在s p e e x 算法中,互相关瓦的计算需要在n = 4 0 的情况下计算l 的每一个 可能的值所对应的互相关k 的值,然后再比较每个瓦的值,从中找到最大的 一个,其中l 的变化范围是1 7 1 4 4 。这样就要有1 2 8 次互相关运算,每次互相 关运算需要进行4 0 次乘法和3 9 次加法。这样一共就要有5 1 2 0 次乘法和4 9 9 2 次加法,复杂度非常大。 互相关值最大的时候刚好就是两段语音的波峰、波谷对应相乘的时候,所以 我们可以先找出两段语音中波峰和波谷的两个值,然后用它们分别相乘,如果用 这个相乘结果直接当成互相关值去比较,这样的误差太大,我们可以在波峰和波 谷两侧分别再多取两个值,用两段语音的这1 2 个点对应相乘后累加,用这个结 果去代替互相关值。 但是,l 的变化范围是1 7 1 4 4 ,而且每个范围内的权重也不一样,为了降 低减少样点带来的误差,使搜索结果更准确,将1 7 至1 4 4 范围内每2 0 个样点分 为一段,并记录每段互相关最大值所对应l 值,这样一共可以得到7 个基因延 迟的预测值。最后,再将这个7 个预测值采用传统的逐点基音搜索算法求得最佳 基音周期,流程如图3 1 所示。 2 l 北京邮电大学硕士研究生论文v o i p 中宽带语音编码研究与d s p 实现 图3 - 1 利用简单相关的流程图 用上述的简化方法,使得在互相关运算的长度由4 0 减小为6 ,每次需要6 次乘法和5 次加法,运算量大大减少。 为了对算法进行验证,我们选取了1 2 个测试序列对s p e e x 的m o d e 7 进行 模拟m o s 评分。这1 2 个测试序列中前6 个是从p e s q 提供的测试序列中选出 来的,其中o r l 6 4 、o r l 7 9 、o r 2 2 1 为女生的语音,其余三个为男生语音;中间四 个是微软所用的语音测试序列,其中t s t s e q l b i n 是在安静的情况下语音, t s t s e q 2 b i n 是随机的大噪音,可见s p e e x 算法对于大的随机噪音编解码效果不好, t s t s e q 3 b i n 、t s t s e q 4 b i n 是有噪音情况下的语音;后面两个是我们自己在实验室用 c o o le d i t 录制的两段语音,其中f a r l p c r n 是男生录得,f a r 2 p c m 是女生录的。 通过实际的仿真测试,上述简化运算使得复杂度可以降低3 6 个m i p s 之多, 而语音的p e s q 评分下降幅度在1 0 的2 次方的数量级上,甚至有的还会提高, 如表3 1 所示。 表3 - 1 简单互相关模型p e s q 评分 测试序列优化前 优化后 测试序列优化前 优化后 o r l 6 1 w a y4 1 0 54 0 2 9o r l6 4 w a v3 7 7 83 6 6 1 o r l6 6 w a v3 9 3 7 3 8 8 9 o r l7 0 w a y3 9 9 33 9 5 8 o r l7 9 w a v3 8 5 83 8 4 6o r 2 2 1 w a v3 6 6 53 6 3 1 t s t s e q1 b i n 4 0 3 64 0 7 3 t s t s e q 2 b i n 3 0 2 92 9 5 4 t s t s e q 3 b i n 3 9 6 74 0 3 9 t s t s e q 4 b i n 3 7 8 13 7 7 5 f a r l p e m 4 0 2 74 0 2 1 f a r 2 p c m 3 6 4 63 5 9 2 3 2 固定码本在码本域进行搜索 s p e e x 在固定码本搜索过程中,并没有采用代数码本,而是将输入的子帧信 号根据所选速率不同分解为长度从5 到2 0 不等的子矢量,各速率下也都有其各 2 2 , , 北京邮电大学硕士研究生论文 v o l p 中宽带语音编码研究与d s p 实现 自对应的独立码本,所有子矢量联合起来表示一个子帧。首先,根据所选速率将 码本分解为多个子矢量,然后将全部码矢量通过感觉加权的生成滤波器,得到固 定码本生成的合成信号,然后将合成信号逐一与目标信号比较找出最接近值,将 其对应索引值即作为固定码本的最佳索引,判别标准按最小均方误差准则。 从上面描述中就可以看出,做一次固定码本的搜索就要把所有的码本分解的 每个子矢量都通过感觉加权和生成滤波器的联合滤波器,这过程的运算量很大。 因此我们做一下改变,我们并不在语音的感觉加权域来进行搜索,而是把目标信 号过分析滤波器( 生成滤波器的逆滤波器) ,把目标信号变成目标码本,然后在 码本域进行搜索,搜索与目标码本最接近的码本,将其作为最佳码本。 同样,我们选取了上面提到的1 2 个测试序列对s p e e x 的m o d e 7 进行模拟 m o s 评分。通过实际的仿真测试,经过上面所说优化后,程序的运算复杂度可 以降低o 1 个m i p s ,而语音评分下降幅度在o 1 左右的数量级上,如表3 2 所示。 表3 - 2 逆滤波模型p e s q 评分 测试序列优化前 优化后测试序列优化前优化后 o r l 6 1 w a v4 1 0 53 9 9 5o r l6 4 w a v3 7 7 83 6 3 0 o r l6 6 w a v3 9 3 7 3 7 8 2o r l7 0 w a v3 9 9 33 7 7 4 o r l7 9 w a y 3 8 5 83 6 4 9o r 2 2 1 w a v3 6 6 53 4 7 5 t s t s e q l b i n 4 0 3 63 8 6 5 t s t s e q 2 b i n 3 0 2 93 0 2 9 t s t s e q 3 b i n 3 9 6 73 8 6 0 t s t s e q 4 b i n 3 7 8 13 6 2 1 f a r l p c m 4 0 2 73 8 6 7 f a r 2 p c m 3 6 4 63 4 4 5 3 3 感觉加权滤波器的调整 从第二章对s p e e x 算法的介绍中,我们发现s p e e x 的自适应码本搜索和固定 码本搜索都是在感觉加权域进行的,所以每个信号都需要通过感觉加权滤波器, 包括目标信号,零输入相应信号,自适应码本过合成滤波器后的信号,固定码本 过合成滤波器后的信号,这部分的运算量很大。所以我们试着做一下不使用感觉 加权均方误差最小准则,而只用普通的均方误差最小准则。发现在自适应码本搜 索中如果不在感觉加权域进行搜索对合成语音的损伤不大。优化前后流程对比如 图3 2 所示,其中( a ) 图为优化前程序流程,( b ) 图为优化后程序流程。 2 3 北京邮电大学硕士研究生论文v o i p 中宽带语音编码研究与d s p 实现 图3 - 2 调整前后的编码图 分析原因,主要是因为自适应码本的构建是由缓存激励得来的,其延时最大 值不过2 0 m s 。通常,在这么短的时间间隔内线性预测系数的变化是非常缓慢的, 另一方面,自适应码本在重构语音信号时所需要的基音延迟和码本增益在此间隔 下的变化同样比较缓慢。而且,自适应码本搜索过程中,目标信号的能量较大, 经过感觉加权后,与原始信号相比,信号改变所占比重较小,因此,在不在感觉 加权域进行自适应码本搜索,合成语音的质量是不会有太大的衰减的。 同样,在实际的仿真测试中,我们选取了上面提到的1 2 个测试序列对s p e e x 的m o d e 7 进行模拟m o s 评分。经过过上述优化后,程序的化运算复杂度可以 降低2 5 个m i p s ,而语音的p e s q 评分下降幅度在1 0 的2 次方的数量级上,如 表3 3 所示。 表3 - 3 感觉加权模型p e s q 评分 测试序列优化前优化后测试序列优化前优化后 o r l 6 1 w a y4 1 0 54 0 6 3o r l6 4 w a y3 7 7 83 6 8 8 o r l6 6 w a y3 9 3 7 3 9 2 1 o r l7 0 w a y3 9 9 33 9 7 l o r l7 9 w a v3 8 5 83 8 6 0o r 2 2 1 w a v3 6 6 53 6 5 2 t s t s e q1 b i n 4 0 3 64 0 3 3 t s t s e q 2 b i n 3 0 2 93 0 2 9 t s t s e q 3 b i n 3 9 6 74 0 0 2 t s t s e q 4 b i n 3 7 8 13 7 4 8 f a r l p c m 4 0 2 73 8 9 2 f a r 2 p c m 3 6 4 63 6 4 7 3 4 小结 当上面三种优化同时使用时,综合的效果是运算复杂度由4 3 7 个m i p s 降到 2 4 一 r 、 北京邮电大学硕士研究生论文v o i p 中宽带语音编码研究与d s p 实现 了3 7 5 个b l i p s ,下降了6 2 个b l i p s 。p e s q 得分下降如表3 4 所示。 针对传统c e l p 编码器预算复杂度的大的缺点,本章介绍了三种旨在降低算 法运算量的改进优化模型,通过试验验证我们可以看到,本章提出的去加重和自 适应码本简单相关两种优化方法在明显降低运算复杂度的同时,其模拟m o s 分 分别下降很小,基本对语音质量没有影响,其中简单相关的优化方法甚至对其中 几个测试序列的模拟m o s 分还有提高。而固定码本的逆滤波复杂度下降很小的 原因是:由于在具体d s p 代码编写时,一些指令可以并行,使得虽然理论上复 杂度可以减小很多,而实际上只减小了0 1 个m i p s ,但其对于c e l p 算法在其 他平台上的应用应该具有一些借鉴意义。 表3 _ 4 三种优化模型p e s q 评分 测试序列优化前优化后测试序列优化前优化后 o r l 6 1 w a v 4 1 0 5 3 9 3 7 o r l6 4 w a v 3 7 7 8 3 5 8 8 o r l6 6 w a v3 9 3 73 7 5 3o r l7 0 w a y3 9 9 33 7 4 6 o r l7 9 w a v3 8 5 83 5 5 2o r 2 2 1 w a v3 6 6 53 5 1 4 t s t s c q1 b i n 4 0 3 63 8 6 0 t s t s e q 2 b i n 3 0 2 93 0 2 8 t s t s e q 3 b i n 3 9 6 73 7 4 6 t s t s e q 4 b i n 3 7 8 13 6 4 6 f a r l p c m 4 0 2 73 7 0 8 f a r 2 p e m 3 6 4 63 4 8 7 由于固定码本的逆滤波复杂度下降很小,所以在实际中,我们只是用了简化 自相关和感觉加权的调整两中简化的方法,p e s q 得分下降如表3 5 所示。 表3 - 5 感觉加权模型p e s q 评分 测试序列优化前优化后测试序列优化前优化后 o r l 6 1 w a v4 1 0 54 0 2 6o 订6 4 w a l t3 7 7 83 6 7 7 o r l6 6 w a v3 9 3 7 3 9 0 8 o f l7 0 w a v 3 9 9 3 3 9 8 7 o 订7 9 w a v3 8 5 83 7 5 0o r 2 2 1 w a v3 6 6 53 6 8 9 t s t s e q1 b i n 4 0 3 64 0 7 4 t s t s e q 2 b i n 3 0 2 92 8 4 1 t s t s e q 3 b i n 3 9 6 73 9 4 4 t s t s e q 4 b i n 3 7 8 13 7 3 2 f a r l p c m 4 0 2 74 0 3 4 f a r 2 p c m 3 6 4 63 6 3 2 2 5 北京邮电大学硕士研究生论文v o i p 中宽带语音编码研究与d s p 实现 第四章汇编程序的定点实现 4 1 编译调试环境介绍 由于本课题所用a r l 6 8 8 芯片的数据总线是2 4 b i t ,所以本课题编译环境没 有采用a n o l o gd e v i c e sv i s u a l d s p2 叶,而是采用了d o s 下的a d i d s p ,其目录是 在d :k s d c c d s p 下,主要的命令行有a s m 2 1 、l d 2 1 。其中a s m 2 1 主要是对写好的a s m 的源代码文件进行语法错误的查找,如若没有语法错误则生成目标文件o b j 文 件;l d 2 1 则是将生成的o b j 文件生成可执行文件e x e 文件。 因为本算法是基于2 4 位定点的运算,所以在调试时,我们用了p a l m m i c r o 公司自己编写的仿真调试软件p a l m a d s p 。它既可以单步运行,也可以执行整个 文件。它有四个窗口,分别显示每个寄存器的值、d m 的值、p m 的程序或者值、 程序运行中需要记录的值。这四个窗口中显示的有:c a l ls t a c k ,它显示的是当 程序中出现调用函数的时候,当函数返回后的指令地址;c o u n t e rs t a c k ,它显示 的是当程序出现循环的时候,还剩的循环的次数;l o o ps t a c k ,它显示了循环结 束时的指令地址;r u n n i n gc y c l e s ,它显示了到目前为止,一共执行了多少行指 令。 选取u l t r a e d i t 作为程序的编辑工具和文件的比较工具,用v i s u a l c + + 6 0 作 为c 程序的调试工具。 4 2c 程序的定点规则 由于本课题中所选芯片是定点型的,所以就需要我们先把c 中的浮点运算 转换成定点运算。对于浮点型的小数,我们是加入一个定标值来表示的,但是这 个定标值并不实际存储在存储单元,而是完全根据程序员的理解来确定定标的位 置,这个定标的位置可以用q 值来表示,例如q 7 表示该数的后七位用来表示小 数,其他位表示整数。q 值表示法等同于a d 公司的文档中的是m n 的格式, 其中m 表了整数的位数,n 表示了小数的位数。 由于范围动态与精度是一对矛盾,在实际的定点算法中为了达到最佳的性 能,必须充分考虑从而选择适当的定标。对于定标,具体方法是估计出该变量的 最大值,然后找到大于或等于这个值的最小的2 的幂,就可决定q 值表达法中 整数的位数,从而也决定了该数的表达法。这种方法适用于变量的动态范围是通 过经验或者理论分析可以确定的,但还是有些参数的动态范围需要利用大量样本 通过统计分析得到。就是用足够多的样本值来确定程序中参数的动态范围,这里 2 6 , 、 , , 、 北京邮电大学硕士研究生论文v o i p 中宽带语音编码研究与d s p 实现 的参数样本值一方面要有一定的数量,另一方面必须尽可能地涉及各种情况。但 是统计分析毕竟不可能涉及所有可能发生的情况,因此对统计得出的结果在程序 设计时可采取一些保护措施,如适当牺牲一些精度,即q 值取比统计值稍大一 些,或者在变量得出后添加一些溢出保护功能的语句等。 对于一些范围动态很大,我们无法用q 值的方法来定点化的变量,这里给 出一种指数加尾数的方法。具体就是用两个单精度的数a 和b ,其中b 表示指 数,a 表示尾数,而这两个数在实际中表示的是a * 1 0 口。这样可表示的动态范围 就很大了,但是用这种方法的缺点是,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 特殊句式和情景交际(讲义)-2024年高考英语一轮复习(新高考)
- 碳、硅及无机非金属材料(复习讲义)-2026年高考化学一轮复习(福建专用)原卷版
- 上海市杨浦区2024-2025学年七年级(下)期末语文试卷(五四学制)解析版
- 人教版八年级英语下册专练:单项选择专练100题(含答案)
- 人教版八年级英语下册重点语法过关:现在完成时(含答案)
- 2021年1月国开电大法学本科《国际法》期末纸质考试试题及答案
- 配镜专业科普知识培训内容课件
- 2025版铁投劳务分包合同实施标准
- 2025年森林资源培育与承包山林合作协议
- 2025年度兼职软件测试人员聘用合同示范
- GB/T 5563-2013橡胶和塑料软管及软管组合件静液压试验方法
- GB/T 1192-1999农业轮胎
- 人类学-课件精
- DBJ51-T 188-2022 预拌流态固化土工程应用技术标准
- 体育产业经营管理课件第一章导论
- 2023门球竞赛规则电子版图文并茂
- 部编版四年级语文上册第5课《一个豆荚里的五粒豆》优秀PPT课件
- 大班社会《班级规则我遵守》课件
- 能源概论__第一章能源概述PPT课件
- 小学一年级体育下册教案全册
- PTB220串行数字气压计用户手册
评论
0/150
提交评论