概述
自动增益控制(简称为“AGC”)可以在信号的输出端提供稳定增益,而不受输入端增益不同的影响。本文主要阐述了AGC的工作原理以及在音频系统中的具体应用。
一直以来,传统的AGC在应用中存在一个严重的技术缺陷,即:当环境噪声大于所设定的阈值 并且讲话者停止讲话时,AGC会自动将环境噪声放大至所需电平。此时在系统中会出现极大的噪声。 如果我们将阈值提高又会出现讲话声音小的人无法正常启动AGC。Biamp开发了一种叫做“SpeechSense (人声辨识)算法”可以智能化地创建阈值和提供可选的“语言模式”,此功能限制了AGC只有在识别到人声的时候才对信号进行AGC处理, 从而彻底消除AGC误启动的问题。在本文中,将会详细的介绍SpeechSense算法的工作原理以及在音频系统中的具体应用和系统调试中的注意事项。
1)什么是AGC?
AGC 是英文“Automatic Gain Control”(自动增益控制)的缩写。AGC在各个行业中的应用非常广泛。在模拟电路时代, AGC的控制精度和速率是由模拟电路的设计和电子元件的精度所决定的,我们称之为AGC的工作特性。
大家都知道,现在的音频处理核心产品大都采用DSP芯片进行设计,因此我们将之统称为音频DSP处理器。实际上,与以往的模拟AGC电路不同,DSP处理器的电路设计大同小异,所采用的芯片也大都雷同。而所有的DSP处理器所支持的功能,如:滤波器,分频器,路由器,混音器,AGC等等都是由“算法”来实现的。因此,AGC的工作特性完全能取决于AGC算法。
2)为什么音频系统需要AGC?
在实际的音频会议系统应用中,经常会出现以下这些情况:
由于性别的原因或讲话者的各自习惯不同,有的人声音大些,有的人声音小些,有的人喜欢离话筒远些,有的人喜欢离话筒近些,这些情况会导致在音频系统的输出端的音量幅度产生巨大的差别。
AGC可以针对上述这些情况自动给与“增益补偿”。通俗一点的讲,当讲话者的声音太大的时候, AGC会自动降低增益,从而使会议的扩声维持在一个恒定的音量上;反之,讲话者的声音太小,AGC会自动提高增益,以确保系统仍然维持在恒定的音量。在音频系统中,AGC可以根据“要求”对声音信号自动给予“增益补偿”。因此通常用于调节各种会议系统的不同讲话者的声音音量平衡。
3)传统AGC是如何解决这些问题的呢?
首先,我们先来学习几个技术名词:
- Level源信号电平:讲话者的声音经话筒拾音,进入音频处理器的原始电平;
- Min Threshold 最小电平阈值:启动AGC的最小电平值;
- Target Level 目标电平:我们所需要的,经过AGC自动调整的电平。 当输入电平大于所设定的Min Threshold, AGC会启动并自动根据所设定的Target Level对源信号进行增益补偿,并保持输入信号为恒定的Target Level.
当源信号电平大于最小电平阈值(Min Threshold)但小于目标电平(Target Level)时, AGC启动并对源信号自动提高增益至目标电平 (Target Level)。如图一所示:
(图一)源信号电平大于最小电平阈值
红色代表经AGC调整后的 电平曲线,蓝色代表未经AGC调整的源信号电平曲线。当源信号电平小于最小电平阈值(Min Threshold), AGC关闭,从而防止AGC将噪声电平放大输出。见图二:
(图二)源信号电平小于最小电平阈值
当源信号电平大于最小电平阈值(Min Threshold),并大于目标电平(Target Level)时, AGC启动并自动衰减输入信号增益至目标电平(Target Level)。从而实现对输入信号的自动增益控制,并且在输出端维持一个相对恒定的 音量。见图三:
(图三)源信号电平大于目标电平
4)传统AGC在实际应用中的问题
上文中我们提到,当源信号大于所设定的Min Threshold,AGC不工作。 其目的是避免AGC电路错误地提升系统的噪声信号。只有在源信号大于某一设定值时,我们才认为此信号为有用信号并对此信号进行AGC平衡电平。
这种设计方案看似非常合理,但在实际工作中却屡屡出错。比如:我们所用的所有的语音通信软件(如:QQ, Skype, Lync等等)都支持AGC, 但在实际使用中经常出现的问题是,当两端的人都不讲话的时候,可以非常明显地感觉到对方的噪声的提升。
究其原因, 在实际工作环境中,噪声的值实际上很难预测,它与有用信号之间有很大的重叠区域,但我们给定一个Min Threshold的时候,不是当有用信号非常低时AGC没有启动,就是噪声信号高于Min Threshold, AGC错误的启动。
因此,在很长的一段时间,业内都没有一个彻底地解决方案。
5)带有SpeechSense (人声辨识)算法的AGC的工作原理
下面我们来看一下BIAMP的AGC是如何解决这个问题的。
综上所述,其实只有一种办法能够彻底地解决AGC不能正确启动的难题。那就是,真正判断源信号是否为有用信号。通常在绝大多数情况下,AGC是用在传声话筒的链路里,因此,只要我们能够判断源信号是否为人声就可以了。
其实,人声辨识已经不是一个新课题了。经研究,人们发现所有人类的语言有两种元素是与动物和环境声截然不同的。即Plosive 爆破音和Fricative摩擦音。比如:中文的“破”和“刺”, 或英文中的“Bob”和“Fish”。因此,只要我们对源信号进行采样并辨识是否有爆破音和摩擦音的存在,就可以判定此信号是否为人声。
从原理上讲,似乎并不困难。但如前文所提到的,AGC的性能完全取决于算法。在极短的时间内(通常只有十几毫秒),SpeechSense AGC算法要完成对源信号的采样、分析、 运算,因此对算法的效率要求极高,并且对信号的人声片断分析的准确性要求极为严格,要在最大限度内保证AGC启动的准确性。BIAMP的AGC不仅可以快速准确的完成增益自动补偿,更重要的是它可以非常准确地辨识出源信号是否为人声,从而确保AGC只有在讲话者使用时启动,有效的避免了AGC误启动所造成的噪声过大的问题。
6)SpeechSense (人声辨识)算法的AGC的参数设定
下面我们来具体看一下有关SpeechSense AGC的一些参数是如何配置的。
输入源电平:通常,我们调试话筒的时候, 要确保讲话者与话筒的距离比较合理,且用正常的声调对着话筒讲话,此时在输入源电平的读数应在“0dB”左右。 由于传声话筒的灵敏度和指向性以及所在环境的空间噪声不同,在无人讲话的时候,输入源的最低电平应该在-40dB到-20dB之间(如电平显示过高,则表明现场环境噪声过大)。此时,最小电平阈值(Min Threshold)应该调整为略高于无人讲话时的输入源的最低电平。(有关增益结构的详细内容可到http://cn.Biamp.com/ , 点击进入audia, 参考“增益结构”的视频)。
输出增益调节指示:是指在AGC自动增益调节之后的音频输出补偿的数值。补偿是根据目标电平和输入电平之差所决定的。例如:当源信号的电平为-10dB, 目标电平为0dB,那么输出补偿为+10dB.
AGC增益保持时间:当AGC不满足启动条件时(比如:源信号电平低于Min Threshold或源信号为非语音信号), 输出增益调节所保持的时间。例如:如图当系统检测到AGC在60秒后仍然没有启动,输出增益调节会自动归零。
最大AGC提升增益:可以设定AGC自动增益的提升范围。最大值为30dB,在实际使用中, 我们建议的范围是012dB。因为,如以正常情况来调试系统,一般会议系统的本地扩声的净空为614dB。也就是说,如果AGC将话筒的音量提升高过净空值时,系统会产生啸叫。因此,最大AGC提升增益永远略低于系统的净空值。
最大AGC衰减增益:可以设定AGC自动增益的衰减范围。最大值为30dB。
增益变化速率:设定AGC的增益变化速率。例如:如图Max Adjustment Rate为5.0,当AGC启动时,会以每秒5dB的速率进行提升或衰减从而最终达到输出补偿的要求。 在实际应用中,如果我们不希望与会者觉察到明显的声音增益变化,可以保持默认设置或适当降低速率。如在演示环节,可以适当提升速率,从而使受众明显感觉到AGC的工作。
SpeechSense声音辨识:当此按钮关闭时,AGC恢复传统AGC的工作模式。当此按钮开其实, AGC只在检测到人声时才会启动,而任何其它噪声不会误触发AGC。
Limiter On压限器:当此功能激活时, 系统会自动监测AGC之后的电平值并在电平值高于+24dBu时进行压限,从而确保电平在峰值范围之内。同时压限器指示会点亮。
AGC Active:当AGC启动时,此指示灯会点亮。
Advanced:高级设定。点击进入,可以看到输入电平,噪声电平以及SNR信噪比电平。
因为无法识别人声与噪声,所以所有的传统的AGC都没有这一选项。而Biamp AGC 的SpeechSense的算法不仅能够准确的识别出人声,还可以进而精确的计算出人声与环境噪声之间的比值,即信噪比。
因此,在这里可以对声音的信噪比进行设定。当源信号的信噪比高于设定值时,SNR为绿色。当源信号的信噪比低于设定值时,SNR为红色。AGC只有在SNR为绿色时,即:源信号的信噪比高于设定值时才能启动。
(话筒所拾取的声音信噪比小于设定值“30dB”)
(话筒所拾取的声音信噪比大于设定值“30dB”)
那么SNR的调整在实际项目中如何应用呢? 我们下面来看一个例子。
第一种情况是,在实际应用中往往存在多只话筒,且话筒间距离较近。实际上我们只希望当演讲者有目的的对着话筒讲话时,AGC才根据电平自动调节,并且不希望讲话者的声音影响到邻近的话筒;另一种情况是,当讲话者远离话筒与其他的与会者细声交流的时候,他们当然不希望系统对这些“交流”也进行AGC自动增益补偿。由于传统的AGC不具备信噪比调节的功能,所以上图示例中,传统AGC就无法使用了,或者很难调试。而带有SpeechSense (人声辨识)算法的AGC,通过合理调节信噪比,就可以让每一只话筒处于需要的AGC工作状态。
以上是对AGC在音频系统中应用的一些总结,如何更好的发挥AGC在具体应用中的作用还需要进一步的探索与思考。
最后
以上就是激动电源为你收集整理的带有SpeechSense算法的AGC在音频系统中的应用的全部内容,希望文章能够帮你解决带有SpeechSense算法的AGC在音频系统中的应用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复