音效调式
📎 原始文档:https://www.kdocs.cn/l/cd9hbLTf1Loh 音效调式
注意:音效调试流程可以参考 下面链接。
【金山文档】 音效调试
混响音效调试.docx
- echo(回音) echo又称为回声,模拟声音的反射。
将原声通过固定的延时(Delay time)和衰减(Decay factor)后叠加在原声上,产生一种人耳可分辨的回声,就像在山谷叫喊时的回声效果一样。
参数说明:
- decayval( 回声衰减系数)(0~90%):值越大,衰减越慢,回声持续实际越长。
- delay(回声反射间隔,延时)(0~max_ms): 实际有效延时最大值跟代码中申请的最大buf有关,如果超出了最大buf,那就保持buf支持的最大延时。

- filt_enable(低通滤波器)(0关闭1使能): 使能是否回音效果是否经过低通滤波器,该参数决定lpf_cutoff参数是否起作用
- lpf_cutoff(回声低通截止频率)(0Hz~20000Hz): 回声低通截止频率,频率越低,回声部分高频成分越少,回声整体能量也相应减小。相当于针对效果声的一个低通滤波器。效果类似于用EQ做一个低通滤波器

- wetgain(湿声增益)(0~200%): 湿声(回音效果)的增益
- drygain(干声增益)(0~100%):也称为原音增益
大致流程图:可以通过下面的流程图来粗略了解参数的意义
下面以Adobe Audition录音,以图文的方式,描述参数具体的效果:
echo回音的效果表现:
- 每次回音都不会出现明显形变,可以从下图观察到每次带衰减的回音在频谱上的声音都十分的相似。
- 回音延时间隔固定,每次的时间间隔都是固定不变的。

decayval( 回声衰减系数)(0~90%)
值越大,衰减越慢,回声持续实际越长。
decayval数值为60时候,可以从图中数到有大概8个回音(只数能够清晰听见的回音)
decayval数值为90时候,可以明显的看到回音次数的增加
delay(回声反射间隔)(0~max_ms)
实际有效最大值跟样机中申请的最大buf有关,如果超出了最大buf,那就保持buf支持的最大延时。
delay 数值为200ms,可以看到第一声开始到第二声开始间隔200ms,从下图可以观察到。
delay 数值为100ms,每一声之间会有重叠部分
delay数值为300时候,由于程序上max_ms没有给更大的buf空间,所以也只能到200ms的间隔

filt_enable(低通滤波器)和lpf_cutoff(回声低通截止频率)(0Hz~20000Hz)
这两个参数是对效果音(湿声)进行一个低通滤波器
效果如下:
前后两个图形可以观察到1KHz为截止频率的时候,高频成分会消除更多。
wetgain(湿声增益)(0~200%)
对效果声(湿声)进行一个数字增益。主要观察第二声,从前后两图对比,可以明显观察到后面的效果增益会更强一些。
drygain(干声增益)(0~100%)
对原声进行一个数字增益。主要观察第一声,从前后两图对比,可以明显观察到后面的效果增益会更强一些。
2. reverberate (混响) 混响目前做了有三种:reverb、fast_reverb、plate_reverb,reverb是一代音效,fast_reverb、plate_reverb是二代音效,fast_reverb快速混响这个会占用资源比较少。
混响,混响效果模拟声波在物体表面的整体反射效果,是空间立体的反射。声波在室内传播时,要被墙壁、天花板、地板等障碍物反射,每次反射都要被障碍物吸收。这样,当声源停止发声时,声波会在室内被多次反射和吸收,最后消失。我们感觉在声源停止发声(室内声源停止发生后仍然存在的声音延续现象)后,仍然会有一些声波混合一段时间。
2.1 plate_reverb参数说明:
- roomsize (空间大小)(0%~100%) 减小的话会让整体空间感变小。 但是 plate reverb主要是润色用的混响,它没有明确空间感的那种感觉。做一些模式的时候,也可以通过它来调效果的差别
- modulate(抖动)(0关闭1使能)用途是打断相位。效果上听起来不明显。模仿人走动,回声路径的改变。
- decayfactor(衰减因数)(0%~100%)越大保留越多,衰减越慢,持续时间越长,可以认为是效果声的衰减。
- highfrequecydamping (高频衰减阻尼系数)(0%~100%):越大高频衰减越快,越小,高频保留越多。这个值比较大的话,会减弱尾音中的高频部分,所以这个值变大听起来尾音衰减也会变快。增加damping会产生更"柔和"的效果。混响不会积聚太多,高频衰减速度比低频快。模拟混响中高频的吸收。
- diffusion (散射度)(0%~100%): 尾音的密集程度【比较小的时候,会听到尾音是比较分散,分明的, 然后 大点的话,尾音越密集,越不像echo那样尾音分明, 但是 太大的时候【例如90+】,尾音会有些类似金属敲击声】 举例:数值越大,所代表的空间越不规则(也可以说所处于一个不平行的空间内)——墙壁越不光滑——反射声越多——连成一片的——声音比较温和
数值越小——墙壁越光滑——相互之间的距离越开——听起来比较接近延迟——混响声会变清晰 - highcutoff(湿声部分的初始低通滤波) (0Hz~20000Hz): 这个值比较大,效果音听起来会比较明亮。类似于用EQ做了一个低通滤波器。
- predelay(预延时)(0ms~50ms): 干声跟湿声之间的延时。 如果希望干声跟湿声发声间隔紧密的话,predelay就设小些。predalay指的是两个原音和湿声叠在之间的时间间隔,时间间隔短一些,原音和后续效果音叠加的概率就少一些,听起来效果会明亮一些,如果堆叠多了,声音会浑浊不清,会有增加空间感的效果。
- wetgain(湿声增益)(0~300%): 湿声(回音效果)的增益,数值越大,整体声音听起来会空间感会比较强。
- drygain(干声增益)(0~200%):也称为原音增益,数值越大,整体声音会越有力
大致流程如下:可以通过下面的流程图来粗略了解参数的意义
reverb混响的效果表现:
和回音相比,混响会发生明显的形变,看不出声音的频谱图上的形状。
dry_gain(干声)(0%~200%)
原声增益,数值越大,整体声音会越有力
wet_gain(湿声增益)(0~300%)
数值越大,整体声音听起来会空间感会比较强。
decayfactor(衰减因数)(0%~100%)
越大保留越多,衰减越慢,持续时间越长,可以认为是效果声的衰减。
highfrequecydamping(高频衰减系数)(0%~100%)
越大高频衰减越快,越小,高频保留越多。这个值比较大的话,会减弱尾音中的高频部分,所以这个值变大听起来尾音衰减也会变快。增加damping会产生更"柔和"的效果。混响不会积聚太多,高频衰减速度比低频快。模拟混响中高频的吸收。
假设此时MIC采样率44.1K,有效采用信息在22K内,那么衰减的位置会选择在 22K -(100% - 系数 )* 22K,衰减的速度较缓。
highcutoff(湿声部分的初始低通滤波)(0Hz~20KHz)
注意这个参数和上面的参数意义不同,一个是衰减比例,另外一个是低通滤波器。
这个值比较大,效果音听起来会比较明亮。

predelay(预延时)(0ms~50ms)
干声跟湿声之间的延时。 如果希望干声跟湿声发声间隔紧密的话,predelay就设小些。predalay指的是两个原音和湿声叠在之间的时间间隔,时间间隔短一些,原音和后续效果音叠加的概率就少一些,听起来效果会明亮一些,如果堆叠多了,声音会浑浊不清,会有增加空间感的效果。
这个参数在频谱图上看并不明显。
modulate(抖动)
要不要抖动feedback,用途是打断相位。效果上听起来不明显。模仿人走动,回声路径的改变。
diffusion (散射度)(0%~100%)
尾音的密集程度【比较小的时候,会听到尾音是比较分散,分明的, 然后 大点的话,尾音越密集,越不像echo那样尾音分明, 但是 太大的时候【例如90+】,尾音会有些类似金属敲击声】
可以描述为四面八方传过来很均匀或很散,例如房间是正方型,你站在正中间大叫一声,那传到四面墙回射的早反射应会都一样大声而且传回来的时间一样,是比较均一的回响diffusion,如果你站在靠边,这房间又是不规则形,那四面八方传回来的早反射就会有大声有小声,有的比较慢到,那就Diffusion很松散很乱,均匀的Diffusion会让回响音色比较厚,但也有时会回响音凸显,压到一些原始音,变有点喧宾夺主,所以像唱歌的声音我可能就不喜欢原始音被回音喧宾夺主,把Diffusion调散一点,但要注意Diffusion太散的话会浊,影响到歌声变好像咬字不清也是不好,所以要注意调。
roomsize (空间大小)(0%~100%)
减小的话会让整体空间感变小。 但是 plate reverb主要是润色用的混响,它没有明确空间感的那种感觉。做一些模式的时候,也可以通过它来调效果的差别
2.2 fast_reverb
fast_reverb资源占用会少一些,相对于plate_reverb来说处理的东西会少很多。不单独说明该模块。
2.3 revberb
该算法是一代算法的参数。
dry(干声增益)
数值越大,增益越强
wet(整体效果声增益)
数值越大,增益越强
delay(反射时间间隔)
影响整体空间大小
rot60(衰减速度)
衰减60dB需要的时间, 即衰减速度,如果空间里面的物体吸声厉害,或者比较空旷,衰减比较快
Erwet(早反射声的增益)
早反射声的增益, 早反射声的存在 会让混响听起来更真实。但是不同的增益会影响听感上距离感,空间构造
Erfactor(早反射声的一个密集程度)
这个值大,早反射声之间间隔比较大。构造的空间感也会相对较大。 较小的话,就反射比较密集。空间感变小。
Ewidth
影响早反射声左右声道的声音差异
Ertolate
影响漫反射声音反馈的大小
predelay(干声跟效果声的时间间隔)
干声跟效果声的时间间隔。也会影响整体空间感。
width(左右声道的差异)
左右声道的差异,左右声道的差异,会产生立体感。(某些版本的sdk上该参数无效)
diffusion(发散程度)
发散程度, 影响 漫反射声音的变形程度。
dampinglpf(高频衰减过度频率)
反射声的一个频率衰减,这是一个斜着往下掉的曲线,影响了反射声中的高频分量。高频分量越多,整体音色越亮,但是成分太多,声音有些乱
basslpf
反射声中的低频增强分量过度频率
bassB(低频增强比例)
这里的低频增强,其实是压了高频。为了使整体频响不超过1,不引起反馈发散。所以加大了这个值感觉混响弱了。可以适量加大rot60或者Ertolate
3. 噪声门
- 啸叫抑制 一个完整的声学腔体,发生的啸叫,往往是其中1~3频点的激励啸叫点。扬声器在声音特性中存在某一个频率上的峰值,话筒就会不停的接收这个峰。
移频和陷波 这两个模块处理的主要目标是处理明显的啸叫,两个模块处理过程需要启动时间,在启动时间内出现的嗡嗡高频尾音实际上也是啸叫的一种,这中尾音需要通过EQ来压制,调节两个模块无明显作用。
移频
移频分为两种实现方式,一种是等比移频(pitch shift),一种是等距离移频(frequency shift)
pitch shift ratio
等比移频的参数,代表等比移频的比例,单位是万分之几。绝对值越大,防啸叫效果越好,不过移多了,会听出声音的变化。
等比移频是会对啸叫点的频点按比例进行频移,例如啸叫点是8K,比例是-50,比例是-万分之50,就是-0.005,该点会被移动到8k-8k*0.005的位置。
frequency shift scale
线性移频的参数,代表线性移频移多少,单位是Hz。 绝对值越大,防啸叫效果越好。不过移多了,会听出声音的变化。
线性移频是会将啸叫点的频点进行 加减 相应的数值,从而抑制啸叫。假设此时啸叫点是8K,frequency shift scale是-4,那么啸叫点会进行移频,最后会被移动到8K-4Hz频率。
如果这2个开关一起开的话,pitch shift ratio跟frequency shift scale的符号要保持相反。 一般调试推荐用只用frequency shift模式,移频量加大可以进一步降低啸叫水平,但容易出现声音变调。
注意:如K歌宝、扩音器等产品,因为被测试者自身声音掩盖,一般不容易察觉到声音变化,推荐一个人说,一个人听的方式评判
陷波
参数含义:
Q:
影响陷波器带宽越小则防啸叫越好;但发生啸叫频点误检时Q值越小音质越差。
gain:
影响陷波器压制程度,压制程度越大,则防啸叫越好;但发生啸叫频点误检时压制程度越大音质越差。
fade_time:
影响陷波器启动时间与释放时间的快慢,越大,陷波器启动与释放越慢;越小则启动与释放越快,可能导致杂音出现并且音质变差
Threshold:
影响啸叫频点的判定,越小越容易误检为啸叫频点,,啸叫频点判断阈值,越大越不容易检测为啸叫频点,导致防啸叫变差;越小越容易误检为啸叫频点,导致音质变差。 调试顺序先调压制程度,再调Q值,最后调阈值
陷波可以理解为自适应的EQ调节,它会检测到可能为啸叫的点,对该点的频段进行衰减,从而达到抑制啸叫的效果。(各参数意义参考EQ)
注意:啸叫抑制模块的gain压制越多,Q越小会容易出现说话过程中声音断续的问题
利用EQ压制啸叫:
两个模块处理过程需要启动时间,在启动时间内出现的嗡嗡高频尾音实际上也是啸叫的一种,这中尾音需要通过EQ来压制,调节两个模块无明显作用
因为移频和陷波都是为了处理明显的啸叫情况,声音趋于单频的状态。一般轻微的反馈震荡,俗称尾音,推荐使用mic通路第一个EQ模块处理。推荐使用Band Pass类型的滤波器进行压制。为了不影响音质,推荐压制的增益不要过大,同时Q值减小扩大压制范围。调试过程中要在声音大小,质量和尾音程度之间折中,需要一边调一边听。
调试小提示:考虑到最终产品整机装配过程不同程度的差异性,从而啸叫的强度也会有所差异。所以调试过程,在不影响最终声音效果的情况下,使用EQ进行频点啸叫压制时,建议加多1到2dB的压制,Q值也稍微宽一点,使得最终产品的啸叫抑制效果一致性更加理想。
使用工具(手机应用,安卓应用商城可以搜索到)
适当增大任意一路EQ的总增益,目的是让啸叫发生。
打开软件,监测声音,发现啸叫点在400左右。
使用EQ压制400Hz频点,可以抑制啸叫。
5. DRC(Dynamic Range Control) 动态范围控制提供压缩和放大能力,可以使声音听起来更柔和或更大声,即一种信号幅度调节方式。
DRC广泛应用于音频信号处理领域,例如助听器中最常见的宽动态范围压缩方法(Wide Dynamic Range Compression,WDRC)、音频信号处理中最常用的自动增益控制(Automatic Gain Control,AGC)方法等。动态范围控制,顾名思义,是将输入音频信号的动态范围映射到指定的动态范围。通常映射后的动态范围小于映射前的动态范围,因此称之为动态范围压缩。音频信号可以进行整体的动态范围控制;也可以划分为若干子带分别进行动态范围控制。
可以参考以下外部网页的说明:
引用参考
Wide DRC(全带DRC)
全带DRC是对全频段进行幅度的调节
DRC限幅器界面介绍
DRC里面的横轴是输入幅度,纵轴是输出幅度,他们的单位是dB。为了能表达更宽的dB范围,没有采用归一化的dB表示。转换到归一化的dB公式为: dBnormalize≈dBunnormalizae−90。在16位的数据流中,90数值的位置可以理解为0DB的信号。
接下来举一个例子,下面播放这样的一段音频
进行全带DRC调整后,音频如下

调大释放时间和启动时间
启动时间和释放时间

Multiband DRC(多带DRC)
CrossOver(分频器)
分配器阶数的理解可以理解为过度带的斜率
测试:
这个是原始扫频信号, 采用Multi-band DRC处理扫频信号,如果信号没有超过门限值,则Multi-band DRC只进行分频再合成的动作,DRC没有起作用,此时信号基本上是完全复原
多带DRC的缺陷
对原始信号进行三带DRC限幅,分频点设置为500,5K点,可以看到500Hz和 5KHz近会出现“凸”起。说明在分频点的限幅会有一个平滑过渡的过程。
6. 变声变调 女变男,男变女,这种效果都是对音色和音高做调整
/*----------------------------------------------------------------------------*/
/**@brief 设置变声模式
@param shiftv: 变声模式
sr :数据采样率
effect:变调比例[40,230]
formant_shift:共振峰偏移比例 [40,230]
@return
@note
模式配置说明:
1.EFFECT_PITCH_SHIFT 移频,变调不变速,shiftv调节有效,formant_shift调节无效
2.EFFECT_VOICECHANGE_KIN0 变声,可以调节不同的 shiftv 跟 formant_shift ,调出更多的声音效果
3.EFFECT_VOICECHANGE_KIN1 变声,同EFFECT_VOICECHANGE_KIN0类似的,但是2者由于运算的不同,会有区别。
4.EFFECT_ROBORT 机器音效果,类似 喜马拉雅那样的
5.EFFECT_AUTOTUNE 电音效果
*/
/*----------------------------------------------------------------------------*/
// void set_pitch_para(u32 shiftv, u32 sr, u8 effect, u32 formant_shift);
7. 虚拟低音VBASS 虚拟低音主要应用的参合是用于某些喇叭无法表现低音的场合上。
由于低音也会有其他频率的分频,而这些分频对低音的感受上也是不可获取的,虚拟低音算法就是利用这一特性,输出高音部分的谐波,形成低音的感觉。
目前低频段的谐波增益增强比例很小,效果一般。假如低频谐波增强做的很好,低音效果也是不如实际的低频炮的,虽然让人感觉低音也存在,但它不会比真实增强低音来的好。注意它主要针对那种低音听不到的情景或者低频衰减得比较快比较多得场景
- ratio 增强的比例,越大越强 (即虚拟低音前级增强控制)
- boost 勾选则启动自动增强控制(即虚拟低音后级增强控制)
- cutoff frequency 进行增强的低音部分的上限
例如下图是60Hz的频响曲线,可以观察到在高频部分会有谐波出现,这一部分也是听感上低音主要的表现成分之一。
动态EQ
2.1声道
2.2声道 EQ
等响度