|
发表于 2010-4-17
|
|阅读模式
音频自动增益算法' P+ ]$ L! d4 ~1 j; c' F
% v, M: t6 a `- w+ y8 s9 } 语音自动增益(AGC)算法,指的是数字层面的,语音波形都是0101数字组成,指的是把这个波形统一扩大或压缩一个权值,以提高或降低声音响度# R4 f( @4 Y& `) [, ^; Q! O
' V1 N0 p- `; t: b8 m- J
最简单的硬性增益处理是对所有音频采样乘上一个增益因子,它也等同于在频域每个频率都同时乘上这个增益因子,但由于人的听觉对所有频率的感知不是线性的,是遵循等响度曲线的,导致这样处理后,听起来感觉有的频率加强了,有的频率削弱了,导致语言失真的放大。
7 V' P3 w5 v/ A2 l) U* c
6 `- X; i1 T8 A1 a) K, S% b' |2 }4 b
简单说下音量和增益的区别:
6 ?$ @! e' k# `# `9 Q9 j, |9 l# f. @
1、音量是数字波形转模拟波形之后,对喇叭的功率的提高或降低,跟增益功能是串行的;
5 H+ p7 E4 ^$ K, p4 `' ?: `6 V) V: k( H
2、增益是控制数字信号波形的, 音量是控制模拟信号的;. ]' H5 |, x) n, i3 e6 w( n
' l' L0 B: Q' r9 C
agc目标值参数:
$ l% [4 f+ d) v# K' t+ w* N% G7 S
" o) G8 S+ m7 c- U+ `! _一般电平值范围0--无穷小,最大的是0,一般函数参数设置范围为0--10,其实10是-10,调试的时候我们的参数设置一般是3---10之间,设置的值越小则当麦克采集的声音小的时候调整后的就越大越响亮。
: k8 [& q$ R) A P
5 ?% t, z" @1 o- F- d2 D2 Z 理想情况下,设置agc后的结果:说话的时候,人离麦克的远近和声音采集的大小并无大关系,因为在agc后,波形会趋于我们设置的目标值参数, 也就是说,当采集的声音高于目标值了, agc就会降低声音波形,如果采集的声音低于目标值了,agc就会调高声音波形,大体上是这么个原理,下面是我写的一个测试例子,实际测试效果还是挺不错的,可以看下测试对比图片: |
|