第3章 话音编码

来源:互联网 发布:淘宝网运行模式分析 编辑:程序博客网 时间:2024/06/05 00:44

第3章 话音编码

  随着数字电话和数据通信容量日益增长的迫切要求,而又不希望明显降低传送话音信号的质量,除了提高通信带宽之外,对话音信号进行压缩是提高通信容量的重要措施。另一个可说明话音数据压缩的重要性的例子是,用户无法使用28.8 kb/s的调制解调器来接收因特网上的64 kb/s话音数据流,这是一种单声道、8位/样本、采样频率为8 kHz的话音数据流。ITU-TSS为此制定了并且继续制定一系列话音(speech)数据编译码标准。其中,G.711使用μ率和A率压缩算法,信号带宽为3.4 kHz,压缩后的数据率为64 kb/s;G.721使用ADPCM压缩算法,信号带宽为3.4 kHz,压缩后的数据率为32 kb/s;G.722使用ADPCM压缩算法,信号带宽为7 kHz,压缩后的数据率为64 kb/s。在这些标准基础还制定了许多话音数据压缩标准,例如G.723,G.723.1,G.728,G.729和G.729.A等。
  本章将重点介绍话音编码的基本思想,而详细计算则留给那些开发和具体设计编译码器软硬件的读者去研究,并可从本章所列的参考文献和站点中找到你满意的文献资料。

3.1 话音编码概要

3.1.1 话音波形的特性

  了解话音波形的基本特性对声音数据的压缩编码、声音的识别和文本-声音的转换等都有很重要的意义。
  当肺部中的受压空气沿着声道通过声门发出时就产生了话音。普通男人的声道从声门到嘴的平均长度约为17厘米,这个事实反映在声音信号中就相当于在1 ms数量级内的数据具有相关性,这种相关称为短期相关(short-term correlation)。声道也被认为是一个滤波器,这个滤波器有许多共振峰,这些共振峰的频率受随时间变化的声道形状所控制,例如舌的移动就会改变声道的形状。许多话音编码器用一个短期滤波器(short term filter)来模拟声道。但由于声道形状的变化比较慢,模拟滤波器的传递函数的修改不需要那么频繁,典型值在20 ms左右。
  压缩空气通过声门激励声道滤波器,根据激励方式不同,发出的话音分成三种类型:浊音(voiced sounds),清音(unvoiced sounds)和爆破音(plosive sounds)。
  1.浊音
  浊音是一种称为准周期脉冲(quasi-periodic pulses)激励所发出的音,这种准周期脉冲是在声门打开然后关闭时中断肺部到声道的气流所产生的脉冲。声门打开和关闭的速率呈现为音节(pitch)的大小,它的速率可通过改变声道的形状和空气的压力来调整。浊音表现出在音节上有高度的周期性,其值在2~20 ms之间,这个周期性称为长期周期性(long-term periodicity)。图3-01表示了某一浊音段的波形,音节周期大约8 ms。这一浊音段的功率谱密度(power spectral density,PSD)如图3-02所示。


图3-01 浊音段的波形举例

图3-02 浊音段的功率普密度举例

  2. 清音
  清音是由不稳定气流激励所产生的,这种气流是在声门处在打开状态下强制空气在声道里高速收缩产生的,如图3-03所示。这一清音段的功率谱密度PSD和图3-04所示。


图3-03 清音段的波形举例

图3-04 清音段的功率谱密度举例

  3. 爆破音
  爆破音是在声道关闭之后产生的压缩空气然后突然打开声道所发出的音。
  某些音不能归属到上述三种音中的任何一种,例如在声门振动和声道收缩同时出现的情况下产生的摩擦音,这种音称为混合音。
  虽然各种各样的话音都有可能产生,但声道的形状和激励方式的变化相对比较慢,因此话音在短时间周期(20 ms的数量级)里可以被认为是准定态(quasi-stationary)的,也就是说基本不变的。从图3-01, -02, -03和-04中可以看到话音信号显示出的高度周期性,这是由于声门的准周期性的振动和声道的谐振所引起的。话音编码器就是企图揭示这种周期性,目的是为了减少数据率而又尽可能不牺牲声音的质量。

3.1.2 三种话音编译码器

  通常把已有的话音编译码器分成以下三种类型:波形编译码器(waveform codecs),音源编译码器(source codecs)和混合编译码器(hybrid codecs)。一般来说,波形编译码器的话音质量高,但数据率也很高;音源编译码器的数据率很低,产生的合成话音的音质有待提高;混合编译码器使用音源编译码技术和波形编译码技术,数据率和音质介于它们之间。图3-05表示了目前这三种编译码器的话音质量和数据率的关系。


图3-05 普通编译码器的音质与数据率

  1. 波形编译码器
  波形编译码的想法是,不利用生成话音信号的任何知识而企图产生一种重构信号,它的波形与原始话音波形尽可能地一致。一般来说,这种编译码器的复杂程度比较低,数据速率在16 kb/s以上,质量相当高。低于这个数据速率时,音质急剧下降。
  最简单的波形编码是脉冲编码调制(pulse code modulation,PCM),它仅仅是对输入信号进行采样和量化。典型的窄带话音带宽限制在4 kHz,采样频率是8 kHz。如果要获得高一点的音质,样本精度要用12位,它的数据率就等于96 kb/s,这个数据率可以使用非线性量化来降低。例如,可以使用近似于对数的对数量化器(logarithmic quantizer),使用它产生的样本精度为8位,它的数据率为64 kb/s时,重构的话音信号几乎与原始的话音信号没有什么差别。这种量化器在20世纪80年代就已经标准化,而且直到今天还在广泛使用。在北美的压扩(companding)标准是μ律(μ-law),在欧洲的压扩标准是A律(A-law)。它们的优点是编译码器简单,延迟时间短,音质高。但不足之处是数据速率比较高,对传输通道的错误比较敏感。
  在话音编码中,一种普遍使用的技术叫做预测技术,这种技术是企图从过去的样本来预测下一个样本的值。这样做的根据是认为在话音样本之间存在相关性。如果样本的预测值与样本的实际值比较接近,它们之间的差值幅度的变化就比原始话音样本幅度值的变化小,因此量化这种差值信号时就可以用比较少的位数来表示差值。这就是差分脉冲编码调制(differential pulse code modulation,DPCM)的基础—对预测的样本值与原始的样本值之差进行编码。
  这种编译码器对幅度急剧变化的输入信号会产生比较大的噪声,改进的方法之一就是使用自适应的预测器和量化器,这就产生了一种叫做自适应差分脉冲编码调制(adaptive differential PCM,ADPCM)。在20世纪80年代,国际电话与电报顾问委员会 (International Telephone and Telegraph Consultative Committee,CCITT),现改为国际电信联盟-远程通信标准部(International Telecommunications Union-Telecommunications Standards Section,ITU-TSS ),就制定了数据率为32 kb/s的ADPCM标准,它的音质非常接近64 kb/s的PCM编译码器,随后又制定了数据率为16,24和40 kb/s的ADPCM标准。
  上述的所有波形编译码器完全是在时间域里开发的,在时域里的编译码方法称为时域法(time domain approach)。在开发波形编译码器中,人们还使用了另一种方法,叫做频域法(frequency domain approach)。例如,在子带编码(sub-band coding,SBC)中,输入的话音信号被分成好几个频带(即子带),变换到每个子带中的话音信号都进行独立编码,例如使用ADPCM编码器编码,在接收端,每个子带中的信号单独解码之后重新组合,然后产生重构话音信号。它的优点是每个子带中的噪声信号仅仅与该子带使用的编码方法有关系。对听觉感知比较重要的子带信号,编码器可分配比较多的位数来表示它们,于是在这些频率范围里噪声就比较低。对于其他的子带,由于对听觉感知的重要性比较低,允许比较高的噪声,于是编码器就可以分配比较少的位数来表示这些信号。自适应位分配的方案也可以考虑用来进一步提高音质。子带编码需要用滤波器把信号分成若干个子带,这比使用简单的ADPCM编译码器复杂,而且还增加了更多的编码时延。即使如此,与大多数混合编译码器相比,子带编译码的复杂性和时延相对来说还是比较低的。
  另一种频域波形编码技术叫做自适应变换编码(adaptive transform coding,ATC)。这种方法使用快速变换(例如离散余弦变换)把话音信号分成许许多多的频带,用来表示每个变换系数的位数取决于话音谱的性质,获得的数据率可低到16 kb/s。
  2. 音源编译码器
  音源编译码的想法是企图从话音波形信号中提取生成话音的参数,使用这些参数通过话音生成模型重构出话音。针对话音的音源编译码器叫做声码器(vocoder)。在话音生成模型中,声道被等效成一个随时间变化的滤波器,叫做时变滤波器(time-varying filter),它由白噪声—无声话音段激励,或者由脉冲串——有声话音段激励。因此需要传送给解码器的信息就是滤波器的规格、发声或者不发声的标志和有声话音的音节周期,并且每隔10~20 ms更新一次。声码器的模型参数既可使用时域的方法也可以使用频域的方法确定,这项任务由编码器完成。
  这种声码器的数据率在2.4 kb/s左右,产生的语音虽然可以听懂,但其质量远远低于自然话音。增加数据率对提高合成话音的质量无济于事,这是因为受到话音生成模型的限制。尽管它的音质比较低,但它的保密性能好,因此这种编译码器一直用在军事上。
  3. 混合编译码
  混合编译码的想法是企图填补波形编译码和音源编译码之间的间隔。波形编译码器虽然可提供高话音的质量,但数据率低于16 kb/s的情况下,在技术上还没有解决音质的问题;声码器的数据率虽然可降到2.4 kb/s甚至更低,但它的音质根本不能与自然话音相提并论。为了得到音质高而数据率又低的编译码器,历史上出现过很多形式的混合编译码器,但最成功并且普遍使用的编译码器是时域合成-分析(analysis-by-synthesis,AbS)编译码器。这种编译码器使用的声道线性预测滤波器模型与线性预测编码(linear predictive coding,LPC)使用的模型相同,不使用两个状态(有声/无声)的模型来寻找滤波器的输入激励信号,而是企图寻找这样一种激励信号,使用这种信号激励产生的波形尽可能接近于原始话音的波形。AbS编译码器由Atal和Remde在1982年首次提出,并命名为多脉冲激励(multi-pulse excited,MPE)编译码器,在此基础上随后出现的是等间隔脉冲激励(regular-pulse excited,RPE)编译码器、码激励线性预测CELP(code excited linear predictive)编译码器和混合激励线性预测(mixed excitation linear prediction,MELP)等编译码器。
  AbS编译码器的一般结构如图3-06所示。


(a) 编码器


(b) 译码器
图3-06 AbS编译码器的结构

  AbS编译码器把输入话音信号分成许多帧(frames),一般来说,每帧的长度为20 ms。合成滤波器的参数按帧计算,然后确定滤波器的激励参数。从图3-06(a)可以看到,AbS编码器是一个负反馈系统,通过调节激励信号u(n)可使话音输入信号s(n)与重构的话音信号之差为最小,也就是重构的话音与实际的话音最接近。这就是说,编码器通过“合成”许多不同的近似值来“分析”输入话音信号,这也是“合成-分析编码器”名称的来由。在表示每帧的合成滤波器的参数和激励信号确定之后,编码器就把它们存储起来或者传送到译码器。在译码器端,激励信号馈送给合成滤波器,合成滤波器产生重构的话音信号,如图3-06(b)所示。
  合成滤波器通常使用全极点(all pole)的短期(short-term)线性滤波器,它的函数如:
  
其中
  
  是预测误差滤波器,这个滤波器是按照这样的原则确定的:当原始话音段通过该滤波器时产生的残留信号的能量最小。滤波器的极点数的典型值等于10。这个滤波器企图去模拟由于声道作用而引入的话音相关性。
  合成滤波器也可以包含音节(pitch)滤波器,用来模拟话音中出现的长期预测。MPE和RPE编译码器一般不使用音节滤波器,对于CELP编译码器,音节滤波器则显得非常重要。
  图3-06中的“误差加权”方框用来塑造误差信号谱的形状,目的是减少误差信号的主观响度。这样做的想法是,在话音信号能量很高的频段中,误差信号至少有部分能够被高能量的话音掩蔽掉。
  AbS编译码器的性能与如何选择激励合成滤波器的波形u(n)有很大关系。从概念上说,可把每一种可能的波形输送给合成滤波器试试看,这种激励信号将会产生什么样的重构话音信号,它和原始话音信号之间的误差如何变化,然后选择产生最小加权误差的激励信号,并把它作为译码器中的合成滤波器的驱动信号。由于编码器是一个闭环系统,因此可以获得比较高的音质而数据率又比较低。但由于可能的激励信号的数目巨大,因此需要有某种方法来减少计算的复杂性而音质又不会牺牲太大。
  MPE,RPE和CELP编译码器之间的差别在于所使用的激励信号的表示方法。在MPE中,对每帧话音所用的激励信号u(n)是固定数目的脉冲,在一帧中脉冲的位置和幅度必须由编码器来确定,这在理论上可以找到很好的值,但实际上不太可能,因为计算太复杂。因此在实际上就使用次佳方法,一般来说,每5 ms使用4个脉冲,在数据率为10 kb/s时可以获得好的重构话音。
  像MPE那样,RPE编译码器使用固定间隔的脉冲,于是编码器就只需要确定第一个激励脉冲的位置和所有其他脉冲的幅度,所需要的脉冲位置信息也就可以减少,而脉冲的数目则比MPE使用的数目多。数据率在10 kb/s左右时,每5 ms可使用10个脉冲,比MPE多6个,产生比MPE音质高一些的重构话音。然而RPE仍然显得比较复杂,因此欧洲的GSM移动电话系统使用了一个带长期预测的简化了的RPE编译码器,数据率为13 kb/s。
  虽然MPE和RPE编译码器在10 kb/s左右的数据率下可提供好的音质,但数据率低于10 kb/s情况下提供的音质还不能接受,这是因为它们需要提供大量有关激励脉冲的位置和幅度信息。对要求音质好而数据率又低于10 kb/s的编译码器,现在普遍使用的算法是1985年由Schroeder和Atal提出的CELP算法。与MPE和RPE的不同之处是,CELP使用的激励信号是量化矢量。激励信号由一个矢量量化大码簿的表项给出,还有一个增益项用来扩展它的功率。典型的码簿索引有10位,就是有1024个表项的码簿,增益用5位表示。因此激励信号的位数可以减少到15位,这与GSM RPE编译码器中使用的47位相比减少了32位。
  CELP最初使用的码簿包含白高斯序列(white Gaussian sequences),这是因为作了这样的假设:长期预测和短期预测能够从话音信号中去除几乎所有的冗余度,产生随机的像噪声那样的残留信号。试验也显示出短期概率密度函数几乎是高斯状的。Schroeder和Atal发现,对长期和短期滤波器使用这样的码簿能够产生高质量的话音。然而,在合成-分析过程中要选择使用哪一个码簿表项,这就意味每一个激励序列都要传送给合成滤波器,看看重构话音与原始话音的近似程度。这也就是说原始CELP编译码器的计算量太大,难以实时执行。从1985年开始,在简化CELP的码簿结构方面做了大量的工作,使用数字信号处理(DSP)芯片提高执行速度方面也取得了很大的进展,因此现在在低成本的单片DSP上实时执行CELP算法相对容易了,在CELP基础上制定了好几个重要的话音编码标准,例如美国的“Department of Defence(DoD) 4.8 kb/s codec”标准和CCITT的“low-delay 16 kb/s codec”标准。
  CELP编译码器在话音通信中取得了很大成功,话音的速率在4.8 kb/s~16 kb/s之间。近年来对运行在4.8 kb/s以下的编译码器作了大量的研究工作,其目标是开发运行在2.4 kb/s或者更低数据率下的编译码器。
  通过对话音段进行分类,例如分成浊音帧、清音帧和过渡帧,CELP编译码器的结构可以进一步得到改善,不同类型的话音段使用专门设计的编码器进行编码。例如,对于浊音帧编码器不使用长期预测,而对于清音帧使用长期预测就显得特别重要。这种按话音类型设计的编译码器在数据率为2.4 kb/s下呈现的音质已经得到认可。多带激励MBE(multi-band excitation)编译码器把频域中的某些频段看成是浊音频段,其他频段看成是清音频段。它们传送每帧的音节周期、频谱的幅度和相位信息以及浊音/清音的判决。这种编译码器经过改造以后也显示出了它的潜力,在低数据率下可提供认可的音质。
  在数据率为2.4 kb/s~64 kb/s的范围里,部分编码器的MOS分数大致如表3-01所示。

表3-01 部分编码器的MOS分

编码器

MOS分

 64 kb/s脉冲编码调制(PCM)

4.3

 32 kb/s自适应差分脉冲编码调制(ADPCM)

4.1

 16 kb/s低时延码激励线性预测编码(LD-CELP)

4.0

 8 kb/s码激励线性预测编码(CELP)

3.7

 3.8 kb/s码激励线性预测编码(CELP)

3.0

 2.4 kb/s线性预测编码(LPC)

2.5

3.2 脉冲编码调制(PCM)

3.2.1 PCM的概念

  脉冲编码调制(pulse code modulation,PCM)是概念上最简单、理论上最完善的编码系统,是最早研制成功、使用最为广泛的编码系统,但也是数据量最大的编码系统。
  PCM的编码原理比较直观和简单,它的原理框图如图3–07所示。在这个编码框图中,它的输入是模拟声音信号,它的输出是PCM样本。图中的“防失真滤波器”是一个低通滤波器,用来滤除声音频带以外的信号;“波形编码器”可暂时理解为“采样器”,“量化器”可理解为“量化阶大小(step-size)”生成器或者称为“量化间隔”生成器。


图3-07 PCM编码框图

  在第2章介绍声音数字化的时候,谈到声音数字化有两个步骤:第一步是采样,就是每隔一段时间间隔读一次声音的幅度;第二步是量化,就是把采样得到的声音信号幅度转换成数字值。但那时并没有涉及如何进行量化。量化有好几种方法,但可归纳成两类:一类称为均匀量化,另一类称为非均匀量化。采用的量化方法不同,量化后的数据量也就不同。因此,可以说量化也是一种压缩数据的方法。

3.2.2 均匀量化

  如果采用相等的量化间隔对采样得到的信号作量化,那么这种量化称为均匀量化。均匀量化就是采用相同的“等分尺”来度量采样得到的幅度,也称为线性量化,如图3-08所示。量化后的样本值Y和原始值X的差E=Y-X称为量化误差或量化噪声。


图3-08 均匀量化

  用这种方法量化输入信号时,无论对大的输入信号还是小的输入信号一律都采用相同的量化间隔。为了适应幅度大的输入信号,同时又要满足精度要求,就需要增加样本的位数。但是,对话音信号来说,大信号出现的机会并不多,增加的样本位数就没有充分利用。为了克服这个不足,就出现了非均匀量化的方法,这种方法也叫做非线性量化。

3.2.3 非均匀量化

  非线性量化的基本想法是,对输入信号进行量化时,大的输入信号采用大的量化间隔,小的输入信号采用小的量化间隔,如图3-09所示。这样就可以在满足精度要求的情况下用较少的位数来表示。声音数据还原时,采用相同的规则。
  在非线性量化中,采样输入信号幅度和量化输出数据之间定义了两种对应关系,一种称为 m 律压扩(companding)算法,另一种称为A律压扩算法。

图3-09 非均匀量化

3.2.4 m 律压扩

  m 律(m -Law)压扩(G.711)主要用在北美和日本等地区的数字电话通信中,按下面的式子确定量化输入和输出的关系:
  
式中:x为输入信号幅度,规格化成-1≤x≤1 ;
  sgn(x)为x的极性;
  m 为确定压缩量的参数,它反映最大量化间隔和最小量化间隔之比,取100 £ m £ 500。
  由于m 律压扩的输入和输出关系是对数关系,所以这种编码又称为对数PCM。具体计算时,用m=255,把对数曲线变成8条折线以简化计算过程。详细计算请看参考文献[17]。

3.2.5 A律压扩

  A律(A-Law)压扩(G.711)主要用在欧洲和中国大陆等地区的数字电话通信中,按下面的式子确定量化输入和输出的关系:
       0 £ |x| £ 1/A
     1/A < |x| £ 1
  式中:x为输入信号幅度,规格化成 -1 £ x £ 1;
  sgn(x)为x的极性;
  A为确定压缩量的参数,它反映最大量化间隔和最小量化间隔之比。
  A律压扩的前一部分是线性的,其余部分与m 律压扩相同。具体计算时,A=87.56,为简化计算,同样把对数曲线部分变成折线。详细计算请看参考文献[17]。
  对于采样频率为8 kHz,样本精度为13位、14位或者16位的输入信号,使用m 律压扩编码或者使用A律压扩编码,经过PCM编码器之后每个样本的精度为8位,输出的数据率为64 kb/s。这个数据就是CCITT推荐的G.711标准:话音频率脉冲编码调制(Pulse Code Modulation (PCM) of Voice Frequences)。

3.3 PCM在通信中的应用

  PCM编码早期主要用于话音通信中的多路复用。一般来说,在电信网中传输媒体费用约占总成本的65%,设备费用约占成本的35%,因此提高线路利用率是一个重要课题。提高线路利用率通常用下面两种方法:
  1. 频分多路复用 (frequency-division multiplexing,FDM)
  这种方法是把传输信道的频带分成好几个窄带,每个窄带传送一路信号。例如,一个信道的频带为1400 Hz,把这个信道分成4个子信道(subchannels):820~990 Hz, 1230~1400 Hz, 1640~1810 Hz和2050~2220 Hz,相邻子信道间相距240 Hz,用于确保子信道之间不相互干扰。每对用户仅占用其中的一个子信道。这是模拟载波通信的主要手段。
  2. 时分多路复用(time-division multiplexing,TDM)
  这种方法是把传输信道按时间来分割,为每个用户指定一个时间间隔,每个间隔里传输信号的一部分,这样就可以使许多用户同时使用一条传输线路。这是数字通信的主要手段。例如,话音信号的采样频率f=8000 Hz,它的采样周期=125 m s,这个时间称为1帧(frame)。在这个时间里可容纳的话路数有两种规格:24路制和30路制。图3-10表示了24路制的结构。


图3-10 24路PCM的帧结构

  24路制的重要参数如下:

   ●每秒钟传送8000帧,每帧125 m s。
   ●12帧组成1复帧(用于同步)。
   ●每帧由24个时间片(信道)和1位同步位组成。
   ●每个信道每次传送8位代码,1帧有24 × 8 +1=193位(位)。
   ●数据传输率R=8000×193=1544 kb/s。
   ●每一个话路的数据传输率=8000×8=64 kb/s。
  30路制的重要参数如下:
   ●每秒钟传送8000帧,每帧125 ms。
   ●16帧组成1复帧(用于同步)。
   ●每帧由32个时间片(信道)组成。
   ●每个信道每次传送8位代码。
   ●数据传输率:R=8000×32×8=2048 kb/s。
   ●每一个话路的数据传输率=8000×8=64 kb/s。
  时分多路复用(TDM)技术已广泛用在数字电话网中,为反映PCM信号复用的复杂程度,通常用“群(group)”这个术语来表示,也称为数字网络的等级。PCM通信方式发展很快,传输容量已由一次群(基群)的30路(或24路),增加到二次群的120路(或96路),三次群的480路(或384路),……。图3-11表示二次复用的示意图。图中的N表示话路数,无论N=30还是N=24,每个信道的数据率都是64 kb/s,经过一次复用后的数据率就变成2048 kb/s(N=30)或者1544 kb/s(N=24)。在数字通信中,具有这种数据率的线路在北美叫做T1远距离数字通信线,提供这种数据率服务的级别称为T1等级,在欧洲叫做E1远距离数字通信线和E1等级。T1/E1,T2/E2,T3/E3,T4/E4和T5/E5的数据率如表3-02所示。请注意,上述基本概念都是在多媒体通信中经常用到的。


图3-11 二次复用示意图

表3-02 多次复用的数据传输率

 

数字网络等级

T1/E1

T2/E2

T3/E3

T4/E4

T5/E5

美国

64 kb/s话路数

24

96

672

4.32

   

总传输率(Mb/s)

1.544

6.512

44.736

274.176

   

数字网络等级

1

2

3

4

5

欧洲

64 kb/s话路数

30

120

480

1920

7680

 

总传输率(Mb/s)

2.048

8.448

34.368

139.264

5600

日本

64 kb/s话路数

24

96

480

1440

   

总传输率(Mb/s)

1.544

6.312

32.064

97.728

 

3.4 增量调制与自适应增量调制

  由于DM编码的简单性,它已成为数字通信和压缩存储的一种重要方法,很多人对最早在1946年发明的DM系统做了大量的改进和提高工作。后来的自适应增量调制ADM系统采用十分简单的算法就能实现32 kb/s~48 kb/s的数据率,而且可提供高质量的重构话音,它的MOS评分可达到4.3分左右。

3.4.1 增量调制(DM)

  增量调制也称△调制(delta modulation,DM),它是一种预测编码技术,是PCM编码的一种变形。PCM是对每个采样信号的整个幅度进行量化编码,因此它具有对任意波形进行编码的能力;DM是对实际的采样信号与预测的采样信号之差的极性进行编码,将极性变成“0”和“1”这两种可能的取值之一。如果实际的采样信号与预测的采样信号之差的极性为“正”,则用“1”表示;相反则用“0”表示,或者相反。由于DM编码只须用1位对话音信号进行编码,所以DM编码系统又称为“1位系统”。
  DM波形编码的原理如图3-12所示。纵坐标表示“模拟信号输入幅度”,横坐标表示“编码输出”。用i表示采样点的位置,x[i]表示在i点的编码输出。输入信号的实际值用yi表示,输入信号的预测值用y[i+1]=y[i]±Δ表示。假设采用均匀量化,量化阶的大小为Δ,在开始位置的输入信号y0=0,预测值y[0]=0,编码输出x[0]=1。
  现在让我们看几个采样点的输出。在采样点i=1处,预测值y[1]=Δ,由于实际输入信号大于预测值,因此x[1]=1;… ;在采样点i=4处,预测值x[4] =4Δ,同样由于实际输入信号大于预测值,因此x[4]=1;其他情况依此类推。
  从图3-12中可以看到,在开始阶段增量调制器的输出不能保持跟踪输入信号的快速变化,这种现象就称为增量调制器的“斜率过载”(slope overload)。一般来说,当输入信号的变化速度超过反馈回路输出信号的最大变化速度时,就会出现斜率过载。之所以会出现这种现象,主要是反馈回路输出信号的最大变化速率受到量化阶大小的限制,因为量化阶的大小是固定的。
  从图3-12中还可以看到,在输入信号缓慢变化部分,即输入信号与预测信号的差值接近零的区域,增量调制器的输出出现随机交变的“0”和“1”。这种现象称为增量调制器的粒状噪声(granular noise),这种噪声是不可能消除的。


图3-12 DM波形编码示意图

  在输入信号变化快的区域,斜率过载是关心的焦点,而在输入信号变化慢的区域,关心的焦点是粒状噪声。为了尽可能避免出现斜率过载,就要加大量化阶Δ,但这样做又会加大粒状噪声;相反,如果要减小粒状噪声,就要减小量化阶Δ,这又会使斜率过载更加严重。这就促进了对自适应增量调制(adaptive delta modulation,ADM)的研究。

3.4.2 自适应增量调制(ADM)

  为了使增量调制器的量化阶Δ能自适应,也就是根据输入信号斜率的变化自动调整量化阶Δ的大小,以使斜率过载和粒状噪声都减到最小,许多研究人员研究了各种各样的方法,而且几乎所有的方法基本上都是在检测到斜率过载时开始增大量化阶Δ,而在输入信号的斜率减小时降低量化阶Δ。
  例如,宋(Song)在1971描述的自适应增量调制技术中提出:假定增量调制器的输出为1和0,每当输出不变时量化阶增大50%,使预测器的输出跟上输入信号;每当输出值改变时,量化阶减小50%,使粒状噪声减到最小,这种自适应方法使斜率过载和粒状噪声同时减到最小。
  又如,使用较多的另一种自适应增量调制器是由格林弗基斯(Greefkes)1970提出的,称为连续可变斜率增量调制(continuously variable slope delta modulation,CVSD)。它的基本方法是:如果连续可变斜率增量调制器(continuously variable slope delta modulator,CVSD)的输出连续出现三个相同的值,量化阶就加上一个大的增量,反之,就加一个小的增量。
  为了适应数字通信快速增长的需要,Motorola公司于80年代初期就已经开发了实现CVSD算法的集成电路芯片。如MC3417/MC3517和MC3418/MC3518,前者采用3位算法,后者采用4位算法。MC3417/MC3517用于一般的数字通信,MC3418/MC3518用于数字电话。MC3417/MC3418用于民用,MC3517/MC3518用于军用。

3.5 自适应差分脉冲编码调制

  G.711使用A律或μ律PCM方法对采样率为8 kHz的声音数据进行压缩,压缩后的数据率为64 kb/s。为了提高充分利用线路资源,而又不希望明显降低传送话音信号的质量,就要对它作进一步压缩,方法之一就是采用ADPCM。

3.5.1 自适应脉冲编码调制(APCM)的概念

  自适应脉冲编码调制(adaptive pulse code modulation,APCM)是根据输入信号幅度大小来改变量化阶大小的一种波形编码技术。这种自适应可以是瞬时自适应,即量化阶的大小每隔几个样本就改变,也可以是音节自适应,即量化阶的大小在较长时间周期里发生变化。
  改变量化阶大小的方法有两种:一种称为前向自适应(forward adaptation),另一种称为后向自适应(backward adaptation)。前者是根据未量化的样本值的均方根值来估算输入信号的电平,以此来确定量化阶的大小,并对其电平进行编码作为边信息(side information)传送到接收端。后者是从量化器刚输出的过去样本中来提取量化阶信息。由于后向自适应能在发收两端自动生成量化阶,所以它不需要传送边信息。前向自适应和后向自适应APCM的基本概念,如图3-13所示。图中的s(k)是发送端编码器的输入信号,sr(k)是接收端译码器输出的信号。


(a) 前向自适应

(b) 后向自适应
图3-13 APCM方块图

3.5.2 差分脉冲编码调制(DPCM)的概念

  差分脉冲编码调制DPCM(differential pulse code modulation)是利用样本与样本之间存在的信息冗余度来进行编码的一种数据压缩技术。差分脉冲编码调制的思想是,根据过去的样本去估算(estimate)下一个样本信号的幅度大小,这个值称为预测值,然后对实际信号值与预测值之差进行量化编码,从而就减少了表示每个样本信号的位数。它与脉冲编码调制(PCM)不同的是,PCM是直接对采样信号进行量化编码,而DPCM是对实际信号值与预测值之差进行量化编码,存储或者传送的是差值而不是幅度绝对值,这就降低了传送或存储的数据量。此外,它还能适应大范围变化的输入信号。
  差分脉冲编码调制的概念示于图3-14。图中,差分信号d(k)是离散输入信号s(k)和预测器输出的估算值se(k-1)之差。注意,se(k-1)是对s(k)的预测值,而不是过去样本的实际值。DPCM系统实际上就是对这个差值d(k)进行量化编码,用来补偿过去编码中产生的量化误差。DPCM系统是一个负反馈系统,采用这种结构可以避免量化误差的积累。重构信号sr(k)是由逆量化器产生的量化差分信号dq(k),与对过去样本信号的估算值se(k-1)求和得到。它们的和,即sr(k)作为预测器确定下一个信号估算值的输入信号。由于在发送端和接收se(k-1)端都使用相同的逆量化器和预测器,所以接收端的重构信号sr(k)可从传送信号I(k)获得。


图3-14 DPCM方块图

3.5.3 自适应差分脉冲编码调制(ADPCM)

  ADPCM(adaptive difference pulse code modulation)综合了APCM的自适应特性和DPCM系统的差分特性,是一种性能比较好的波形编码。它的核心想法是:①利用自适应的思想改变量化阶的大小,即使用小的量化阶(step-size)去编码小的差值,使用大的量化阶去编码大的差值,②使用过去的样本值估算下一个输入样本的预测值,使实际样本值和预测值之间的差值总是最小。它的编码简化框图如图3-15所示。
  接收端的译码器使用与发送端相同的算法,利用传送来的信号来确定量化器和逆量化器中的量化阶大小,并且用它来预测下一个接收信号的预测值。


图3-15 ADPCM方块图

3.5.4 G.721 ADPCM编译码器

  ADPCM是利用样本与样本之间的高度相关性和量化阶自适应来压缩数据的一种波形编码技术,CCITT为此制定了G.721推荐标准,这个标准叫做32 kb/s自适应差分脉冲编码调制——32 kb/s Adaptive Differential Pulse Code Modulation[7]。在此基础上还制定了G.721的扩充推荐标准,即G.723 —— Extension of Recommendation G.721 Adaptive Differential Pulse Code Modulation to 24 and 40 kb/s for Digital Circuit Multiplication Equipment Application,使用该标准的编码器的数据率可降低到40 kb/s和24 kb/s。
  CCITT推荐的G.721 ADPCM标准是一个代码转换系统。它使用ADPCM转换技术,实现64 kb/s A律或μ律PCM速率和32 kb/s速率之间的相互转换。G.721 ADPCM的简化框图如图3-16所示。


(a) ADPCM编码器


(b) ADPCM译码器
图3-16 G.721 ADPCM简化框图

  在图3-16(a)所示的编码器中,A律或μ律PCM输入信号转换成均匀的PCM。差分信号等于均匀的PCM输入信号与预测信号之差。“自适应量化器”用4位二进制数表示差分信号,但只用其中的15个数(即15个量级)来表示差分信号,这是为防止出现全“0”信号。“逆自适应量化器”从这4位相同的代码中产生量化差分信号。预测信号和这个量化差分信号相加产生重构信号。“自适应预测器”根据重构信号和量化差分信号产生输入信号的预测信号,这样就构成了一个负反馈回路。
  G.721 ADPCM编译码器的输入信号是G.711 PCM代码,采样率是8 kHz,每个代码用8位表示,因此它的数据率为64 kb/s。而G.721 ADPCM的输出代码是“自适应量化器”的输出,该输出是用4位表示的差分信号,它的采样率仍然是8 kHz,它的数据率为32 kb/s,这样就获得了2∶1的数据压缩。
  在图3-16(b)所示的译码器中,译码器的部分结构与编码器负反馈回路部分相同。此外,还包含有均匀PCM到A律或μ律PCM的转换部分,以及同步编码调整(synchronous coding adjustment)部分。设置同步(串行)编码调整的目的是为防止在同步串行编码期间出现的累积信号失真。

3.6 G.722 SB-ADPCM编译码器

  为了适应可视电话会议日益增长的迫切需要,1988年CCITT为此制定了G.722推荐标准,叫做“数据率为64 kb/s的7 kHz声音信号编码——7 kHz Audio-coding with 64 kb/s”[8][9]。这个标准把话音信号的质量由电话质量提高到AM无线电广播质量,而其数据传输率仍保持为64 kb/s。
  宽带话音是指带宽在50~7000 Hz的话音,这种话音在可懂度和自然度方面都比带宽为300~3400的话音有明显的提高,也更容易识别对方的说话人。

3.6.1 子带编码(SBC)

  子带编码(subband coding,SBC)的基本思想是:使用一组带通滤波器(band-pass filter,BPF)把输入音频信号的频带分成若干个连续的频段,每个频段称为子带。对每个子带中的音频信号采用单独的编码方案去编码。在信道上传送时,将每个子带的代码复合起来。在接收端译码时,将每个子带的代码单独译码,然后把它们组合起来,还原成原来的音频信号。子带编码的方块图如图3-17所示,图中的编码/译码器,可以采用ADPCM,APCM,PCM等。

图3-17 子带编码方块图

  采用对每个子带分别编码的好处有二个。第一,对每个子带信号分别进行自适应控制,量化阶(quantization step)的大小可以按照每个子带的能量电平加以调节。具有较高能量电平的子带用大的量化阶去量化,以减少总的量化噪声。第二,可根据每个子带信号在感觉上的重要性,对每个子带分配不同的位数,用来表示每个样本值。例如,在低频子带中,为了保护音调和共振峰的结构,就要求用较小的量化阶、较多的量化级数,即分配较多的位数来表示样本值。而话音中的摩擦音和类似噪声的声音,通常出现在高频子带中,对它分配较少的位数。
  音频频带的分割可以用树型结构的式样进行划分。首先把整个音频信号带宽分成两个相等带宽的子带:高频子带和低频子带。然后对这两个子带用同样的方法划分,形成4个子带。这个过程可按需要重复下去,以产生2K个子带,K为分割的次数。用这种办法可以产生等带宽的子带,也可以生成不等带宽的子带。例如,对带宽为4000 Hz的音频信号,当K=3时,可分为8个相等带宽的子带,每个子带的带宽为500 Hz。也可生成5个不等带宽的子带,分别为[0,500),[500,1000),[1000,2000),[2000,3000)和[3000,4000]。
  把音频信号分割成相邻的子带分量之后,用2倍于子带带宽的采样频率对子带信号进行采样,就可以用它的样本值重构出原来的子带信号。例如,把4000 Hz带宽分成4个等带宽子带时,子带带宽为1000 Hz,采样频率可用2000 Hz,它的总采样率仍然X是8000 Hz。
  由于分割频带所用的滤波器不是理想的滤波器,经过分带、编码、译码后合成的输出音频信号会有混迭效应。据有关资料的分析,采用正交镜象滤波器(quandrature mirror filter,QMF)来划分频带,混迭效应在最后合成时可以抵消。
  图3-18表示用QMF分割频带的子带编译码简化框图。图中表示用QMF把全带音频信号分割成两个等带宽子带的情况。hH(n)和hL(n)分别表示高通滤波器和低通滤波器,它们组成一对正交镜象滤波器。这两个滤波器也叫做分析滤波器。图3-18(b)是QMF简化的幅频特性。


(a) QMF分割频道方框图


(b) QMF幅频特性简化图

图3-18 采用QMF的子带编译码简化框图

  子带编码器SBC愈来愈受到重视。在中等速率的编码系统中,SBC的动态范围宽、音质高、成本低。使用子带编码技术的编译码器已开始用于话音存储转发(voice store-and-forward)和话音邮件,采用2个子带和ADPCM的编码系统也已由CCITT作为G.722标准向全世界推荐使用。

3.6.2 子带-自适应差分脉冲编码调制(SB-ADPCM)

  采样率为8 kHz、8位/样本、数据率为64 kb/s的G.711标准是CCITT为话音信号频率为300~3400 Hz制定的编译码标准,这属于窄带音频信号编码。现代的话音编码技术已经可以减少数据率,而又不致于显著降低音质。CCITT推荐的8 kHz采样率、4位/样本、32 kb/s的G.721标准,以及G.721的扩充标准G.723,都说明了话音压缩编码技术的进展。
  G.722是CCITT推荐的音频信号(audio)编码译码标准。该标准是描述音频信号带宽为7 kHz、数据率为64 kb/s的编译码原理、算法和计算细节。G.722的主要目标是保持64 kb/s的数据率,而音频信号的质量要明显高于G.711的质量。G.722标准把音频信号采样频率由8 kHz提高到16 kHz,是G.711 PCM采样率的2倍,因而要被编码的信号频率由原来的3.4 kHz扩展到7 kHz。这就使音频信号的质量有很大改善,由数字电话的话音质量提高到调幅(AM)无线电广播的质量。对话音信号质量来说,提高采样率并无多大改善,但对音乐一类信号来说,其质量却有很大提高。图3-19对窄带话音和宽带音频信道作了比较。G.722编码标准在音频信号的低频端把截止频率扩展到50 Hz,其目的是为进一步改善音频信号的自然度。


图3-19 窄带和宽带音频信道频率特性

  在端对端(end-to-end)的数字连接应用中,加到电话网上的回音(echo)音源并不十分强。然而,当把现存窄带通信链路和宽带会议系统相互连接时,这种连接就可能引入比较强的回音源。如果宽带信号端对端的延迟不加限制,回音控制就可能变得很困难。为了简化回音控制,G.722编译码器引入的延迟时间限制在4 ms以内。
  在某些应用场合中,也许希望从64 kb/s信道中让出一部分信道用来传送其它的数据。因此,G.722定了三种音频信号传送方式,如表3-03所示。北美洲的信息限制音频信号速率为56 kb/s,因此有8 kb/s的数据率用来传送附加数据。

表3-03运行方式

方式

7 kHz音频信号编码位速率

附加数据信道位速度

1

64 kb/s

0 kb/s

2

56 kb/s

8 kb/s

3

48 kb/s

16 kb/s

  G.722编译码系统采用子带自适应差分脉冲编码调制(sub-band adaptive differential pulse code modulation,SB-ADPCM)技术。在这个系统中,用正交镜象滤波器(QMF)把频带分割成两个等带宽的子带,分别是高频子带和低频子带。在每个子带中的信号都用ADPCM进行编码。图3-20是QMF的频率响应曲线,图3-21表示G.722的简化框图。低频带宽略大于常规的电话话音带宽。对高子带分配2位表示每个样本值,而低子带分配6位。因为64 kb/s的G.722标准主要还是针对宽带话音,其次才是音乐。


图3-20 QMF滤波器的频率响应特性


图3-21 7 kHz音频信号64 kb/s数据率的编译码方块图

3.7 线性预测编码(LPC)的概念

  线性预测编码(linear predictive coding,LPC)是一种非常重要的编码方法。从原理上讲,LPC是通过分析话音波形来产生声道激励和转移函数的参数,对声音波形的编码实际就转化为对这些参数的编码,这就使声音的数据量大大减少。在接收端使用LPC分析得到的参数,通过话音合成器重构话音。合成器实际上是一个离散的随时间变化的时变线性滤波器,它代表人的话音生成系统模型。时变线性滤波器既当作预测器使用,又当作合成器使用。分析话音波形时,主要是当作预测器使用,合成话音时当作话音生成模型使用。随着话音波形的变化,周期性地使模型的参数和激励条件适合新的要求。
  线性预测器是使用过去的P个样本值来预测现时刻的采样值x(n)。如图3-22所示,预测值可以用过去P个样本值的线性组合来表示:
  xpre(n) = -[a1x(n-1)+a2x(n-2)+……+apx(n-p)] =
  为方便起见,式中采用了负号。残差误差(residual error)即线性预测误差为
   e(n)=x(n)-xpre(n) =
  这是一个线性差分方程。
  在给定的时间范围里,如[n0,n1],使e(n)的平方和即β=[e(n)]2为最小,这样可使预测得到的样本值更精确。通过求解偏微分方程,可找到系数ai的值。如果把发音器官等效成滤波器,这些系数值就可以理解成滤波器的系数。这些参数不再是声音波形本身的值,而是发音器官的激励参数。在接收端重构的话音也不再具体复现真实话音的波形,而是合成的声音。


图3-22 预测概念

3.8 GSM编译码器简介

  除了ADPCM算法已经得到普遍应用之外,还有一种使用较普遍的波形声音压缩算法叫做GSM算法。GSM是Global System for Mobile communications的缩写,可译成全球数字移动通信系统。GSM算法是1992年柏林技术大学(Technical University Of Berlin)根据GSM协议开发的,这个协议是欧洲最流行的数字蜂窝电话通信协议。
  GSM的输入是帧(frame)数据,一帧(20毫秒)由采样频率为8 kHz的带符号的160个样本组成,每个样本为13位或者16位的线性PCM(linear PCM)码。GSM编码器可把一帧(160×16位)的数据压缩成260位的GSM帧,压缩后的数据率为1625字节,相当于13 kb/s。由于260位不是8位的整数倍,因此编码器输出的GSM帧为264位的线性PCM码。采样频率为8 kHz、每个样本为16位的未压缩的话音数据率为128 kb/s,使用GSM压缩后的数据率为:
    (264位×8000样本/秒)/160样本=13.2 千位/秒
  GSM的压缩比:128:13.2 = 9.7,近似于10:1。

练习与思考题

  1. 用自己的语言说出下面3种话音编译码器的基本想法。
    ① 波形编译码器,②音源编译码器,③混合编译码器
  2. 列出你所知道的话音编译码器的主要指标(至少2个)。
  3. 试说混合编译码器的发展过程。
  4. 什么叫做均匀量化?什么叫做非均匀量化?
  5. 什么叫做m 律压扩?什么叫做A律压扩?
  6. G.711标准定义的输出数据率是多少?T1的数据率是多少?T2的数据率是多少?
  7. 下图是DM编码器的原理图,如果你已经学过模拟电路和数字电路技术基础,请分析该电路是如何完成增量调制编码的。


DM编码器原理图

  1. 自适应脉冲编码调制(APCM)的基本思想是什么?
  2. 差分脉冲编码调制(DPCM)的基本思想是什么?
  3. 自适应差分脉冲编码调制(ADPCM)的两个基本思想是什么?

参考文献和站点

  • Jason Woodard. Speech Coding.
    http://www-mobile.ecs.soton.ac.uk/jason/speech_codecs/ (浏览日期:1999年1月30日)
  • Esin Darici Haritaoglu. Wideband Speech and Audio Coding.
    http://www.umiacs.umd.edu/~desin/Speech1/new.html (浏览日期:1999年1月30日)
  • 美国普渡大学课程:http://shay.ecn.purdue.edu/~ee649/ (浏览日期:1999年2月4日)
  • 通信器件:http://www.okisemi.com/public/nf/TelecomTables-1.html (浏览日期:1999年2月4日)
  • Thomas J. Lynch, Ph.D.. Data Compression Techniques and Application. Van Nostrand Reinhold Company,1985
  • Thomas W. Parsons. Voice and Speech Processing. McGraw-Hill Book Company. 1986
  • Sadaoki Furui. Digital Speech Processing, Synthesis, and Recognition. Marcel Dekker, INC.,1989
  • CCITT. Recommendation G.711, Pulse Code Modulation (PCM) of Voice Frequences, Blue Book, Vol.III, Fascicle III.4. 1988
  • CCITT. Recommendation G.721, 32 kb/s Adaptive Differential Pulse Code Modulation(ADPCM), Blue Book, Vol.III, Fascicle III.4. 1988
  • CCITT. Recommendation G.722, 7 kHz Audio Coding With 64 kb/s, Blue Book, Vol.III, Fascicle III.4. 1988
  • Paul Mermelstein, G.722, A New CCITT Coding Standard for Digital Transmission of Wideband Audio Signal. IEEE Communications Magazine,Vol.26, No.1,January 1988
  • CCITT. Recommendation G.723, Extensions of Recommendation G.721 ADPCM to 24 and 40 kb/s for DCME Application, Blue Book, Vol.III, Fascicle Ⅲ.4. 1988
  • CCITT. Recommendation, G.725, System Aspects for the use of the 7 kHz Audio codec with 64 kb/s, Blue Book, VolⅢ, Fascicle Ⅲ.4. 1988
  • CCITT. Study Group XV, Recommendation H.221 Frame Structure for a 64 to 1920 kb/s channel in Audiovisual Teleservices, Revised. 1990
  • J.Reimer, M.McMahan and M.Arjmand. 32 kb/s ADPCM with the TMS32010. Texas Instruments, 1986
  • Song, C., Garodnic, J., and Schilling, D.C.. A Variable&#0;&#0;Step-size Robust Delta Modulator. IEEE Trans. on Comm.Tech,Vol. COM-19, No.6,December 1971,pp1033~1044
  • 林福宗, 陆 达 编著. 多媒体与CD-ROM. 北京:清华大学出版社,1995.3,171-193
  • GSM技术介绍(浏览日期1999年1月):
    ① http://www.wpi.edu/~murti/mqp/2_2.html
    ② http://www.wpi.edu/~murti/mqp/contents.html
    ③ http://www.imt-2000.com/wcdma/wcdma/sub_tech/brochures/umts.htm
 

原创粉丝点击