2016-07-29 2 views
1

Я пытаюсь нормализовать Mp3-файлы с помощью NAudio, но я не знаю, как это сделать.NAudio Normalize Audio

Первый я был преобразования MP3-файл в PCM:

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

Но что это следующий шаг? К сожалению, я ничего не нашел в сети.

Спасибо за вашу помощь

+0

Возможный дубликат [Нормализованный звук] (http://stackoverflow.com/questions/9802461/naudio-sound-normalize) – bassfader

ответ

1

Я новичок в NAudio, так что я не знаю точно, как код, но я знаю, что нормализация аудиофайла требует двух проходов по данным. Первый проход - это определение максимальных и минимальных значений данных, содержащихся в файле, поэтому вам придется сканировать каждую точку данных и определять максимальные и минимальные точки данных (и для обоих каналов, если стерео). Затем, после определения максимального максимального или минимального минимума (какое бы абсолютное значение не было наивысшим), вы вычисляете это значение в процентах от полной шкалы (самое высокое или минимальное возможное значение для потока бит, например, с 16-битным звуком - 32767 или -32768). Затем вы увеличиваете объем на разницу в процентах.

Так, например, на вашем проходе сканирования вы обнаружили, что наибольшее значение в 16-битном монофоническом файле было 29000, тогда вы увеличили бы объем на 112,989 процентов, чтобы максимальный образец был увеличен с 29000 до 32767, и все другие образцы соответственно увеличиваются.