在ITU G.729B和G.723.1语音压缩标准中把活动语音检测(VAD)作为算法的一部分后, VAD的概念被普遍接受. Cisco使用得比G.729B成文更早一点点. 在Cisco系统中, 语音会先用VAD系统进行预处理, 然后再送到标准G.711或者G.729语音编码器中压缩. 在开放源代码的Speex中的处理方式跟Cisco类似, VAD是独立于Speex算法本身的一个预处理部分.
在G.729B和G.723.1标准发布超过13年后, 我们逐步认识到其实VAD在今天的网络电话中已经没有什么用处. 我们已经不再在乎它能节省的那一点带宽. 对它能带来的功耗方面的降低也不见得很重视. 相反, 独立于压缩算法的VAD经常会给语音质量带来负面影响, 增加网络抖动处理模块的复杂度. 因此, 如果话机不用G.729B和G.723.1的话, VAD的选项就完全多余.
其实不止我们有这种想法, GIPS的开放源代码iLBC算法中就没有VAD部分, 在它的VoiceEngine产品中也没有包括VAD. 今天重要的是AGC, AEC和带动态抖动缓冲区处理的PLC.
|