使用 Accelerate Framework 将分贝转换为音量

Convert decibels to volume using Accelerate Framework

我正在构建某种音频衰减器效果。

我正在使用 vDSP_vdbcon 将音量缓冲区转换为分贝,在 db-space 中应用一些修改,并希望使用加速框架将分贝缓冲区转换为音量。

谢谢!

这是我对每个元素使用的分贝值在 -40 和 0 之间的值。它给出了很好的结果。

float decibelsToMag(float decibels){
    return pow (10, (0.05 * decibels));
}

我不知道 pow 函数的加速向量等效项。但这里有一个半矢量化版本。

void decibelsToMags(float *decibels, float *mag, int count){
    float mul = 0.05;
    vDSP_vsmul(decibels, 1, &mul, mag, 1, count);
    for (int i = 0; i < count; i++) {
        mag[i] = pow(10,mag[i]);
    }
}

Post 如果你能找出循环的 vDSP 版本,请返回。