NAudio标准化音频

时间:2016-07-29 10:19:10

标签: c# normalization naudio

我正在尝试使用NAudio规范化Mp3-Files,但我不知道该怎么做。

我做的第一件事就是将Mp3-File转换为PCM:

using (Mp3FileReader fr = new Mp3FileReader(mp3.getPathWithFilename())) {
    using (WaveStream pcm = WaveFormatConversionStream.CreatePcmStream(fr)) {
        WaveFileWriter.CreateWaveFile("test.wav", pcm);
    }
}

但下一步是什么?不幸的是,我没有在网上找到任何东西。

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

我是NAudio的新手,所以我不知道如何对此进行编码,但我知道音频文件的规范化需要两次通过数据。第一步是确定文件中包含的最大和最小数据值 - 因此您必须扫描每个数据点并确定最大和最小数据点(如果是立体声,则确定两个通道)。然后,在确定最高最大或最小最小值(无论哪个绝对值最高)时,您将该值计算为满量程的百分比(比特流的最高或最低可能值,例如,使用16位音频&#39) ; s 32767或-32768)。然后,您可以通过百分比差异来增加音量。

因此,例如在您的扫描过程中,您发现16位单声道文件中的最高值为29000,然后您将增加音量112.989%,以便最大样本从29000增加到32767,以及所有其他样本相应增加。