获得声级的线性表示

时间:2014-04-13 16:34:51

标签: java android audio

我试图获得通过AudioRecord捕获的音频数据的声级的线性表示,但我能在网上找到的唯一代码返回指数值。谁能指出我正确的方向?

我到目前为止找到的代码是

private double soundPressureLevel(final float[] buffer) {
    double value = Math.pow(localEnergy(buffer), 0.5);
    value = value / buffer.length;
    return linearToDecibel(value);
}

private double linearToDecibel(final double value) {
    return 20.0 * Math.log10(value);
}

private double localEnergy(final float[] buffer) {
    double power = 0.0D;
    for (float element : buffer) {
        power += element * element;
    }
    return power;
}

0 个答案:

没有答案