影响语音质量的主要因素
语音质量对于大多数情况来说是一个主观因素,对于清晰、低时延、低抖动的话音我们认为其质量是可以接受的。比如我们通常的对外测试,请客户听一听话音的质量,客户的评价就是语音质量的主观评价。当然ITU 也有可以量化的语音质量评判标准,这在后文中会有说明。无论是主观的评判还是客观的量化的指标,清晰、低时延、低抖动都是高质量话音的保证。 影响语音质量的因素
在VOIP 通信中, 影响语音质量的因素比较多, 归类起来就以下几个大的因素:
1、网络因素,网络一般体现在网络的延迟、抖动、丢包。延迟一般是有语音的编解码速度、JitterBuffer 延迟、TCP/IP协议栈处理速 度、中间路由器路由延迟等引起的,在这些因素中,最重要的是JitterBuffer 延迟和中间路由器路由延迟。解决中间路由器的延迟必须是通过中间网络 的选取来解决,类似SKYPE 的SN 、QQ 的服务器协调路由的解决方案,其实就是找到最佳语音路由路径。抖动是有中间路由器的包排队引起的,抖动会引起声 音的不连续。解决这个问题办法就是用
JITTERBUFFER 来缓冲,从而达到消除抖动,但JITTERBUFFER 太长会引起网络的延迟,所以在 JITTERBUFFER 的设计上必须采用实时根据网络的情况调整
JITTERBUFFER 的缓冲大小。还有个问题就是丢包,一般的语音编解码允许的丢包 率在5%以内,引起丢包的主要原因的终端的带宽不够或中间路由器堵塞造成丢包,如果是终端的带宽不够,那么在呼叫建立过程中必须协商双方的通信能力,尽量 考虑用比较合适的语音编解码来进行通信,例如:在56K 的猫上最好不要选用G711等大带宽的语音编解码,所以智能的通信能力协商是必要的。如果是中间路 由器堵塞造成丢包丢包,解决这种情况有很多办法:采用对丢包不明显的语音CODEC 、丢包补偿(FEC )、自动选择中间路由(同解决网络延迟的方法一样)。
2、编解码采样因素,一般电话的语音的采样是8K ,这就很大程度印象声音的真实性,GIPS 的iSAC 编解码采用16K ~ 44.1k不等的采样,所以SKYPE 可以声称自己比PSTN 的语音更清新,尤其是在放音乐的时候。所以在VOIP 系统中,要在声音清晰度上超过PSTN 达到网络娱乐的效果,必须采用高采样的CODEC 。现在16K 以上的语音编解码有:iSAC 、Speex 、G.722.2等。这些编解码都是需要比较大的 带宽和CPU 利用率,所以很必须综合考虑。
3、语音的数字信号处理,一般在如果不采用任何的数字信号处理,声音质量肯定比较差,一般表现为:回声大、噪音大、声音乎小乎大。所以要提高语音这 方面的清晰度,必须做回声抵消、噪音抑制、信号增抑控制处理。但这些信号处理的算法一般只能在PC 上或用DSP 来实现,一般的掌上设备无法有这样的计算能力。所以在呼叫建立过程中必须协商双方的计算能力,这个是非常必要的。现在试面上的VOIP 产品很少考虑这方面。
4、静音压缩和CNG ,静音压缩有两个非常明显的功能,那就是节省带宽、减小延迟。但也带来了一个负面的影响,就是对方在静音的时候,你根本听不到 任何声音,
队列(Queuing ):语音的净荷放置到IP 包中后,要被设备转发到目的地,这些包会在设备的出接口队列中,等待被调度。转发设备不同的队列机制对IP 包的处理有很大不同。可以通过合理的配置来减少语音包在队列中等待的时间,进而减少队列时延。
串行化(Serialization ):接口队列中的语音IP 包,被送离设备前会放置到接口的物理队列当中,如果物理队列中有一个较大分组,还在发送状态,则语音分组必须等待这个较大的分组发送完毕后才能发送,这个等待的时间就是串行化时延。比如一个时钟速率为64kbps 的链路要发送一个1600Bytes 大小的FTP 分组,则串行化产生的时延会达到200ms (1600×8/64000×1000)。这对于后面等待的语音包来说已经是很大的时延了。
广域网时延:对于ISP 提供的广域网链路,对于用户来说只是一个黑盒子,除了上述的编码时延外,构成广域网链路的路由器交换机都会产生包化、队列、串行化的时延。而且到达同一目的的路径不同,其每个包的时延也不同,而这些时延对于用户来说是不可控的,当然我们在租用ISP 的线路时,可以要求ISP 提供符合时延要求的线路。
2 抖动
变化的时延被称作抖动(Jitter ),抖动大多起源于网络中的队列或缓冲,尤其是在低速链路时。而且抖动的产生是随机的,比如你无法预测在语音包前的数据包的大小,既便你使用LLQ (低延迟队列),如果大数据包正在传输过程中,当语音分组到达时,它还是要等待数据分组被发送完。而在低速的链路中,语音数据混传时,抖动是不可避免的。通常使用LFI (链路分段和交叉)将大包拆小,来减少大包对时延的影响。
3 丢包率
丢包(Packet Loss)是影响语音质量的重要的因素,当丢包超过一定的比率时,语音质量会变的不可接收,听者会听到,含混、爆破似的声音,在VOIP 通话时,接收方的编解码器能够接受一定程度的丢包律,一旦检测到有分组丢失,接收方的编码器就会对丢失时间内的波形进行推算。绝大多数的编解码器都能接受随机5%的丢包率,而不会明显影响通话的质量。这里说随机是因为如果这5%的包是连续丢失的,也会对语音质量造成很大问题。
4 回声
回声(Echo )一般分为说话者的回声和倾听者的回声。说话者的回声就是在通话过程中,说话者听到了自己的声音。倾听者的回声就是倾听者重复听到说话者的声音。回声的产生的原因一般分为两种,一种是电信号回声,一种是声学回声。电信号回声产生于电话网络的模拟部分。hybrid 是4线变2线的混合器,大部分的电信号回声是由于hybrid 的阻抗不匹配引起。声学回声是指,声音从扩音器(如耳机、听筒)扩散到扬声器(话筒、麦克)。
在大多数的PSTN (Public Switched Telephone Network )环境中,回声是存在的,但是回声的产生时间是如此接近正在讲话的人的声音,以至于给人的感觉, 这只是简单适度的侧音,就像我们平常说话时,我们通过颚骨听到自己的声音,这样的侧音对我们来说是习惯的。但当回声通过网络以过大的延迟返回时,回声不利的影响就会被说话者察觉,语音质量就变得有问题了。注意回声虽然只能在网络的模拟部分产生,但是IP 网络累积的延迟能够导致回声从合适的侧音变成令人困扰的语音质量问题。为了消除回声干扰,可以在尽可能靠近回声源的地方部署被称为回声抑制器的装置。回音抑制( Echo Cancellation Algorithm)其定义由ITU-T G.168给出。回音抑制的功能是用相位补偿的方法抵消串入远端发送信号中的远端接收信号。其目标是消除时延超过25毫秒的回声,因为当回音超过25毫秒时,说话方就能够听到反射回来、滞后的自己的声音。