作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用MediaRecorder
尝试创建一个返回声压级的声级计(我相信大多数人指的是日常用分贝表示的音量)。
当前,我正在使用此实现来获取以分贝为单位的值:return 20.0 * Math.log10(Math.abs(mMediaRecorder.getMaxAmplitude()) / 32768)
我不确定这是否正确。坐在没有风扇的无噪音房间内,它返回的值在-30至-20之间。如果我在麦克风附近讲话,它会跳到-0.5左右的值。
阅读该网站上的许多答案,似乎很困难,并且在没有校准设备的情况下测量SPL十分不可靠。但是,我不需要高度准确的结果,仅需要适用于日常好奇心和非极端情况的结果。
有些应用程序(例如Sensor Box for Android)似乎返回了不错的结果,而无需启动校准。在同一房间中使用它,它返回的结果在40-60dB之间,而当我说它时,它会跳入80-90dB的范围内。
如何复制这些结果?谢谢!
最佳答案
您的第一个问题是,分贝不是精确的度量,而是信噪比。您需要进行基本测量,并且需要测量信号幅度与该基线噪声的比率。仅振幅是没有意义的。
您的第二个问题-您从哪里获得32768?公式应为20.0 * Math.log10(Math.abs(signal/baseline))
。
关于android - 声级计,用于测量声压级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29871472/
我是一名优秀的程序员,十分优秀!