我正在尝试获取录制音频的噪音水平(以分贝为单位)。我正在使用以下代码,但它没有给出正确的输出
byte[] audioData = new byte[bufferSize];
recorder.read(audioData, 0, bufferSize);
ByteBuffer bb = ByteBuffer.wrap(audioData);
int sampleSize = bb.getInt();
现在如果我记录sampleSize,那么它会给出非常巨大的值,例如956318464
谁能告诉我如何获得正确的噪音水平(以分贝为单位)。
最佳答案
首先,分贝是一个比率。您不能仅仅获得分贝,您需要将音量与基线测量值进行比较。所以振幅的真实方程是
db= 10* log10(振幅/基线振幅);
如果您现在正在录制音频,请使用 MediaRecorder.getMaxAmplitude 获取幅度。对于基线幅度,测量预期的背景噪声。
关于android - 录音机获取噪音水平(以分贝为单位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14494952/