如何以dB为单位测量Android音量

时间:2013-09-08 14:38:58

标签: android iphone audio-recording mediarecorder

我们正在开发一个跨平台项目,需要在智能手机上进行音量采样,并尽可能高精度地分析结果,IPhone开发人员使用iOS实现的功能,返回声音功率/音量,以dB计算,由OS计算本身。据我所知,Android OS中没有相同的功能。

截至目前,我正在使用OS提供的MediaRecorder类在Android上工作,我使用getMaxAmplitude来测量声音功率/音量,我在网上看到了很多关于如何将振幅传输到dB的答案规模,听起来最合理的答案是使用公式:

20 * Math.log10(幅度/ MAX_AMPLITUDE)

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

Q1:

这是(上面讨论的方法)正确的方法吗?只是我读到了the correct way to measure sound power/volume is by calculating RSM and then convert it to dB,这就是它在IPhone上的表现吗?

Q2:

如果我使用RSM或者只是来自getMaxAmplitude的幅度,那就没有了,在我看来,我仍然需要知道我能从记录硬件获得的最高幅度,有没有办法知道这一点?或者有办法以某种方式绕过它?

1 个答案:

答案 0 :(得分:2)

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,对于没有削波的正弦曲线(或112 dB spl峰值),它们的反射均值为109dB。 p>

在某些手机中,您会发现一个峰值限制器,可将增益降低到102dBspl rms以上。结果是您仍然可以录制麦克风的饱和度。该饱和水平变化,但通常在120dB spl时具有2%的失真。在此级别以上,麦克风组件开始饱和并剪辑。

观察比例的另一端:

小型手机麦克风一般都很吵。最新的麦克风可以在0dBPa(94dBspl)以下的-63dB噪声基底,但大多数麦克风在0dBPa以下的-58和-60dB之间。

如何计算dBFS rms?

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

这是视频录制模式的一个非常重要的发现。不幸的是,Android中的许多视频应用程序在录制时往往会有太高的麦克风增益。当录制嘈杂的音乐会和类似情况时,这会导致剪辑。我们也知道麦克风本身至少可以达到120dB。因此,任何音频系统工程师都应该制作实际使用麦克风整个动态范围的视频录制模式。这意味着增益应至少设置为低8dB。如果声音太软,总是可以在视频录制中更改有效值级别,但如果它被剪裁,则会永久损坏录制内容。

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

BjörnGröhn Sony mobile Lund,瑞典的音响系统工程师