基于子带结构带宽可伸缩语音编码器的研究
武汉大学
硕 士 学 位 论 文
Research on Sub-band Speech Coding Based on bandwidth Scalability
摘 要
为了适应不同通信条件下不同的需求,目前多媒体通信和无线网络普遍存在异构性。为适应不同带宽资源和网络环境下的通信需求,各种多媒体信息均希望拥有可伸缩的灵活性。为了保证在不同通信条件下语音通信的正常进行,采用可伸缩编码技术是目前得到广泛认可的方案。在语音可伸缩编码方面,目前已经提出了多种可伸缩编码的方案,国际上也制定了相应的标准。
本文首先将介绍了国内外带宽可伸缩编码的现状,详细介绍其编码原理与结构,并对现有带宽可伸缩编码方案及其中用到的相关技术,主要是针对子带结构带宽可伸缩编码器的原理和性能进行分析。
再对子带滤波器组中常用的正交镜像滤波器组(QMF组)进行原理分析,信号合成与分解的角度分析其原理,根据误差的构成及消除方法,针对滤波器的特性, 在现有正交镜像滤波器组的设计方法的基础上,提出一种改进的蚁群算法对滤波器系数进行优化的算法。实验结果表明,优化后QMF组的重建误差控制在2%以内,表明该方法的有效性。
然后针对子带结构带宽可伸缩编码高频信号缺乏良好解决方案的现状,对其设计方案进行改进并融合现有先进算法提高出一种新的设计方案,详细介绍其编解码的过程,通过部分仿真实验对该方案进行测试。
最后,指出该设计方案的不足之处及需要进一步研究的问题,并展望带宽可伸缩编码的前景。
关键词:带宽可伸缩语音编码器 子带结构 正交镜像滤波器组 蚁群算法 G..729
Abstract
For the different requirement of various multimedia communication conditions, the heterogeneity exists in multimedia communication and wireless network. In order to adapt different bandwidth resources and the network environment correspondence demand, each kind of multimedia information hoped has the scalable flexibility. Speech scalable coding is widely considered to be a good scheme for multimedia communication under different conditions. In the speech expandable code aspect, at present already proposed the many kinds of scalable coding plans, also have the corresponding international standards.
This paper first study the situation of bandwidth scalable coding in domestic and foreign, introduce its code principle and the structure in detail, then analysis the bandwidth scalable scheme and the related technology mainly will be the sub-band structure.
Then through the research to Quadrature Mirror Filter banks of subband filter banks, we analyzes its principle from the signal’s synthesis and decomposition angle, according to erroneous constitution and elimination method, proposed one kind of improvement ant colony algorithm to optimize the filter coefficients optimize in view of filter’s characteristic. The experimental result indicated that the reconstruction error of QMF banks after optimization is controlled in 2%,indicates this method the validity.
In the face of the present situation that the sub-band structure bandwidth scalable coding high frequency signal lacks the good solution, makes the improvement and the fusion existing advanced algorithm to its scheme enhances one kind of new design, carries on the test through the partial simulations experiment.
Finally, pointed out the deficiency of the scheme and what question needs further study, and forecast bandwidth scalable coding.
Key words: bandwidth scalable speech coder sub-band QMF ACA G..729
基于子带结构带宽可伸缩语音编码器的研究
第1章 引言
由于多媒体通信和无线网络存在异构性,为适应不同带宽资源和网络环境下的通信需求,语音、图像等各种多媒体信息均希望拥有可伸缩的灵活性。近年来,可伸缩语音编码技术得到迅速发展,技术渐渐成熟,应用领域也越来越广阔。可伸缩语音编码采用分层的思想,根据需要动态调整编码速率,在合成语音质量与系统容量之间取得平衡,最大限度地利用资源。
1.1研究背景
近年来,随着多媒体通信和无线网络的发展,出现大量语音编码器的标准化,语音编码技术得到飞速发展。低码率、高音质,传统的编码方式难以同时满足这两个要求。由于网络状况的不稳定性,固定速率的语音编码系统在网络上传输语音数据时,往往会造成通信质量的下降。未来的语音编码器应该能够根据网络资料的情况自动调节码率,适应各种用户的要求。
可伸缩编码技术在MPEG标准中得到了广泛的应用,但是主要集中在视频编码方面。近年来,可伸缩编码在语音编码的研究当中也得到了极大的重视。可伸缩编码也被称为变速率编码或者嵌入式编码,其编码方案一般由一个核心层码流和若干增强层码流组成。其中核心层码流保证最低质量的重建信号,再根据网络资源条件选择一个或多个增强层码流得到更高质量的语音信号。
可伸缩编码的优点很多,在语音通信中,用户能够根据提供的带宽资源的不同从同一个数据源得到不同质量的语音信号。另外,可伸缩编码具有灵活的错误保护机制,信息根据优先级可以放在可靠的传输路径上传输或针对核心层和增强层采取不同的错误保护机制。还有一个有点是在无线通信中能动态分配资源,自适应的处理变化的数据流。
可伸缩语音编码从分层原理上可以分为信噪比可伸缩和带宽可伸缩编码。信噪比可伸缩编码指编码器将源信号按不同的码率和失真度传输。带宽可伸缩指的是在基带基础上,通过添加高频信息来提高语音的质量。信噪比可伸缩编码的研究起步较早,现在已经比较成熟,进入九十年带后,带宽可伸缩编码方法的研究也取得较大进展,其研究方向主要集中在移动和多媒体通信方面。信噪比可伸缩编码适用于宽带和窄带信号,编码器采样率不可变。带宽可伸缩编码只针对宽带信号,编码器采样率可变。因此,我们在多媒体及移动通信领域应尽可能的利用带宽可伸缩编码采样率可变的优点。
1.2带宽可伸缩语音编码的研究现状
宽带语音指的是带宽50-7000Hz的语音信号,通常窄带话音的频带再300-3400Hz。宽带语音相对窄带语音来说,新增低频部分提高了语音的自然度和临场感,高频部分增加了发声的可懂度和摩擦音的可识别度。带宽的扩展使得语音信号的质量和说话人识别度等方面均得到很大的提高。随着网络的发展,宽带语音将是通信网络中的一种主要媒体。
ITU-T于1986年提出了宽带语音压缩编码的标准G..722,它以分带ADPCM技术为基础,有64Kbps,56Kbps和48Kbps三种工作码率。ITU-T的15工作组于1995年2月通过了一种新的双模式宽带语音编码标准的参考条款,有两种工作模式。
最典型的带宽可伸缩语音编码的解决方案有两种,即CELP编码器和时频域变换编码器。时频域变换编码器时通过采用自适应比特分配和熵编码来达到一定的压缩比,但是延时较高。更多的宽带语音编码器是基于CELP的,普通的思路就是改进和调整成熟的CELP窄带编码器,使之适应宽带语音编码。
带宽可伸缩编码器从结构上可以分为全带结构和子带结构两种。全带结构的窄带和全带编码器是独立的,可分别进行最优编码来实现最优可伸缩编码。但是增强层在整个带宽范围内编码,复杂度较高,因此相对复杂度较低的子带结构越来越受到国内外学者的重视。
1998年,MPEG-4自然音频编码系统实现了全带结构CELP带宽可伸缩编码算法的标准化。
2000年,K.Koishida提出了基于G..729的全带结构带宽可伸缩编码方案[1],码率为16Kbps。
1998年,ITU-T提出子带结构的带宽可伸缩编码标准G..722。
1998年,Javovon提出一种子带结构的音频带宽可伸缩编码方案[2],,码率为16Kbps。
1997年,Kataoka提出一种子带结构的宽带音频语音编码器,其低子带采用G..729的编码方案,码率为16Kbps。
目前,带宽可伸缩语音编码器尚未完全成熟。全带结构的带宽可伸缩语音编码器,MPEG-4已有完善的标准;但ITU-T提出的子带结构带宽可伸缩编码方案G..722标准已不能满足目前语音通信的需求,因此提出一种适应当前需求的子带结构带宽可伸缩编码方案显得尤为重要。
1.3论文主要研究内容
本文研究的是适用于异构性网络通信的子带结构带宽可伸缩语音编码技术。采用G.729E编码方案作为可伸缩编码器的核心层编码器。本文的主要工作是研究子带结构带宽可伸缩语音编解码的结构和设计方案,其中针对可伸缩编码器的结构及滤波器组分带技术,进行了深入研究。
本文的主要工作包括:
(1)提出一种新的子带结构带宽可伸缩语音编码器方案。其中核心层采用G.729E编码方案,增强层采用参数编码算法。
(2)提出一种子带滤波器组的优化算法。首先采用改进后蚁群算法对正交镜像滤波器组参数提取优化,再将其应用于语音信号分带。同时对于相关算法进行具体分析说明,详细描述其基本原理与实现过程。并与普通正交镜像滤波器组比较,表明它具有更好的准确性和有效性。
(3)软件实现。首先对子带结构带宽可伸缩语音编码器做仔细的分析研究,并在VC环境下用C语言编程实现提出的编码器结构。另外,实现基于蚁群算法的滤波器优化技术。
1.4论文组织结构
第一章简要介绍可伸缩编码器的研究背景和本文所做的主要工作。
第二章介绍了各种语音编码算法里涉及到的编码技术,包括短时分析、线性预测分析和矢量量化,同时还介绍语音编码分类。
第三章介绍语音编码的可压缩理论依据,包括有损压缩的率失真理论、子带理论和带宽可伸缩编码理论。
第四章详细介绍正交镜像滤波器组的原理,并详细分析了其误差组成及消除误差的办法。提出一种基于蚁群算法的滤波器优化算法,并用实验对算法进行检验。
第五章提出一种新的子带结构带宽可伸缩编码器的结构,详细介绍其核心层、增强层的编解码过程,并对编码方案进行实验分析。
第六章对本论文进行总结,指出本文提出方法的不足之处,并对未来的研究方向进行展望。
第2章 语音编码技术
语音压缩编码的研究已有几十年的历史。半个多世纪来,各国学者做出大量的努力,从人类发音机理和听觉机理出发,对语音的基本元素的声学特性、频谱特性和语意表达等做了大量研究,建立了发音模型、听觉模型,在不同程度上逼近真正语言的过程。近年来,一些国家和国际标准化组织相继制订了语音压缩编码的标准,直接推动了语音压缩编码的发展。在通信系统中,语音压缩编码技术在很大程度上决定了接收语音质量和系统的容量。在保持一定的算法复杂度和通信时延的前提下,语音编码的目标是用尽可能低的码率获得尽可能好的合成语音质量。语音压缩由编码和解码组成,编码是把存在于波形文件里的数字语音数据转换成高度压缩的形式,即为比特流。解码是把比特流重建为波形文件,并在声卡上播放。在编码器部分,其效率和复杂度是正比例的关系。一般来说,要想效率高,算法就越复杂,时延与费用也会越高。因此必须寻求一个平衡点,使编码器具有较高的编码效率和较低的复杂度。目前最高的编码效率一般是通过开发信号冗余和基于人类听觉系统模式的频域不相关算法得到。编码机制[3]可以描述为“知觉噪音成型”或“知觉边带/变换编码”。在量化与编码阶段,编码器试图同时满足比特率和屏蔽要求。而解码器部分,其复杂程度小很多,它是从已编码的频谱成分中把音频信号合成语音。
自从1939年美国的Homer Dudley发明声码器以来,语音处理开始了参数编码或模型编码的研究,它是以滤波器为主体构造的通道声码器。20世纪60年代中期形成了一系列的数字信号处理方法,语音信号数字处理的基础理论包括数字滤波器和快速傅里叶变换。另外,短时分析是语音信号处理的经典方法。在20世纪70年代后,人们对语音技术非常感兴趣,做了很多研究,同时也取得了很多进展。目前,线性预测分析已广泛应用于语音信号的分析、合成及其它应用领域,它已是语音信号处理工具。矢量量化(Vector Quantization, VQ)是70年代后期发展起来的一种数据压缩技术。VQ 技术在语音信号处理,它广泛地用于图像压缩、语音和模式识别等领域。语音信号处理的这些关键技术都是建立在语音信号的数字模型基础之上。
2.1语音信号数字模型
利用数字技术来模拟语音信号的产生称为语音信号的数字模型[3-6],或者说利用数字信号处理技术来实现发音器官的模拟。发音器官能发出一系列声波,那么数字模型就能产生与此声波相对应的信号序列。这种模型是一种线性系统,它的一组参数选定之后就可以使得系统的输出具有所希望的语音性质,系统的这些参数是和语音产生过程有关的。为了表示采样的语音信号,一般采用离散时间模型。
激励模型即发声模型,发清音时,声道可模拟成随机白噪声。发浊音时,整个激励模型如图2.1:若图片无法显示请联系QQ3710167,本论文免费
基于子带结构带宽可伸缩语音编码器的研究
图2.1 声道激励模型
声道模型可分为两类,声管模型和共振峰模型。最简单的声道模型,即声管模型是将其视为由多个不同截面积的管子串联而成的系统,在语音信号的某一“短时”期间,声道可表示为形状稳定的管道。每个管子可看作为一个四端网络,这个网络具有反射系数,这时声道可由一组截面积或一组反射系数来表示。共振峰模型将声道视为一个谐振腔,共振峰就是这个腔体的谐振频率[3]。可以建立三种实用模型:级联型、并联型和混合型。 辐射模型即嘴唇的辐射效应可表示为:
R(z)=R0(1-z-1) (2-1)
综合声道、嘴唇和声门处的数字模型,可以得到使用最多的语音产生的数字模型,利用浊音和清音单激励发生器二者交替来模拟激励形式的改变,也就是所谓的二元激励。对于声道,可以用很多个不同的滤波器来模拟,在多数情况下,把声门脉冲、辐射和声道等因素全部结合起来,用一个全极点形式的转移函数表示,即:
H(z)=G(z)V(z)R(z) (2-2)
若图片无法显示请联系QQ3710167,本论文免费
图2.2 语音信号数字模型
在实践中,这个二元激励的模型具有一定的局限性,但不不失为一个好的模型,而且合成出较满意的语音,它一直是分析语音最重要的基础。
2.2语音信号的数字化
语音信号是非平稳、时变、离散性大、信息量大、复杂的信号,因此处理的难度很大。各国学者经过多年努力,对一些问题的处理已取得了很好的结果,并具有一定的普遍意义。
语音信号的数字化[3-6]是数字处理的前提,语音信号的数字化过程如图2.3所示:若图片无法显示请联系QQ3710167,本论文免费
图 2.3 语音信号的数字化
Nyquist采样定理要求采样率必须大于信号带宽的2倍。典型的反混叠滤波器的技术指标是:通带内波动绝对值小于1dB,通带带宽3400Hz,在4000Hz处衰减14dB,4600Hz以上衰减32dB,对某些更高要求的应用,阻带衰减50dB以上。通常用8阶或者10阶的椭圆滤波器来实现。
对样点信号进行量化,一般采用8bit量化。实验表明语音波形的动态范围为55dB,用10bit以上量化更加合适。目前的器件可以做到16bit量化,量化的精度搞,量化信噪比提高,存储容量增大,处理时间也增加。
2.3 语音信号的短时时域处理技术
语音信号是非平稳、时变的,但又是慢时变、有限、非平稳的,因此用短时处理技术是适宜的。语音信号在 10~20ms 的时间范围内具有短时平稳的特点。因此,可以将平衡过程的处理方法和理论引入到语音信号的短时处理[3-6]。因此,语音信号分析常分段或分帧来处理,一般每秒的帧数约为33~100。根据实际情况,分帧既可用连续的,也可用交叠分段的方法,即短时分析。短时分析实质上是把语音信号截成一段一段的,这个操作对于数字信号极为简单,实质上用了一个矩形窗截取信号。通常的方法是用一个长度有限的窗函数w( n)截取一段语音信号进行分析,并让这个窗口滑动以便分析任一时刻附近的信号。数字信号处理理论告诉我们,两个信号的时域相乘,在频域相卷积,矩形信号频谱高频成分必将影响语音信号的高频部分,一般用高频分量幅度较小的窗形,以避免这些影响。因此在语音信号的处理中常用矩形窗和汉明窗。语音信号s(n)经窗函数w(n)加窗后,形成加窗语音,记为Sn(n)。经过加窗后,一般基本的短时参数包括了短时平均能量、短时平均幅度、短时平均过零率、短时自相关函数、短时平均幅度差函数。
短时平均能量相当于将语音信号平方后通过一个线性滤波器后的输出,该滤波器的单位取样响应为h(n),h(n)= ,其中w(n)为窗函数。
短时平均能量对于高电平信号,其平方处理方式显得过于灵敏,在处理器字长有限的情况下,容易产生溢出。短时平均幅度可以度量语音信号的幅度变化。
短时平均过零率可在处理多频率带通信号的频率特征方面有效。如果把语音信号用多通道带通滤波器分割,作每个子带波形的短时平均过零率和短时平均能量,实质上就是对语音信号作频域分析。
短时自相关函数用于语音信号的时域分析,对语音信号加以短时处理。但是在一些场合实现还很困难,乘积的累加和要求处理器的字长和存储器容量都很大,对硬件的要求较高。
短时平均幅度差函数具有与自相关函数相同的作用,但是运算量和对硬件的要求可以降低很多,在语音信号处理中得到广泛的应用。
2.4线性预测分析
线性预测分析[3][4]是进行语音信号分析最有效最流行的技术之一,被广泛地应用于语音信号处理的各个方面,语音编码、语音识别和语音合成。它提供一组简洁的语音信号的模型参数,可以有效而又正确地表现语音波形及语音信号的频谱幅度,而且计算量相对来讲并不大。就用这组模型参数可以降低编码语音信号时的数码率,将线性预测参数形成模板存储,在语音识别可以提高识别率和减少计算时间。在语音合成当中,也能有效的用到这种参数。
图2.4是信号s(n)的模型化框图。图中u(n)表示模型的输入,s(n)表示模型输出。当s(n)为确定信号时,模型的输入采用单位冲激序列,当s(n)为随机信号时,e(n)用白噪声序列。
V(z)
u(n)
s(n) 若图片无法显示请联系QQ3710167,本论文免费
图2.4 信号得模型化
根据语音信号的产生模型,语音信号S(n)是一个线形非移变因果稳定系统v(z)受到信号U(z)激励后所产生的输出,如图3.3所示。在时域中,语音信号s(n)是该系统的单位冲击响应v(n)和激励信号u(n)的卷积。在语音信号数字处理所涉及的各个领域中,根据s(n)来求得v(n)和u(n)具有非常重要的意义。例如,为了求得语音信号的共振峰就需要知道V (z)(共振峰频率是V(z)的各对复共轭极点的频率);又如,为了判断语音信号是清音还是浊音及求得浊音情况下的基音频率,就应该知道u(n)或U(z)。
基于子带结构带宽可伸缩语音编码器的研究
线性预测分析的基本原理是语音信号的每个取样值能够用过去若干个取样值的线性组合(预测值)来逼近[3][4]。当实际语音样本值和线性预测样本值之间差值的平方和达到最小值(即按照最小均方误差法进行逼近)时,就能够唯一地确定一组预测参数,即线性组合中所用的加权系数。
线性预测分析采用线性预测误差滤波器来实现,线性预测误差滤波器的传递函数为:
A(z)=1- (2-3)
其中p为预测系数, i=1,…p,为线性预测器系数。
线性预测误差滤波如图2.5所示:若图片无法显示请联系QQ3710167
图2.5 线性预测误差滤波
e(n)=s(n)- (n)=s(n)- (2-4)
其中, (n)= 称作s(n)的预测值,输出e(n)是真值s(n)和线性预测值 (n)之差,称为线性预测误差。线性预测分析实质上是设计一上预测误差滤波器,就是求解预测系数 使得预测误差e(n)在某个预定的准则下最小。一般理论上是采用均方误差 最小准则。为了实际计算的方便,一般用求时间平均代替 计算中的求集合平均,这时 如公式(2-5)。
= (2-5)
对于一个特定的语音序列, 取决于p和各个系数 。设最佳预测阶数为 =p,最佳预测系数应为 =ai。i=1~p0按照全极点模型s(n)如公式(2-6)。
S(n)= +Ge(n) (2-6)
则 如公式(2-7)所示。
= = (2-7)
其中:f(n)= g(n)=Ge(n)。
这样,可以得到 如公式(2-8)所示。
(2-8)
考虑e(n)是白噪声的情况,这时序列e(n)的各个样点值相互统计独立。由此不难导出f(n)和g(n)相互统计独立,因此 =0。 是不随预测阶数p’和预测系数ai变化的。 0的情况。而实现这一点的充分必要条件是下列两项中的任意一项成立。(1) =p, =ai,i=1~p (2) >p, =ai,i=1~p, =0,i=(p+1)~ 当s(n)由非理想模型产生,而用一个全极点模型来估计其参数时,只能说是用此理想模型来逼近实际的模型。在此情况下无所谓远产生模型的实际结束p应等于何值,此时提高p值总可以改善逼近效果。但是在实际运算中, P 值增加到一定程度以后, 的降低就很微弱了。进一步增加P 值不但大大增加运算量, 而且由于有限字长的影响, 参数估计效果反而变坏。在语音信号处理时, 模型阶数P 一般选在8~ 12 之间, 预测阶数 = P。在给定预测阶数 =p的条件下,由式(2-2)和式(2-3),求一组最佳系数 ,i=1~p,使 达到最小。首先, 可以写成如公式(2-9)。
=
+ (2-9)
式(2-9)右侧有p个变量:a1~ap,令 对这p个变量的偏导数为0,可以得到p个方程,所得到的p个解就是使 达到极小的一组最佳预测系数 ~ ,求 对ak的偏导数就可以得到这p个方程如式(2-10)所示。
=0,k=1,2,...p (2-10)
导出:2{ }
可以将这p个方程写成如公式(2-11)形式:
(2-11)
这称为一组LPC正则方程,其中 是由输入语音序列决定的。因此求 的问题可以归结为对一组p个线性联立方程求解的问题。可以采用自相关法、协方差法等方法进行求解。
2.5语音信号的矢量量化
矢量量化编码是近年来图像语音信号编码技术中流行的一种新型量化编码方法。它按照每组K个数据对处理数据序列分组,这样每组数据构成一个K维矢量,然后以K维矢量为单位进行量化,因此称为矢量量化。它与标量量化每次仅处理一个采样数据有着很大的区别。
矢量量化[4][5](Vector Quantization, VQ)是20世纪70年代后期发展起来的一种数据压缩技术,也可以说是仙农信息论在信源编码理论方面的新发展。矢量量化是将若干个幅度连续取值的时域采样信号分成组,构成矢量,然后用若干个离散的数字值来表示各种矢量。矢量量化之所以能压缩数据,是由于它能去掉冗余度,且能有效地利用矢量各分量间的四种相关的性质:线性依赖性,非线性依赖性,概率密度函数的形状及矢量维数。
2.5.1矢量量化的基本原理
矢量量化[3]是一种限失真编码,其原理仍可用信息论中的率失真函数理论来分析。而率失真理论指出,即使对无记忆信源,矢量量化编码也总是优于标量量化。利用矢量量化,编码性能可任意接近速率-失真函数,其方法是增加矢量的维数k。在实际应用中,速率-失真函数常常作为一个理论下限与实际编码速率相比较,分析系统还有多大的改进余地。
矢量量化的基本过程是将语音信号波形的k个样点的每一帧或有k个参数的每个参数帧构成维欧氏空间的一个矢量,然后对此矢量“集体”量化。
量化的基本原理是将k维无限空间划分为M个区域边界,然后将输入信号的矢量与这些边界进行比较,并被量化为“距离”最小的区域边界的中心矢量值。而量化过程中产生的主要问题是:
(1)如何划分M个区域边界:需要用大量的输入信号矢量,经过统计实验才能确定,此过程称为训练或是建立码本。方法是将大量的信号波形帧矢量或参数帧矢量进行统计划分,进一步确定这些边界对应的中心矢量值得到的码本。
(2)如何确定两矢量比较时的测度:此测度是两矢量间的距离,或以其中的某个矢量为基准的失真度。失真测度是指输入矢量用码本所对应的矢量表征时所付出的代价。
语音信号矢量量化的原理如图2.6所示。每输入一个含有N个样本的语音帧(或含有N个参数的参数帧)构成的N维输入矢量X,就输出一个与之对应的K维Yjmin是X的重构矢量。K可以等于N,也可以不等于N,最简单的情况是K=N。当Yjmin是对一帧语音进行各种变换或分析后得到的矢量,这K往往远远小于N。
图2.6 矢量量化原理框图若图片无法显示请联系QQ3710167
2.6语音编码技术分类
语音编码主要有三大类,分别为波形编码、参数编码和混合编码。波形编码直接对语音信号的波形进行编码,一般码率较高,语音重构质量佳,但它随着码率的降低语音质量将严重下降。
2.6.1波形编码
波形编码方式的最简单形式是均匀脉冲编码调制(Pulse code modulation ),简称PCM)。 它是用同等的量化级数进行量化的,即采用均匀量化这种方式将语音变换成与其幅度成正比的二进制序列,而二进制数值往往用脉冲表示并用脉冲对采样幅度进行编码,故称为脉冲编码调制。这种方式完全没有利用语音的性质所以信号没有得到压缩。这种编码方式的特点是适应能力强、重建语音的质量高,例如PCM、 M、ADPCM和自适应预测编码(APC)、子带编码(SBC)及自适应变换编码(ATC)等均属于这一种。但这种方式所需的编码速率较高,在16kbit/s~64kbit/s速率范围能得到较高的重建质量,而当速率进一步降低时,语音重建质量就会急剧下降。
基于子带结构带宽可伸缩语音编码器的研究
2.6.2参数编码
与波形编码不同,语音参数编码通过对语音信号的参数进行提取及编码,力图使重建语音信号具有尽可能高的可懂度,即保持原始语音的语意而重建信号的波形同原始语音信号的波形可能会有相当大的差别。它只要求得到的信号听起来与输入语音完全一样,而不必与输入波形相同。这类编码的优点是编码率较低可以达到2.4kbps 以下[8][9]。 为充分发挥参数编码的性能以下三个要素是重要的:
(1) 去掉语音波形中的冗余部分提取对于听觉所需的重要参数
(2) 对参数进行有效的编码
(3) 根据编码的参数尽可能无失真地将语音还原出来
通道声码器、共振峰声码器及线性预测声码器都是典型的参数编码。它们的优点是因为所传送的参数较为简单节省信道,此外还可将参数码进行加密。但参数编码也有缺点,其主要问题是合成的语音质量差,特别是自然度较低不一定能听出讲话人是谁。
2.6.3混合编码
当前,由参量编码与波形编码相结合的混合编码的编码器正在得到人们较大的关注。这种编码器既具备了声码器的特点(利用语音生成模型提取语音参数),又具备了波形编码的特点(优化激励信号,使其与输入语音波形相匹配),同时还可利用感知加权最小均方误差的准则使编码器成为一个闭环优化的系统,从而在较低的比特率上能获得较高的语音质量。
由于混合编码技术将波形编码和参数编码两种技术结合起来,兼顾了传输速率与语音质量的要求,使其发挥各自的长处,在4-16Kbit/s传输速率上可以得到高质量的合成语音。
码激励线性预测(CELP)编码系采用合成分析法(Analysis- by-Synthesis) 的语音编码,是一种典型的混合编码方案。在中低速率(4.8-16kbis)能够给出高质量的合成语音,且抗噪声和多次转接性能好,是目前语音编码算法中的主要选择。
CELP 采取分帧技术进行编码,帧长一般为20~ 30ms,每一个语音帧再被分成2-5 个子帧,在每个子帧内搜索最佳的码字矢量(简称码矢量) 作为激励信号,CELP 编码的流程如图2.7所示。若图片无法显示请联系QQ3710167
图2.7 CELP编码原理图
模拟话音信号(带宽为300~ 3400 Hz) 经8kHz采样后,首先进行线性预测(L P) 分析,去除语音的相关性,将语音信号表示为线性预测滤波器系数,并由此构成编译码器中的合成滤波器。CEL P 在L P声码器的基础上,引进一定的波形准则,采用了合成分析和感觉加权矢量量化(VQ ) 技术,通过合成分析的搜索过程搜索到最佳矢量。码本中存储的每一个码矢量都可以代替L P 余量信号作为可能的激励信号源。激励由两部分码本组成,分别模拟浊音和清音。CEL P 一般用一个自适应码本中的码矢量逼近语音的长时周期性(基音Pitch) 结构; 用一个固定的随机码本中的矢量来逼近语音的经过短时、长时预测后的余量信号。CEL P 编码算法将预测误差看作纠错信号,将残余分成矢量,然后通过两个码本搜寻来找出最接近匹配的码矢量, 乘以各自的最佳增益后相加,代替L P 余量信号作为CEL P 激励信号源来纠正线性预测模型中的不精确度。
2.7小结
本章主要介绍了语音编码的相关技术,包括了:语音信号的数字模型、短时分析技术、线性预测分析、矢量量化技术。语音的矢量量化是语音编码中最重要的一部分,对编码器的设计用着很重要的影响。同时,本章还介绍了语音编码的分类。
在下一章中,将主要针对带宽可伸缩编码的理论基础进行介绍。
第3章 带宽可伸缩编码理论
整体编码能产生很好的语音合成质量和较低的压缩码率,但是由于码率固定在异构环境下经传输后接受端获得的语音质量会受到极大的限制。如果将复杂性,延时和失真三个因素都考虑在内的话,可伸缩源编码器应该是最好的解决方法[22]。分层编码有时候又叫分级编码,嵌入式编码或者变码率编码。通常可伸缩编码是通过分层结构实现,即一个核心层码流加上若干个增强层码流。其中核心层码流保证源信号重建的最低质量等级,其后再根据网络和信道条件选择一个或多个增强层码流来逐渐提高信号的重建质量。可伸缩源编码允许高失真源信号部分重建,即解码器只得到部分码流。优点是只需通过截短码流来改变源信号码率,自由地进行码率的平滑过渡。
3.1可伸缩语音编码基本原理
可伸缩语音编码器至少可提供两种码流输出,能够适应复杂,延时多变的运行环境。核心层语音编码器具有低比特率、延时和复杂度,提供质量可令人接受的输出语音用于交互式的语音通信。增强层利用核心层的输出参数做误差比较产生处理,提供各种高性能的修饰语音输出。由于现在的通信网络已经采用和配置许多传统的语音/音频编码标准,并且作为单一的编码结构形成的编码器已经有很好的语音表达传输质量。考虑成本和应用的扩展推广方面如果考虑如何在对这些已配置的标准算法不作修改的情况下增强已存在的编码算法的功能,提供更多级别和更大灵活性的语音输出是一个挑战。因此,现在的许多分层是语音编码器是基于已有的标准语音编码器。通过各种码率控制和质量增强方法,例如精取误差信号利用语音感知理论采用感知加权系数获取误差信号的码本及其增益,改进码分工具实现码率的控制调节,使得已有语音编码器的编码质量得到提高。
可伸缩语音编码有时只需通过阶段码流来改变码源信号码率,自由的进行码率的平滑过渡。可伸缩方法可直接在编码器外丢弃码字,在网络应用中无需通过协调发送方和接受方来减少码流量。另外可伸缩编码具有灵活的错误保护机制,优先级高的信息可以放在可靠的传输路径上传输,或者对核心层和增强层采取不同的错误保护机制,即进行优先级排列,还有就是在无线通信中能动态的非配资源,处理变化的业务流,对不同的信道条件有很强的自组织性和适应性,使低速率与高速率的用户能够共存。
基于子带结构带宽可伸缩语音编码器的研究
3.2语音压缩理论依据
因为语音信号存在冗余度和人耳的听觉特性,语音信号能够进行压缩编码[3]。
语音信号产生的激励和它的结构特性表明,语音信号中存在很大的冗余度。语音压缩编码的本质就是通过识别其中的冗余信息并设法去掉,从而达到压缩目的。语音信号的冗余度表现在以下四个方面:语音信号样本间相关性很强;浊音语音段具有准周期特性;声道的形状及其变化的速率是有限的;传输码的概率分布是不均匀的。
前三个冗余度是由于语音信号产生激励的物理结构决定的。从理论上来说,可以通过适当滤波去除短时谱的不平坦性,大多数波形编码技术都是利用这一特性,从频谱平整化进行处理。根据语音信号分帧处理的理论基础,它允许声道滤波器参数或谱包络等可以按帧处理,同时通过一定的手段去除帧间的相关性。传输码的概率的分布不均匀与所采用的特殊编码方法有关,主要被各种概率编码方法所利用。当传输的数码率已被设定时,语音编码器的合成语音质量将通过有效利用这些冗余度而达到最佳。
语音信号能进行压缩编码的第二个依据是利用人类的听觉功能特点。人的听觉中有一个重要的特点,就是听觉的掩蔽效应,即一个强音能抑制另一个弱音的听觉。利用听觉的掩蔽效应,在编码时采用一些准则来改变量化噪声的频谱形状,使得量化噪声在主观听觉上能部分或全部被语音所屏蔽;或在后滤波技术中利用谱幅度的适度失真来降低量化噪音对语音质量的影响。人的听觉对声调(pitch)的感觉很准确,但在不同的频段允许的畸变不同,对低频端比较敏感(因为浊音的基音和共振峰结构集中在那里),对高频段不太敏感,能容忍较大的基音偏差。人的听觉对信号的相位很不敏感,也是某些分析和编码方法的依据;低码率的语音编码几乎不会给相位因子分配码字。
3.3率失真理论
根据香农编码理论[10],在无噪声干扰情况下,存在一种无失真编码方法,使编码后的平均码长与信源嫡任意接近。因此,对于无失真编码,信源嫡是理论上的编码比特率下限。实际应用系统中,通常不需要进行完全无失真的编码,即可以利用人的感觉系统特性,去除一些不必要的信息,对信源进行有损编码。例如,语音信号中的某些频率的信号错误对人眼来说,是不可感知的,或者说人眼可以容忍这些特定的失真。因此,存在一种最优失真编码,经编码和解码后,重构语音与原始语音相比,具有一定损失,但这种损失并不引起听觉损伤,同时所需的编码比特数最少。从接收端来看,最优失真编码就是在允许某种程度的失真情况下,寻找恢复信源消息所必须获得的最小信息量,以减少所必须接收的编码比特数。接收端获得的平均信息量可用平均互信息I(X;Y)表示,因此,最优失真编码即转变为在一定失真限度下,寻找I(X;Y)的最小值。
语音信号可以用自回归过程来模型化。一个零均值的高斯自回归信源可以用下面的差分方程如式(3-1)所示[11]。若图片无法显示请联系QQ3710167
(3-1)
其中a1,a2,….,am都是自衰减常数,Z(n)是一个序列。如果q>=p ,X(p)在统计上是与Z(p)无关的.自相关函数如式(3-2)所示[11]。
Rxx(k)= (3-2)
并且Rxx(0)=其中 是信源差异。能量谱密度由自回归过程的自回归函数的傅立叶变换来表示如式(3-3)[11]:
或者 (3-3)
其中 基础频率为w0的周期信号X(n)可以用一个调和相关的傅立叶正弦曲线序列的线性组合如式(3-4)来表示。
(3-4)
其中C(k)是k次谐波的系数,可以通过式子(3-5)求得。
(3-5)
X(n)可以近似的用k个因子的和来表示,当K趋向于无穷大时越逼近理论值。实践时候近似值应该包括频率达到一个F频率的频率组成部分。
离散信源 的分布函数为p(x),重建信源 的分布函数为 他们的联合概率分布函数为 那么一个随机离散变量X的熵H(x)可以表示如式(3-6)[12]。
(3-6)
其中 是一个连续信源,分布函数为p(x),并且 是重建信号,分布函数为 。他的联合概率密度函数为 连续随机变量的差分熵如式子(3-7)[12]。
(3-7)
熵H(x)是一随机性的一个绝对测度,差分熵h(X)是相对于并列系统的随机性的一个相对测度。自信息量 是一个位于联合分布和乘积分布 之间的相对熵。例如对于离散的情况如式(3-8)[12]。
(3-8)
对于连续的情况如式(3-9)。
(3-9)
自信息量 是两个随机变量的依赖性的一个测度。熵能量可以表示成有在初始音中有相同的波段和相同熵的一个范围内的白噪声的能量。换句话说就是如果h(x)是一个音的熵,那么他的熵能量就是Qx= 。h(x)是信源的熵率。由于白噪声对于一个给定的能量有最大熵,任何噪声的熵能量都要小于或者等于他的实际能量。对于无记忆的高斯信源,熵能量有最大值,等于他的信源差异。对于有记忆的信源,在编码和分析的时候记忆被剥离开来。
率失真理论解决的就是在保持平均失真不高于一个可接受的水平下使得占用信道的容量最小化。率失真函数[13]R(D)表示信源编码最小输出率,同时对于一个给定的平均失真水平能够得到最小的信道容量。
对于给定的一个无记忆离散信号X,它的概率聚合函数为p(x)(表示为{X,P}),每个信号X=(x1,x2,…,xn)由矢量 =( 1, 2, 3… n)根据一个保真测度如式(3-10)
(3-10)
其中 平均失真为d(Q)= 其中 是与一个联合分布函数P(j,k)=P(j)Q(k|j)相关的一个条件概率,并且当且仅当 成立时才成立。所有的D的可接受集合的条件概率分布由式子 表示。对于固定的D率失真函数可以表示成R(D)= 其中I(Q)是互信息如式(3-11)若图片无法显示请联系QQ3710167
基于子带结构带宽可伸缩语音编码器的研究
类似的,对于一个连续信源,条件概率密度为 的一个平均失真可以表示如式(3-12)
(3-12)
并且 ,
对于有概率函数为Fp的信源(X,P)的率失真函数可以表示成 并且互信息I(q)可以表示如式(3-13)
(3-13)
在香农引入了最初的率失真函数的概念后,率失真理论出现了许多有意义的成果。1959年,香农定义了速率失真函数R(D),并证明只要R(D)不超过信道容量就能使接收端的失真不超过给定的阈值D。对于幅值离散的信源,R(D)定义如式(3-14)所示。
R(D)= (3-14)
其中Q(Y)= 。平均失真满足条件如式(3-15)。
(3-15)
R(D)的逆函数为失真-速率函数D(R),它表示在给定速率不超过R的条件下,系统所能达到的最小失真。D(R)是在维数k趋向无穷大时Dk(R)的极限。
D(R)= (3-16)
图3.1连续幅度无记忆高斯信源的率失真函数
然而,率失真理论仅仅局限于很少的一些应用,因为要找到一个合适的数学模型来表示真是的随机过程复杂性很大,用简单的信号来评测率失真函数也是有相当的困难。记忆信源相对于无记忆的信源在同一个失真测度D下具有较大的一个数据压缩空间。因为内在的统计依赖性可以被用来减少每个字节需要的最小信息量。记忆型的信源的R(D)的计算是很复杂的。仅仅对于高斯信源来说R(D)是可相对容易简单分析出来。
3.4 子带理论
子带编码(SBC,Sunband Coding)[3]是一种在频率域中进行数据压缩的方法。在子带编码中,首先用一组带通滤波器将(BPF)输入信号分割成若干个子频带信号,然后将这些子带信号经过频率搬移转变成基带信号,再对它们在奈奎斯特速率上分别重新取样。取样后的信号经过量化编码,并合并成一个总的码流传送给接收端。在接收端,首先把码流分成与原来的各子带信号相对应的子带码流,然后解码、将频谱搬移至原来的位置,最后经带通滤波、相加,得到重建的信号。图3.2,3.3给出了子带编码、解码的工作原理图。
图3.2 编码器原理图
若图片无法显示请联系QQ3710167
图3.3 解码器原理图
在子带编码中,若各个子带的带宽 是相同的,则称为等带宽子带编码,否则,称为变带宽子带编码。在变带宽子带编码中,低频段的子带较窄,高频段的较宽,这样划分不仅和语音信号的功率相匹配,而且也和语音信号的可懂度或清晰度随频率变化的关系相匹配。大量的研究表明,语音信号频带中具有相同带宽的各子带对语音可懂度影响是不同的。低频段的影响大,高频段的影响小。因此,将低频段的子带分得细一些,量化精度高一些,就可能使整个重建语音的质量高一些。
把音频信号分割成相邻的子带分量之后,用2倍于子带带宽的采样频率对子带信号进行采样,就可以用它的样本值重构出原来的子带信号。例如,把4000Hz带宽分成4个等带宽子带时,子带带宽为1000Hz,采样频率可用2000Hz,它的总采样率仍然是8000Hz。
由于分割频带所用的滤波器不是理想的滤波器,经过分带、编码、译码后合成的输出音频信号会有混迭效应。据有关资料的分析,采用正交镜象滤波器QMF(quandrature mirror filter)来划分频带,混迭效应在最后合成时可以抵消。
图3.4表示用正交镜象滤波器分割频带的子带编译码简化框图。图中,用QMF把全带音频信号分割成两个等带宽子带。hH(n)和hL(n)分别表示高通滤波器和低通滤波器,它们组成一对正交镜象滤波器。这两个滤波器也叫做分析滤波器。
图3.4 两层子带编码器
把语音信号分成若干个子带进行编码主要有三个优点:
① 由于声音频谱的非平坦性,如果对不同的子带合理分配比特数,就有可能分别控制各子带的量化电平数以及相应的重建误差方差,使码率更精确地与各子带的信源统计特性匹配。
② 调整不同子带的比特赋值,就控制了总的重建频谱形壮。进一步语音心理和生理模型相结合,即可将噪声谱按人耳的主观噪声感知特性来成性。如果这种比特分配是自适应的,就能大大提高系统性能,因为此时对噪声的整形是动态实现的。
③各子带内的量化噪声都约束在本子带内,这样就能避免能量较小频带内的输入信号被其它频段的量化噪声所遮盖。
3.5 基于带宽可伸缩编码基本理论
3.5.1 带宽可伸缩编码概述
带宽可伸缩编码就是通过增加频率带来得到更好的语音质量。假设语音信号的
基于子带结构带宽可伸缩语音编码器的研究
信源带宽为 ,那么语音信号就能够以傅立叶带宽 进行带宽可伸缩编码系统编码,如图3.5所示。带宽压缩因子 如公式(3-17)所示。
(3-17)
其中 是傅立叶带宽, 是信源带宽。 越大,但不大于1,就有更多的傅立叶带被压缩所使用。所以要想得到较好的输出语音质量,就必须增加 [14]。
图 3.5 通用带宽可伸缩示意图若图片无法显示请联系QQ3710167
3.5.2 全带结构的带宽可伸缩编码
我们以两层结构带宽可伸缩编码器来说明实现原理。核心层傅立叶带宽是信源带宽的一半。增强层傅立叶带宽是整个信源带宽或整个信源带宽的一半,并且依赖系统结构。全带结构的带宽可伸缩问题如图3.6所示。
图 3.6 全带结构的带宽可伸缩问题
我们假设信源X具有功率谱密度 ,并且信源带宽 ,能够被核心层编码到 ,具有傅立叶带宽 ,其中速率为 ,平均失真为 。或者X被全带结构编码到 ,具有傅立叶带宽 ,其中速率为 ,平均失真为 。因为两层编码器是独立的,带宽可伸缩性是通过在核心层和增强层之间的开关来选择。从理论上讲,这种方法能够优化解决,但实际上开关选择能够产生坏的影响。
基于MSE核心层编码器的率失真函数如公式(3-18)、(3-19)所示。
(3-19)
其中, 和 在核心层编码器中,通过信源带宽 和傅立叶带宽 的率失真函数,并且 如公式(3-20)所示。
全带结构的编码器的率失真函数如公式(3-21)、(3-22)所示[15] 。
其中, 是通过傅立叶带宽的率失真函数。
如果 ,我们有 ,其中 是全带结构编码器的率失真,如图3.7所示, 是核心层编码器的率失真,如图3.8所示。若图片无法显示请联系QQ3710167
图3.7 全带结构编码器的失真曲线
图3.8 核心层编码器的失真曲线
所以,带宽可伸缩性可以通过两层编码器之间选择得到。两层带宽压缩因子分别是 和 ,并且 和 是独立的和 。
3.5.3 子带结构的带宽可伸缩编码
在3.5节对子带编码的基本原理已进行概述。子带压缩技术就是利用带通滤波器和子采样技术获得在时频域的压缩。在文献[10]中,有许多理论应用于子带编码。本节主要总结现有子带编码工作基础上,以两个子带编码系统来讨论子带结构的带宽可伸缩编码理论。
全带结构系统的p阶线性预测的谱粗糙测试如公式(3-23)所示[16]。其中, 是高斯信源的信息熵, 是p阶的差熵, 是p阶信源的协方差矩阵。
同样,对于具有p阶线性预测的子带结构编码系统的谱粗糙测试如公式(3-24)所示[16]。
所以,由于子带处理过程所减少的记忆量如公式(3-25)所示。
对于PCM编码的信号, 如公式(3-26)所示[16]。
其中, 和 分别是每子带的方差,当信源谱是白噪声时,等号成立。
所以,子带编码提供一个增益通过有限阶预测的全带结构编码和每子编码。在无限阶的预测全带结构编码中,和经过优化后的子带编码中,不产生增益。对于白噪声也不产生增益。
子带编码所产生的增益和实际采用的率失真函数相关。对于一个PCM的编码全带信号的方案中,采用基于MSE的编码的率失真如公式(3-27)所示[17]。
其中, 是量化器性能因子。对于每一个子带率失真如公式(3-28)所示。
选择每一个子带的编码速率 ,来减小整个率失真,如公式(3-29)所示。
其中约束条件是 。
使用标准Lagrangian技术,可以计算优化后每子带的编码速率。在较小的率失真的情况下,最小率失真由公式(3-30)给出。
子带编码增益可以由和所定义,具体如公式(3-31)所示。
其中,信源是白噪声时,等号成立。若图片无法显示请联系QQ3710167
3.6 本章小结
本章主要介绍了可伸缩编码的相关理论,包括了: 可伸缩编码的基本原理、语音压缩的理论依据、可伸缩编码的理论基础率失真理论和可伸缩编码的实现方案。可伸缩编码理论是重要部分,是编码器的设计的基础。
在下一章中,将主要针对子带滤波器组设计与优化进行介绍分析。
第4章 子带滤波器组的设计与优化
子带滤波器组的设计是子带编码的关键。如果按理想带通的Nyquist采样率对子带信号采样则会产生混叠,为了减少混叠造成的失真,滤波器的滚降特性必须陡峭,这就要求阶数较高的滤波器。在数字实现中,为了实现线性相位滤波,往往需要采用128-256阶,甚至更高阶的FIR滤波器,才能使得混叠效应不至于对子带编码质量产生明显的影响,这使得子带滤波器组的运算负担太大,产生较大延时。正交镜像滤波器组QMFB(Quadrature Mirror Filter Banks)能够较好的解决混叠失真的问题,对滤波器的滚降特性可以极大的降低要求,一般只要使用16-32阶就足够,从而简化了子带编码系统的实时实现。
4.1 正交镜像滤波器组原理及误差分析
4.1.1正交镜像滤波器组原理
本文中主要介绍2通道QMF组的原理和优化方法。2通道QMF的原理图4.1如下所示, 其中H0和H1组成分析滤波器组(H0,H1频率特性如图2-2),G0和G1组成综合滤波器组: 若图片无法显示请联系QQ3710167
图4.1 2通道QMF组原理图
图中分别表二整带的低通和高通分解滤波,分别表示低通和高通综合滤波器。如果 , 与 关于 呈镜像对称,这样的滤波器组即为正交镜像滤波器(Quadrature Mirror Filter)组,简称QMF组。图4 .1 中 ,输入信号一是经过频率 采样获得的全带时域离散信号x(n),首先分别经过等带宽的低通和高通正交镜像滤波器;再分别经过2:1抽取,使上、下两个子带信号采样率下降到 /2。然后再经过量化编码、传输、解码,以及1:2插值恢复原来的采样频率和原来的子带信号位置,最后再经过镜像滤波、相加后得到重建信号。
基于子带结构带宽可伸缩语音编码器的研究
从图4.2中 可以看出,上、下两个子带滤波器幅度响应 关于 镜像对称并有交叠区域。在2:1抽取后,每个子带都产生一个折叠分量,如图中影线部分所示。下子带大于 的部分会以 为轴折叠到小于 的区间,同这,区问的低带信号混叠在一起;同样上子带小于 的部分会混叠到大于 部分。这种混叠引起的失真在一般情况下是不能消除的,但是当采用正交镜像滤波器,即上、下子带滤波器特性满足一定条件时,混叠失真能够消除。
若图片无法显示请联系QQ3710167 图4.2 H0,H1频率特性
4.1.2 QMF误差分析
滤波器组的处理过程是先由分析滤波器组对输入信号进行频带的分裂,然后再用合成滤波器组利用经过处理的子带信号重构出信号。在这一过程中滤波器组的完全重构特性是非常重要的。也就是说,如果抛开中间子带处理的过程,输入信号 x( n)经过分析滤波器组的分解,然后再由合成滤波器组重构出的信号 y(n)应该只是输入信号纯延时,即 y( n)= x(n-d),满足这一条件的滤波器组称为完全重构滤波器组。具有完全重建特性是滤波器组的一个基本要求。
QMF组的重建误差由混叠误差,相位误差 ,幅度误差和量化误差组成。混叠失真是由于分析滤波器组和综合滤波器组的频带不能完全分开及抽样频率不能大于其最高频率成分所致,通过设计综合滤波器组配合分析滤波器组可以去除混叠误差;幅度失真是因为分析和综合滤波器组的频带在通带内不是全通函数, 一般只是设法减小幅度失真;相位失真是因为分析和综合滤波器组相频特性不具有线形相位,将分析/综合滤波器设计成具有线性相位的FIR就能完全消除相位失真。量化误差是由于编码和运算的量化而产生的失真,不能完全消除,只能设法减小。
然而, 作为一个滤波器, 希望它的通带尽量的平、阻带尽量的快速衰减, 且过渡带尽量的窄。但由假设是得到的H0(z)和H1(z)不可能满足这些要求, 因此他们无任何实际意义。所以, 按H0(z)=H1(- z)指定分析滤波器组, 在H0(z)和H1(z)有实际价值的情况下就不可能完全消除幅度失真, 做不到完全重建; 反之如果完全消除了幅度失真, 就不可能去除相位失真, 也做不到完全重建。
解决矛盾的途径:
1.用FIR QMF 滤波器组, 在消除相位失真的基础上, 尽可能的减小幅度失真, 做到近似完全重构;
2.放弃H0(z)=H1(-z)的简单形式, 去更合理的形式, 从而实现完全重建。
综上分析可知, QMF 滤波器组的实现并不简单, 一般只能做到近似重建, 近似程度取决于设计的优化。
下面我们以两通道滤波器组为例来讨论滤波器组满足完全重构的条件。省略中间子带处理过程,重构信号 y( n)可以写成:
(4-1)
其中:
(4-2)
(4-3)
T(z)称为系统失真函数,A(z)称为混迭分量。将前面提到的完全重构要求写成 z 域形式有:
(4-4)
下面根据T(z)和 A(z)来讨论完全重构条件:
消除混叠的条件:A(z)=0,即:
(4-5)
按照通常QMF组中的关系,H1(z)应该是H0(z)在频域中平移π角的结果,即:
(4-6)
将式(4-6)带入(4-5)可以得到:
(4-7)
(4-8)
消除混叠的前提下纯延迟的的条件:
(4-9)
也可以写成:
(4-10)
令:若图片无法显示请联系QQ3710167
,
则有:
(4-11)
P(z)减去P(-z)后偶次项互相抵消,只含有奇次项,且 P(z)中只有一项非零,所以k必为奇数。
4.2 2通道QMF组直接设计法
在设计QMF组的一种新算法及基于GA的优化[18]中提出了一种有效的QMF组直接设计法:
首先用窗函数法设计低通滤波器H0(z)。利用汉明窗设计截止频率为e,且通带阻带性能较好,过渡带d较窄的低通滤波器H0(z),其中e取初值 0.5。
再根据式(4-6),(4-7),(4-8)的结论分别求出H1(z),G0(z),G1(z).这样得到的分析/综合滤波器组就具有线性相位,同时也消除了混叠失真,滤波器组的重建误差为:
(4-12)
然后在区间(e-d,e+d)内,调整e的值,重复上面步骤,找到使△值最小的e和分析/综合滤波器的系数。这样就得到了初步优化的滤波器组系数,再用蚁群算法对系数进行优化,得到最后的结果。
这种直接方法,在消除混叠失真和相位失真的前提下,最大程度的减少幅度失真,设计的滤波器通带阻带频率特性好,过渡带较窄,再用适当的优化算法进行优化,可以得到较满意的重建结果。
4.3 ACA对2通道QMF组系数的优化
选取适当的优化算法对直接设计得到的滤波器系数进行优化,进一步减少重建误差能得到比较满意的结果。针对QMF组系数优化的具体问题,下面提出一种采用蚁群算法对直接设计得到的结果进行优化的方法。
4.3.1 ACA基本原理
众所周知 ,社会性昆虫如蚂蚁、蜜蜂等,虽然其单个个体行为非常简单、随机,但是它们却可凭集体的力量进行觅食、御敌、筑巢等复杂活动。这种群体所表现出来的,就称之为群集智能[19](Swarm Intelligence,简称SI)。从社会性昆虫相互合作进行工作中得到启发,人们通过对社会性昆虫这种复杂系统的模拟,提出了一系列对于传统问题的新的解决方法,即群集智能算法。群集智能中的群体(Swarm)指的是“一组相互之间可以进行间接通信[20](Stigmergy)的主体,这组主体能够合作进行分布式问题求解”。而所谓群集智能指的是“无智能的主体通过合作表现出智能行为的特性”。群集智能在没有集中控制并且不提供全局模型的前提下,为寻找复杂的分布式问题的解决方案提供了基础。蚁群优化正是群集智能算法中最重要的分支之一。生物学家通过长期观察发现,蚁群有一个令人感兴趣的特性,即蚁群在觅食的时候总是可以找到从蚁巢通向食物的最短路径。事实上,当蚂蚁寻找食物时,在从蚁巢到食物(或者从食物返回蚁巢)的途中,会在其经过的路径上释放一种挥发性的化学物质,称作信息素[21] (Pheromone)。信息素可以沉积在路径上,并随着时间逐步挥发。当蚂蚁在选择路径的时候,它们倾向于沿着信息素气味较浓的路径前进。因此,信息素可以引导蚂蚁通向食物(或者返回蚁巢)。实验表明,正是这种沿着信息素寻路的特性使得蚁群能够找到蚁巢通向食物的最短路径。换言之,当蚁巢和食物之间存在较多条路径时,整个蚁群可以通过搜索各个个体蚂蚁留下的信息素痕迹来找到往返于蚁巢和食物之间的最短路径。
蚁群算法通过模拟蚁群搜索食物的过程,达到求解比较困难的组合优化问题的目的。该方法是受到对真实蚁群行为研究的启发而提出的。为了说明蚁群算法的原理,先从蚁群搜索食物的过程谈起。像蚂蚁、蜜蜂、飞蛾等群居昆虫,虽然单个昆虫的行为极其简单,但由单个简单的个体所组成的群体却表现出极其复杂的行为,原因是什么呢?仿生学家经过大量细致的观察研究发现,蚂蚁个体之间是通过一种称之为外激素(Pheromone)的物质进行信息传递的。蚂蚁在运动过程中,能够在它所经过的路径上留下该种物质,而且蚂蚁在运动过程中能够感知这种物质的存在及其强度,并以此指导自己的运动方向,蚂蚁倾向于朝着该物质强度高的方向移动。因此,由大量蚂蚁组成的蚁群的集体行为便表现出一种信息正反馈现象:某一路经上走过的蚂蚁越多,则后来者选择该路径的概率就越大。蚂蚁个体之间就是通过这种信息的交流达到搜索食物的目的。
蚁群算法是一种随机搜索算法,与遗传、模拟退火等模拟进化算法一样,通过候选解组成的群体在进化过程中寻求最优解[20],其具有以下特点:
(1)较强的鲁棒性:对基本蚁群算法模型稍加修改,即可应用于其它问题的求解;
(2)分布式计算:基于种群算法,具有并行性;
(3)易于与其它启发式算法相结合,以改善算法的性能。
4.3.2基于ACA滤波器系数优化的算法
在蚁群优化算法中,一个有限规模的人工蚁群体可以相互协作的搜索用于解决优化问题的较优解。每只蚂蚁根据问题所给出的准则,从被选的初始状态出发建立一个可行解,或是解得一个组成部分。在建立蚂蚁自己的解决方案中,每只蚂蚁都
基于子带结构带宽可伸缩语音编码器的研究
搜集关于问题特征和其自身行为的信息,并使用这些信息来修改问题的表现形式。蚂蚁既能共同的行动,又能独立地工作,显示出了一种相互协作的行为,通过信息素指引着它们之间的通讯。人工蚁使用一种结构上的贪婪启发搜索可行解。根据问题的约束条件列出了一个解,作为经过问题状态的最小代价。每只蚂蚁都能够找出一个解,但很可能是较差解。蚁群中的个体同时建立了很多不同的解决方案,找出高质量的解是群体中所有个体之间全局相互协作的结果。
根据滤波器系数优化的要求结合蚁群算法的基本原理,下面提出一种滤波器系数优化的算法。
首先设定几个参数,滤波器的m个系数的初始值a[m]由通过2.2的直接设计法[18]得到,做为m个蚂蚁的初始坐标;将蚂蚁i初始坐标a[i]的10%作为它的移动距离D,D是动态变化的,每次移动后减半,蚂蚁i移动后坐标变为a[i]+D;当前最优重建误差的初始值E由滤波器系数初始值根据式(2.2.1)得到。位置偏差k表示蚂蚁所处坐标与初始坐标的差值,表示蚂蚁i上次移动后与它初始坐标的差值,K对应当前最优重建误差的偏差,k和K的初始值为0,根据k与K的值,决定此次移动的方向。
一次蚂蚁的移动指一只蚂蚁移动一次,一次蚁群的移动指m个蚂蚁移动一次。每次移动后,计算重建误差e并与当前最优重建误差E比较,如果e
E,则将D赋值为-D,下次移动方向为本次移动的反方向。
算法具体步骤如下:
1初始化滤波器系数与蚂蚁的移动距离D,计算重建误差e,并将e赋值给E。
2蚂蚁的坐标表示滤波器系数的值,蚁群的移动次数N初始值为100。
3蚁群的移动。如果是第一次蚁群移动,随机选取蚂蚁的移动方向;如果不是第一次蚁群移动,则根据上次移动的偏差k与当前最优偏差K比较,朝最优偏差方向移动。每次蚁群移动后,N=N-1,D=D/2。
4移动后通过比较重建误差e与当前最小重建误差E,及时更新当前最小重建误差与对应的位置偏差,指明下次蚁群移动方向。
5如果N>1,则转步骤2;如果N=1,是蚁群的最后一次移动,每次蚂蚁移动进行步骤4,决定是否更新对应的滤波器系数。
6全部移动完成,得到最后的滤波器系数,整个优化过程结束。
算法流程图如下: 若图片无法显示请联系QQ3710167
整个算法中,系数经过不断的调整以后,通过缩小移动距离来逼近最优解,根据前次相对位置偏差与当前最优位置偏差的比较来指引蚂蚁移动的方向,不断调整各个参数,得到最终结果。在整个蚁群中,每个蚂蚁的移动范围都在初值的10%以内,这是因为系数的微小变化都会引起重建误差的改变,并且初始值是经过初步优化得到的结果,所以把移动范围限定在一个很小的范围内。
4.4仿真实验
本文以32阶滤波器为例, 进行仿真来检测算法的可靠性和有效性.
用汉明窗来设计一般的低通和高通滤波器组成滤波器组,截止频率都为0.5,设计结果如图4.1,图4.2:
图 4.6 ACA优化后QMF组重建误差
从实验结果可以看出,直接设计法得到的QMF组重建误差控制在4%以内(约3.89%),通过ACA优化以后,将重建误差控制在2%以内(约1.88%)。
4.5本章小节
本章主要介绍了2通道QMF组的设计和优化,主要包括:QMF组的原理、误差组成及消除办法、QMF组的直接设计法和基于ACA的QMF组优化算法。子带滤波是子带编码的关键,滤波器设计的好坏直接关系到子带编码的质量,本章最后通过实验表明优化后的QMF组重建误差控制在2%以内,得到了预期的效果。
在下一章中,将主要针对子带编码的系统结构进行介绍。
第5章 新型子带结构带宽可伸缩编码器
目前,MPEG-4提出的全带结构的带宽可伸缩编码标准已经十分成熟,但是由于采取了全带结构,复杂度明显高于子带结构带宽可伸缩编码器,如要要进一步提高传输码率,实现起来困难很大。对于子带结构带宽可伸缩编码,1988年ITU-T提出的G.722标准已经不能满足目前环境的需要,为了适应未来语音通信的需要,根据前文提到的相关技术、理论为基础,提出一种新型的子带结构带宽可伸缩编码语音编码器,用较低码率达到较好的语音质量,以满足未来的需要。
5.1 设计方案
本文提出一种新的子带结构带宽可伸缩语音编码器。本文主要讨论两子带的情况,首先将宽带语音分裂成两个子带。核心层编码器输出核心层码流,满足语音通信的基本需求,增强层编码器输出增强层码流。核心层码流可单独作为窄带语音信号输出,也可以与增强层码流通过QMF组的综合滤波器处理得到宽带语音信号。为了适应当前低码率高音质的要求,核心层采用成熟的码激励线性预测算法以满足普通通话质量的要求,增强层采用低码率的参数编码来降低整个系统的码率。接下来将详细介绍编码器的整体结构。
5.1.1编码器结构
在宽带语音编解码中,信号以16kHz的频率采样,带宽限制在50-7000Hz,这样的语音质量接近于面对面交流感觉的通讯质量。同窄带电话语音相比,增加的从50-200Hz的低端频率提高了自然度、表现力、舒适度。扩展的3400-7000Hz的高频部分可以更好地区分摩擦音所以更易于理解。50-7000Hz的带宽不仅提高了可理解性和语音自然度,而且使说话人识别变的简单。
图 5.1 编码器系统结构图
本文主要讨论两子带的编码器,宽带语音信号用16KHz频率采样,然后用QMF组的分析滤波器组将信号分裂成等宽的两子带(0-4KHz,4-8KHz),再用8KHz采样频率对两个子带采样。核心层信号采用高性能的窄带语音编码器G.729E,码率为11.8Kbit/s。增强层信号采用改进型LPC声码器,输出码率为2.4Kbit/s。核心层码流可以单独进行解码,解码后作为窄带语音输出,也可以通过QMF组的综合滤波器将核心层、增强层码流进行处理,然后作为宽带语音输出。这样整个编码系统有两种输出码率:11.8Kbit/s和14.2Kbit/s。
整个编码器的结构如图5.1,编码端的高、低通滤波器组成QMF组中分析滤波器组,解码端的高、低通滤波器组成QMF组的综合滤波器组。在上一章中已经详细介绍了滤波器的设计和优化,这一章主要讨论编码器的结构。
5.2 核心层编码方案
核心层采用G.729E的编码方案。G.729[22]是ITU-T在1996年3月公布的用对结构代数码激励线性预测(CS-ACELP)语音编码方案,码率为8Kbit/s。这个方案的特点是分析窗采用混合窗;LSP参数采用二级矢量量化;以子帧为单位的码本搜索分为自适应码本搜索和代数码本搜索;基音分析采用开环基音分析和自适应码本搜索相结合,而降低了运算量,减少了基音的量化比特数,并提高了基音预测的准确度;代数码本算法简单,不需要存储码本,恢复音质清晰。在8Kbit/s码率合成音质不低于32Kbit/sADPCM的水平,算法延时为15ms。图5.2描述了编码器的工作原理:
图5.2 G.729编码端基本原理框图
G.729是对电话带宽的语音信号编码的标准,对输入的模拟语音信号用8KHz采样,16bit线性PCM量化。CS-ACELP是基于码激励线性预测(CELP)的编码模式。G.729选择帧长为10ms,每帧80个样点,每一帧分成等长的两个子帧。算法采用分析合成法,编码器对输入的语音信号先进行预处理,然后进行10阶LPC分析,将得到的LPC参数转换为LSP参数进行量化;再对编码端得到的激励信号通过综合滤波器后得到合成语音,将合成语音与原始语音相减,得到残差信号;对残差信号进行感觉加权,然后进行基音分析、码本搜索,并分别求得自适应码本增益和固定码本增益;最后对各个参数进行编码,编码端需要传输的参数有:LSP参数、自适应码本标志及其增益、固定码本标志、固定码本符号及其增益。解码器先对比特流分别进行解码,把解码得到的自适应码本和固定码本矢量分别乘以各自的增益然后相加,得到激励信号,然后经过综合滤波器得到合成语音信号,最后再经过处理。
G.729E是G.729的高速率扩展版本。它在LP分析、后滤波、感觉加权、码本结构等方面进行了改进,改进后码率为11.8Kbit/s。另外,G.729E特别增加了对音乐信号的处理,增加了一个30阶的后向LP分析对音乐信号进行处理,相应的G.729E设计了前向/后向自适应码本和固定码本,并根据输入信号的平稳度来选择LP分析滤波器,两个LP分析以帧为基础,前向LP针对输入信号,后向LP针对合成信号,在进行LP分析切换时,需要对切换进行平滑以使人耳感觉不到明显的切换影响,在比特分配时,G.729E通过一个信息位来表明前向还是后向,同时对该信息位用一位奇偶校验位保护。由于G.729E的码本容量大,码字中的脉冲数多。
5.2.1预处理
G.729编码原理框图如图5.2。在预处理[3]模块中,输入16bit线性PCM语音信号,为避免处理过程中产生溢出和不必要的低频部分,将输入样点都除以2,再通过一个高通滤波器,两者结合起来可以通过滤波器H(z)实现:
(5-1)
经过H(z)滤波后信号为S(n),将在后续操作中用到。
5.2.2 线性预测与量化
短时分析与合成滤波器是基于10阶线性预测(LP)滤波器的。
线性预测滤波器定义为:
(5-2)
其中 ,i=1,…,10是量化后的线性预测[3-6]系数,处理每帧时都要先加一个30ms的不对称窗,对加窗后语音信号计算其自相关函数,再利用自相关函数进行短时预测,或称为线性预测分析。每80个样值(l0ms)对加窗后的语音数据计算一次自相关函数,并用Levinson算法将自相关函数转化为线性预测系数。为了便于进行插值和量化,又要把线性预测系数转化为线性线谱对(LSP)。插值后量化和未被量化的滤波器系数又被转化为线性预测系数来为每一子帧建立合成加权滤波器。
线性预测分析窗口包括两个部分:第一部分为半个汉明窗,第二部分为一个余弦的1/4。窗函数的计算公式为:
(5-3)
线性预测中有5ms的前瞻,就是要从下一帧中取40个样点,因此在编码端引入5ms的附加延迟。线性预测分析窗口从以前帧中取120个样点,当前帧有80个样点,从后一帧中取40个样点。
加窗后语音信号表示为:
,n=0,…,239 (5-4)
用它来计算自相关系数:
,k=0,…,10 (5-5)
为了避免输入值太小而引起的运算问题,r(0)下限设为1.0。通过将自相关系数乘以 ,对自相关系数进行60Hz的带宽扩展:
,k=1,…,10 (5-6)
其中 =60Hz,是扩展带宽, =8000Hz是抽样频率。另外,r(0)还要乘以一个白噪声校正因子1.0001,这相当于加一个40dB的背景噪声,修正后的自相关系数由下式给出:
; k=1,…,10 (5-7)
用修正自相关函数求解线性预测滤波器系数 (i=1,…,10),即求解方程组:
(5-8)
其中r(k)为自相关函数。将系数转化为线谱对LSP,LSP的系数 是用归一化频率[0, ]的LSF 表示:
(5-9)
使用两级矢量量化(VQ)将其量化为18bit。通过合成分析搜索过程选出激励信号。在这个过程中,按照感知加权后的失真测度使原始语音与重建语音的误差最小化,这是通过将误差信号经过感知加权滤波器滤波后得到的。
5.2.3 感觉加权
感知加权[3-6]滤波器的系数由未量化的线性预测滤波器得出。可由下式得出:
(5-10)
由变量r1和r2来确定滤波器W(z)的频率相应,所以适当调整这两个变量的值,可以使感觉加权获得更为有效的效果,这可以通过将r1和r2作为输入信号的谱形状的函数来实现。这个调整每帧进行一次,第一子帧通过一个插值过程来平滑,频谱的形状是由一个二阶的线性预测滤波器,作为Levinson_Durbin迭代算法的副产品得到。反射系数 转化为对数域比率LAR(Log area ratio) 通过以下公式得出:
,i=1,2 (5-11)
LAR系数对于当前10ms帧,用于第二子帧。第一子帧通过线性内插得到。这个二阶预测器的谱包络特征被判断为两种:平坦(flat=1)和倾斜(flat=0)。对于每一个子帧,通过对对数域比值系数用一个阀值函数(LAR门限函数)来判断其谱包络特征是平或斜。
如果子帧的内插频谱分类为平坦(flat=1),那么加权因子r1=0.94,r2=0.6;如果分类为倾斜(flat=0),则r1=0.98,而r2的值自适应于LP合成滤波器的谐振强度,其范围在0.4-0.7之间,如果出现强的谐振,则r2的值接近上界,根据当前子帧连续2个LSP系数之间的最小距离准则达到自适应。
子帧中加权语音信号由下式给出:
,n=0,…,39 (5-12)
5.2.4 开环基音分析
为了减少自适应码本搜索的复杂程度,其搜索范围局限于一个候选的基音周期 附近。 由开环基音周期分析[3-6]得到,开环基音周期分析每10ms帧进行一次使用的是加权语音信号 。先计算三个最大的自相关函数: (5-13)
在以下三个范围内查找:
i=1;80,…,143
i=2;40,…,79
i=3;20,…,39
将得到的三个最大的自相关函数 (i=1,2,3),然后归一化:
(5-14)
在选择较小范围的归一化相关函数的条件下,先用三个归一化函数中的最大值,即较低范围内的短时延被选中,对应自相关较长的时延。
5.2.5 脉冲相应的计算
加权合成滤波器 的冲激相应h(n)用于自适应码本和固定码本的搜索。每个子帧计算一次,脉冲信号经滤波器 后,再相继经过 和 得到h(n)。
5.2.6 目标信号的计算
通常,自适应码本搜索所使用的目标信号[3]x(n)是从方程加权语音信号 中减去加权合成滤波器W(z)/A(z)的零输入响应而计算得到的。
G.729协议中使用另一个等同的做法来计算目标信号,这就是将线性预测残差信号r(n)通过合成滤波器 与加权滤波器 的级联。在确定了子帧的激励之后,将残差信号与激励信号之间的差值通过这两个滤波器来更新其初始状态。
线性预测残差信号r(n)不但在此处用于寻找目标矢量,而且在自适应码本搜索中要存入激励缓存。线性预测残差信号由下式给出:
(5-15)
5.2.7 码本搜索与增益量化
自适应码本参数[3-6](或称基音参数)是基音周期和基音增益。在自适应码本实现基音滤波器的逼近过程中,激励信号要在一个子帧的长度内不断重复,在搜索阶段,用线性预测残差信号来代替激励信号,以简化闭环基音搜索过程,自适应码本搜索每子帧进行一次。
一旦确定了自适应码本的基音延迟,自适应码本的增益 可由下式计算:
(5-16)
其中x(n)是目标矢量,y(n)是自适应码本矢量v(n)通过加权合成滤波器W(z)/A(z)的零状态响应,由下式计算:若图片无法显示请联系QQ3710167
,n=0,…,39 (5-17)
固定码本[3-6]是使用一种称为”交叉单脉冲排列”的代数码本结构。在这个码本中,每个码本矢量包含四个非零脉冲,每个脉冲的幅度是+1或-1。码本矢量c(n)按以下方式构建:先取一个40维的0矢量,将四个单脉冲放置在找到的位置,然后分别将它们乘以相应的符号。自适应码本和固定码本的增益用7bit组合矢量量化,用原始语音和重构语音之间的误差加权均方最小来搜索在增益码本。 固定码本增益可以表示为: (5-18)
其中 是基于以前的固定码本能量的预测增益,r是校正系数。
固定码本贡献的平均能量由下式给出:
(5-19)
自适应码本增益 和校正系数r是使用两级共轭结构码本量化的矢量。这种结构同时减少了计算的复杂程度和存储量的要求。第一级包含一个3比特的二维码
基于子带结构带宽可伸缩语音编码器的研究
本F,第二级包含一个4比特的二维码本G。每个码本的第一个元素代表了量化自适应码本的一部分,第二个元素代表了固定码本增益校正系数的一部分。这种共轭结构通过使用预选过程而简化了码本搜索,在这一个预选过程中,四个第二个元素接近 的一串矢量被选出。类似的,码本G包含16个码本,其便宜指向第一个元素(相应与 )。八个第二个元素接近 的一串矢量被选出。因此,对于每个码本,选出了50%的最佳候选矢量。然后进行的是对剩余的4×8=32中可能性进行完全搜索,由此两个矢量的组合使得加权均方误差最小。这一预选过程在没有引入相对于完全搜索明显的质量降低的情况下减少了搜索的复杂度。自适应码本与固定码本是使用迭代方法离线训练的,这种方法在优化其中一个码本时使另一个保持固定。
5.2.8 滤波器存储变量更新
更新合成滤波器和加权滤波器[7]的状态需要计算下一子帧的目标信号。在将两个增益量化之后,当前子帧的激励信号u(n)可以使用下式计算:
,n=0,…,39 (5-20)
其中, 和 分别使量化后的自适应码本和固定码本的增益,v(n)是自适应码本矢量,c(n)是包含了谐波增强的固定码本矢量。在一个子帧的40个样值中,可以将信号r(n)-u(n)(残差信号与激励信号的差值)通过滤波器 和 ,并保存滤波器的状态来更新滤波器的状态。
5.2.9 解码部分
解码端[3]原理框图如图5.3,参数列表如表5.1。首先参数解码,LP系数,自适应码本矢量,固定码本矢量和增益。在重构激励之前,由收到的P1前六位作XOR,如果与P0相同,则认为接收正确,如果与P0不同,则认为接收错误,此时的延时值T1用前一帧的T2来代替。
后置处理包括三个部分:自适应后置滤波,高通滤波和信号放大。自适应后置滤波器是三个滤波器级联:长时后置滤波器、短时后置滤波和斜补偿滤波器,接着自适应增益控制器每5ms子帧修改一次后置滤波器系数。后置滤波器的过程是首先重构语音经过逆滤波产生残差信号,用与计算延时长时后置滤波器的延时和增益,然后通过长时滤波器和合成滤波器,最后合成滤波器的输出信号通过斜补偿滤波器产生后置滤波重构语音信号。
图5.3 G.729解码端原理框图
表 5.1 发送参数列表
符 号
说 明
Bits
L0
L1
L2
L3
MA预测器开关
LSP量化器的第一级矢量
LSP量化器的第二级低维矢量
LSP量化器的第二级高维矢量
1
7
5
5
P1
P0
S1
C1
GA1
GB1
第一子帧的基音延时
P1的前6比特的奇偶校验
第一子帧固定码本脉冲符号
第一子帧的固定码本
第一子帧增益码本(第一级)
第一子帧增益码本(第二级)
8
1
4
13
3
4
P2
S2
C2
GA2
GB2
第二子帧基音延时
第二子帧固定码本脉冲的符号
第二子帧的固定码本
第二子帧增益码本(第一级)
第二子帧增益码本(第二级)
5
4
13
3
4
最后通过高通滤波器H1(z),滤波器后信号乘以2恢复输入信号的电平。高通滤波器为:
(5-21)
5.3 增强层编码方案
增强层采用改进型LPC-10[23]编码方案。LPC-10时一个10阶线性预测声码器(LPC Vocoder)。语音信号的分析与合成就是根据发音机理建立的全极点模型,从语声的波形中提取表征声道和声源激励的有关特征参数,再利用这些特征参数通过模型合成语音信号。声码器就是将特征参数编码、传输、解码的系统。
5.3.1 LPC-10原理
根据语音信号的生成模型(如图5.4),对于表征声源和声道的有关特征参数进行分析和提取, 再运用这些特征参数重新合成语音信号。
图5.4 语音信号的产生模型
LPC-10[3]编码算法将语音信号逐帧地用其生成模型的特征参数来表示,其全极点模型的阶数为10,帧长为180,一帧之内180个原始语音抽样用13个特征参数来代替,这些特征参数是全极点模型谱参数 ai(其中i=1、2……10)增益RMS、清/音判决信息Voicing和浊音时的基音周期Pitch。因为LPC-10采用8KHz速率采样,每180个采样分为一帧(22.5ms), 每帧编码成54bit,所以,LPC-10的传输速率为2.4Kbit/s。LPC-10的编码原理如图5.5所示。LPC-10声码器特征参数的分析和提取直接关系到声码器的精度。
图5.5 LPC-10编码端原理框图
图5.6是LPC-10解码端原理框图,在解码端首先利用直接查表法对码流进行查错、纠错。经过纠错解码后得到基音周期、清/浊音标志、增益以及反射系数的大小,解码后结果延时一帧输出,这样输出的数据就可以在前、后帧两帧间平滑过渡。由于每帧语音只传输一组参数,一帧内可能有不止一个基音周期,所以对接收数据进行由帧到基音块的转换和插值。
LPC-10采用简单的二元激励,如果是清音帧,就以随机数作为激励源;如果是浊音帧,用周期性冲激序列通过一个全通滤波器来生成激励源,这样改善了合成语音的尖峰性质。
解码端用Levinson递推算法得出预测系数{ }(i=1,…,n),通过直接型递归滤波器来合成语音。对其输出还要进行幅度校正,去加重并转换为模拟信号,最后经过一个3.6Hz的低通滤波器后输出模拟语音。若图片无法显示请联系QQ3710167
图5.6 LPC-10解码端逻辑框图
5.3.2 改进型LPC-10
LPC-10声码器采用简单的二元激励,使合成语音的自然度欠缺。在噪声的影响下,难以准确的提取基音周期和判决清/浊音。语音谱共振峰及带宽估值有时会产生很大的失真。在LPC-10的基础上改进型LPC-10在激励源、基音提取方法、声道滤波器参数量化、LSF参数的矢量量化等方面做了改进。
在激励源方面,采用混合激励代替简单的二元激励。浊音的激励源时由经过低通滤波的周期脉冲序列与经过高通滤波器的白噪声相加而成的,周期脉冲与噪声的混合比例随输入语音的浊化程度改变。清音的激励源时白噪声加上位置随机的一个正脉冲跟随一个负脉冲的脉冲对形成的爆破脉冲。另外,激励脉冲加抖动和单脉冲与码本相结合的激励模式都起到改善激励源的作用。
在基音提取的方法上,采用LPC的残差信号或者语音信号的自相关函数,并利用动态规划的平滑算法更准确的提取基音周期。
5.4 实验结果与测试
我们采用16位的PCM文件作为语音样本,对其滤波、合成前后频谱进行分析,实验结果如下:
图5.10 编码前合成语音频谱图
实验表明:本文提出的编码方案与以前的子带结构带宽可伸缩编码器相比,高子带采用参数编码,在保证基本音质的前提能降了码率。优化后的正交镜像滤波器组在分解与合成性能上有了明显改进,对整个系统性能的提升帮助很大。
经过本章所述,对各个模块进行单元测试和整合测试,估算出系统编码时延,与其它几种常见算法对如表5.2和表5.3所示。
表4.2 编码时延对比
算法
码率(kbit/s)
时延下限(ms)
时延上限(ms)
G.726
32
2.5
10
G.729A
8
2.5
10
G.723
6.3/5.3
5
20
本算法
14.2/11.8
8
15
可以看出本文提出的方案编码时延偏高,在保证音质的基础上,对其他方面的的要求较高,这是以后需要做出改进的地方之一。
第6章 结束语
本论文主要研究了与子带结构带宽可伸缩语音编码的设计和应用有关的问题,主要工作总结如下:
1) 研究了语音压缩编码的多种技术和相关理论,为进一步学习与深入研究奠定了基础。
2) 深入详细的探讨了带宽可伸缩语音编码的理论原理,可伸缩编码理论是编码器设计的基础。
3) 分析了正交镜像滤波器组(QMF组)的原理、误差组成及消除误差的方法,在直接设计法[18]的基础上,提出一种基于蚁群算法的2通道QMF组优化算法,对比实验结果表明可以将重建误差控制在2%以内。
4) 将现有两种成熟的编码器G.729E和改进型LPC-10结合起来,构成子带结构的带宽可伸缩编码器,并进行实验仿真表明其确实可行。
在研究的过程中,遇到了一些问题,有的是一直没有解决的,还有一些新的想法和思路值得继续探讨:
1) 多通道QMF组的设计与优化问题。我们在文章中主要讨论了2通道QMF组的设计与优化,对于多通道QMF组的设计与优化没有深入研究,这是我们下一步研究的内容。
2) 高子带模块参数编码器选择了改进型LPC-10,目前还有不少优秀的参数编码器如MBE、IMBE等,采用这些编码器能否取得更好的效果,这些很值得我们进一步研究。
3) 解决了多通道QMF组的设计与优化问题,就可以应用到多个子带的带宽可伸缩编码器,这也是我们下一步的研究内容。
基于子带结构带宽可伸缩语音编码器的研究
致 谢
在此论文完成之际,特向我的导师李副教授表示深切的感谢。本文的研究工作自始至终都得到了导师的亲切关怀和悉心指导。在两年的研究生学习过程中,不论是在学习上还是在生活上,导师都给了我无微不至的关怀和帮助。导师严谨的治学态度,勤奋的工作精神对事业孜孜不倦的钻研精神和积极的人生态度都一直激励着我,让我不断进取,导师渊博的知识,实事求是的科研作风和高度责任感是给予我的宝贵财富,将使我终生受益。在此,我谨向导师表示我最崇高的敬意和最诚挚的感谢。
深深感谢实验室的李等各位同学的真诚帮助,也深深感谢毕业的师兄、同窗们的大力支持。在共处的几年中,在这个温馨、团结、友爱的大家庭里,我们一起努力,共同进步,这段经历将是我毕生的宝贵财富。我相信,在未来的工作生活过程中,我们还是一如继往的相互支持,相互帮助。
在研究生阶段,我得到了学校和学院的很多关心和帮助,使我能顺利完成各个阶段的学业,在此,我向学校、学院以及有关领导和老师表示真心的感谢!
感谢我的朋友们,你们是我快乐的源泉,给予了我强大的精神力量和动力,同甘共苦的日子都会点滴记在心间。
最后感谢我的家人,特别要感谢我的父母,给予了我宽松的成长环境和乐观向上的性格,是你们无私的爱给了我莫大的支持和鼓励,才让我取得今天的进步,我爱你们。
参考文献
[1] K.Koishida,V.Cuperman_and A.Gersho, A 16-kbit/s bandwidth scalable audio coder based on the G.729 standard in Proc.of International Conference on Acoustics,Speech,and Signal Processing(ICASSP’00),May 2000,vol,pp.1149-1152
[2] R.Javovo,R.Montagna,F.Perosino,and D.Sereno,Some experiment of 7KHz audio coding at 16Kbit/s in Proc. of International Conference on Acoustics,Speech,and Signal Processing(ICASSP’98),May 1989 vol.2,pp.192-195
[3] 王炳锡 《语音编码》 西安 西安电子科技大学出版社 2002.7 4~197
[4] 蔡莲红黄德智蔡锐《现代语音技术基础与应用》北京清华大学出版社2003.11 13~123
[5] 杨行峻迟惠生《语音信号数字处理》电子工业出版社1995 13 ~102
[6] 易可初田斌付强《语音信号处理》北京国防工业出版社2000.6 9 }-113
[7] 鲍长春《低比特率数字信号语音编码基础》北京北京工业大学出版社2001.3 15~216
[8] IEE Colloquium on 'Low Bit-Rate Speech Coding for Future Applications' (Digest No .1993 /234)Low Bit-Rate Speech-Coding for Future Applications, IEE Colloquium on,6 Dec1993
[9] An overview of speech coding techniques Xydeas, C.; Speech Coding Techniques and Applications, IEE Colloquium on,14 Apr 1992 age(s):111-125
[10] C.E. Shannon, "A mathematical theory of communication", The Bell System Technical Journal, vol.27, pp:379-423,1948
[11] 赵力.语音信号处理.北京:机械工业出版社,2003
[12] 仇佩亮. 信息论及其应用. 杭州:浙江大学出版社,2001
[13] C.E. Shannon, Coding theorem for a discrete source with a fidelity criterion,IRE Nat.Conv. Rec., Part 4 ,pp:142-163,1959.
[14] H. Dong, SNR and Bandwidth Scalable Speech Coding, Ph.D. dissertation, Southern Methodist University, Dallas, Texas, December 2002.
[15] ISO/IEC JTC1 SC29 WG11,ISO/IEC FDIS 19496-3, Information Technology Coding of Audiovisual Objects_Part3:Audio,May 1998.
[16] S.Rao and W.A.Pearlman, Analysis of linear prediction,coding,and spectral estimation from subbands,IEEE Trans. on Information Theory, vol.42,no.4,pp:1160-1178,July 1996.
[17] R. D. D. Iacovo and D. Sereno, Embedded CELP coding for variable bitrate between 6.4 and 9.6 kbps, in Proc. of International Conference on Acoustics, Speech, and Signal Processing (ICASSP‘1991),1991, vol.1, pp. 681-684.
[18] 张晨,李双田. 设计QMF组的一种新算法及基于GA的优化.信号处理,2005,21(2):120—125
[19] DorigoM .,M aniezzoV ,Colorni A .The Ant System:Optimization by a colony of Cooperating agents[J].IEEE Transactions on Systems,Man,and Cybernetics,1996,26(1):
1 -13
[20] Dorigo M ,Gambardella L M .Ant colony system:A cooperative learning a pproach to the travelings alesman problem[J].IEEE Trans on Evolutionary Computation,1997,1( 1) :53一56;
[21] Stutzle T .,Hoos H .H .MAX-MIN ant system [J].F ture Generation Computer System,2000,16(8):889-914
[22] ITU-T Recommendation G.729
[23] T.E.Tremain, The Government Standard Linear Predictive Coding Algorithm:LPC-10 Systems,Telecomm Conf. Record 1982
[24] S.Haykin.Nonlinear Methods of Spectral Analysis. Springer Verlag, Berlin, Heidelberg ,1979
[25] A.V.Oppenheim,R.W.Schafer. Digtal Signal Processing. Prentice Hall,1975
[26] B.H.Juang,D.Y.Wong,A.H.Gray Jr.Distorion Performance of Vector Quantization for LPC Voice Coding,IEEE Trans.ASSP,1982,30(2);294-304
[27] J.Makhoul,S.Roucos,H.Gish.Vector Quantization in Speech Coding.Proc. of the IEEE,1985,73(11);1551-1588
[28] Rahikka, D.,T. Tremain, V. Welch and J. Campbell, “CELP Coding for Land Mobile Radio Applications,”Proceedings of ICASSP, 1990, p. 465-4680
[29] Kleijn, W.,D. Krasinski and R. Ketchum, "An Efficient Stochastically Excited Linear Predictive Coding Algorithm for High Quality Low Bit Rate Transmission of Speech,”Speech Communication, Octoher 1988, p. 305-3160
[30] Chen, J.-H. and A. Gersho, "Real-Time Vector APC Speech Coding at 4800 bps with Adaptive Postfiltering,”Proceedings of ICASS, 1987, p. 2185-21880
[31] Cox, R, W. Klei jn and P. Kroon, "Robust CELP Coders for Noisy Background and Noisy Channels,”Proceedings of ICASSP, 1989, p. 739-742e
[32] Trancoso, I. and B. Atal, "Eff icient Search Procedures for Selecting the Optimum Innovation in Stochastic Coders,”IEEE Transaction on Acoustics, Speech, and Signal Processing, March 1990, p. 385-3960
[33] F. K. Soong and B-H Juang, "Line Spectrum Pair(LSP) and Speech Data Compression,, Proc. ICASSP 84, pp. 1. 10. 1-1. 10. 4
[34] N.Sugamura and N.Farvardin, "Quantizer Design in LSP Speech
Analysis synthesis",IEEE Journal on Selected Areas in Communications,Vol 6 No. 2 February 1988e
[35] M. Serizawa,,’ Joint Optimization of LPC and Closed loop Pitch Parameters in CELP Coders”IEEE Signal Processing Letters,Vol 6, N0.3 March 19990
[36] R. D. De Iacovo and D. Sereno, “Embedded CELP coding for variable bit-rate between 6.4 and 9.6 kb/s,” in Proc. ICASSP’91, pp.681–683,1991.
[37] A. L. Guyader and E. Boursicaut, “Embedded wideband VSELP speech coding with optimized codebooks,” in Proc. IEEE Workshop on speech coding, pp.15–16, 1993.
[38] ITU-T Recommendation G.722, “7 kHz audio-coding within 64kbit/s,” 1988.
[39] J. Suzuki and N. Ohta, “Variable rate coding scheme for audio signal with subband and embedded coding techniques,” in Proc. ICASSP’89, pp.188–191, 1989.
[40] T. Nomura, M. Iwadare, M. Serizawa and K. Ozawa, “A bitrate and bandwidth scalable CELP coder,” in Proc. ICASSP’98, pp.341–344,1998.
[41] ISO/JTC1, “Final draft international standard FDIS 14496-3: Coding of audiovisual objects, part 3: Audio,” ISO/JTC1 SC29 WG11, 1998.
[42] ITU-T Recommendation G.729, “Coding of speech at 8-kbit/s using conjugate structure algebraic code-excited linear prediction (CSACELP),”1996.
[43] ITU-T Recommendation G.729–Annex D, “6.4 kbit/s CS-ACELPspeech coding algorithm,” 1998.
[44] A. Kataoka, S. Kurihara, S, Sasaki and S. Hayashi, “A 16-kbit/s wideband speech codec scalable with G.729,” in Proc. EUROSPEECH,pp.1491–1494, 1997.
[45] R. Drogo de Iacovo, R. Montagna, F. Perosino, and D. Sereno, “Some Experiments of 7 kHz Audio Coding at 16 kbit/s,” in Proc. IEEE Int. Conf. Acoust., Speech,Signal Processing, (Glasgow), pp. 192–195, 1989.
[46] G. Roy and P. Kabal, “Wideband CELP Speech Coding at 16 kbits/sec,” in Proc. IEEE Int. Conf. Acoust.,Speech, Signal Processing, (Toronto), pp. 17–20, 1991.
[47] A. Ubale and A. Gersho, “A Multi-band CELP Wideband Speech Coder,” in Proc. IEEE Int. Conf. Acoust.,Speech, Signal Processing, (Munich), pp. 1367–1370,
1997.
[48] Y. M. Cheng, D. O’Shaughnessy, and P. Mermelstein,“Statistical Recovery of Wideband Speech from Narrowband Speech,” IEEE Trans. Speech and Audio Processing,vol. 2, pp. 544–548, Oct. 1994.
[49] C. F. Chan and W. Hui, “Quality Enhancement of Narrow-band CELP-coded Speech via Wideband Harmonic Resynthesis,” in Proc. IEEE Int. Conf. Acoust.,Speech, Signal Processing, (Munich), pp. 1187–1190,1997.
[50] J. Epps and W. H. Holmes, “Speech Enhancement using STC-based Bandwidth Extension,” in Proc. ICSLP,(Sydney), pp. 519–522, 1998.
[51] N. Enbom and W. B. Kleijn, “Bandwidth Expansion of Speech Based on Vector Quantization of the Mel Frequency Cepstral Coefficients,” in Proc. IEEE Workshop on Speech Coding, pp. 171–173, 1999.
[52] A. V. McCree and T. P. Barnwell III, “Improving the Performance of a Mixed Excitation LPC Vocoder in Acoustic Noise,” in Proc. IEEE Int. Conf. Acoust.,Speech, Signal Processing, (San Francisco), pp. II137–II140, 1992.