背景及问题
目前,随着视频会议及监控的迅速发展,视频和音频的应用技术已经相对成熟。在实际应用中,音频的交互处理仍然处于最基本和最核心的部分,人们对音频的实时性要求更为苛刻,因此,在网络带宽允许的条件下,当不同地点的多个终端,需要进行实时音频交互时,需要将多路音频按照一定的策略进行混合,并最终编码发送给另外的终端。
多路音频交互的核心问题就是混音,而提供资源使用率相对低且音频交互质量更高的混音方法,以提升用户的实际体验效果,已成为本领域技术人员需要解决的技术难题。
传统多路音频混音方法分析
为解决此类问题,传统的方法是采用多点控制单元(MCU)将多路音频信号混音为一路,如此可以有效降低网络数据的传输量。MCU混音的方式是:根据信号线性叠加的原理,将多路音频信号的采样量化数据叠加。随着终端数量的增多,此种方式会导致MCU的运算负荷和上传带宽急剧增大,所以此方式只能适用在较小规模的会议系统中。
将混音处理都集中在一台服务器来进行,对服务器的上传带宽和CPU处理能力要求很高,由此衍生出了分布式处理方式,即由多个终端来进行混音处理,而分布式的混音方法遇到的最主要问题就是对终端的下载带宽要求较高,同时也需要终端具有较高的多路音频解码和混音的处理能力,此外还需要终端配置良好的混音算法以获得高质量的混音效果。
目前,诸多的混音算法,用于处理4路以内的音频,还能获得较好的混音效果,然而对于4路以上的音频,混音后音质会急剧下降,而且极易出现量化溢出等问题(如图1所示效果)。为了确保各路音频的波形尽量能够在混音后保持原始的形态,以达到声音真实还原和音质更佳的效果,就必须解决数据叠加溢出的问题。
常见的几种解决溢出问题的方式如下:
1.平均化时域线性叠加的方法;
此法最为简单,但是混音效果很不好,存在混音后各路的音频衰减太多,音量偏小,不利于实时的沟通。
2.基于变换域的混音方法:
将各路音频转化为频域并做覆盖性差值,最后转换回时域得到混音数据的方法。此类方法虽然能很好解决溢出问题,但实现四路以上的混音难度较高,不具备普遍应用的优势。
图1现有直接叠加混音后的效果图(6路音频输入)
华平多路音频混音方法分析
华平提供的多路音频帧的混音方法是一种基于时域信号叠加的自适应的多路音频混合方法,能够混合超过4路以上的音频,实现方法:先将多路音频帧中相应采样点的值分别叠加以获得至少一个样点数据,且当有叠加后的结果超出预设范围时,对当前帧增益因子进行调整,当一帧叠加完成后,将所得的当前帧增益因子与前一帧增益因子进行比较,根据比较后的结果再次调整当前帧增益因子,接着,再根据再次调整后的当前帧增益因子、及音量强度的初始值计算当前帧的音量强度等级,并判断音量强度等级是否等于预设值,如果是,则将叠加后获得的各样点数据形成的帧作为混音帧,如果否,则根据音量强度等级对各样点数据进行处理,以使处理后的各样点数据都处于预设范围内,并将处理后的各样点数据所形成的帧作为混音帧。
本多路音频帧的混音方法通过对线性叠加后的混音数据进行溢出判断,当溢出时,对当前帧增益因子做一定的调整和计算,然后通过对混音后每帧数据进行对比分析,根据对比前后帧的相关参数来不断调整增益调节因子,并当混音出现溢出的时候自动将当前帧做饱和处理,能够避免混音后产生的溢出的噪音,并保持原始波形基本不变,音量大小基本不会受影响(如图2所示效果)。
图2华平多路音频混音方法混音后效果图(6路音频输入)
综上所述,及对比图1和图2效果可知:现有直接叠加混音方法在超过6路的音频输入后,不能保持波形的原始形态,且出现采样过载和溢出等问题,导致声音不能完全再现其原始的效果。华平的混音方法在超过6路音频输入后,可以保持波形的原始形态,完全解决了多路混音后存在的采样叠加溢出的问题,使沟通更加顺畅。
华平多路音频混音方法的其他特点及应用
² 混音出现溢出的时候能自动将当前帧做饱和处理,能够彻底避免混音产生的不同程度的噪音问题。
² 实现方法相对简单,基于定点更易于应用在便携设备和低功耗设备上。
² 可以用于集中式或分布式的各种环境中,在超过5路以上音频混音的总体输出效果,超过了其他方法。
² 相比现有的方法,在保持了音频的波形质量的同时,可以混合更多路数的音频作为混音输出。完全可以应用在更大型的指挥监控系统中,实现更多点的音频实时交互功能。