第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章介绍声音数字化的时候,谈到声音数字化有两个步骤:第一步是采样,就是每 隔一段时间间隔读一次声音的幅度;第二步是量化,就是把采样得到的声音信号幅度转换成 数字值。但那时并没有涉及如何进行量化。量化有好几种方法,但可归纳成两类:一类称为