VOIP通信中影响语音质量的因素
转:http://blog.csdn.net/yuanrongxi775/archive/2006/03/02/613860.aspx
在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,静音压缩有两个非常明显的功能,那就是节省带宽、减小延迟。但也带来了一个负面的影响,就是对方在静音的时候,你根本听不到 任何声音,好象网络断开一样,这个时候CNG产生舒适音是非常必要的。所以静音压缩和CNG是要合在一起使用才能达到好的效果。
5、媒体通信的分级,一般的VOIP都有语音、视频、文本消息、传文件等功能,这些功能的通信都有自己的特点。语音最明显的特征是最快的完全到达对 方,而视频对时间并不是很敏感,但它对丢包比语音敏感。传文件占用的带宽大等特征,所以在通信机制上必须对各种媒体通信指定严格的通信等级,这样才能让保 证最重要的媒体通信的质量。
6、RTP/RTCP的通信控制问题。
要最大限度的保证VOIP产品的语音质量,以上6个问题必须综合起来考虑才能形成比较好的语音质量,但还有一些其他的因素,例如:NAT/FW的穿越问题、硬件稳定性和敏感性等。这些都是另外的话题。以后会逐一进行介绍欢迎大家一起来讨论这些VOIP问题。