作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
<分区>
我正在尝试计算 android 上麦克风的响度级别。我使用 AudioRecord 从麦克风获取原始数据,还做了一些归一化并计算了之后的分贝。但是结果不对。我得到的分贝值不稳定,不能反射(reflect)声音。比如即使我拍手,分贝值也没有反射(reflect)出声音。我应该如何更改代码或者如果我想实时计算来自麦克风的响度我应该怎么做?非常感谢。
recorder = new AudioRecord(AudioSource.MIC, iSampleRate, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, iAudioBufferSize);
iBufferReadResult = recorder.read(buffer, 0, iAudioBufferSize);
for (int i = 0; i < buffer.length-1; i++)
{
ByteBuffer bb = ByteBuffer.wrap(buffer, i, 2);
int isample = bb.getShort();
double dsample =(double) isample / 32768.0;
sum += (dsample*dsample);
double rms = Math.sqrt(sum/(buffer.length*0.5));
double decibel = 20*Math.log10(rms);
sum = 0;
}
}
我正在使用 ffmpeg 将立体声音频文件转换为单声道。 ffmpeg -i $1 -ac 1 -ab 192k mono_$1 但是,转换后的 RMS 和峰值响度级别是不一样的。 Tests-iMa
我是一名优秀的程序员,十分优秀!