第3章话音编码 水水水水*水水水水冰水水水水水水水水水水水客水水水水水水冰水水水水冰水水水水水水水水水水水水水冰水水水冰水水水水水水水水*水水冰水水水冰水 3.1话音编码概要 1话音波形的特性 3.1.2三种话音编译码器 3.2脉冲编码调制(PM 3.2.1PCM的概念 3.2.2均匀量化 3.2.3非均匀量化 3.2.4μ律压扩(G.711) 3.2.5A律压扩(G.711) 3.3PcM在通信中的应用 3.4增量调制与自适应增量调制 3.4.1增量调制(DMD 3.4.2自适应增量调制(ADMD 3.5自适应差分脉冲编码调制 3.5.1自适应脉冲编码调制(APCM)的概念 3.5.2差分脉冲编码调制(DPCM的概念 3.5.3自适应差分脉冲编码调制( ADPCM) 5.4G.721 ADPCM编译码器 3.6G.722SB- ADPCM编译码器 3.6.1子带编码(SBC) 3.6.2子带一自适应差分脉冲编码调制(SB- ADPCM) 3.7线性预测编码(PC)的概念 3.8GSM编译码器简介 练习与思考题 参考文献和站点 水水客水冰本水水水水水水水水水冰*客水水水水水水客水冰水水水水水水水水*水冰水水水水水水水客水冰客水冰水水水冰冰水水冰水水冰水水水冰本水冰 随着数字电话和数据通信容量日益增长的迫切要求,而又不希望明显降低传送话音信号 的质量,除了提高通信带宽之外,对话音信号进行压缩是提高通信容量的重要措施。另一个 可说明话音数据压缩的重要性的例子是,用户无法使用28.8kb/s的调制解调器来接收因特 网上的64kb/s话音数据流,这是一种单声道、8位/样本、采样频率为8kz的话音数据流。 ITU-TSS为此制定了并且继续制定一系列话音( speech)数据编译码标准。其中,G.711使用μ 率和A率压缩算法,信号带宽为3.4kHz,压缩后的数据率为64kb/s:G.721使用 ADPCM压缩 算法,信号带宽为3.4kz,压缩后的数据率为32kb/s;G.722使用 ADPCM压缩算法,信号带 宽为7kz,压缩后的数据率为64kb/s。在这些标准基础上还制定了许多话音数据压缩标准 例如G.723,G.723.1,G.728,G.729和G.729.A等。本章将重点介绍话音编码的基本思想 而详细计算则留给那些开发和具体设计编译码器软硬件的读者去研究,并可从本章所列的参 考文献和站点中找到你满意的文献资料 3.1话音编码概要 3.1.1话音波形的特性 了解话音波形的基本特性对声音数据的压缩编码、声音的识别和文本-声音的转换等都 有很重要的意义。 当肺部中的受压空气沿着声道通过声门发出时就产生了话音。普通男人的声道从声门到 嘴的平均长度约为17厘米,这个事实反映在声音信号中就相当于在1ms数量级内的数据具有 相关性,这种相关称为短期相关( short- term correlation)。声道也被认为是一个滤波器
第3章 话音编码 *************************************************************************** 3.1话音编码概要 3.1.1 话音波形的特性 3.1.2 三种话音编译码器 3.2 脉冲编码调制(PCM) 3.2.1 PCM的概念 3.2.2 均匀量化 3.2.3 非均匀量化 3.2.4 律压扩(G.711) 3.2.5 A律压扩(G.711) 3.3 PCM在通信中的应用 3.4 增量调制与自适应增量调制 3.4.1 增量调制(DM) 3.4.2 自适应增量调制(ADM) 3.5 自适应差分脉冲编码调制 3.5.1 自适应脉冲编码调制(APCM)的概念 3.5.2 差分脉冲编码调制(DPCM)的概念 3.5.3 自适应差分脉冲编码调制(ADPCM) 3.5.4 G.721 ADPCM编译码器 3.6 G.722 SB-ADPCM编译码器 3.6.1 子带编码(SBC) 3.6.2 子带-自适应差分脉冲编码调制(SB-ADPCM) 3.7 线性预测编码(LPC)的概念 3.8 GSM编译码器简介 练习与思考题 参考文献和站点 *************************************************************************** 随着数字电话和数据通信容量日益增长的迫切要求,而又不希望明显降低传送话音信号 的质量,除了提高通信带宽之外,对话音信号进行压缩是提高通信容量的重要措施。另一个 可说明话音数据压缩的重要性的例子是,用户无法使用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)。声道也被认为是一个滤波器
第3章话音编码 这个滤波器有许多共振峰,这些共振峰的频率受随时间变化的声道形状所控制,例如舌的移 动就会改变声道的形状。许多话音编码器用一个短期滤波器( short term filter)来模拟声 道。但由于声道形状的变化比较慢,模拟滤波器的传递函数的修改不需要那么频繁,典型值 在20ms左右。 压缩空气通过声门激励声道滤波器,根据激励方式不同,发出的话音分成三种类型:浊 音( voiced sounds),清音( unvoiced sounds)和爆破音( plosive sounds)。 1.浊音浊音是一种称为准周期脉冲( quasi-periodic pulses)激励所发出的音,这种准 周期脉冲是在声门打开然后关闭时中断肺部到声道的气流所产生的脉冲。声门打开和关闭的 速率呈现为音节( pitch)的大小,它的速率可通过改变声道的形状和空气的压力来调整。浊 音表现出在音节上有高度的周期性,其值在2~20ms之间,这个周期性称为长期周期性 (long- term periodicity)。图3-01表示了某一浊音段的波形,音节周期大约8ms。这一浊 音段的功率谱密度( power spectral density,PSD)·如图3-02所示 0 2000 4000 10 图301浊音段的波形举例 1假设函数x()具有下面的特性 x(O)=」xO)≤7 该函数在(-∞,+∞)范围里的平均功率表示为 x2(1)k F(o, r) do 右端的被积函数称为x(m)的平均功率谱密度,简称功率谱密度,并记为 S,(o)=lim F,(O, T) 其中,F2(O,T)=x()ed为xr()的付里叶变换
第3章 话音编码 2 这个滤波器有许多共振峰,这些共振峰的频率受随时间变化的声道形状所控制,例如舌的移 动就会改变声道的形状。许多话音编码器用一个短期滤波器(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)1如图3-02所示。 图3-01 浊音段的波形举例 1 假设函数 x(t) 具有下面的特性: t T x t t T x t T 0, ( ), ( )= 该函数在 (−,+) 范围里的平均功率表示为 F T d T x t dt T x T T T T 2 2 ( , ) 2 1 lim 2 1 ( ) 2 1 lim + → − − →+ = 右端的被积函数称为 x(t) 的平均功率谱密度,简称功率谱密度,并记为 2 ( , ) 2 1 ( ) lim F T T S x T x →+ = 其中, F T x t e dt T T j t x − − = (, ) ( ) 为 x (t) T 的付里叶变换
第3章话音编码 03001000150020002500300035004000 频李(Hx) 图3-02浊音段的功率谱密度举例 2.清音清音是由不稳定气流激励所产生的,这种气流是在声门处在打开状态下强制空 气在声道里高速收缩产生的,如图3-03所示。这一清音段的功率谱密度PSD和图3-04所示 体w内 0 800 3-03清音段的波形举例
第3章 话音编码 3 图3-02 浊音段的功率谱密度举例 2. 清音 清音是由不稳定气流激励所产生的,这种气流是在声门处在打开状态下强制空 气在声道里高速收缩产生的,如图3-03所示。这一清音段的功率谱密度PSD和图3-04所示。 图3-03 清音段的波形举例
第3章话音编码 00 10 05001000150020002500300035004000 频李(Hx) 图3-04清音段的功率谱密度举例 3.爆破音爆破音是在声道关闭之后产生的压缩空气然后突然打开声道所发出的音。 某些音不能归属到上述三种音中的任何一种,例如在声门振动和声道收缩同时出现的情 况下产生的摩擦音,这种音称为混合音。 虽然各种各样的话音都有可能产生,但声道的形状和激励方式的变化相对比较慢,因此 话音在短时间周期(20ms的数量级)里可以被认为是准定态( quasI- stationary)的,也就是 说基本不变的。从图3-01,-02,-03和04中可以看到话音信号显示出的高度周期性,这是 由于声门的准周期性的振动和声道的谐振所引起的。话音编码器就是企图揭示这种周期性 目的是为了减少数据率而又尽可能不牺牲声音的质量。 3.1.2三种话音编译码器 通常把已有的话音编译码器分成以下三种类型:波形编译码器( waveform codecs),音 源编译码器( source codecs)和混合编译码器( hybrid codecs)。一般来说,波形编译码器的 话音质量高,但数据率也很高;音源编译码器的数据率很低,产生的合成话音的音质有待提 高:混合编译码器使用音源编译码技术和波形编译码技术,数据率和音质介于它们之间。图 3-05表示了目前这三种编译码器的话音质量和数据率的关系 话音质量 波形评码器 根合瑞译码器 音源骟译码器 位速率bi 图3-05普通编译码器的音质与数据率
第3章 话音编码 4 图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 普通编译码器的音质与数据率
第3章话音编码 1.波形编译码器 波形编译码的想法是,不利用生成话音信号的任何知识而企图产生一种重构信号,它的 波形与原始话音波形尽可能地一致。一般来说,这种编译码器的复杂程度比较低,数据速率 在16kb/s以上,质量相当高。低于这个数据速率时,音质急剧下降。 最简单的波形编码是脉冲编码调制( pulse code modulation,PCM,它仅仅是对输入信 号进行采样和量化。典型的窄带话音带宽限制在4kHz,采样频率是8kHz。如果要获得高 点的音质,样本精度要用12位,它的数据率就等于96kb/s,这个数据率可以使用非线性量 化来降低。例如,可以使用近似于对数的对数量化器( logar thmic quantizer),使用它产 生的样本精度为8位,它的数据率为64kb/s时,重构的话音信号几乎与原始的话音信号没有 什么差别。这种量化器在20世纪80年代就已经标准化,而且直到今天还在广泛使用。在北美 的压扩( companding)标准是μ律(u-law),在欧洲的压扩标准是A律(A-1aw)。它们的优点是 编译码器简单,延迟时间短,音质高。但不足之处是数据速率比较高,对传输通道的错误比 较敏感。 在话音编码中,一种普遍使用的技术叫做预测技术,这种技术是企图从过去的样本来预 测下一个样本的值。这样做的根据是认为在话音样本之间存在相关性。如果样本的预测值与 样本的实际值比较接近,它们之间的差值幅度的变化就比原始话音样本幅度值的变化小,因 此量化这种差值信号时就可以用比较少的位数来表示差值。这就是差分脉冲编码调制 ( differential pulse code modulation,DPCM的基础一对预测的样本值与原始的样本值之 差进行编码 这种编译码器对幅度急剧变化的输入信号会产生比较大的噪声,改进的方法之一就是使 用自适应的预测器和量化器,这就产生了一种叫做自适应差分脉冲编码调制( adaptive differential PCM, ADPCM)。在20世纪80年代,国际电话与电报顾问委员会( International Telephone and Telegraph Consultative Committee,CCIT),现改为国际电信联盟-远程 通信标准部( International Telecommunications Union- Telecommunications Standards Section,ITU-TSS),就制定了数据率为32kb/s的 ADPCM标准,它的音质非常接近64kb/s 的POM编译码器,随后又制定了数据率为16,24和40kb/s的 ADPCM标准 上述的所有波形编译码器完全是在时间域里开发的,在时域里的编译码方法称为时域法 ( time domain approach)。在开发波形编译码器中,人们还使用了另一种方法,叫做频域法 ( frequency domain approach)。例如,在子带编码(sub- band coding,SBC)中,输入的话 音信号被分成好几个频带(即子带),变换到每个子带中的话音信号都进行独立编码,例如使 用 ADPCM编码器编码,在接收端,每个子带中的信号单独解码之后重新组合,然后产生重构 话音信号。它的优点是每个子带中的噪声信号仅仅与该子带使用的编码方法有关系。对听觉 感知比较重要的子带信号,编码器可分配比较多的位数来表示它们,于是在这些频率范围里 噪声就比较低。对于其他的子带,由于对听觉感知的重要性比较低,允许比较高的噪声,于 是编码器就可以分配比较少的位数来表示这些信号。自适应位分配的方案也可以考虑用来进 步提高音质。子带编码需要用滤波器把信号分成若干个子带,这比使用简单的 ADPCM编译 码器复杂,而且还增加了更多的编码时延。即使如此,与大多数混合编译码器相比,子带编 译码的复杂性和时延相对来说还是比较低的 另一种频域波形编码技术叫做自适应变换编码( adaptive transform coding,ATC)。这 种方法使用快速变换(例如离散余弦变换)把话音信号分成许许多多的频带,用来表示每个变 换系数的位数取决于话音谱的性质,获得的数据率可低到16kb/s 2.音源编译码器 音源编译码的想法是企图从话音波形信号中提取生成话音的参数,使用这些参数通过话 音生成模型重构出话音。针对话音的音源编译码器叫做声码器( vocoder)。在话音生成模型 中,声道被等效成一个随时间变化的滤波器,叫做时变滤波器( time-varying filter),它 由白噪声一无声话音段激励,或者由脉冲串—有声话音段激励。因此需要传送给解码器的 信息就是滤波器的规格、发声或者不发声的标志和有声话音的音节周期,并且每隔10~20ms 更新一次。声码器的模型参数既可使用时域的方法也可以使用频域的方法确定,这项任务由 编码器完成
第3章 话音编码 5 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 更新一次。声码器的模型参数既可使用时域的方法也可以使用频域的方法确定,这项任务由 编码器完成
第3章话音编码 这种声码器的数据率在2.4kb/s左右,产生的语音虽然可以听懂,但其质量远远低于自 然话音。增加数据率对提高合成话音的质量无济于事,这是因为受到话音生成模型的限制。 尽管它的音质比较低,但它的保密性能好,因此这种编译码器一直用在军事上, 3.混合编译码 混合编译码的想法是企图填补波形编译码和音源编译码之间的间隔。波形编译码器虽然 可提供高话音的质量,但数据率低于16kb/s的情况下,在技术上还没有解决音质的问题 声码器的数据率虽然可降到2.4kb/s甚至更低,但它的音质根本不能与自然话音相提并论 为了得到音质高而数据率又低的编译码器,历史上出现过很多形式的混合编译码器,但最成 功并且普遍使用的编译码器是时域合成-分析( analysis-by- synthesis,AbS)编译码器。这 种编译码器使用的声道线性预测滤波器模型与线性预测编码(1 inear predictive coding, LPC)使用的模型相同,不使用两个状态(有声/无声)的模型来寻找滤波器的输入激励信号 而是企图寻找这样一种激励信号,使用这种信号激励产生的波形尽可能接近于原始话音的波 形。AbS编译码器由Ata1和 Reade在1982年首次提出,并命名为多脉冲激励 multi-pulse excited,MPE)编译码器,在此基础上随后出现的是等间隔脉冲激励( regular-pulse excited,RPE)编译码器、码激励线性预测( code excited linear predictive,CELP)编i 码器和混合激励线性预测( mixed excitation linear prediction,MLP)等编译码器。 bS编译码器的一般结构如图3-06所示。 话音输入 Excitation u(n))合成滤波器3(, 激励生成 nthesis Generation Filter) 误差最小化 误差加权 Minimization eighting) (a)编码器 激励生成 皮滤波器])重构话音 (Excitation u(n)(Synthesis roduced Generation) filter) Speech) b)译码器 图3-06AbS编译码器的结构 AbS编译码器把输入话音信号分成许多帧( frames),一般来说,每帧的长度为20ms。合 成滤波器的参数按帧计算,然后确定滤波器的激励参数。从图3-06(a)可以看到,AbS编码器 是一个负反馈系统,通过调节激励信号u(n)可使话音输入信号s(m)与重构的话音信号s(n 之差为最小,也就是重构的话音与实际的话音最接近。这就是说,编码器通过“合成”许多 不同的近似值来“分析”输入话音信号,这也是“合成-分析编码器”名称的来由。在表示 每帧的合成滤波器的参数和激励信号确定之后,编码器就把它们存储起来或者传送到译码 器。在译码器端,激励信号馈送给合成滤波器,合成滤波器产生重构的话音信号,如图3-06(b) 所示
第3章 话音编码 6 这种声码器的数据率在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)编译码器、码激励线性预测(code excited linear predictive,CELP)编译 码器和混合激励线性预测(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) 与重构的话音信号 s(n) 之差为最小,也就是重构的话音与实际的话音最接近。这就是说,编码器通过“合成”许多 不同的近似值来“分析”输入话音信号,这也是“合成-分析编码器”名称的来由。在表示 每帧的合成滤波器的参数和激励信号确定之后,编码器就把它们存储起来或者传送到译码 器。在译码器端,激励信号馈送给合成滤波器,合成滤波器产生重构的话音信号,如图3-06(b) 所示
第3章话音编码 合成滤波器通常使用全极点( all pole)的短期( short-term)线性滤波器,它的函数如 H(二)= A(=) 其中 A()=1-∑a 是预测误差滤波器,这个滤波器是按照这样的原则确定的:当原始话音段通过该滤波器时产 生的残留信号的能量最小。滤波器的极点数的典型值等于10。这个滤波器企图去模拟由于声 道作用而引入的话音相关性 合成滤波器也可以包含音节( pitch)滤波器,用来模拟话音中出现的长期预测MPE和RPE 编译码器一般不使用音节滤波器,对于CELP编译码器,音节滤波器则显得非常重要。 图3-06中的“误差加权”方框用来塑造误差信号谱的形状,目的是减少误差信号的主观 响度。这样做的想法是,在话音信号能量很高的频段中,误差信号至少有部分能够被高能量 的话音掩蔽掉 AbS编译码器的性能与如何选择激励合成滤波器的波形u(n)有很大关系。从概念上说 可把每一种可能的波形输送给合成滤波器试试看,这种激励信号将会产生什么样的重构话音 信号,它和原始话音信号之间的误差如何变化,然后选择产生最小加权误差的激励信号,并 把它作为译码器中的合成滤波器的驱动信号。由于编码器是一个闭环系统,因此可以获得比 较高的音质而数据率又比较低。但由于可能的激励信号的数目巨大,因此需要有某种方法来 减少计算的复杂性而音质又不会牺牲太大。 MPE,RPE和CELP编译码器之间的差别在于所使用的激励信号的表示方法。在MPE中,对 每帧话音所用的激励信号u(n)是固定数目的脉冲,在一帧中脉冲的位置和幅度必须由编码器 来确定,这在理论上可以找到很好的值,但实际上不太可能,因为计算太复杂。因此在实际 上就使用次佳方法,一般来说,每5ms使用4个脉冲,在数据率为10kb/s时可以获得好的重 构话音 像MPE那样,RPE编译码器使用固定间隔的脉冲,于是编码器就只需要确定第一个激励脉 冲的位置和所有其他脉冲的幅度,所需要的脉冲位置信息也就可以减少,而脉冲的数目则比 MPE使用的数目多。数据率在10kb/s左右时,每5ms可使用10个脉冲,比MPE多6个,产生比 MPE音质高一些的重构话音。然而RPE仍然显得比较复杂,因此欧洲的GSM移动电话系统使用 了一个带长期预测的简化了的RP编译码器,数据率为13kb/s 虽然MPE和RE编译码器在10kb/s左右的数据率下可提供好的音质,但数据率低于10 kb/s情况下提供的音质还不能接受,这是因为它们需要提供大量有关激励脉冲的位置和幅度 信息。对要求音质好而数据率又低于10kb/s的编译码器,现在普遍使用的算法是1985年由 Schroeder和Atal提出的CELP算法。与MPE和RPE的不同之处是,CEP使用的激励信号是量化 矢量。激励信号由一个矢量量化大码簿的表项给出,还有一个增益项用来扩展它的功率。典 型的码簿索引有10位,就是有1024个表项的码簿,增益用5位表示。因此激励信号的位数可 以减少到15位,这与 GSM RPE编译码器中使用的47位相比减少了32位 ELP最初使用的码簿包含白高斯序列( white Gaussian sequences),这是因为作了这样 的假设:长期预测和短期预测能够从话音信号中去除几乎所有的冗余度,产生随机的像噪声 那样的残留信号。试验也显示出短期概率密度函数几乎是高斯状的。 Schroeder和Atal发现 对长期和短期滤波器使用这样的码簿能够产生高质量的话音。然而,在合成-分析过程中要 选择使用哪一个码簿表项,这就意味每一个激励序列都要传送给合成滤波器,看看重构话音 与原始话音的近似程度。这也就是说原始CELP编译码器的计算量太大,难以实时执行。从1985 年开始,在简化CELP的码簿结构方面做了大量的工作,使用数字信号处理(DSP)芯片提高执 行速度方面也取得了很大的进展,因此现在在低成本的单片DSP上实时执行CELP算法相对容 易了,在CELP基础上制定了好几个重要的话音编码标准,例如美国的“ Department of Defence(DoD4.8kb/ s codec”标准和 CCITT的“low- delay16kb/ s codec”标准。 CELP编译码器在话音通信中取得了很大成功,话音的速率在4.8kb/s~16kb/s之间。 近年来对运行在4.8kb/s以下的编译码器作了大量的研究工作,其目标是开发运行在2.4 kb/s或者更低数据率下的编译码器
第3章 话音编码 7 合成滤波器通常使用全极点(all pole)的短期(short-term)线性滤波器,它的函数如: ( ) 1 ( ) A z H z = 其中 = − = − p i i i A z a z 1 ( ) 1 是预测误差滤波器,这个滤波器是按照这样的原则确定的:当原始话音段通过该滤波器时产 生的残留信号的能量最小。滤波器的极点数的典型值等于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或者更低数据率下的编译码器
第3章话音编码 通过对话音段进行分类,例如分成浊音帧、清音帧和过渡帧,CELP编译码器的结构可以 进一步得到改善,不同类型的话音段使用专门设计的编码器进行编码。例如,对于浊音帧编 码器不使用长期预测,而对于清音帧使用长期预测就显得特别重要。这种按话音类型设计的 编译码器在数据率为2.4kb/s下呈现的音质己经得到认可。多带激励MBE(muti-band excitation)编译码器把频域中的某些频段看成是浊音频段,其他频段看成是清音频段。它 们传送每帧的音节周期、频谱的幅度和相位信息以及浊音/清音的判决。这种编译码器经过 改造以后也显示出了它的潜力,在低数据率下可提供认可的音质。 在数据率为2.4kb/s~64kb/s的范围里,部分编码器的MOS分数大致如表3-01所示。 表3-01部分编码器的M0S分 编码器 MOS分 64kb/s脉冲编码调制(PCM) B32kb/s自适应差分脉冲编码调制(ADPM 4.1 16kb/s低时延码激励线性预测编码( (LD-CELP)4.0 Bkb/s码激励线性预测编码(ELP 3.8kb/码s激励线性预测编码(CELP) 2.4kb/s线性预测编码(LPC) 3.2脉冲编码调制(POM) 3.2.1PCM的概念 脉冲编码调制( pulse code modulation,PCM)是概念上最简单、理论上最完善的编码系 统,是最早研制成功、使用最为广泛的编码系统,但也是数据量最大的编码系统。 PCM的编码原理比较直观和简单,它的原理框图如图3-07所示。在这个编码框图中,它 的输入是模拟声音信号,它的输出是PCM样本。图中的“防失真滤波器”是一个低通滤波器 用来滤除声音频带以外的信号:“波形编码器”可暂时理解为“采样器”,“量化器”可理 解为“量化阶大小(step-size)”生成器或者称为“量化间隔”生成器。 模拟声音 防失真 波形 PCM样本 信号输入滤波器 编码器 Anti-alias Wa avedon Filter Corder 量化器| Step-Size 图3-07PCM编码框图 在第2章介绍声音数字化的时候,谈到声音数字化有两个步骤:第一步是采样,就是每 隔一段时间间隔读一次声音的幅度;第二步是量化,就是把采样得到的声音信号幅度转换成 数字值。但那时并没有涉及如何进行量化。量化有好几种方法,但可归纳成两类:一类称为
第3章 话音编码 8 通过对话音段进行分类,例如分成浊音帧、清音帧和过渡帧,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章话音编码 均匀量化,另一类称为非均匀量化。采用的量化方法不同,量化后的数据量也就不同。因此, 可以说量化也是一种压缩数据的方法 3.2.2均匀量化 如果采用相等的量化间隔对采样得到的信号作量化,那么这种量化称为均匀量化。均匀 量化就是采用相同的“等分尺”来度量采样得到的幅度,也称为线性量化,如图3-08所示 量化后的样本值Y和原始值X的差E=Y-X称为量化误差或量化噪声。 量化输 出数据 均匀量化间隔 X1 Xs X 釆样输入样本值 图3-08均匀量化 用这种方法量化输入信号时,无论对大的输入信号还是小的输入信号一律都采用相同的 量化间隔。为了适应幅度大的输入信号,同时又要满足精度要求,就需要增加样本的位数 但是,对话音信号来说,大信号出现的机会并不多,增加的样本位数就没有充分利用。为了 克服这个不足,就出现了非均匀量化的方法,这种方法也叫做非线性量化 3.2.3非均匀量化 非线性量化的基本想法是,对输入信号进行量化时,大的输入信号采用大的量化间隔 小的输入信号采用小的量化间隔,如图3-09所示。这样就可以在满足精度要求的情况下用较 少的位数来表示。声音数据还原时,采用相同的规则。 在非线性量化中,采样输入信号幅度和量化输出数据之间定义了两种对应关系,一种称 为律压扩( companding)算法,另一种称为A律压扩算法。 量化输出数 非均匀 量化间隔 X1X2 X4 采样输入样本值
第3章 话音编码 9 均匀量化,另一类称为非均匀量化。采用的量化方法不同,量化后的数据量也就不同。因此, 可以说量化也是一种压缩数据的方法。 3.2.2 均匀量化 如果采用相等的量化间隔对采样得到的信号作量化,那么这种量化称为均匀量化。均匀 量化就是采用相同的“等分尺”来度量采样得到的幅度,也称为线性量化,如图3-08所示。 量化后的样本值Y和原始值X的差E=Y-X称为量化误差或量化噪声。 图3-08 均匀量化 用这种方法量化输入信号时,无论对大的输入信号还是小的输入信号一律都采用相同的 量化间隔。为了适应幅度大的输入信号,同时又要满足精度要求,就需要增加样本的位数。 但是,对话音信号来说,大信号出现的机会并不多,增加的样本位数就没有充分利用。为了 克服这个不足,就出现了非均匀量化的方法,这种方法也叫做非线性量化。 3.2.3 非均匀量化 非线性量化的基本想法是,对输入信号进行量化时,大的输入信号采用大的量化间隔, 小的输入信号采用小的量化间隔,如图3-09所示。这样就可以在满足精度要求的情况下用较 少的位数来表示。声音数据还原时,采用相同的规则。 在非线性量化中,采样输入信号幅度和量化输出数据之间定义了两种对应关系,一种称 为律压扩(companding)算法,另一种称为A律压扩算法
第3章话音编码 图3-09非均匀量化 3.24μ律压扩 u律(u-Law)压扩(G.71)主要用在北美和日本等地区的数字电话通信中,按下面的式 子确定量化输入和输出的关系: Fu(x)=sgn( x) In(1+ulxD In(1+u) 式中:x为输入信号幅度,规格化成-1≤x≤1 sgn(x)为x的极性; 山为确定压缩量的参数,它反映最大量化间隔和最小量化间隔之比,取100≤4≤500 由于μ律压扩的输入和输出关系是对数关系,所以这种编码又称为对数PCM。具体计算 时,用μ=25,把对数曲线变成8条折线以简化计算过程。详细计算请看参考文献[13] 3.2.5A律压扩 A律(A-Law)压扩(G.711)主要用在欧洲和中国大陆等地区的数字电话通信中,按下面的 式子确定量化输入和输出的关系 F4(x)=8g),1|x 0≤|x≤1/A 1+In A (x)=sgn(x) 1+In(A xD 1/A <x< 1+In a 式中:x为输入信号幅度,规格化成-1≤x≤1; sgn(x)为x的极性 A为确定压缩量的参数,它反映最大量化间隔和最小量化间隔之比。 A律压扩的前一部分是线性的,其余部分与μ律压扩相同。具体计算时,A=87.56,为 简化计算,同样把对数曲线部分变成折线。详细计算请看参考文献[13]。 对于采样频率为8kHz,样本精度为13位、14位或者16位的输入信号,使用μ律压扩编 码或者使用A律压扩编码,经过PCM编码器之后每个样本的精度为8位,输出的数据率为64 kb/s。这个数据就是oCIT推荐的G.711标准:话音频率脉冲编码调制( Pulse code modulation (PCM) of Voice Frequences) 3.3PCM在通信中的应用 PM编码早期主要用于话音通信中的多路复用。一般来说,在电信网中传输媒体费用约 占总成本的65%,设备费用约占成本的35%,因此提高线路利用率是一个重要课题。提高线路 利用率通常用下面两种方法 1.频分多路复用( frequency-division multiplexing,FDM) 这种方法是把传输信道的频带分成好几个窄带,每个窄带传送一路信号。例如,一个信 道的频带为1400Hz,把这个信道分成4个子信道( subchannels):820~990Hz,1230~1400 Hz,1640~1810Hz和2050~2220Hz,相邻子信道间相距240Bz,用于确保子信道之间不相 互干扰。每对用户仅占用其中的一个子信道。这是模拟载波通信的主要手段。 (2)时分多路复用( time-division multiplexing,TDM 这种方法是把传输信道按时间来分割,为每个用户指定一个时间间隔,每个间隔里传输 信号的一部分,这样就可以使许多用户同时使用一条传输线路。这是数字通信的主要手段。 例如,话音信号的采样频率f=8000Hz/s,它的采样周期=125μs,这个时间称为1帧( frame) 在这个时间里可容纳的话路数有两种规格:24路制和30路制。图3-10表示了24路制的结构
第3章 话音编码 10 图3-09 非均匀量化 3.2.4 律压扩 律(-Law)压扩(G.711)主要用在北美和日本等地区的数字电话通信中,按下面的式 子确定量化输入和输出的关系: ln(1 ) ln(1 | |) ( ) sgn( ) + + = x F x x 式中:x为输入信号幅度,规格化成 −1 x 1 ; sgn(x)为x的极性; 为确定压缩量的参数,它反映最大量化间隔和最小量化间隔之比,取100 500。 由于律压扩的输入和输出关系是对数关系,所以这种编码又称为对数PCM。具体计算 时,用=255,把对数曲线变成8条折线以简化计算过程。详细计算请看参考文献[13]。 3.2.5 A律压扩 A律(A-Law)压扩(G.711)主要用在欧洲和中国大陆等地区的数字电话通信中,按下面的 式子确定量化输入和输出的关系: A A x F x x A 1 ln | | ( ) sgn( ) + = 0 |x| 1/A A A x F x x A 1 ln 1 ln( | |) ( ) sgn( ) + + = 1/A |x| 1 式中:x为输入信号幅度,规格化成 -1 x 1; sgn(x)为x的极性; A为确定压缩量的参数,它反映最大量化间隔和最小量化间隔之比。 A律压扩的前一部分是线性的,其余部分与律压扩相同。具体计算时,A=87.56,为 简化计算,同样把对数曲线部分变成折线。详细计算请看参考文献[13]。 对于采样频率为8 kHz,样本精度为13位、14位或者16位的输入信号,使用律压扩编 码或者使用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/s,它的采样周期=125 s,这个时间称为1帧(frame)。 在这个时间里可容纳的话路数有两种规格:24路制和30路制。图3-10表示了24路制的结构