本文通过研究英飞凌基于VoIP引擎VINETIC-2PLUS的参考系统,揭示了影响VoIP语音质量的关键因素以及克服挑战的方法,并提出依靠无缝的VoIP解决方案而非仅靠高速的连接带来未来网络上的语音品质。
自从贝尔发明电话,人类能够远距离传递声音以来,语音通讯系统在100多年中经历了多次变革,从模拟传送到数字交换,从有线电话到无线通讯,而其中有创造性的就是VoIP技术的发展与应用。早期的VoIP是伴随着个人电脑以及互联网的出现而诞生的,但由于网络物理条件的限制(包括带宽、时延、抖动等因素),当时的VoIP 在很大程度上是一种PC与PC之间的游戏。“我能听到你了!”就是使用者的目标。随着互联网的快速发展和基于包交换的数据网络逐渐成熟,基于IP的语音通讯质量得以不断提高,更多的应用方式也应运而生,例如使用专门的VoIP终端,使用户实现近乎即插即用的VoIP通信体验,并且实现了用户ID的移动性(号码可携)和通讯终端多元化。
现在芯片公司都竞相提供集成度更高的VoIP 用户端设备(CPE)方案,例如基于以太网的VoIP电话、模拟终端适配器(ATA)、基于xDSL技术的VoIP家庭网关等等。于是,如何保证VoIP在24x7状态下的通话质量,并使其成为能够取代传统模拟语音接入线路的个人通讯系统,便成为了人们的新要求。
从表面上看,只要IP网络不断发展,VoIP的质量就能相应得到提高,但实际情况到底是不是这样呢?我们暂时抛开这个问题,先来探讨一下影响VoIP语音质量的关键因素,以及应该在VoIP CPE系统中采用何种方式去应对这些挑战。
当使用电话通信的时候,人耳对于声音的质量十分敏感。在VoIP系统中有损语音质量的干扰通常由抖动、回声、时延、静音和丢包等因素造成。
网络抖动会造成语音数据包的抵达时间不一致。在发送端,按照一定的速度和次序生成语音数据包,但是在经过IP网络传送后,数据包往往以不同的速度和次序抵达接收端。通常较高的抖动出现在低速率和拥塞的网络里,利用QoS控制机制、带宽预留、分级队列和高速网络技术(例如Gb以太网、VDSL2或者PON等)可以减少抖动的发生。但作为IP网络的固有特征之一,网络抖动始终存在于全网任何端到端的路径上。
回声是指通信方听到自己的声音被反射回来,其物理解释是发送的语音泄漏到了回传线路上。由于线路和电话机AC阻抗的不确定性,当用户线路2/4线匹配时将不可避免地产生线路回声。
时延是指从网络发送端到接收端所需的时间。人耳对任何超过50ms的时延都会有所察觉。通常,IP网络的时延大于传统TDM网络,而且较大的时延会使回声变得更加明显。
静音是指当通话一方静默倾听另一方说话的时候,为了减少流量,此时在VoIP系统中不会产生语音数据包。但是,当静默一方开始说话的时候,系统必须快速摆脱静音状态,以避免话音丢失。
丢包也是IP网络上的一种常见现象。通常,如果一个数据包无法在可接受的时延内抵达接收端,就会被接收方按丢失情况处理。
由于上述多种因素互相关联,所以一个出色的VoIP CPE系统必须能对各种因素分别进行处理,并协调各个模块的工作状态以获得的语音质量。下面将以英飞凌科技公司的一款集成了VoIP功能的宽带路由器方案为例,说明带FXS的VoIP CPE系统的组成,并讨论如何在芯片和系统设计中提高语音质量。
如图1所示,这款VoIP宽带路由器主要由英飞凌的VoIP处理器VINETIC-2PLUS,和家用网关处理器ADM5120组成。作为全球款集成了多通道VoIP处理器、动态存储器、双路A/D编解码器和用户线路接口芯片(SLIC)的CPE VoIP引擎,VINETIC-2PLUS具有从POTS、语音的模/数转换到压缩编解码、封包和其它VoIP处理的全部功能。
图1:VoIP宽带路由器系统由VoIP处理器VINETIC-2PLUS和家用网关处理器ADM5120组成。
图2为VoIP CPE系统中的基本数据流。下行语音数据以IP包的方式被接收,在网络处理器内,这些语音数据的IP头被剥离,并根据UDP头来判断其数据端口。然后,UDP头也被剥离,数据以RTP的形式被传送到抖动缓冲器。抖动缓冲器对VoIP系统的语音质量影响很大。VINETIC中内置的抖动缓冲器通过在播放前对抵达的数据包进行短期缓存,实现减小或消除抖动的目的,它通过判断时间戳来重新整理抵达的数据包,并不断自动调整可用缓存大小,以适应网络抖动的变化。这种自适应的抖动缓冲器通常被用于VoIP系统以满足IP网络的动态特性。另一方面,由于时延随缓存增大而增长,抖动缓冲器还必须平衡质量和时延之间的关系,以便将时延优化到小,同时又不会因为缓存过小而造成语音播放间断。
图2:VoIP CPE系统中的语音数据处理流程。
抖动缓冲器和播放组件紧密协作,后者负责在正确的时间播放相应的语音数据包。如果发送端的过高采样率导致抖动缓冲器中数据包的抵达速度超过播放速度,则播放组件将丢弃一些采样数据;反之,如果缓存被清空,则必须多产生一些数据来避免语音间断。坏帧掩蔽(BFM)和丢包隐匿(PLC)机制可以用来解决语音间断问题。此外,语音事件数据和对方静音将在该组件中被检测出来,以产生相应的音频信号或舒适噪声。
当处理器解压缩语音编码后,数据被送往D/A转换编码器和SLIC,然后SLIC进行4/2线转换并将模拟信号送至双绞线和电话。在上行方向,模拟语音信号从电话到达SLIC和A/D转换器,然后进入语音处理器(集成了线路回声消除(LEC)单元)。线路和电话机阻抗的任何微小不匹配都会在2/4线转换时产生语音泄漏(即回声)。