求大神帮忙,java音频分贝计算

需要有一个功能,JAVA从音频文件中获取并计算音频的分贝值,不是播放声音的大小

除非音频里某种声音的分贝固定,作为标准,才可以大概估算分贝。否则没有参照系,怎么知道声强呢。而且录音和放音设备是有饱和值的。也就是当声音强度过大,它并不能真实地记录和回放出来。
还要考虑信噪比。

 private void calcDecibelLevel(short[] buffer, int readSize) {


        long v = 0;
        // 将 buffer 内容取出,进行平方和运算
        for (int i = 0; i < buffer.length; i++) {
            v += buffer[i] * buffer[i];
        }
        // 平方和除以数据总长度,得到音量大小。
        double mean = v / (double) readSize;
        double volume = 10 * Math.log10(mean);

        Log.e("pcm", "分贝值 = " + volume);
    }