具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例以音频信号的峰值和均值为检测量,通过若干次动态地调整音频信号的控制音量,对音频信号进行音频动态范围压缩,将其控制在一定的动态范围之内,很好地保证了声音的响度和音质。
图1示出了本发明第一实施例提供的音频动态范围压缩方法的实现流程,详述如下:
在步骤S101中,通过预设控制音量调整当前音频处理帧的峰值和均值,得到修正峰值和修正均值。
在本发明实施例中,对当前音频信号以帧为处理单位进行动态范围压缩,每次进行处理的一组音频信号称为一个音频处理帧,对应的音频信号长度为帧长。
在步骤S101之前,需要获取当前音频处理帧的峰值和均值。峰值即该音频处理帧中音频信号的最大值,峰值越大,动态范围就越大,越可能超出播放设备的动态范围;均值即该音频处理帧中音频信号的幅度平均值,可以用来代表音频信号中的小信号。在本发明实施例中,音频处理帧的峰值和均值可以通过检测同步获得,通过对当前音频处理帧中所有音频数据进行大小比较判断及求和取算术均值的方法,确定出当前音频处理帧的峰值和均值。当前音频处理帧的峰值和均值的具体获取流程如图2所示,在此不再赘述。
在本发明实施例中,可以通过设置静音阈值,当检测出的当前音频处理帧的峰值和均值均小于该静音阈值时,则确定该音频处理帧为静音帧,不需要对该音频处理帧进行动态范围压缩。其中,静音阈值可以由用户根据实际情况自行定义,可以设置为无声,或者是便携式播放设备的自身噪音信号,在此不作限定。
在步骤S102中,判断所述修正峰值或所述修正均值是否在目标动态范围内,若是,则输出当前音频处理帧;若不是,则对所述预设控制音量进行若干次衰减或者递增,得到修正控制音量。
在本发明实施例中,对音频信号进行动态范围压缩的目标动态范围通过压缩阈值和扩放阈值确定,压缩阈值确定了该目标动态范围的上限,扩放阈值确定了该目标动态范围的下限。
当经过预设控制音量调整后,判断得到的修正峰值或修正均值是否处于目标动态范围之内,如果是,即修正峰值小于压缩阈值且修正均值大于扩放阈值,则在该情况下,当前音频处理帧的修正峰值和修正均值正好处于目标动态范围之内,不需要再进行动态范围控制,直接输出该音频处理帧。
若经过预设控制音量调整后得到的修正峰值或修正均值不处于目标动态范围之内,则需要根据修正峰值及修正均值落在目标动态范围内的实际情况,对预设控制音量进行相应的衰减或者递增。
在步骤S102中,对预设控制音量进行相应的衰减或者递增,可以有以下几种情况:
情况一:
当修正峰值大于压缩阈值且修正均值大于扩放阈值时,需要对音频动态范围再次进行压缩,因此通过衰减步长对预设控制音量进行衰减;
情况二:
当修正峰值小于压缩阈值且修正均值小于扩放阈值时,需要对音频动态范围进行适应扩放,因此通过递增步长对预设控制音量进行递增;
情况三:
当修正峰值大于压缩阈值且修正均值小于扩放阈值时,通过衰减步长对预设控制音量进行衰减。
在本发明实施例中,控制音量为一个动态变化的值,决定了输出的音频信号动态范围的变化,其根据当前修正峰值与修正均值落在目标动态范围内的情况,通过衰减步长与递增步长进行调整。所谓衰减步长与递增步长,即为控制音量调整的最小单位,当需要对音频动态范围进行压缩时,则通过衰减步长对控制音量进行衰减,使得通过衰减后的控制音量调整出的音频动态范围变小;当需要对动态范围进行扩放时,则通过递增步长对控制音量进行递增,使得通过递增后的控制音量调整出的音频动态范围变大。根据衰减步长或者递增步长对预设控制音量进行调整的具体方式在此不作限定。
在本发明实施例中,通过衰减步长或者递增步长对预设控制音量进行的调整可以重复若干次,以达到合适的修正控制音量,直到通过修正控制音量可将修正峰值和修正均值调整至满足终止调整条件的范围,实现对修正峰值与修正均值的合理调整。
在本发明实施例中,在得到合适的修正控制音量后,将该修正控制音量作为下一音频处理帧的预设控制音量,对下一音频处理帧的峰值和均值进行调整。在音频信号平稳的情况下,将当前音频处理帧的修正控制音量作为下一音频处理帧的预设控制音量,能够达到提高音频动态范围压缩效率的目的。
在步骤S103中,通过所述修正控制音量将所述修正峰值和所述修正均值调整至满足终止调整条件的范围。
在本发明实施例中,利用修正控制音量对不在目标动态范围内的修正峰值和修正均值进行相应调整,根据不同修正峰值和修正均值的实际情况,其相应的终止调整条件有以下几种情况:
终止调整条件一:
当修正峰值大于压缩阈值且修正均值大于扩放阈值时,终止调整条件为修正峰值小于压缩阈值或者修正均值小于扩放阈值。
在该情况下,由于修正峰值大于压缩阈值,容易产生破音现象,对播放音质带来影响,因此,需要对当前音频处理帧再次进行动态范围压缩,使得修正峰值小于压缩阈值。与此同时,在压缩过程中,由于修正均值一同被压缩,因此当修正峰值仍未压缩至小于压缩阈值,而修正均值已小于扩放阈值时,也应该停止压缩,避免出现输出音频信号响度不足的现象。
终止调整条件二:
当修正峰值小于压缩阈值且修正均值小于扩放阈值时,终止调整条件为修正峰值大于压缩阈值或者修正均值大于扩放阈值。
在该情况下,由于修正均值小于扩放阈值,容易产生声音响度不足的现象,因此,需要对当前音频处理帧进行适当的动态范围扩放,使得修正均值大于扩放阈值。与此同时,在扩放过程中,由于修正峰值一同被扩放,因此当修正均值仍未扩放至大于扩放阈值,而修正峰值已大于压缩阈值时,也应该停止扩放,避免出现输出音频信号破音的现象。
终止调整条件三:
当修正峰值大于压缩阈值且修正均值小于扩放阈值时,终止调整条件为修正峰值小于压缩阈值;
在该情况下,当前音频处理帧的均值较小,却同时具备较大的峰值,由此可以看出当前的音频信号具备瞬变的不稳定特性,因此在本发明实施例中,通过将当前音频处理帧的修正峰值压缩至小于压缩阈值,以避免破音的现象出现。
在本发明实施例中,根据实际情况动态地调整音频信号的控制音量,使得经过修正控制音量调整的修正峰值和修正均值达到相应的终止调整条件。此时,输出的音频处理帧即被有效地压缩控制在目标动态范围内,保证了输出音频信号的响度和音质。
在实际的音频动态范围压缩过程中,需要对每个声道分别进行动态范围压缩,例如立体声信号,需要先将相互交错存放的立体声信号分离成两个声道,对每个声道的音频信号分别进行音频动态范围压缩后,再处理成左右声道交错的立体声信号。
此外,在实际的音频动态范围压缩过程中,针对处理目的的不同,对音频进行音频动态范围压缩的过程中也有不同的侧重点下面以两个具体应用环境为例进行说明,具体的处理方法包括但不限于以下两个例子:
1、对在便携式播放设备上进行播放的音频信号进行音频动态范围压缩:
此时音频信号的最大音量应该是该音频信号的原始音量,由于音量调节一般是在0(静音)和最大音量之间的调节,且音量控制前的音频信号的音量为其最大音量,因此该原始音频信号的小信号均值大于扩放阈值的概率就大大增加,对小信号进行扩放的概率也大大降低。即使该原始音频信号小于扩放阈值要对其进行扩放,其扩放后小信号的精度损失更小。因此,在此情况下对音频信号进行音频动态范围压缩后,当进行音量调小时,小信号缩小的幅度比大信号小,当进行音量调大时,小信号放大的幅度比大信号大,能够清晰地听到小信号的声音。
2、对音效均衡处理后的音频信号进行音频动态范围压缩:
在对音频信号进行音效均衡处理后,很容易使音频信号的动态范围放大,超出音频放大器的动态范围,因此需要将扩放阈值设置的和静音阈值一样小,且不需要设置递增步长,只需要合理设置压缩阈值和衰减步长,即可保证输出的音频信号的音质。
图3示出了本发明第二实施例提供的音频动态范围压缩方法的实现流程,该实施例是对本发明第一实施例的优化,其根据上一音频处理帧的平稳或者瞬变特性,对当前音频处理帧的帧长度类型进行动态切换,其具体实现流程详述如下:
在步骤S301中,判断上一音频处理帧信号平稳还是瞬变。
在本发明实施例中,在上一音频处理帧的修正峰值大于压缩阈值且修正均值小于扩放阈值时,可以看出在该音频处理帧均值较小,即普遍为小信号的情况下,却具备较大的峰值,因此认为该音频处理帧具备突变特性。除了上述情况以外,均认为其余音频处理帧信号平稳。
在步骤S302中,根据上一音频处理帧信号平稳或者瞬变的特性,确定当前音频处理帧的帧长度类型。
作为本发明的一个实施例,在上一音频处理帧的修正峰值和修正均值处于修正峰值大于压缩阈值且修正均值小于扩放阈值的情况之外时,认为该音频处理帧信号是平稳的,因此确定当前音频处理帧的帧长度类型为长帧。
作为本发明的又一个实施例,在上一音频处理帧的修正峰值大于压缩阈值且修正均值小于扩放阈值时,认为该音频处理帧信号是瞬变的,因此确定当前音频处理帧的帧长度类型为短帧。
作为本发明的一个实现示例,帧长度类型为长帧的音频处理帧长度可以为20毫秒,帧长度类型为短帧可以为5毫秒。
由于对于突变信号,音频动态范围压缩更复杂,效果也会稍差,采用短帧可以将这种影响尽量控制在更短时间范围内,而对于平稳信号,采用长帧,可以加快处理速度,因此通过上述帧长度类型切换,可以保证音频动态范围压缩的处理效率和压缩音质。
在本发明实施例中,当判断出当前音频处理帧具备突变特性且其帧长度类型为长帧时,放弃对当前音频处理帧进行动态范围压缩,不输出当前音频处理帧,并令下一音频处理帧的帧长度类型为短帧。从步骤S103中可以看出,在该情况下,当信号发生瞬变时,只对音频处理帧的修正峰值进行压缩,使其压缩至小于压缩阈值,则会出现的情况是该音频处理帧的修正均值也被压缩至较小的值,使得输出的音频信号响度变小,此时对具备突变特性的音频处理帧进行短帧处理,使得该段响度小的音频信号持续的时间足够短,以至于可以不容易被人耳察觉,达到更好的音频信号处理效果。
图4示出了本发明第三实施例提供的音频动态范围压缩装置的结构,为了便于说明,仅示出了与本实施例相关的部分。
该音频动态范围压缩装置可以用于便携性播放设备、音响、计算机、电视机等一切用于播放音频信号的设备,为运行于上述设备中的硬件单元、软件单元或者软硬件结合的单元。该音频动态范围压缩装置包括:
峰均值获取单元41,通过对音频处理帧进行采样,并通过检测当前音频处理帧的帧长,确定出当前音频处理帧的峰值和均值。
在本发明实施例中,音频处理帧通过读取一定长度的数据缓冲区中的音频信号产生。
峰均值调整单元42,通过预设控制音量调整峰均值获取单元41获取的峰值和均值,得到修正峰值和修正均值。
在本发明实施例中,预设控制音量可以由用户根据实际情况自行定义,经过预设控制音量的调整之后,对当前音频信号进行了一定程度上的动态范围压缩,由此得到当前音频处理帧的修正峰值和修正均值。在峰均值调整单元42中,调整方式可以为将预设控制音量与当前音频处理帧的峰值和均值进行相乘,具体的调整方式在此不作限定。
控制音量调整单元43,当所述修正峰值或所述修正均值不在目标动态范围内时,对所述预设控制音量进行若干次衰减或者递增,得到修正控制音量,直到通过所述修正控制音量可将所述修正峰值和所述修正均值调整至满足终止调整条件的范围。
在控制音量调整单元43中,包括了控制音量衰减单元431和控制音量递增单元432,其中:
控制音量衰减单元431通过预设的衰减步长对预设控制音量进行衰减;
控制音量递增单元432通过预设的递增步长对预设控制音量进行递增。
当对控制音量进行若干次衰减时,通过修正控制音量得到的音频动态范围得到压缩;当对控制音量进行若干次递增时,通过修正控制音量得到的音频动态范围得到扩放。
修正峰均值调整单元44,通过所述修正控制音量将所述修正峰值和所述修正均值调整至满足终止调整条件的范围。
在本发明实施例中,根据修正峰值和修正均值落在目标动态范围内的情况,通过终止调整条件确定单元45确定相应的终止调整条件,有如下几种情况:
当修正峰值大于压缩阈值且修正均值大于扩放阈值时,所述终止调整条件为修正峰值小于压缩阈值或者修正均值小于扩放阈值;
当修正峰值小于压缩阈值且修正均值小于扩放阈值时,所述终止调整条件为修正峰值大于压缩阈值或者修正均值大于扩放阈值;
当修正峰值大于压缩阈值且修正均值小于扩放阈值时,所述终止调整条件为修正峰值小于压缩阈值。
在本发明实施例中,根据修正峰值和修正均值落在目标动态范围内的情况,动态地对控制音量进行若干次调整,并通过修正控制音量对修正峰值和修正均值进行调整,很好地对音频信号的动态范围进行压缩控制,保证较好的音质和响度。
在本发明实施例中,音频动态范围压缩装置还包括:
信号特性检测单元46,检测音频处理帧信号特性,包括平稳特性和瞬变特性。
在本发明实施例中,在上一音频处理帧的修正峰值大于压缩阈值且修正均值小于扩放阈值时,可以看出在该音频处理帧均值较小,即普遍为小信号的情况下,却具备较大的峰值,因此认为该音频处理帧具备突变特性。除了上述情况以外,均认为其余音频处理帧信号平稳。
帧长度类型确定单元47,根据信号特性检测单元46检测出的上一音频处理帧信号平稳或者瞬变的特性,确定当前音频处理帧的帧长度类型。
在本发明实施例中,当上一音频处理帧信号平稳时,确定当前音频处理帧的帧长度类型为长帧;当上一音频处理帧信号瞬变时,确定当前音频处理帧的帧长度类型为短帧。
通过信号特性检测单元46和帧长度类型确定单元47,能够根据当前音频信号的平稳或者瞬变的特性,动态地对音频处理帧的帧长度类型进行切换,当信号平稳时很好地保证了动态范围压缩的处理效率,当信号瞬变时通过短帧处理将其带来的音质上的影响减少到比较小的程度,很好地保证了输出音频信号的响度和音质。
静音检测单元48,通过设置静音阈值,检测峰值和均值是否小于该静音阈值,当峰值和均值均小于该静音阈值时,不对当前音频处理帧进行处理,以提高音频动态范围压缩的效率。
本发明实施例以音频信号峰值和均值为检测量,通过若干次动态地调整音频信号的控制音量,对音频信号进行音频动态范围压缩,将其控制在一定的动态范围之内,同时根据信号的平稳或者瞬变特性,动态地对音频处理帧的帧长度进行切换,很好地保证了声音的响度和音质,提高了音频动态范围压缩的效率。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。