发明内容
本发明所要解决的技术问题在于,提供一种混音处理方法、装置及智能设备,实现简单、计算复杂度低,能有效避免波峰溢出和各路声音减小等问题。
为了解决上述技术问题,本发明提供一种混音处理方法,包括以下步骤:
分别用预先设定的加权系数对需进行混音处理的每一路音频信号的采样值进行加权处理,得到加权采样值;
将所述加权采样值求和,再乘以当前衰减因子,得到合成中间值;
判断所述合成中间值是否发生溢出:
如果所述合成中间值发生溢出,则以最大采样值或最小采样值输出音频,并减小当前衰减因子以作为下一次采样的衰减因子;
如果所述合成中间值未发生溢出,则以所述合成中间值输出音频;同时如果当前衰减因子小于1,则增大当前衰减因子以作为下一次采样的衰减因子。
本发明还提供一种混音处理装置,包括:
加权处理单元,用于分别用预先设定的加权系数对需进行混音处理的每一路音频信号的采样值进行加权处理,得到加权采样值;
合成处理单元,用于将由所述加权处理单元处理得到的加权采样值求和,再乘以当前衰减因子,得到合成中间值;
判断处理单元,用于判断所述合成中间值发生溢出时,则以最大采样值或最小采样值输出音频,并减小当前衰减因子以作为下一次采样的衰减因子;或判断所述合成中间值未发生溢出时,则以所述合成中间值输出音频;同时如果当前衰减因子小于1,则增大当前衰减因子以作为下一次采样的衰减因子。
本发明还提供一种智能设备,包括混音处理装置,所述混音处理装置包括:
加权处理单元,用于分别用预先设定的加权系数对需进行混音处理的每一路音频信号的采样值进行加权处理,得到加权采样值;
合成处理单元,用于将由所述加权处理单元处理得到的加权采样值求和,再乘以当前衰减因子,得到合成中间值;
判断处理单元,用于判断所述合成中间值发生溢出时,则以最大采样值或最小采样值输出音频,并减小当前衰减因子以作为下一次采样的衰减因子;或判断所述合成中间值未发生溢出时,则以所述合成中间值输出音频;同时如果当前衰减因子小于1,则增大当前衰减因子以作为下一次采样的衰减因子。
本发明所提供的混音处理方法、装置及智能设备,实现简单,计算复杂度低,并且避免了饱和相加法带来的大面积饱和区域缺点,也避免了相加求平均的方法带来的音量减小的问题。在混合溢出处增加了自动调节功能,音频信号过渡更平滑,更大程度地保持了原有信息量。
具体实施方式
下面参考附图对本发明的优选实施例进行描述。
本发明实施例在对至少两路音频信号进行混音处理时,引入一个可变的衰减因子,与经加权处理的各路音频信号采样值的和相乘,当乘积的合成采样值发生溢出时,以最大采样值或最小采样值输出音频,同时适当调小衰减因子,这样在下一个采样点时,新的衰减因子与经加权处理的各路音频信号采样值的和相乘,可以降低溢出的可能性。另外,为了防止音频信号被不必要地过分衰减,还可以适当增大衰减因子。因此,本发明实施例的混音处理方法十分灵活,实现简单,计算复杂度低。
请参照图1所示,本发明实施例一提供一种混音处理方法,包括以下步骤:
分别用预先设定的加权系数对需进行混音处理的每一路音频信号的采样值进行加权处理,得到加权采样值;
将所述加权采样值求和,再乘以当前衰减因子,得到合成中间值;
判断所述合成中间值是否发生溢出:
如果所述合成中间值发生溢出,则以最大采样值或最小采样值输出音频,并减小当前衰减因子以作为下一次采样的衰减因子;
如果所述合成中间值未发生溢出,则以所述合成中间值输出音频;同时如果当前衰减因子小于1,则增大当前衰减因子以作为下一次采样的衰减因子。
具体的,请参照图2所示,以对两路音频信号进行混音处理为例对本实施例的混音处理方法进行说明,包括:
步骤S1,用加权系数w1和w2分别对音频信号采样值s1(n)、s2(n)进行加权处理,分别得到加权采样值w1*s1(n)和w2*s2(n)。
其中,s1(n)、s2(n)为当前采样点的原始两路音频输入信号采样值;w1,w2分别代表加权系数,位于区间(0.5,1],本实施例中优选取值0.618或者1。应当注意的是,w1、w2为预先设定,根据不同需求可以相应设置。例如,在视频会议中,不同的人音量大小不一,相同的人在不同时刻的音量也不一定相同,因此为了使混音中各人的音量不至于相差太大,可以为各路音频信号设定相应加权系数进行调整。又如,在卡拉OK里,也可以通过设置加权系数为伴奏的音频信号和人声的音频信号进行调整。
步骤S2,对加权采样值w1*s1(n)和w2*s2(n)相加,再乘以当前衰减因子q,得到合成中间值s(n),即
s(n) = q*[ w1*s1(n) + w2*s2(n)] (式3.3)
其中,衰减因子q位于区间(0,1],初始值为1。
本实施例设置衰减因子的目的之一是如果对步骤S2中经加权处理得到的加权采样值采取直接相加,得到的合成中间值仍然容易发生溢出,有必要通过衰减因子来加以限制。
步骤S3,判断合成中间值s(n)是否发生溢出,并根据判断结果输出相应音频。
合成中间值是否发生溢出,是指合成中间值是否超出最大采样值和最小采样值的范围,具体是将合成中间值与最大采样值或最小采样值进行比较。最大采样值和最小采样值根据采样位数确定。采样位数是用来衡量音频波动变化的参数,是指将模拟音频信号转换为数字音频信号的二进制位数。本实施例中采样位数为16位,则由其确定的最大采样值为32767,最小采样值为-32768(也可称为负的最大采样值)。具体的比较可参见式3.4:
式3.4:
其中,s(n)代表合成中间值;y(n)代表最后的合成信号,即输出的音频;MAXVALUE和MINVALUE分别代表最大采样值和最小采样值;q为衰减因子;p为分级系数,p=1/N,N为采样位数,可以为4、8、16、32等,本实施例中N=16,即p=1/16。
将合成中间值与最大采样值或最小采样值进行比较,并输出相应音频,具体可以分为以下四种情形:
(1)合成中间值s(n)大于最大采样值MAXVALUE
此情形意味着发生了溢出,那么本实施例包括:
步骤S41,以所述最大采样值输出音频,并减小当前衰减因子以作为下一次采样的衰减因子。
将当前衰减因子q调整得小一点,具体是将当前衰减因子q减去一个分级系数p。该调整后的衰减因子q'并不会再次与前述加权采样值的和相乘来得到新的合成中间值(本次采样已按照允许的最大采样值输出音频),而是用于与下一次采样的加权采样值的和相乘,防止下一次的合成中间值溢出(因为音频一般是平滑过渡的,所以一次采样值溢出,意味着下一次的采样值很可能也会溢出,所以需要把衰减因子q调小一点)。
调整后的衰减因子q'与下一次的加权采样值的和相乘后,若最后的合成值仍然溢出,则继续按照允许的最大采样值输出音频,同时把衰减因子q调整得再小一点,即在当前衰减因子(相对于上一次采样,此处当前衰减因子为q')的基础上再减去一个分级系数p,以此类推。
(2)合成中间值s(n)小于最小采样值MINVALUE
与第(1)种情形类似,若合成中间值s(n)小于最小采样值MINVALUE,也表明发生了溢出,那么本实施例包括:
步骤S42,以所述最小采样值输出音频,并减小当前衰减因子以作为下一次采样的衰减因子。
将当前衰减因子q调整得小一点,具体是将当前衰减因子q减去一个分级系数p。该调整后的衰减因子q'并不会再次与前述加权采样值的和相乘来得到新的合成中间值(本次采样已按照允许的最小采样值输出音频),而是用于与下一次采样的加权采样值的和相乘,防止下一次的合成中间值溢出(因为音频一般是平滑过渡的,所以一次采样值溢出,意味着下一次的采样值很可能也会溢出,所以需要把衰减因子q调小一点)。
调整后的衰减因子q'与下一次的加权采样值的和相乘后,若最后的合成值仍然溢出,则继续按照允许的最小采样值输出音频,同时把衰减因子q调整得再小一点,即在当前衰减因子(相对于上一次采样,此处当前衰减因子为q')的基础上再减去一个分级系数p,以此类推。
从上述第(1)、(2)种情形可以看出,当合成中间值s(n)超出了由采样位数确定的采样值范围时,直接以最大采样值或最小采样值输出音频,相当于进行了箝位处理。为了降低后续采样时也发生溢出的可能性,衰减因子均需作减小处理。
(3)最小采样值MINVALUE≦合成中间值s(n)≦最大采样值MAXVALUE,衰减因子q小于1
此情形下,没有溢出发生,则本实施例包括:
步骤S43,以所述合成中间值输出音频。
步骤S431,判断当前的衰减因子q是否小于1。如是,则进入步骤S432。
步骤S432,增大当前衰减因子以作为下一次采样的衰减因子。
如果衰减因子q小于1,为了防止衰减因子越来越小,导致语音被不必要地衰减,需要适当增大衰减因子,具体是将当前衰减因子q加上一个分级系数p。该调整后的衰减因子q''并不会与本次加权采样值的和相乘来得到新的合成中间值(本次采样已按照当前合成中间值输出音频),而是用于与下一次采样的加权采样值的和相乘,使下一次的合成中间值适当增大。
调整后的衰减因子q''与下一次的加权采样值的和相乘后,若最后的合成值仍然处于最小采样值MINVALUE和最大采样值MAXVALUE之间,且衰减因子q''也仍然小于1,则继续按照合成中间值输出音频,同时把衰减因子q''调整得再大一点,即在当前衰减因子(相对于上一次采样,此处当前衰减因子为q'')的基础上再加上一个分级系数p,以此类推。
上述第(1)~(3)种情形中,对衰减因子的调整,无论是增加或减少,每次均一个分级系数为单位,这样使得输出音频能够平滑过渡,不会因为衰减因子的剧烈变化而变化。另外,调整衰减因子只需递增或递减,而且调整后的衰减因子也不在本次采样中再次使用,而是用于下一次采样,所以本实施例的混音处理方法步骤少,计算量也非常小。
应当说明的是,前述步骤S43与S431及S432并无执行先后顺序,其也可以同时执行,即在以合成中间值输出音频的同时,判断当前的衰减因子q是否小于1进而在当前衰减因子小于1时增大当前衰减因子。
(4)最小采样值MINVALUE≦合成中间值s(n)≦最大采样值MAXVALUE,衰减因子q大于等于1
此情形与第(3)种情形相似,也没有溢出发生,将以合成中间值作为输出音频(即步骤S43)。不同的是,衰减因子q足够大(大于或等于1),无需对它进行增大或减小,在下一次采样中依然使用相同的衰减因子与加权采样值的和相乘。
如果是对多路音频信号进行混音,只是上述两路音频信号混音的扩展。与式(3.3)类似,可以参照如式(3.5)得到合成中间值,并通过式(3.4)进行控制处理,得到最终结果。
其中,其中s(n)代表合成中间值,wm代表序列号为m的音频输入的加权系数,位于区间(0.5,1],优选取值0.618或者1,sm(n)为序列号为m的原始音频输入信号。Q为衰减因子,位于区间(0,1],初始值为1。
请参照图3所示,相应于实施例一的混音处理方法,本发明实施例二提供一种混音处理装置,包括:
加权处理单元31,用于分别用预先设定的加权系数对需进行混音处理的每一路音频信号的采样值进行加权处理,得到加权采样值;
合成处理单元32,用于将由所述加权处理单元处理得到的加权采样值求和,再乘以当前衰减因子,得到合成中间值;
判断处理单元33,用于判断所述合成中间值发生溢出时,则以最大采样值或最小采样值输出音频,并减小当前衰减因子以作为下一次采样的衰减因子;或判断所述合成中间值未发生溢出时,则以所述合成中间值输出音频;同时如果当前衰减因子小于1,则增大当前衰减因子以作为下一次采样的衰减因子。
进一步的,所述判断处理单元33包括:
比较单元331,用于将所述合成中间值与所述最大采样值或最小采样值进行比较;
调整单元332,用于根据比较单元的比较结果,增大或减小衰减因子,并作为下一次采样的衰减因子;
输出单元333,用于根据比较单元的比较结果,输出相应音频。
具体的,与实施例一所述四种情形相同,当比较单元331判断合成中间值大于最大采样值或小于最小采样值时,调整单元332则减小衰减因子(具体为减去一个分级系数),并作为下一次采样的衰减因子,当比较单元331判断出合成中间值大于最大采样值时,输出单元333以最大采样值输出音频;当比较单元331判断出合成中间值小于最大采样值时,输出单元333以最小采样值输出音频。当比较单元331判断合成中间值处于最小采样值和最大采样值之间(即合成中间值大于等于最小采样值,并小于等于最大采样值)时,输出单元333以合成中间值输出音频,而比较单元331还将比较当前衰减因子是否小于1,如果是,则调整单元332将增大衰减因子(具体为加上一个分级系数),并作为下一次采样的衰减因子。
有关本实施例的原理、处理流程、参数设定及选择、有益效果等均与本发明实施例一相同,此不赘述。
本发明实施例一的混音处理方法可以由计算机或者有计算能力的智能设备执行。本发明实施例二的混音处理装置也可直接应用在计算机或者有计算能力的智能设备上,由此,本发明实施例三提供一种智能设备,其包括混音处理装置,所述混音处理装置包括:
加权处理单元,用于分别用预先设定的加权系数对需进行混音处理的每一路音频信号的采样值进行加权处理,得到加权采样值;
合成处理单元,用于将由所述加权处理单元处理得到的加权采样值求和,再乘以当前衰减因子,得到合成中间值;
判断处理单元,用于判断所述合成中间值发生溢出时,则以最大采样值或最小采样值输出音频,并减小当前衰减因子以作为下一次采样的衰减因子;或判断所述合成中间值未发生溢出时,则以所述合成中间值输出音频;同时如果当前衰减因子小于1,则增大当前衰减因子以作为下一次采样的衰减因子。
综上所述,本发明实施例通过一个衰减因子实现自适应混音,完成溢出区域波动性过渡,避免了饱和运算造成的溢出区域的平直过渡而给人耳造成的巨大噪音感,也避免了相加求平均的方法带来的音量减小的问题。同时实现简单,计算复杂度低,在混合溢出处增加了自动调节功能,音频信号过渡更平滑,更大程度地保持了原有信息量。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。