如何在C#中规范化wav文件卷?

时间:2017-05-23 15:44:26

标签: c# audio normalization wav naudio

我正在使用NAudio打开一个wav文件。在我使用SimpleCompressor类之后,我还必须将文件的音量标准化为0db,但我不知道如何做到这一点。目前我有这个:

=Now()-30

如何从新的字节数组WaveData中获取音量,如何更改?在WaveData中是整个wav文件,包括fileheader

1 个答案:

答案 0 :(得分:0)

您绝对可以更改单个样本值,使其符合最高级别:

string strCompressedFile = "";

byte[] WaveData = new byte[audio.Length];

SimpleCompressorStream Compressor = new SimpleCompressorStream(audio);
Compressor.Enabled = true;

byte maxLevel = 20;

if (Compressor.Read(WaveData, 0, WaveData.Length) > 0)
{
    for (int i = 0; i < audio.Length; i++)
    {
        if (WaveData[i] > maxLevel)
        {
            WaveData[i] = maxLevel;
        }
    }
}

我添加了一个迭代所有样本的循环,如果它的值高于maxLevel,我们将其设置为maxLevel