第3章 话音编码.docx

上传人:b****7 文档编号:9588142 上传时间:2023-02-05 格式:DOCX 页数:38 大小:166.23KB
下载 相关 举报
第3章 话音编码.docx_第1页
第1页 / 共38页
第3章 话音编码.docx_第2页
第2页 / 共38页
第3章 话音编码.docx_第3页
第3页 / 共38页
第3章 话音编码.docx_第4页
第4页 / 共38页
第3章 话音编码.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

第3章 话音编码.docx

《第3章 话音编码.docx》由会员分享,可在线阅读,更多相关《第3章 话音编码.docx(38页珍藏版)》请在冰豆网上搜索。

第3章 话音编码.docx

第3章话音编码

第3章话音编码

随着数字电话和数据通信容量日益增长的迫切要求,而又不希望明显降低传送话音信号的质量,除了提高通信带宽之外,对话音信号进行压缩是提高通信容量的重要措施。

另一个可说明话音数据压缩的重要性的例子是,用户无法使用28.8kb/s的调制解调器来接收因特网上的64kb/s话音数据流,这是一种单声道、8位/样本、采样频率为8kHz的话音数据流。

ITU-TSS为此制定了并且继续制定一系列话音(speech)数据编译码标准。

其中,G.711使用μ率和A率压缩算法,信号带宽为3.4kHz,压缩后的数据率为64kb/s;G.721使用ADPCM压缩算法,信号带宽为3.4kHz,压缩后的数据率为32kb/s;G.722使用ADPCM压缩算法,信号带宽为7kHz,压缩后的数据率为64kb/s。

在这些标准基础还制定了许多话音数据压缩标准,例如G.723,G.723.1,G.728,G.729和G.729.A等。

本章将重点介绍话音编码的基本思想,而详细计算则留给那些开发和具体设计编译码器软硬件的读者去研究,并可从本章所列的参考文献和站点中找到你满意的文献资料。

3.1话音编码概要

3.1.1话音波形的特性

了解话音波形的基本特性对声音数据的压缩编码、声音的识别和文本-声音的转换等都有很重要的意义。

当肺部中的受压空气沿着声道通过声门发出时就产生了话音。

普通男人的声道从声门到嘴的平均长度约为17厘米,这个事实反映在声音信号中就相当于在1ms数量级内的数据具有相关性,这种相关称为短期相关(short-termcorrelation)。

声道也被认为是一个滤波器,这个滤波器有许多共振峰,这些共振峰的频率受随时间变化的声道形状所控制,例如舌的移动就会改变声道的形状。

许多话音编码器用一个短期滤波器(shorttermfilter)来模拟声道。

但由于声道形状的变化比较慢,模拟滤波器的传递函数的修改不需要那么频繁,典型值在20ms左右。

压缩空气通过声门激励声道滤波器,根据激励方式不同,发出的话音分成三种类型:

浊音(voicedsounds),清音(unvoicedsounds)和爆破音(plosivesounds)。

1.浊音浊音是一种称为准周期脉冲(quasi-periodicpulses)激励所发出的音,这种准周期脉冲是在声门打开然后关闭时中断肺部到声道的气流所产生的脉冲。

声门打开和关闭的速率呈现为音节(pitch)的大小,它的速率可通过改变声道的形状和空气的压力来调整。

浊音表现出在音节上有高度的周期性,其值在2~20ms之间,这个周期性称为长期周期性(long-termperiodicity)。

图3-01表示了某一浊音段的波形,音节周期大约8ms。

这一浊音段的功率谱密度(powerspectraldensity,PSD)如图3-02所示。

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

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

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

这一清音段的功率谱密度PSD和图3-04所示。

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

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

3.爆破音爆破音是在声道关闭之后产生的压缩空气然后突然打开声道所发出的音。

某些音不能归属到上述三种音中的任何一种,例如在声门振动和声道收缩同时出现的情况下产生的摩擦音,这种音称为混合音。

虽然各种各样的话音都有可能产生,但声道的形状和激励方式的变化相对比较慢,因此话音在短时间周期(20ms的数量级)里可以被认为是准定态(quasi-stationary)的,也就是说基本不变的。

从图3-01,-02,-03和-04中可以看到话音信号显示出的高度周期性,这是由于声门的准周期性的振动和声道的谐振所引起的。

话音编码器就是企图揭示这种周期性,目的是为了减少数据率而又尽可能不牺牲声音的质量。

3.1.2三种话音编译码器

通常把已有的话音编译码器分成以下三种类型:

波形编译码器(waveformcodecs),音源编译码器(sourcecodecs)和混合编译码器(hybridcodecs)。

一般来说,波形编译码器的话音质量高,但数据率也很高;音源编译码器的数据率很低,产生的合成话音的音质有待提高;混合编译码器使用音源编译码技术和波形编译码技术,数据率和音质介于它们之间。

图3-05表示了目前这三种编译码器的话音质量和数据率的关系。

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

 

1.波形编译码器

波形编译码的想法是,不利用生成话音信号的任何知识而企图产生一种重构信号,它的波形与原始话音波形尽可能地一致。

一般来说,这种编译码器的复杂程度比较低,数据速率在16kb/s以上,质量相当高。

低于这个数据速率时,音质急剧下降。

最简单的波形编码是脉冲编码调制(pulsecodemodulation,PCM),它仅仅是对输入信号进行采样和量化。

典型的窄带话音带宽限制在4kHz,采样频率是8kHz。

如果要获得高一点的音质,样本精度要用12位,它的数据率就等于96kb/s,这个数据率可以使用非线性量化来降低。

例如,可以使用近似于对数的对数量化器(logarithmicquantizer),使用它产生的样本精度为8位,它的数据率为64kb/s时,重构的话音信号几乎与原始的话音信号没有什么差别。

这种量化器在20世纪80年代就已经标准化,而且直到今天还在广泛使用。

在北美的压扩(companding)标准是μ律(μ-law),在欧洲的压扩标准是A律(A-law)。

它们的优点是编译码器简单,延迟时间短,音质高。

但不足之处是数据速率比较高,对传输通道的错误比较敏感。

在话音编码中,一种普遍使用的技术叫做预测技术,这种技术是企图从过去的样本来预测下一个样本的值。

这样做的根据是认为在话音样本之间存在相关性。

如果样本的预测值与样本的实际值比较接近,它们之间的差值幅度的变化就比原始话音样本幅度值的变化小,因此量化这种差值信号时就可以用比较少的位数来表示差值。

这就是差分脉冲编码调制(differentialpulsecodemodulation,DPCM)的基础—对预测的样本值与原始的样本值之差进行编码。

这种编译码器对幅度急剧变化的输入信号会产生比较大的噪声,改进的方法之一就是使用自适应的预测器和量化器,这就产生了一种叫做自适应差分脉冲编码调制(adaptivedifferentialPCM,ADPCM)。

在20世纪80年代,国际电话与电报顾问委员会(InternationalTelephoneandTelegraphConsultativeCommittee,CCITT),现改为国际电信联盟-远程通信标准部(InternationalTelecommunicationsUnion-TelecommunicationsStandardsSection,ITU-TSS),就制定了数据率为32kb/s的ADPCM标准,它的音质非常接近64kb/s的PCM编译码器,随后又制定了数据率为16,24和40kb/s的ADPCM标准。

上述的所有波形编译码器完全是在时间域里开发的,在时域里的编译码方法称为时域法(timedomainapproach)。

在开发波形编译码器中,人们还使用了另一种方法,叫做频域法(frequencydomainapproach)。

例如,在子带编码(sub-bandcoding,SBC)中,输入的话音信号被分成好几个频带(即子带),变换到每个子带中的话音信号都进行独立编码,例如使用ADPCM编码器编码,在接收端,每个子带中的信号单独解码之后重新组合,然后产生重构话音信号。

它的优点是每个子带中的噪声信号仅仅与该子带使用的编码方法有关系。

对听觉感知比较重要的子带信号,编码器可分配比较多的位数来表示它们,于是在这些频率范围里噪声就比较低。

对于其他的子带,由于对听觉感知的重要性比较低,允许比较高的噪声,于是编码器就可以分配比较少的位数来表示这些信号。

自适应位分配的方案也可以考虑用来进一步提高音质。

子带编码需要用滤波器把信号分成若干个子带,这比使用简单的ADPCM编译码器复杂,而且还增加了更多的编码时延。

即使如此,与大多数混合编译码器相比,子带编译码的复杂性和时延相对来说还是比较低的。

另一种频域波形编码技术叫做自适应变换编码(adaptivetransformcoding,ATC)。

这种方法使用快速变换(例如离散余弦变换)把话音信号分成许许多多的频带,用来表示每个变换系数的位数取决于话音谱的性质,获得的数据率可低到16kb/s。

2.音源编译码器

音源编译码的想法是企图从话音波形信号中提取生成话音的参数,使用这些参数通过话音生成模型重构出话音。

针对话音的音源编译码器叫做声码器(vocoder)。

在话音生成模型中,声道被等效成一个随时间变化的滤波器,叫做时变滤波器(time-varyingfilter),它由白噪声—无声话音段激励,或者由脉冲串——有声话音段激励。

因此需要传送给解码器的信息就是滤波器的规格、发声或者不发声的标志和有声话音的音节周期,并且每隔10~20ms更新一次。

声码器的模型参数既可使用时域的方法也可以使用频域的方法确定,这项任务由编码器完成。

这种声码器的数据率在2.4kb/s左右,产生的语音虽然可以听懂,但其质量远远低于自然话音。

增加数据率对提高合成话音的质量无济于事,这是因为受到话音生成模型的限制。

尽管它的音质比较低,但它的保密性能好,因此这种编译码器一直用在军事上,

3.混合编译码

混合编译码的想法是企图填补波形编译码和音源编译码之间的间隔。

波形编译码器虽然可提供高话音的质量,但数据率低于16kb/s的情况下,在技术上还没有解决音质的问题;声码器的数据率虽然可降到2.4kb/s甚至更低,但它的音质根本不能与自然话音相提并论。

为了得到音质高而数据率又低的编译码器,历史上出现过很多形式的混合编译码器,但最成功并且普遍使用的编译码器是时域合成-分析(analysis-by-synthesis,AbS)编译码器。

这种编译码器使用的声道线性预测滤波器模型与线性预测编码(linearpredictivecoding,LPC)使用的模型相同,不使用两个状态(有声/无声)的模型来寻找滤波器的输入激励信号,而是企图寻找这样一种激励信号,使用这种信号激励产生的波形尽可能接近于原始话音的波形。

AbS编译码器由Atal和Remde在1982年首次提出,并命名为多脉冲激励(multi-pulseexcited,MPE)编译码器,在此基础上随后出现的是等间隔脉冲激励(regular-pulseexcited,RPE)编译码器、码激励线性预测CELP(codeexcitedlinearpredictive)编译码器和混合激励线性预测(mixedexcitationlinearprediction,MELP)等编译码器。

AbS编译码器的一般结构如图3-06所示。

(a)编码器

(b)译码器

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

AbS编译码器把输入话音信号分成许多帧(frames),一般来说,每帧的长度为20ms。

合成滤波器的参数按帧计算,然后确定滤波器的激励参数。

从图3-06(a)可以看到,AbS编码器是一个负反馈系统,通过调节激励信号

可使话音输入信号

与重构的话音信号

之差为最小,也就是重构的话音与实际的话音最接近。

这就是说,编码器通过“合成”许多不同的近似值来“分析”输入话音信号,这也是“合成-分析编码器”名称的来由。

在表示每帧的合成滤波器的参数和激励信号确定之后,编码器就把它们存储起来或者传送到译码器。

在译码器端,激励信号馈送给合成滤波器,合成滤波器产生重构的话音信号,如图3-06(b)所示。

合成滤波器通常使用全极点(allpole)的短期(short-term)线性滤波器,它的函数如:

其中

是预测误差滤波器,这个滤波器是按照这样的原则确定的:

当原始话音段通过该滤波器时产生的残留信号的能量最小。

滤波器的极点数的典型值等于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移动电话系统使用了一个带长期预测的简化了的RPE编译码器,数据率为13kb/s。

虽然MPE和RPE编译码器在10kb/s左右的数据率下可提供好的音质,但数据率低于10kb/s情况下提供的音质还不能接受,这是因为它们需要提供大量有关激励脉冲的位置和幅度信息。

对要求音质好而数据率又低于10kb/s的编译码器,现在普遍使用的算法是1985年由Schroeder和Atal提出的CELP算法。

与MPE和RPE的不同之处是,CELP使用的激励信号是量化矢量。

激励信号由一个矢量量化大码簿的表项给出,还有一个增益项用来扩展它的功率。

典型的码簿索引有10位,就是有1024个表项的码簿,增益用5位表示。

因此激励信号的位数可以减少到15位,这与GSMRPE编译码器中使用的47位相比减少了32位。

CELP最初使用的码簿包含白高斯序列(whiteGaussiansequences),这是因为作了这样的假设:

长期预测和短期预测能够从话音信号中去除几乎所有的冗余度,产生随机的像噪声那样的残留信号。

试验也显示出短期概率密度函数几乎是高斯状的。

Schroeder和Atal发现,对长期和短期滤波器使用这样的码簿能够产生高质量的话音。

然而,在合成-分析过程中要选择使用哪一个码簿表项,这就意味每一个激励序列都要传送给合成滤波器,看看重构话音与原始话音的近似程度。

这也就是说原始CELP编译码器的计算量太大,难以实时执行。

从1985年开始,在简化CELP的码簿结构方面做了大量的工作,使用数字信号处理(DSP)芯片提高执行速度方面也取得了很大的进展,因此现在在低成本的单片DSP上实时执行CELP算法相对容易了,在CELP基础上制定了好几个重要的话音编码标准,例如美国的“DepartmentofDefence(DoD)4.8kb/scodec”标准和CCITT的“low-delay16kb/scodec”标准。

CELP编译码器在话音通信中取得了很大成功,话音的速率在4.8kb/s~16kb/s之间。

近年来对运行在4.8kb/s以下的编译码器作了大量的研究工作,其目标是开发运行在2.4kb/s或者更低数据率下的编译码器。

通过对话音段进行分类,例如分成浊音帧、清音帧和过渡帧,CELP编译码器的结构可以进一步得到改善,不同类型的话音段使用专门设计的编码器进行编码。

例如,对于浊音帧编码器不使用长期预测,而对于清音帧使用长期预测就显得特别重要。

这种按话音类型设计的编译码器在数据率为2.4kb/s下呈现的音质已经得到认可。

多带激励MBE(multi-bandexcitation)编译码器把频域中的某些频段看成是浊音频段,其他频段看成是清音频段。

它们传送每帧的音节周期、频谱的幅度和相位信息以及浊音/清音的判决。

这种编译码器经过改造以后也显示出了它的潜力,在低数据率下可提供认可的音质。

在数据率为2.4kb/s~64kb/s的范围里,部分编码器的MOS分数大致如表3-01所示。

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

编码器

MOS分

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

4.3

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

4.1

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

4.0

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

3.7

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

3.0

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

2.5

3.2脉冲编码调制(PCM)

3.2.1PCM的概念

脉冲编码调制(pulsecodemodulation,PCM)是概念上最简单、理论上最完善的编码系统,是最早研制成功、使用最为广泛的编码系统,但也是数据量最大的编码系统。

PCM的编码原理比较直观和简单,它的原理框图如图3–07所示。

在这个编码框图中,它的输入是模拟声音信号,它的输出是PCM样本。

图中的“防失真滤波器”是一个低通滤波器,用来滤除声音频带以外的信号;“波形编码器”可暂时理解为“采样器”,“量化器”可理解为“量化阶大小(step-size)”生成器或者称为“量化间隔”生成器。

图3-07PCM编码框图

在第2章介绍声音数字化的时候,谈到声音数字化有两个步骤:

第一步是采样,就是每隔一段时间间隔读一次声音的幅度;第二步是量化,就是把采样得到的声音信号幅度转换成数字值。

但那时并没有涉及如何进行量化。

量化有好几种方法,但可归纳成两类:

一类称为均匀量化,另一类称为非均匀量化。

采用的量化方法不同,量化后的数据量也就不同。

因此,可以说量化也是一种压缩数据的方法。

3.2.2均匀量化

如果采用相等的量化间隔对采样得到的信号作量化,那么这种量化称为均匀量化。

均匀量化就是采用相同的“等分尺”来度量采样得到的幅度,也称为线性量化,如图3-08所示。

量化后的样本值Y和原始值X的差E=Y-X称为量化误差或量化噪声。

图3-08均匀量化

用这种方法量化输入信号时,无论对大的输入信号还是小的输入信号一律都采用相同的量化间隔。

为了适应幅度大的输入信号,同时又要满足精度要求,就需要增加样本的位数。

但是,对话音信号来说,大信号出现的机会并不多,增加的样本位数就没有充分利用。

为了克服这个不足,就出现了非均匀量化的方法,这种方法也叫做非线性量化。

3.2.3非均匀量化

非线性量化的基本想法是,对输入信号进行量化时,大的输入信号采用大的量化间隔,小的输入信号采用小的量化间隔,如图3-09所示。

这样就可以在满足精度要求的情况下用较少的位数来表示。

声音数据还原时,采用相同的规则。

在非线性量化中,采样输入信号幅度和量化输出数据之间定义了两种对应关系,一种称为μ律压扩(companding)算法,另一种称为A律压扩算法。

图3-09非均匀量化

3.2.4μ律压扩

μ律(μ-Law)压扩(G.711)主要用在北美和日本等地区的数字电话通信中,按下面的式子确定量化输入和输出的关系:

式中:

x为输入信号幅度,规格化成

;

sgn(x)为x的极性;

μ为确定压缩量的参数,它反映最大量化间隔和最小量化间隔之比,取100≤μ≤500。

由于μ律压扩的输入和输出关系是对数关系,所以这种编码又称为对数PCM。

具体计算时,用μ=255,把对数曲线变成8条折线以简化计算过程。

详细计算请看参考文献[17]。

3.2.5A律压扩

A律(A-Law)压扩(G.711)主要用在欧洲和中国大陆等地区的数字电话通信中,按下面的式子确定量化输入和输出的关系:

0≤|x|≤1/A

1/A<|x|≤1

式中:

x为输入信号幅度,规格化成-1≤x≤1;

sgn(x)为x的极性;

A为确定压缩量的参数,它反映最大量化间隔和最小量化间隔之比。

A律压扩的前一部分是线性的,其余部分与μ律压扩相同。

具体计算时,A=87.56,为简化计算,同样把对数曲线部分变成折线。

详细计算请看参考文献[17]。

对于采样频率为8kHz,样本精度为13位、14位或者16位的输入信号,使用μ律压扩编码或者使用A律压扩编码,经过PCM编码器之后每个样本的精度为8位,输出的数据率为64kb/s。

这个数据就是CCITT推荐的G.711标准:

话音频率脉冲编码调制(PulseCodeModulation(PCM)ofVoiceFrequences)。

3.3PCM在通信中的应用

PCM编码早期主要用于话音通信中的多路复用。

一般来说,在电信网中传输媒体费用约占总成本的65%,设备费用约占成本的35%,因此提高线路利用率是一个重要课题。

提高线路利用率通常用下面两种方法:

1.频分多路复用(frequency-divisionmultiplexing,FDM)

这种方法是把传输信道的频带分成好几个窄带,每个窄带传送一路信号。

例如,一个信道的频带为1400Hz,把这个信道分成4个子信道(subchannels):

820~990Hz,1230~1400Hz,1640~1810Hz和2050~2220Hz,相邻子信道间相距240Hz,用于确保子信道之间不相互干扰。

每对用户仅占用其中的一个子信道。

这是模拟载波通信的主要手段。

(2)时分多路复用(time-divisionmultiplexing,TDM)

这种方法是把传输信道按时间来分割,为每个用户指定一个时间间隔,每个间隔里传输信号的一部分,这样就可以使许多用户同时使用一条传输线路。

这是数字通信的主要手段。

例如,话音信号的采样频率f=8000Hz,它的采样周期=125μs,这个时间称为1帧(frame)。

在这个时间里可容纳的话路数有两种规格:

24路制和30路制。

图3-10表示了24路制的结构。

图3-1024路PCM的帧结构

 

24路制的重要参数如下:

1.每秒钟传送8000帧,每帧125μs。

2.12帧组成1复帧(用于同步)。

3.每帧由24个时间片(信道)和1位同步位组成。

4.每个信道每次传送8位代码,1帧有24×8+1=193位(位)。

5.数据传输率R=8000×193=1544kb/s。

6.每一个话路的数据传输率=8000×8=64kb/s。

30路制的重要参数如下:

1.每秒钟传送8000帧,每帧125μs。

2.16帧组成1复帧(用于同步)。

3.每帧由32个时间片(信道)组成。

4.每个信道每次传送8位代码。

5.数据传输率:

R=8000×32×8=2048kb/s。

6.每一个话路的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1