android - 录音机获取噪音水平(以分贝为单位)

标签 android recorder

我正在尝试获取录制音频的噪音水平(以分贝为单位)。我正在使用以下代码,但它没有给出正确的输出

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/

相关文章:

android 录音机启动无效状态 4

android - 使用下载管理器下载文件

android - 如何使用 Volley Library 发送数据?

android - 如何从 ListTile 领先属性中删除固有填充?前导属性容器的填充颜色

windows-7 - screen_capture_recorder 记录第二个监视器 ffmpeg Win 7

asp.net-mvc - 如何通过MVC Controller上传录制的音频(recorder.js-master)?

java - XmlSerializer 会不会返回一个太长的 String 而不是 Java 中的字符串?

Android sherlock 搜索 View

ios - 在仪器中找不到 UI 记录器模板

windows-7 - 屏幕捕获记录器记录第二个监视器 ffmpeg Windows 7