语音编码
第一章 音频
1.1 音频和语音的定义
声音是携带信息的重要媒体,是通过空气传播的一种连续的波,叫声波。对声音信号的
分析表明,声音信号有许多频率不同的信号组成,这类信号称为复合信号。而单一频率的
信号称为分量信号。声音信号的两个基本参数频率和幅度。
1.1.1 声音信号的数字化
声音数字化包括采样和量化。采样频率由采样定理给出。
1.1.2 声音质量划分
根据声音频带,声音质量分 5 个等级,依次为:电话、调幅广播、调频广播、光盘、数
字录音带 DAT(digital audio tape)的声音。
第二章 语音编码技术的发展和分类
现有的语音编码器大体可以分三种类型:波形编码器、音源编码器和混合编码器。一
般来说,波形编码器的话音质量高,但数据率也很高。音源编码器的数据率很低,产生的
合成话音音质有待提高。混合编码器使用音源编码器和波形编码器技术,数据率和音质介
于二者之间。语音编码性能指标主要有比特速率、时延、复杂性和还原质量。
其中语音编码的三种最常用的技术是脉冲编码调制(PCM)、差分 PCM(DPCM)和增量调
制(DM)。通常,公共交换电话网中的数字电话都采用这三种技术。第二类语音数字化方法
主要与用于窄带传输系统或有限容量的数字设备的语音编码器有关。采用该数字化技术的
设备一般被称为声码器,声码器技术现在开始展开应用,特别是用于帧中继和 IP 上的语音。
在具体的编码实现(如 VoIP)中除压缩编码技术外,人们还应用许多其它节省带宽的
技术来减少语音所占带宽,优化网络资源。静音抑制技术可将连接中的静音数据消除。语
音活动检测(SAD)技术可以用来动态跟踪噪音电平,并将噪音可听度抑制到最小,并确保
话路两端的语音质量和自然声音的连接。回声消除技术监听回声信号,并将它从听话人的
语音信号中清除。处理话音抖动的技术则将能导致通话音质下降的信道延时与信道抖动平
滑掉。
2.1 波形编码
波形编解码器的思想是,编码前根据采样定理对模拟语音信号进行采样,然后进行幅
度量化与二进制编码。它不利用生成语音信号的任何知识而企图产生重构信号,其波形与
原始话音尽可能一致。
最简单的脉冲编码调制(PCM),即线性 PCM,对语音作数/模变换后再由低通滤波器
恢复出现原始的模拟语音波形。在数据率为 64Kbps 的时候,重构话音质量几乎与原始的话
音信号没有什么差别。该量化器在 20 世纪 80 年代标准化,在美洲的压扩标准是μ律(μ
-Law),在欧洲的压扩标准是 A 律(A-Law)。它们的优点是编解码器简单,延迟时间短,音
质高。不足之处是数据速率比较高,对传输通道的错误比较敏感。
线性 PCM 编码还可以通过非线性量化、前后样值的差分、自适应预测等方法实现数据
压缩。比如差分脉冲编码调制 DPCM 使用预测技术,认为话音样本之间存在相关性,因此
它试图从过去的样本来预测下一个样本的值。但是这种方法对幅度急剧变化的输入信号会
产生大的噪声。改进方法之一是使用自适应的预测器和量化器。如自适应差分脉冲编码调
制 ADPCM。
另外一种频域波形编码技术叫自适应变换编码 ATC。这种方法使用快速变换(如 DCT)
把话音信号分解成多频带,用来表示每个变换系数的位数取决于话音谱的性质,数据率可
低到 16Kbps。
波形编码的方法简单,数码率较高,在 64Kbps 至 32Kbps 之间音质优良,当数码率低
于 32Kbps 的时候音质明显降低,16
Kbps 时音质非常差。
2.2 信源编码
信源编码器又称为声码器,是根据人的发声机理,在编码端对语音信号进行分析,从
话音波形信号中提取出话音参数,并使用这些参数通过话音生成模型重构话音。声码器每
隔一定时间分析一次语音,传送分析获得的有/无声和滤波参数。在解码端根据接收的参
数再合成声音。声码器编码码率很低,可以达到 1.2K---2.4Kbps,但复杂度比较高,合成
语音质量较差。尽管其音质较差,但因保密性能好,一般用于军事领域。
2.3 混合编码
混合编码是将波形编码和信源编码的原理结合起来,数码率约在 4Kbps—16Kbps 之间,
音质比较好,性能较好的算法所取得的音质甚至可与波形编码相当,该类算法复杂程度介
于波形编码和信源编码之间。
上述的三类语音编码方案还可以分成许多不同的编码方案。
第三章
G.729 编码原理与实现
1995 年,国际电联批准了一个被称为 G.729 的新的话音压缩建议。该建议的全称为:
8Kbps 速率下使用共轭结构算术编码激励的线性预测编码(CS_ACELP)。该建议的算法采用
8Kbps 的带宽传输话音,话音质量与 32KbpsADPCM(差分脉冲编码调制)相同。此后,这一压
缩话音标准又得到了进一步的优化改进。
3.1 介绍
G.729 建议包含使用共轭结构算术编码激励的线性预测编码(CS_ACELP)的算法描述。
G.729 编码器的输入是对模拟输入信号先用电话带宽滤波并按 8000Hz 频率采样、然后
转换为 16 比特线性 PCM 的数字信号。解码器的输出则采用类似的方法转换回模拟信号。
本章主要给出一个关于 CS_ACELP 的概述,并简要讨论 CS_ACELP 编码器和解码器原
理。
3.2 概述
CS_ACELP 编码器是基于编码激励线性预测编码模型的。编码器针对在 8KHz 采样频率
下长度为 10 毫秒的语音帧进行编码,每帧包含 80 个采样。对于每个 10 毫秒的帧,编码器
对语音信号进行分析,抽取 CELP 模型(线性预测滤波器系数,自适应/固定码本索引和增
益)。这些参数经过编码并被传输。编码器参数的比特分配如表 1 中所示。在解码端,这些
参数被用来提取激励和合成滤波器系数。这些激励通过短期合成滤波器滤波后,语音获得
重建,如图 1 所示。短期合成滤波器基于 10 次线性(LP)滤波器。长期合成滤波器(音节合
成滤波器)由使用被称作适应码本的方法实现。语音重建计算完成后,还要继续经过后处
理滤波器增强。
参数
线性谱对
适应码本延迟
音节延迟奇偶
固定码本索引
固定码本符号
码本增益(阶段 1) GA1,GA2
码本增益(阶段 2) GB1,GB2
总计
码字
L0,L1,L2,L3
P1,P2
P0
C1,C2
S1,S2
表 1
子帧 1
子帧 2
8
1
13
4
3
4
5
13
4
3
4
每帧合计
18
13
1
26
8
6
8
80
图 1
CELP 模型框图
该建议的语音编码算法的描述是以位相关的定点数学运算进行的。编码器和解码器的
数学描述也可以用几种其它的方法实现,但可能会导致编解码器的具体实现与该建议不完
全一致。
3.3 标注习惯
在本文中都保持如下的标注习惯:
。码本用斜体字母标注(如 C)
。时域信号用它们的符号和用括号括住的采样下标表示[如 s(n)]。符号 n 用作采样下
标。
。括号中的上标(如 g(m) )用来指示时域相关的变量。根据上下文,变量 m 指示一帧
或一子帧的序号,变量 n 用于指示采样序号。
。递归序号用方括号中的上标表示(如 E[k])
。下标序号指示一个系数数组中的某个元素。
。符号^指示一个量化版本的参数(如 g^c)
。参数范围用方括号括住,并包含边界(如[0.6,0.9])
。函数 log 表示以 10 为底的对数
。函数 int 表示取整
。使用的十进制浮点数是 16 比特定点 ANSI C 实现的一个近似版本
表 2 列出了建议中最密切相关的符号。表 3 总结了建议中的字母缩写。
表 2 相关符号描述
名字
描述
1/Â(z)
Hh1(z)
Hp(z)
Hf(z)
Ht(z)
Hh2(z)
P(z)
W(z)
缩写
CELP
CS-ACELP
MSB
MSE
LP
LSP
LSF
VQ
LP 合成滤波器
输入低通滤波器
长期后滤波
短期后滤波
Tilt-compensation filter
输出高通滤波
定点码本前滤波
加权滤波
表 3 词汇缩写
描述
编码激励线性预测
共轭结构算术-CELP
最高位
均方差
线性预测
相信谱对
线性谱频率
向量量化
3.3 编码器原理
编码原理如图 2 所示。输入信号在预处理模块中经过高通滤波并缩放。预处理信号作
为所有后续分析的输入信号。在每个 10 毫秒帧中都要进行 LP 分析,计算出 LP 滤波器系数。
这些系数转换为线性谱对(LSP),并使用有两个阶段的预测向量量化器(VQ)进行 18 比特
量化。然后编码器通过使用分析-合成搜索过程选择激励信号,在该搜索过程中,原始语音
和重建语音间基于感知加权失真方法的误差会降低到最低。感知加权是自适应的,可以提
高具有平缓频谱响应的输入信号的性能。
激励参数(固定与自适应码本参数)在每个 5 毫秒的子帧(40 个采样)中决定。量化
的和未量化的 LP 滤波器系数用于第二个子帧,而第一个子帧中使用内插 LP 滤波器系数(包
括量化的与未量化的)。开环音节延迟根据感知权重的语音信号每 10 毫秒帧估计一次。然
后下面的操作对每个子帧都要重复进行。LP 残差经过加权滤波器 W(z)/A(z) 滤波计算出目
标信号 x(n)。这些滤波器的初始状态在对 LP 残差和激励的误差率波后更新。这等价于普通
的方法从加权语音信号中消除加权合成滤波器的零输入响应。加权合成滤波器脉冲响应 h(n)
被计算,利用目标信号 x(n)和脉冲响应 h(n),通过搜索开环音节延迟,进行闭环音节分析(主
要用于得到自适应码本延迟和增益),这里使用了 1/3 分辨率的音节延迟。在第一个子帧中
音节延迟用 8 比特编码,但在第二个子帧中采用 5 比特编码。通过消除(滤波后的)自适
应码本分量,目标信号 x(n)得到更新,新的目标 x’(n)在固定码本搜索中用来寻找最优激励。
一个 17 比特的算术码本用于固定码本激励。自适应与固定码本增益采用 7 比特向量量化(对
固定码本增益采用 MA 预测)。滤波器存储空间用最后得到的激励信号更新。
3.4 解码器原理
解码器原理如图 3 中表示。首先,参数的索引从获得的码流中提取出来。这些参数(LP
滤波器系数,自适应码本向量,定码本向量与增益)被解码,获得对应于 10 毫秒语音帧的
编码器参数。这些参数即 LSP 系数、两个音节延迟、两组自适应和固定码本增益。LSP 系
数经过内插,并转换为每个子帧的 LP 滤波器系数。然后,对每个 5 毫秒的子帧进行如下步
骤:
。增加经各自增益缩放的自适应和固定码本向量,重建激励
。激励通过 LP 合成滤波器,语音重建
。重建的语音信号经过后处理阶段,在这个阶段中包含基于长期/短期合成滤波器的自
适应后滤波,并需要高通滤波和放大操作。
3.4 延迟
编码器采用长为 10 毫秒的帧编码语音和其他音频信号。此外,编码器还有 5 毫秒的
前瞻,因此算法的总延迟为 15 毫秒。在实际的编码器实现中所有附加延迟有:
。编解码操作所需要的处理时间
。通信链路上的传输时间
。将音频数据与其它数据绑定的复用延迟
图 2 编码器原理图
3.5 G.729 扩展建议(附件 D)
图 3 解码器原理图
1998 年在爱立信等机构的推动下推出了 G.729 建议的附件 D。该附件提供了较 G.729
码率更低(6.4Kbps)的算法扩展,目的是增强 G.729 建议的灵活性,如过载处理。该附件不
能提供与 G.729 建议主体算法相同的音质,但是在绝大多数情况下,它可以提供明显优于
G.728 建议(24Kbps)的音质。本小节仅仅介绍该附件与 G.729 建议不同的地方。
3.5.1 概述
下面总结了附件 D 的算法与 G.729 建议的主体算法仅有的几处差别。
1) ACELP 码本被替换为新的码本
2) 增益共轭码本替换为新的 6 比特共轭码本
3) 第二子帧中使用了新的音节延迟编码,比特数降低为 4 比特
4) 增加了一项后滤波技术来减少稀疏算术码本的影响
5) 剔除了音节延迟奇偶位