一种改进的混音算法的研究与实现

2016-10-14 00:29张文丰余秋萍
科学与财富 2016年28期
关键词:实时混音

张文丰+余秋萍

摘 要:在多媒体会议或者监控系统中,混音算法决定了其输出语音质量高低。作为沟通、释义的本质需要,混音算法既要求保持一定的音频信号大小,也要求音质效果适宜,实时性有保障。由此,文中提出的基于时间帧进行归一化方法的混音算法,改进常见音频混音算法中的多种缺陷。

关键词:PCM;混音;实时;时间帧;归一化

1、前言

多媒体会议和监控系统,是音视频被广泛应用的方案。工作生活中,会议系统和多功能的监控系统,涵盖的数字化音视频在现实生活中的应用越来越广泛,多媒体社交方式对音频交互的要求也越来越高。而作为沟通基础的语音对话,则是任何一种多媒体交互的最本质的要求①。

系统的混音算法决定了会议或监控对讲质量的好坏。长期以来,不同的应用模式中,已经有很多种音频混音算法相继被提出,但是各有优缺点。

多媒体会议系统或监控系统,往往采用分布式组播建立系统架构。而每一路单播时,服务器完成混音、管理会议或者监视画面等等特定功能。由于会议要求混音中消除本路音频信号、多路音频信号的对齐和选择方法等业务要求属于会议管理的一部分,我们不予讨论。本文只关注于多路音频信号的混音算法研究,并提出了一种改进的混音算法。

多路音频信号的混音,无论采集编码采用的是何种采样率和编码格式,我们这里进行算法讨论时,混音处理的信号对象是指解码后的PCM格式,并且已调整为具有相同的频率的音频数据。即,混音处理的音频信号是对齐并且预处理完成之后的信号。

2、混音基本原理

多路音频信号混合时,不失一般性,我们约定,在会议或交互中有 i 个端点参与混音。并且约定音频混音时的信号频率F,定义端点的信号采集时间帧长度为FRAME_SIZE(单位:s)。通常,声音信号延时超过100ms时,主观能明显感受到,因延时造成在线对话困难。因此我们的时间帧长度通常取值为时延阈值的十分之一,即10ms,既足够满足信号特征分析的需要,也能满足实时要求。

而当前多种混音算法的目的都是为了尽可能保持有效信号的权重比例,并且解决信号溢出问题,因此我们还需要对求和之后的音频信号进行防止溢出的处理。

3、算法分析和实现

实际的应用中,常规混音方案都会在时域范围采用音频点的信号叠加作为基本的处理手段,由于数字音频信号的量化有位长的上下限①。叠加运算必然会造成溢出。然后,要进行溢出检测,对溢出信号进行饱和运算,即超过上限的结果被置为上限值,超过下限的值置为下限值。这种运算其实破坏了音频信号的时域特征,引入了爆破音等噪声,局部语音不再连续。当混音的信号源幅度较大,或者路数增加时,溢出将成为常态。混音结果几乎轻易就能达到上下限值。语音流中充斥太多噪声就无法再被理解。

常见的多重混音算法中,(1)直接加和法和平均权重算法。后者是在前者的基础③上,求多路音频通道的算术平均。很明显,前者缺陷是容易溢出造成严重影响体验的溢出杂音,后者算术平均后,不会产生溢出,噪音也较小。但是缺点明显:平均后的衰减过大,影响通话质量;(2)加和并箝位。如有溢出就设箝位的最值(上溢时,箝位以后的值为字符长度所能表示的最大值;下溢时,箝位值为所能表示的最小值)。这一方法仍会在溢出的地方引入了严重的刺刺的杂音;(3)归一化混音处理。设置一个音频信号的归一化系数。对全部的音频信号乘以系数,要求所有信号最大值不可溢出,从而使信号幅值归一化。

但此方法需要知道所有音频信号的个体幅度,不具备实时性;(4)自适应的加权混音算法,使用衰减因子,用衰减因子限制幅值。衰减因子代表了语音的权重,随着音频数据的变化而变化。优点是能避免信号溢出,缺点则是计量衰减因子计算量较大,并且衰减因子的加成,导致信号特征一直发生变化,对音质的保真还原度有一定影响。

叠加后为避免发生溢出,乘以衰减因子的算法能降低其幅度,使其仍旧分布在实际位长所能表示的范围之内,当溢出时,衰减因子减小至<1,并使得溢出的数据在衰减后能够处于临界值以内,而在没有溢出时,又让衰减因子增大至>1。衰减因子使信号数据变化较为平缓。衰减因子随着音频数据的变化而变化,多路叠加时,越平均的衰减因子越容易造成信号普遍衰减,影响辨析。尤其是针对单点信号的衰减因子在路数增多的情况下,无法判断该路信号的实际信息中的权重,可能导致该路信号部分语音信号点严重弱化,无法被辨析,造成断续感受,影响实际交流效果。

3.1、改进算法的思路和实现

3.1.1、最小信号处理单元时长——时间帧

通常的混音算法采用单点进行处理,处理简洁,运算简单,计算迅速。但考虑到语音信号的之间存在关联性,并且语音还有一个明显的特征叫掩蔽效应。当同时产生信号时,人耳的主观感受中,幅度较大的信号可能掩盖较小的信号。

我们需要保证较强能量的一定时长的音频通道信号段被接收,才能理解对方语音的含义。单点信号体现不出信号元素间的关联性,多路信号乘以衰减因子可能造成短时信号衰弱至不可辨认,单点信号处理就不能满足我们主观感受语音信号的特征。

实验效果和人耳特征显示,我们感受延时超过100ms后,双方因无法判断对方下一步行为而造成“抢发言”而冲突,无法正常沟通。

因此我们在点对应时长和100ms之间选择一个时间段作为时间帧。我们通常根据音频编码特征,选择10ms或者2-3个整数倍作为时间帧长(如特例:ITU,G723.1编解码的时长是30ms,混音时长对齐时选择30ms为编码时间帧;G722.1则是20ms编解码时长。使用10ms时长描述算法并不失一般性)④。

3.1.2、算法实现描述

我们根据掩蔽效应的原理,我们首先要对单帧信号的能量进行计算,选择能量最强的且不包括自身的2路信号,进行混音运算。如果选择3路,则先两路混音后,再与其中一路混音即可完成。当混音信号超过3路之后,声音信号要么被掩蔽,要么杂乱,干扰互动沟通,缺乏实际的应用价值。

3. 2、混音实验结果

根据实际参与测试的测试人员的主观评价,混音效果良好,合成后的音频流连续、自然,没有跳音和断续的感觉,也没有溢出爆破噪声,重点信号通道的音频幅度明显,强度丰富,信息清晰可辨。

4、结束语

按照上述算法,同时在VC++6.0环境和DSP嵌入式环境下,编码完成混音功能。既可由DSP多媒体音视讯集成系统应用到多媒体视讯会议中,也可以应用到监控交互方案里。也可以应用到PC软件系统中,具有处理实时流媒体和文件类媒体的双重功能。

本算法已经被应用于多种产品中。实践证明,相对于其它常见的一些语音混合算法,具有良好的听觉主观舒适感。

参考文献

[1] 李宇,郭雷勇,陈建铭,谭洪舟.一种多媒体会议系统的实时同步混音转发算法.中山大学学报(自然科学版),2010年3月,49(2).

[2] 樊星,顾伟康,叶秀清. 多媒体会议中的快速实时自适应混音方案研究. 软件学报, 2005,16(01):108-115.

[3] 徐保民,王秀玲. 一个改进的混音算法.电子与信息学报,?2003,?25(12):1709-1713.

[4] 杨树堂,余胜生等.基于分组网络的多点实时语音混合及调度算法.软件学报, 2001.12(9):413-1419.

作者简介:张文丰(1978-),男,硕士。

猜你喜欢
实时混音
人间烟火
一种多路音频混音算法的实现与应用
Allen&Heath dLive数字调音台新成员C Class
等公交,从“实时”开始
某高校班级量化考核系统的设计与实现
一种基于鼠标定位原理的单目视觉定位技术
基于无线传感器网络的实时粮仓监控系统研究
基于DSP的多方会议系统的混音方案
激光唱片中的代号