Chinaunix首页 | 论坛 | 博客
  • 博客访问: 212842
  • 博文数量: 40
  • 博客积分: 945
  • 博客等级: 准尉
  • 技术积分: 395
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-22 18:45
文章分类
文章存档

2020年(14)

2017年(1)

2013年(1)

2012年(6)

2011年(1)

2010年(7)

2009年(3)

2008年(7)

我的朋友

分类: 系统运维

2008-10-24 22:19:03

语音编码方式:
        MOS(Mean Opinion Score)这个概念, 我们在传输语音的过程中, 因为带宽的限制问题理所当然的会把对语音数据进行有损的压缩.这样的话,语音的质量就会降低,但是通讯的压力会很小,相应的MOS的得分就会低一些.语音编码技术的目标就是在保持相对较少的信息量的情况下使MOS尽可能的高.

语音分为三种主要的类型:
1) 浊音. 空气从肺部向声道不断进行开合震动的声带所阻断的时候就产生了浊音,声带开合的速率决定了声音的音调.有明显的周期性,周期一般在2ms-20ms之间
2) 清音  当声门保持敞开的状态,通过声道的收缩来高速驱动空气产生的类似噪声的杂乱声音的时候就是清音,这样的声音基本上没有周期性。
3) 爆破音 声道完全闭合,空气压力闭合后增大,然后突然被释放而产生的。

        与视频编码类似,音频编码也主要是通过合理的预测来降低传输的能量,这样就会有比较好的压缩效果。

        在语音抽样上,主要还是根据Nyqusit频率进行取样,人的语音频带在200Hz--3800Hz之间,可以认为最大频率都小于4000Hz,那么使用低通滤波器过滤掉4000Hz以上的频率信息,在每秒中取8000个样本.这样的取样方法可以满足会话的质量,但是对于唱歌或其他与会话差别较大的频带来讲,这样的取样就会失败,对于这种情况设置合理的截止值是很有必要的。

        我们在通讯中使用有限的bit数来表示无穷的数据范围,实际上,必须使用量化来进行数据归类.由量化造成的损失我们称之为量化噪音.解决这个问题最好的办法就是使用更多的比特来进行量化,这样就可以得到更细的粒度.
        接下来,我们来看一下语音编码器的种类.总体上来讲,它一共有三种分类:波形编解码器,源编解码器,混合编解码器.

        波形编解码器提供了高质量的输出,而且实现很简单,问题在于它使用了大量的带宽,不是进行编码比较合适的选择.源编解码顺口溜试图使输入的信号符合于语音产生的数学模型.他们通常使用声道的线性预测过滤模型.用一个清浊音标志来代表使用的过滤器的激发信号.而声编解码器以低比特速率运行,但是试图形成合成的语音.使用较高的比特速率并不能提供任何的帮助.一般用于私人通信系统或是军事中.所以在编码
语音的过程中,我们一般使用混合编解码器.

G.711编码标准

        它是现在用的最普遍的编码技术.它是目前全世界电路交换电话网中使用的编码技术.它以8000Hz为采样频率,如果使用编一量化的方式,话音中通常的信号层次的每一个样本需要用12比特来表示,这样就有96kbps的比特率,如果用不统一量化模式,就可以达到64kbps的码率,这样就可以进行流畅的语音传输交互了.

        G.711的MOS等级在4.3左右,所以质量就相当不错了,但是问题在于它需要64kbps的带宽,如果能再小的话,那就更理想了.

        在G.711中PCM编解码器把各个样本传输到远程终端,由于语音变化的速度比较慢,所以从先前的样本中预测出当前的样本的可能性是很大的,这样我们就可以通过样本预测值与实际样本之差进行编码,这样的技术被称为差分PCM(DPCM).

        在有了DPCM的模型之后,我们还有一个更为先进一些的模型: 自适音频脉冲编码(ADPCM),ADPCM是由以前的样本信息通过语音的变化科研部中提取出公共信息作为预测值.在ADPCM上最主要的标准就是.726.PCM与ADPCM都没有算法上的时延,所以可以进行实时的编解码.

        更加复杂的编码器有分析-综合编解码器(AbS Codecs)比如G.728 LD-CELP,它实现了一个滤波器,它包括一个语音学向量的编码本,每个向量包括一系列元素.这些元素代表激发信号的不同特征.所以这时语音信号传输的内容就是一系列的滤波器系数,增益以及指向选定激发向量的指针.这样在解码器端就可以精确进行信号的重组了.而LD-CELP则是由5个样本决定与之最匹配的编码本向量的滤波器系数,通过这样的方式,G.728可以把码率降低到16kbps以下.

G.723.1 ACELP

        G.723.1定义了一种同时支持两种速率的语音编码方法,分别是6.3kbps以及5.3kbps. 编码器取出输入信号, 然 后进行标准的PCM量化,形成16位的信号,接下来编码器在240个样本构成的块或帧上操作.这样每个帧就对应到30ms的语音数据.加上一个7.5ms的前瞻,这样的话,一共得到的时延是37.5ms. 这样需要进行传输的数据有预测系数,增益系数,以及激发编码本索引值.

        在通话的过程中总会有静默期,在此时通过不以传语音的同样速率传静音来节约带宽.G.723.1 Annex中提供了这样的一种方法.使用SID静音描述符来进行标记.

        G.723.1的MOS的值大约在3.8左右.

G.729

        它使用10ms为帧长,加上5ms的前瞻,这样的话,时延只有15ms,比起G.723.1就小很多了,而且还提出了语音活动检测,不连续传输和补偿噪音等再生的建议.它的MOS值大约为4.0

        当然对于像CDMA,GSM这样的特定网络下,有特定的编解码器,不再多讲.
阅读(2032) | 评论(0) | 转发(0) |
0

上一篇:SIP协议中的T1和T2

下一篇:FSK调制与解调

给主人留下些什么吧!~~