我用Android的录音机来计算周围的噪音。
我使用getMaxAmplitude()函数得到最大振幅,并使用公式:将其转换为db。
db = 20 * Math.log10( getMaxAmplitude() / ref )其中ref=32767 (只是一个引用值)
但是,当我在不同的设备中测试应用程序时,"db“不是same.Which,这意味着getMaxAmplitude()在不同的设备上有所不同。
如果在索尼的tipo显示-40分贝意味着三星S4的-20分贝。
为什么会有这种变化?
发布于 2013-12-13 12:01:48
不同的设备将有不同的麦克风,不同的灵敏度,不同的音频硬件/放大器。此外,它们还可以应用不同的输入增益、EQ以及自动增益控制(AGC)和降噪算法,这可能解释了您所看到的巨大差异。
在某些设备上,您可以运行AlsaMixer (作为根)来控制麦克风输入增益。
https://stackoverflow.com/questions/20564354
复制相似问题