4

我们正在开展一个跨平台项目,该项目需要在智能手机上进行音量采样并以尽可能高的精度分析结果,iPhone 开发人员使用 iOS 实现了返回由操作系统本身计算的以 dB 为单位的声功率/音量的功能。据我所知,Android OS 中没有等效的功能。

到目前为止,我正在使用操作系统提供的 MediaRecorder 类在 Android 上工作,并且我使用 getMaxAmplitude 来测量声音功率/音量,我在网上看到了很多关于如何将幅度转换为 dB 刻度的答案,听起来最合理的答案是使用以下公式:

20*Math.log10(幅度/MAX_AMPLITUDE)

但是我必须知道getMaxAmplitude可以返回的MAX_AMPLITUDE是什么,事情是它在不同的设备上是不同的,例如我在HTC Desire和三星Galaxy S3上测试了getMaxAmplitude,在HTC上它达到了32767(我看到了在一些答案是记录的最大值),并且在 S3 上它没有超过 16383(HTC 的一半)。

Q1:

这是(上面讨论的方法)正确的方法吗?只是我读到测量声功率/音量的正确方法是通过计算 RSM 然后将其转换为 dB,这在 iPhone 上是如何完成的?

Q2:

如果我使用 RSM 或仅使用 getMaxAmplitude 中的振幅,不管怎样,在我看来,我仍然需要知道我可以从记录硬件中获得的最高振幅是多少,有没有办法知道这一点?还是有办法绕过它?

4

1 回答 1

6

90dBspl 是声域中的 rms 值。在 16 位系统中 2500 rms 的数字电平与大约 -22dB FS rms 相同(实际上是 -22.35),其中 0dBFS rms 是满量程方波。在这样的系统中,满量程正弦曲线为 0dBFS 峰值和 -3dB FS rms(从 -32768 到 +32767)。

+/-2500 的方波可以计算为:

20 * log (2500/32767) = -22.35 dB FS rms

请注意,正弦波的峰值总是比 rms 电平高 3dB。唯一具有相同 rms 和峰值电平的信号是方波。

现在,Android 对 90dBspl 左右的线性度有 30dB 的要求,但这个线性度在 90dBspl 以上 +12dB,在同一点以下 -18dB。在此范围之外,可能会以不同的方式进行压缩,具体取决于您测试的手机型号。

Android 手机内保证的最高线性电平为 -22dBFS +12dB = -10dBFS rms。高于这个水平是不确定的。最常见的情况是,最后 7dB 的峰值余量仍然是线性的,导致 90dBspl + (22-3 dB) = 109dB spl rms 的声学最大电平,对于没有削波的正弦(或 112dB spl 峰值)。

在某些手机中,您会发现峰值限制器可将增益降低到 102dBspl rms 以上。这样做的结果是您仍然可以录制到麦克风的饱和度。这个饱和度会有所不同,但在 120dB spl 时通常会出现 2% 的失真。在此级别之上,麦克风组件开始饱和并削波。

看看天平的另一端:

小型电话麦克风通常很吵。最新的麦克风可以在低于 0dBPa (94dBspl) 时具有 -63dB 的本底噪声,但大多数麦克风在低于 0dBPa 的 -58 到 -60dB 之间。

这如何计算到 dBFS rms ?

0dBPa rms 是 94dB spl rms。从上面的陈述我们知道,90dBspl rms 声级将在 Android 手机中以 -22dBFS rms 的数字电平记录。-63dB 低于 90dBspl 与 -22dBFSrms +4dB -63dB = -81dBFSrms 相同。16 位系统中动态的绝对最大范围可以近似为 96dB(或 93dB,取决于您如何看待它),因此噪声水平至少比数字文件中的量化噪声高 12dB。

这是视频录制模式的一个非常重要的发现。不幸的是,Android 中的许多视频应用程序在录制时往往具有过高的麦克风增益。这会导致在录制响亮的音乐会和类似情况时出现削波。我们也知道麦克风本身的性能至少可以达到 120dB。因此,对于任何音频系统工程师来说,制作一个实际使用麦克风整个动态范围的视频录制模式都是一个好主意。这意味着应将增益设置为至少低 8dB。如果声音太软,则始终可以在视频录制之后更改 rms 电平,但如果声音被削波,那么您将永远损坏录音。

所以,我给你们程序员的信息是实现一种视频录制模式,其中 90dB spl rms 的声级记录在 -30dBFSrms 或略低于该值。之后可以进行任何最大化。通过这种方式,我们可以录制具有更好声音的摇滚音乐会。做自动增益控制对音质没有帮助。动态范围通常太大而无法自动控制。你会得到很多的声音。最好实现两种不同的视频录制模式:音乐会模式和演讲模式。在语音模式下(针对 1m 距离的说话人进行了优化),对于 90dBspl,录音增益甚至可能高于 -22dBFSrms。我会说 90dBspl 的 -12dBFS rms 是一个合适的录音电平。(1m 距离处的语音的 rms 电平约为 57dB spl,峰值高 20-30dB)。

Björn Gröhn 瑞典隆德索尼移动音频系统工程师

于 2014-09-02T08:21:33.923 回答