上传音频文件时统一显示音频频谱(波形)

时间:2019-03-01 15:41:13

标签: unity3d audio

我正在尝试实现一系列音频文件,这些文件是三星语音记录功能的一部分。

赞这个 enter image description here

但是,没有信息可以实时显示频谱,但是没有信息可以显示上传的音频文件的波形。

1 个答案:

答案 0 :(得分:1)

您可能需要查找的是显示所获取音频数据的整体幅度。但是,您从带有Unity的GetSpectrumData获得的数据是一个数组,显示了一堆不同频率下的振幅。要找到合适的“总”幅度,您可以取平均值,找到最大值,或对该数组的内容求和,然后使用此新值绘制可视化效果。我可能会去寻找最大值,即数组中的最高/最低值。您可以使用Linq:

using System.Linq;
/*...*/
float loudest = yourSpectrumDataArray.Max();

还要注意,您从GetSpectrumData获得的振幅值是整洁的,您可能需要在使用它们之前将其转换为分贝值。我正在使用这个方程式-不记得我在哪里找到的,但是它对我有用:

public float AmplitudeToDB(float value)
{
    return 20.0f * Mathf.Log10(value / 2.5f + 1.5849e-13f);
}