|
音频自动增益算法
% c% X. S1 a4 d- g9 |6 w
- n# P+ X& W) M3 M( [ 语音自动增益(AGC)算法,指的是数字层面的,语音波形都是0101数字组成,指的是把这个波形统一扩大或压缩一个权值,以提高或降低声音响度- D( K% G; d, d
( H& W8 W+ U0 ~. U
最简单的硬性增益处理是对所有音频采样乘上一个增益因子,它也等同于在频域每个频率都同时乘上这个增益因子,但由于人的听觉对所有频率的感知不是线性的,是遵循等响度曲线的,导致这样处理后,听起来感觉有的频率加强了,有的频率削弱了,导致语言失真的放大。
, J7 I0 u& E6 {. ]9 ~
9 A. s- }5 @% H& u4 ]简单说下音量和增益的区别:
: V3 p$ e3 _( O6 }# t! @3 ~8 Y2 U2 v; u! @4 a: M- P
1、音量是数字波形转模拟波形之后,对喇叭的功率的提高或降低,跟增益功能是串行的;0 w: W; H5 _. f' G L
4 }6 d6 {& q; j- S& u* {2、增益是控制数字信号波形的, 音量是控制模拟信号的;' A) C7 P8 b4 o( t! e& \, c/ s
( F. u Z0 P' \( I+ L' R; Aagc目标值参数:
" x$ n) k( h3 z
7 m' I$ Q4 u" ^4 ~" A一般电平值范围0--无穷小,最大的是0,一般函数参数设置范围为0--10,其实10是-10,调试的时候我们的参数设置一般是3---10之间,设置的值越小则当麦克采集的声音小的时候调整后的就越大越响亮。: k0 w% y! ?* A- [2 k. N
0 ?- t6 {% W4 r, H! \8 G. J m8 j
理想情况下,设置agc后的结果:说话的时候,人离麦克的远近和声音采集的大小并无大关系,因为在agc后,波形会趋于我们设置的目标值参数, 也就是说,当采集的声音高于目标值了, agc就会降低声音波形,如果采集的声音低于目标值了,agc就会调高声音波形,大体上是这么个原理,下面是我写的一个测试例子,实际测试效果还是挺不错的,可以看下测试对比图片: |
|