|
音频自动增益算法
8 E V1 a1 a! x2 g2 s
. {. u, m! \: S2 K/ T 语音自动增益(AGC)算法,指的是数字层面的,语音波形都是0101数字组成,指的是把这个波形统一扩大或压缩一个权值,以提高或降低声音响度0 x8 u9 c9 L0 ~
* o) E O/ v+ w# P" O) q 最简单的硬性增益处理是对所有音频采样乘上一个增益因子,它也等同于在频域每个频率都同时乘上这个增益因子,但由于人的听觉对所有频率的感知不是线性的,是遵循等响度曲线的,导致这样处理后,听起来感觉有的频率加强了,有的频率削弱了,导致语言失真的放大。. |9 P) v) L$ H. h7 H F
- B0 C: W( f& b l简单说下音量和增益的区别:( T2 C2 o) v* P8 v8 ~5 V6 j$ }% A! {
# n8 n( v' o; x* d' H; b& }4 U1、音量是数字波形转模拟波形之后,对喇叭的功率的提高或降低,跟增益功能是串行的;4 M C# [, g: K4 C
+ C; g! P( n" a1 v
2、增益是控制数字信号波形的, 音量是控制模拟信号的;5 b" E* S; `1 \6 v5 v8 O6 h
$ H" s! B, n7 X" cagc目标值参数:
) @8 Q. b) w, S# H+ {* l' Q
9 m6 \+ M! ]9 k+ P- `: ~( V- R8 i" L一般电平值范围0--无穷小,最大的是0,一般函数参数设置范围为0--10,其实10是-10,调试的时候我们的参数设置一般是3---10之间,设置的值越小则当麦克采集的声音小的时候调整后的就越大越响亮。. V, k$ g+ m/ D1 e6 g0 c
$ m5 P& B2 Y- ^5 F0 o
理想情况下,设置agc后的结果:说话的时候,人离麦克的远近和声音采集的大小并无大关系,因为在agc后,波形会趋于我们设置的目标值参数, 也就是说,当采集的声音高于目标值了, agc就会降低声音波形,如果采集的声音低于目标值了,agc就会调高声音波形,大体上是这么个原理,下面是我写的一个测试例子,实际测试效果还是挺不错的,可以看下测试对比图片: |
|