Как нормализовать звук после пересэмплирования - PullRequest
0 голосов
/ 18 декабря 2010

Я подумываю об использовании libsamplerate для повторной выборки аудиофайлов, что кажется довольно простым.

В FAQ говорится, что после повторной выборки звук должен быть нормализован, что я не уверен, как это сделать.

В нем говорится, что аудиосэмплы должны быть в диапазоне (-1,0, 1,0).Это просто случай:

  1. Поиск сэмпла, который находится дальше всего от этого диапазона
  2. Вычисление коэффициента, в результате которого его значение будет равно -1,0 или 1,0
  3. Применять этот коэффициент к каждому семплу в аудиофайле?

1 Ответ

1 голос
/ 19 декабря 2010

По сути, да, вы должны найти выборку с наибольшим абсолютным значением и просто разделить все выборки на это значение, что гарантирует, что все выборки будут лежать в диапазоне (-1,0,1,0). Конечно, это требует, чтобы у вас был предварительный доступ ко всем аудиоданным (вы не можете нормализовать поток, так как не знаете, какие сэмплы вы получите, например, через 3 секунды в будущем).

Имейте в виду, что эта операция, вероятно, приведет к изменению воспринимаемой громкости («громкости»). Если вы хотите, чтобы общая громкость сохранялась после повторной выборки, вы должны измерить ее до и после повторной выборки и применить правильный коэффициент.

...