|
发表于 2010-4-17
|
|阅读模式
音频自动增益算法
V( y$ U4 e# R% u1 d3 `3 b3 t5 d. f9 h: @
语音自动增益(AGC)算法,指的是数字层面的,语音波形都是0101数字组成,指的是把这个波形统一扩大或压缩一个权值,以提高或降低声音响度
( F6 H8 c, d- }' p4 g ?4 `
. s9 N: h* R* U0 ~0 E2 i 最简单的硬性增益处理是对所有音频采样乘上一个增益因子,它也等同于在频域每个频率都同时乘上这个增益因子,但由于人的听觉对所有频率的感知不是线性的,是遵循等响度曲线的,导致这样处理后,听起来感觉有的频率加强了,有的频率削弱了,导致语言失真的放大。
& }2 r) J6 \( m" C8 f& k# H
4 |/ I$ Q' P/ x4 E- u: [) ]简单说下音量和增益的区别:, |3 [; O) p9 y1 U
+ |8 V8 _7 Q/ B/ r$ Q" M/ Z1、音量是数字波形转模拟波形之后,对喇叭的功率的提高或降低,跟增益功能是串行的;" x2 i# P1 r$ U5 J, G4 q1 t
7 z+ a0 h7 o" r7 B2、增益是控制数字信号波形的, 音量是控制模拟信号的;) m3 _2 L% Z3 X( Q; C
% h" ]+ J, r/ J% ~/ ~agc目标值参数:! y4 }; L+ x% a( f
4 b( p$ y6 g3 M一般电平值范围0--无穷小,最大的是0,一般函数参数设置范围为0--10,其实10是-10,调试的时候我们的参数设置一般是3---10之间,设置的值越小则当麦克采集的声音小的时候调整后的就越大越响亮。
- ?, K2 B# l" e$ a* K& J0 |2 Y, l5 A H1 R" T9 |6 _
理想情况下,设置agc后的结果:说话的时候,人离麦克的远近和声音采集的大小并无大关系,因为在agc后,波形会趋于我们设置的目标值参数, 也就是说,当采集的声音高于目标值了, agc就会降低声音波形,如果采集的声音低于目标值了,agc就会调高声音波形,大体上是这么个原理,下面是我写的一个测试例子,实际测试效果还是挺不错的,可以看下测试对比图片: |
|