什么是音量?音频自动增益控制AGC(一)
2022/07/14

在之前的文章中,我们已经接触了两个重要的音频前处理模块 – 回声消除 AEC 和噪声抑制 ANS,它们分别解决了 RTC 场景下的回声、噪声问题,极大提升了用户的体验。至此,音频前处理三剑客中,就只剩下一位 – 音频自动增益控制 AGC(Automatic Gain Control)还没有介绍,今天我们就来认识一下它。

实际场景的音量问题和AGC的必要性

相较于回声和噪声,音量相关的问题似乎不怎么“严重”,如果排除播放端误操作的因素,实际场景中还会有哪些音量问题?什么情况下我们会有“需要调整音量”的想法呢?

情况一:音量太小,我们无法辨识具体的语音信息,甚至需要贴着扬声器、皱着眉头“聆听”。原因可能是讲话者距离麦克风过远,也可能是麦克风的采集音量就比较小;

情况二:音量太大,我们的耳朵遭受“痛击”,不得不对扬声器“敬而远之”。原因可能是讲话者距离麦克风过近、可能其说话本身就比较“用力”。

情况三:音量忽大忽小,一段语音里可能同时存在前述两个问题,音量起起伏伏、若即若离,对听众来说无疑也是一种”折磨”。

对于这些音量问题,除了让讲话者调整与麦克风的距离、自身说话的声音大小外,我们熟知且习惯的解决办法是:在采集端,调节麦克风的采集增益;在播放端,调节播放软件的音量条、或者设备扬声器的播放增益。

这些手动的操作,其实都还算得上立竿见影。这么一看,既然动动手就可以自行解决,音量问题貌似的确不是什么大问题,为什么还需要自动增益控制呢?

我们需要意识到,“动动手”这种被动的音量调节方式,虽然有一定效果,但“不够便捷”,也“众口难调”。实际场景中,环境复杂多变:说话者不同则声音的原始音量有差异,说话者距离麦克风远近不同则声音传播的衰减有差异,麦克风设备不同则采集的增益有差异。

这些差异,使得一次“手动调节”很难适应采集环境的动态变化,如果场景中存在多个用户使用同一个麦克风的情况,更难一一兼顾。对于不熟悉设备系统的用户来说,如何调节设备采集增益、调节到多少合适或许都是“不可能完成的任务”(你知道如何调节PC端的麦克风增益吗?)。如果只依赖于手动调节,尤其是频繁的手动调节,势必会给用户带来负担,影响体验,对于产品设计来说也不够“优雅”。

此时,一个智能的音量调节机制的必要性就体现出来了。

AGC 针对上述情况,会自动调节采集端的音量“增益补偿”。简单来说,如果讲话者的声音过大, AGC 会自动降低增益;反之,会自动提高增益,以确保音量维持在一个比较稳定的水平。这个过程,用户无需频繁操作设备,就能避免声音起伏导致的不良体验,可以专注于 RTC 的音视频交互。

了解了常见的音量问题,以及 AGC 在解决这些问题上的优势,大家应该能领会到 AGC 存在的合理性和必要性,是时候再进一步了解下其中的技术点了。所谓“音量自动增益控制”,想要做具体了解,我们不妨把它拆解一下,逐个击破:

  • 什么是“音量”?
  • 音量“增益”的本质是什么?
  • AGC进行音量增益“自动控制”的策略是什么?

我们接下来就一一解答这些问题。

什么是音量

在探讨 ANS、AEC 的文章中,我们都会先理清相应模块的处理对象,比如噪声是什么、回声是什么。所谓知己知彼,AGC 也不例外,我们需要先知道:究竟什么是音量?

其实,在系列文章的第一讲 – 音频要素中,我们就接触了音量的概念,只不过使用的是另外一个名称:响度。

我们回忆一下响度的定义:“响亮、微弱,是对声音强弱的感觉描述,这种特征被称为响度。响度由发声体振动的幅度决定,当传播的距离相同时,振动幅度越大、则响度越大;相反,当振幅一定时,传播距离越远,响度越小,就是我们常说的“距离太远了,听不见”的原因。“音量、响度”描述的是声音的同一属性,从定义上来看,它们是人耳对声音强弱的“感受”,主要由声音振动的“幅度”决定。感受是一种“心理量”,无法被具体量化;而振幅是“物理量”,在音频采样位深为 16bit 时,其幅度取值为 [-32768,32767],范围非常大,不便于检测和计算(关于采样位深和幅度的概念,可参考系列文章的第一讲–音频要素–声音的采集与量化)。

为了简化表示,我们又引入其他计量标准来表示音量,常见的有“声压级”标准和“全分贝刻度”标准,二者使用的单位均为分贝(dB)。

分贝是一个对数单位, 用于表示两个相同单位物理量的比,所以它需要参考一个基准量来进行计算,基准量不同,得到的数值体系也不同:

  • 声压级(SPL,Sound Pressure Levels):单位为 dBSPL。使用声压作为基准量,其基准值为 20 μPa (声音在空气中振动会引起大气压强的变化,也即“声压“,单位为 Pa 。20 μPa 是人耳在频率1KHz下能感知的最小声音,相当于三米外一只蚊子的声音)。我们把声压为 20 μPa 的音量记为 0 dBSPL,音量越大,声压级分贝越大。我们正常谈话聊天的声压级音量约为 40 ~ 60 dBSPL,如果音量达到 90dBSPL 以上会损伤听力,190 dBSPL 以上甚至会危及生命。常见的噪声等级划分,就使用了声压级参考系。
  • 全分贝刻度(DFS,Decibels Full Scale):单位为dBFS。使用音频采样点的幅度值作为基准量。和声压级不同,全分贝刻度的基准值不是最小值,而是最大值。比如,对于采样位深为16bit的音频,音频采样点的最大振幅为32768,此时音量最大。我们取振幅 32768 作为基准量,对应全分贝刻度 0 dBFS,0 dBFS 也即全分贝刻度标准下的最大音量,除了最大音量外都是负值,16bit下的最小值为 -96 dBFS。数字设备、数字音频处理均使用全分贝刻度作为音量单位,AGC 处理也是如此。

通过上面的描述,大家对于“什么是音量?”,应该有了初步的认知,有兴趣的同学,还可以具体去了解不同音量标准的对数计算公式,有助于大家进一步理解“分贝”的概念。

下篇文章我们继续“音量自动增益控制“ 概念逐个击破的第二部分:音量“增益”的本质。

扫一扫,获取更多服务与支持
热门推荐
H.264 与 H.265 视频编解码器的区别,哪个更好?
2024/07/26
直播产品中的“六边形战士”来了!ZEGO 超低延迟直播,高质量带来新增长!
2024/07/23
什么是抖动?如何使用抖动缓冲区来减少抖动
2024/07/22
热门标签
AI 降噪
AI课堂
ExpressSDK
MSDN
RTI
SEI
webrtc
ZIM
互动白板
即构融资
在线KTV
在线K歌
屏幕共享
录屏采集
数智人
直播技术
范围语音
行业报告
语聊房
语音社交
超分
音视频
音视频开发
音视频技术
音频编码
关注我们
获得更多服务与支持了解价格与优惠 扫码关注我们
关注我们
获得更多服务与支持了解价格与优惠 扫码关注我们