多路音频的混音方法

文档序号:2823931阅读:2717来源:国知局
专利名称:多路音频的混音方法
技术领域
本发明涉及一种多路音频的混音方法。
背景技术
目前,随着视频会议及监控的迅速发展,视频和音频的应用技术已经相对成熟。在 实际应用中,音频的交互处理仍然处于最基本最核心的位置,对音频的实时性要求更为苛 刻,由此,对于实际使用中的不同地点的多个终端,若要进行多个点的实时音频的交互,在 网络带宽允许的条件下,需要将多路音频按照一定的策略进行混合并最终编码送给另外的 终端。为解决此类问题,传统的方法是采用多点控制单元(MCU)将多路音频信号混音为 一路,如此可以有效降低网络数据的传输量。MCU混音的方式是根据信号线性叠加的原 理,将多路音频信号的采样量化数据叠加。随着终端数量的增多,此种方式会导致MCU的运 算负荷和上传带宽急剧增大,所以此方式只能适用在较小规模的会议系统中。将混音处理都集中在一服务器来进行,对服务器的上传带宽和CPU处理能力要求 很高,由此衍生出了分布式处理方式,即由多个终端来进行混音处理,而分布式的混音遇到 的问题最主要就是对终端的下载带宽要求较高,同时也需要终端具有较高的多路音频解码 和混音的处理能力,此外还需要终端配置良好的混音算法以获得高质量的混音效果。目前,诸多的混音算法,用于处理4路以内的音频,还能获得较好的混音效果,然 而对于4路以上的音频,混音后音质会急剧下降,而且极易出现量化溢出等问题。为了确保 各路音频的波形尽量能够在混音后保持原始的形态,以达到声音真实还原和音质更佳的效 果,就必须解决数据叠加溢出的问题。常见的几种解决溢出的问题的方式如下1 >平均化时域线性叠加的方法;
1 Ai-I即mixou\i\ = — ^inpu{j][i], i = 0,1, ... , N-I,其中,M 是音频信号路数,
input [j] [i]为第j路音频的第i个采样样本,miXout[i]为混音后一帧的第i个采样样本 此法最为简单,但是混音效果很不好,存在混音后各路的音频衰减太多,音量偏小,不利于 实时的沟通。2 >基于变换域的混音方法将各路音频转化为频域并做覆盖性差值,最后转换回时域得到混音数据的方法。 此类方法虽然能很好解决溢出问题,但实现四路以上的混音难度较高,不具备普遍应用的 优势。总之,多路音频交互的核心问题就是混音,而提供一资源使用率相对低且音频交 互质量更高的混音方法,以提升用户的实际体验效果,已成为本领域技术人员需要解决的 技术难题。

发明内容
本发明的目的在于提供一种简单易施的多路音频帧的混音方法。为了达到上述目的及其他目的,本发明提供的多路音频帧的混音方法,其中,多路 音频帧各自都由音频信号采样得到,每一路都包含至少一个采样点,所述方法包括步骤1) 将多路音频帧中相应的采样点的值分别叠加以获得至少一个样点数据,且当有叠加后的结 果超出预设范围时,根据该超出预设范围的叠加结果、及所述预设范围调整当前帧增益因 子,否则不调整当前帧增益因子,其中,当前帧增益因子的初始值预先设定;2)在叠加完成 后,将步骤1)所得的当前帧增益因子与前一帧增益因子进行比较,根据比较后的结果再次 调整当前帧增益因子,其中,前一帧增益因子的初始值预先设定;3)根据再次调整后的当 前帧增益因子、及音量强度的初始值计算当前帧的音量强度等级,其中,音量强度的初始值 预先设定;以及4)判断所述音量强度等级是否等于预设值,如果是,则将叠加后获得的各 样点数据形成的帧作为混音帧,如果否,则根据所述音量强度等级对各样点数据进行处理, 以使处理后的各样点数据都处于所述预设范围内,并将处理后的各样点数据所形成的帧作 为混音帧。此外,所述多路音频帧的混音方法还可包括步骤将步骤2)中再次调整后的当前 帧增益因子赋值给前一帧增益因子,以供下一帧混音之用。较佳的,多路音频帧可以是至少4路以上音频帧。综上所述,本发明的多路音频帧的混音方法通过对线性叠加后的混音数据进行溢 出判断,当溢出时,对当前帧增益因子做一定的调整和计算,然后通过对混音后每帧数据进 行对比分析,根据对比前后帧的相关参数来不断调整增益调节因子,并当混音出现溢出的 时候自动将当前帧做饱和处理,能够避免混音后产生的溢出的噪音,并保持原始波形基本 不变,音量大小基本不会受影响。


图1为本发明的多路音频帧的混音方法的流程图。图2为本发明的多路音频帧的混音方法对6路音频信号混音后结果示意图。图3为现有混音方法对对6路音频信号混音后结果示意图。
具体实施例方式以下将结合附图对本发明的多路音频帧的混音方法进行详细说明。在本实施例 中,以混音设备(例如计算机)对6路音频,即音频信号1、音频信号2……音频信号6,进 行混音为例进行说明。其中,音频信号1、音频信号2……音频信号6各自都由模拟音频信 号经过采样后形成,即音频信号1由模拟音频信号1经采样后形成,音频信号2由模拟音频 信号2经采样后形成……音频信号6由模拟音频信号6经采样后形成,对模拟音频信号1、 模拟音频信号2……模拟音频信号6的采样,可基于同一采样频率来进行,而且,在采样时, 可以一定的采样时间内所采样的数据作为一帧,由此,形成的各路音频包含多帧,而每一帧 又包含多个采样点。例如,音频信号1包含帧11、帧12……帧lm,音频信号2包含帧21、帧 22……帧2m,……音频信号6包含帧61、帧62……帧6m。需要说明的是,本领域技术人员应该理解,上述混音设备并非以应用在计算机上
4为限,事实上,还可以是数字信号处理器、便携式设备等;此外,混音的音频信号也并非以6 路为限,可以是2路或2路以上的音频信号等;再有,每路音频信号包含的帧的数量、每一帧 包含的采样点的数量并非以完全相等为限,例如,音频信号1包含2帧,而音频信号2包含 3帧等,再例如,音频信号1的第一帧即帧11包含5个采样点,而音频信号2的第一帧即帧 21包含6个采样点等等。以下先描述各音频信号的第一帧,即音频信号1的帧11、音频信号2的帧 21、……音频信号6的帧61,的混音过程。如图1所示,第一步首先,设置当前帧增益因子、前一帧增益因子、及音量强度初 始值。如果各音频帧的各采样点的值都以nbit表示,则可将当前帧增益因子、前一帧增益
2"/2_1 λ为偶数
因子、及音量强度初始值都可设置为一个中间值,即j2⑷ρ例如,采样点的值都以
9
16bit表示,则当前帧增益因子、前一帧增益因子、及音量强度初始值都设置为中间值21672-1 =128。本领域技术人员应该理解,当前帧增益因子、前一帧增益因子、及音量强度初始值的 设置可以根据实际情况,例如音频信号的数量、混音设备的处理能力、各路音频信号自身的 性质(如来源、信号强度等等),来确定,各初始值也并非以相等为限,例如,当前帧增益因 子和前一帧增益因子为128,音量强度初始值为64等。第二步,计算机将6路音频帧中相应的采样点的值分别叠加以获得多个样点数 据,且当有叠加后的结果超出预设范围时,根据该超出预设范围的叠加结果、及所述预设范 围调整当前帧增益因子,否则不调整当前帧增益因子。其中,预设范围可以为(^n-1Jn-1), 当η = 16时,预设范围为(-32768,32768)。由于是对第一帧进行混音,故当前帧增益因子
的起始值为初始值,例如而叠加过程可以依序进行,即计算机先将音频信
号1的帧11的第一个采样点的值和音频信号2的帧21的第一个采样点的值叠加获得第 一次叠加结果,接着,计算机再将音频信号3的帧31的第一个采样点的值和第一次叠加结 果再次叠加,以获得第二次叠加结果,接着,计算机将音频信号4的帧41的第一个采样点 的值和第二次叠加结果再次叠加,以获得第三次叠加结果,接着,计算机将音频信号5的帧 51的第一个采样点的值和第三次叠加结果再次叠加,以获得第四次叠加结果,接着,计算机 将音频信号6的帧61的第一个采样点的值和第四次叠加结果再次叠加,以获得第五次叠 加结果,即获得一个样点数据,接着,开始第二个采样点的值的叠加,其过程与进行第一个 采样点的值的叠加过程类似,即计算机先将音频信号1的帧11的第二个采样点的值和音 频信号2的帧21的第二个采样点的值叠加获得第二轮的第一次叠加结果,……,同样经过 5次叠加后可以获得第二个样点数据,如此依序进行,直到将音频信号6的帧61的最后一 个采样点的值叠加完获得最后一个样点数据为止。在叠加过程中,计算机可以在每获得一 次叠加结果后即判断该叠加结果是否超过预设范围,也可仅判断部分叠加结果(例如所获 得的各样点数据)是否超过预设范围,如果有叠加后的结果超过(-32768,32768),则计算 机可按照miX_agC' = mix_agcX (2n"Vmixout)来对当前帧增益因子进行调整,其中,mix_ age'是调整后的当前帧增益因子,mix_agc是该次调整前的当前帧增益因子,mixout是超 出预设范围的叠加结果。需要说明的是,如果有多个叠加后的结果超过预设范围,可以根据 每一次超过预设范围的叠加结果对当前帧增益因子进行多次调整,例如,前一次的叠加结果mixoutl和后一次的叠加结果miXout2都超过预设范围,则判断叠加结果mixoutl超过 预设范围后,调整一次当前帧增益因子,即miX_agCr = mix_agcX (2n-7miXoutl),当判 断叠加结果mix0ut2超过预设范围后,再一次调整当前帧增益因子,即miX_agC2' = mix_ agcl' X (2n-Vmixout2);此外,如果有多个叠加后的结果超过预设范围,也可以仅仅根据 最后一次的结果来调整当前帧增益因子,例如,叠加后的结果mixoutl、mixout2、mixout3 都超过预设范围,mixout3是在mixoutl和miXout2之后获得的叠加结果,则可只根据 mixout3来调整当前帧增益因子。如果采用多次调整的方式,即一叠加后的结果超出预设 范围,就调整一次当前帧增益因子,则第一次调整当前帧增益因子时,式miX_agC' = mix_ ageX (2n_7miXout)中的miX_agC为当前帧增益因子的起始值,而第二次调整当前帧增益 因子时,式mix_agc' = mix_agcX (2n_7mixout)中的mix_agc为第一调整后的结果。第三步,在叠加结束后,也就是将音频信号6的帧61的最后一个采样点的值叠 加完获得最后一个样点数据后,计算机将所获得的当前帧增益因子与前一帧增益因子 进行比较,并根据比较后的结果再次调整当前帧增益因子。同样,此时的前一帧增益因
子的起始值也为初始值,例如,:再次调整当前帧增益因子的方式可以为
O
mj naryy = IXmix_agc\>mix_agc_prev)
mix __ a^L — I (mfX_agC_prev+miX_agCi)/2 Xmix_agc\<mix_agc_prev)其中,mix_agC ’是再
次调整后的当前帧增益因子,mix_agc_prec是前一帧增益因子,mix_agcl是叠加完成后所 得的当前帧增益因子,A = SampleRate/framesize,B= 1,SampleRate 是采样率,framesize 是帧长。也就是说,当所获得的当前帧增益因子大于或等于前一帧增益因子时,按照采样 率、帧长等来调整当前帧增益因子;当所获得的当前帧增益因子小于前一帧增益因子时,则 直接计算两者的平均值作为调整后的当前帧增益因子。第四步,根据再次调整后的当前帧增益因子miX_agC"、及音量强度的初 始值计算当前帧的音量强度等级,音量强度的初始值为Ι :)! m可以按照
O
^Mi==:=二来计算音量强度等级,其中,level为音量强度等级,
mix_vol为音量强度初始值。在本实施例中,level = mix.agc"。第五步,判断所述音量强度等级是否等于预设值,如果是,则将叠加后获得的各样 点数据形成的帧作为混音帧,如果否,则根据所述音量强度等级对各样点数据进行处理,以 使处理后的各样点数据都处于所述预设范围内,并将处理后的各样点数据所形成的帧作为 混音帧。根据所述音量强度等级对各样点数据进行处理的方式可以为先判断w[i]是否 超出预设范围,如果是,则将w[i]调整至预设范围(例如=^n-1Jn-1))的端点值,其中,
ν·λ_{{τη^\ \Μ)ηηη-1 ,“为偶数. ‘「.η 日斤斤.人任无 I4e 、 科虫「. +Jon-I
^--{(muout^M)!!^2 ,《为奇数miX0Ut[l]是弟1个样点数据。通常,当w[l]大于
时,将其调整为;当w[i]小于时,将其调整为H由此可以避免数据溢出。需要 说明的是,在本实施例中,由于level = mix.agc",因此,也可以直接判断再次调整后的当 前帧增益因子miX_agc"是否等于预设值,由此来确定是否需要对样点数据进行处理。第六步,将再次调整后的当前帧增益因子赋值给前一帧增益因子,以供下一帧混 音之用,也就是供计算机对第二帧,即音频信号1的帧12、音频信号2的帧22、……音频信
6号6的帧62,进行混音时用。不过,本领域技术人员应该理解,将当前帧增益因子赋值给前一帧增益因子的步骤并非限定在第五步之后进行,事实上,也可在前述第三步、或者第四步之后进行。
第七步(图未示),计算机开始对音频信号l的帧12、音频信号2的帧22、……音频信号6的帧62,进行混音,其混音的过程和前述对各音频信号第一帧的混音过程类似,在此不再详述,不过,当叠加结果超出预设范围时,按照miX—agC’一miX—agC×(2”’/miX。ut)来调整当前帧增益因子时,式miX—agC’一miX—agC×(2”’/miX。ut)中的miX—agC的起始值是第一帧混音过程中获得的调整后的当前帧增益因子,也就是第三步所获得当前帧增益因子miX—agC”,而前一帧增益因子的起始值也等于miX—agC” (在前述第六步中予以赋值的结果)。
在完成了对各音频信号的第二帧的混音后,依照对第二帧混音的方法,计算机继续对各音频信号的第三帧混音,一直进行到对各音频信号的最后一帧,即,音频信号l的帧lm、音频信号2的帧2m、……音频信号6的帧6m,的混音为止。不过需要说明的是,在对最后一帧混音后,可以不用再将调整后的当前帧增益因子赋值给前一帧增益因子。
为进一步验证本发明的方法的性能,将本发明的混音方法应用于文件数据流的进行混音测试,以验证效果,输入六路音频信号,音频信号包括男声、女声、童声、英语、音乐等类型,分别将此方法混音后输出的信号和现有直接叠加混音方式输出的信号进行对比分析测试,其中,设置的音频信号为16位采样精度,采样率SrC一80001了Z,帧长frameSiZe—160,本发明的混音方法的部分伪代码描述如下
A—SampleRate/frameSiZe,B— l ;
while(读取五个混音数据帧到对应缓沖区中成功)
{
F。r M—o t。6 d。
begin
p in一&input buf[m*frameSiZe] ;
F。r N—o t。frameSiZe d。
begin
miX buf+一p in[N];
工f(当前采样值超过16bit采样范围)
{
根据miX—buf[N]计算miX—agC参数;
}
end
end
工f(mi X—agC>一mi X—agC—preV)
mi X—agC一 (A*(mi X—agC—preV+1)+B*mi X—agC)/(A+B)
ElSe
miX—agC一 (miX—agC—preV>>l+miX—agC>>1) ;
]miX—agC—preV—miX—agC;
权利要求
1.一种多路音频帧的混音方法,其中,多路音频帧各自都由音频信号采样得到,每一路 都包含至少一个采样点,所述方法的特征在于包括步骤1)将多路音频帧中相应的采样点的值分别叠加以获得至少一个样点数据,且当有叠加 后的结果超出预设范围时,根据该超出预设范围的叠加结果、及所述预设范围调整当前帧 增益因子,否则不调整当前帧增益因子,其中,当前帧增益因子的初始值预先设定;2)在叠加完成后,将步骤1)所得的当前帧增益因子与前一帧增益因子进行比较,根据 比较后的结果再次调整当前帧增益因子,其中,前一帧增益因子的初始值预先设定;3)根据再次调整后的当前帧增益因子、及音量强度的初始值计算当前帧的音量强度等 级,其中,音量强度的初始值预先设定;4)判断所述音量强度等级是否等于预设值,如果是,则将叠加后获得的各样点数据形 成的帧作为混音帧,如果否,则根据所述音量强度等级对各样点数据进行处理,以使处理后 的各样点数据都处于所述预设范围内,并将处理后的各样点数据所形成的帧作为混音帧。
2.如权利要求1所述的多路音频帧的混音方法,其特征在于还包括步骤将步骤2)中 再次调整后的当前帧增益因子赋值给前一帧增益因子,以供下一帧混音之用。
3.如权利要求1所述的多路音频帧的混音方法,其特征在于多路音频帧为至少4路 以上音频帧。
4.如权利要求1所述的多路音频帧的混音方法,其特征在于如果每一音频帧中的各 采样点的值都以nbit表示,则当前帧增益因子、及前一帧增益因子的初始值都设置为f 2"/2'1 ,《为偶数 ,《为奇数O
5.如权利要求4所述的多路音频帧的混音方法,其特征在于预设范围为(In-1Jn-1), 步骤1)调整当前帧增益因子的方式为miX_agC' = mix_agcX (2n_7miXout),其中,mix_ age'是调整后的当前帧增益因子,mix_agc是该次调整前的当前帧增益因子,mixout是超 出预设范围的叠加结果。
6.如权利要求5所述的多路音频帧的混音方法,其特征在于再次调整当前帧增益m !士 Hi 柔 mi ν ησηη — {iA<n>ix_agc_prev+l)+B^mix_agc\)l{A+B) ,(mix _agc\>mix _agc _prev)甘出 囚卞 tl、J 力 A TiJ ηιΙΛ —_ "Sl- — \ (mix_agc_prev+mix_agcl)/2 ,{mix_agc\<mix_agc_prev)共 Ψ,mix.agc"是再次调整后的当前帧增益因子,miX_agC_preC是前一帧增益因子,mix_agcl 是步骤1)所得的当前帧增益因子,A = SampleRate/framesize,B = 1,SampleRate是采样 率,framesize是中贞长。
7.如权利要求6所述的多路音频帧的混音方法,其特征在于按照—H丨奇数数細謂虽騰,脉1鬧1應碰■,mix_vol为音量强度初始值。
8.如权利要求7所述的多路音频帧的混音方法,其特征在于根据所述音量强度等级 对各样点数据进行处理的方式为判断w[i]是否超出预设范围,如果是,则将w[i]调整至预设范围的端点值,其中,>Φ'] = ·{ =二SSSii: 'SS mixout[i]是第i个样点数据。
全文摘要
本发明提供一种多路音频帧的混音方法,其先将多路音频帧中相应的采样点的值分别叠加以获得至少一个样点数据,且当有叠加后的结果超出预设范围时,对当前帧增益因子进行调整,当一帧叠加完成后,将所得的当前帧增益因子与前一帧增益因子进行比较,根据比较后的结果再次调整当前帧增益因子,接着,再根据再次调整后的当前帧增益因子、及音量强度的初始值计算当前帧的音量强度等级,并判断音量强度等级是否等于预设值,如果是,则将叠加后获得的各样点数据形成的帧作为混音帧,如果否,则根据所述音量强度等级对各样点数据进行处理,以使处理后的各样点数据都处于所述预设范围内,并将处理后的各样点数据所形成的帧作为混音帧,此法简单易施。
文档编号G10L19/00GK102005206SQ201010548699
公开日2011年4月6日 申请日期2010年11月16日 优先权日2010年11月16日
发明者刘晓露, 刘睿, 张子刚, 熊模昌 申请人:上海华平信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1