нормализация громкости звука [закрыто]

Я пишу музыкальный проигрыватель и хочу нормализовать громкость звука в разных песнях.

Я мог бы придумать несколько разных способов сделать это, например:

Просмотрите все выборки PCM (допустим, что с плавающей точкой от -1 до 1) и выберите m = max (abs (sample)). Затем примените коэффициент 1 / m ко всем образцам ИКМ. Это сделало бы пик на 1.

Пройдите через поток PCM и для каждой позиции возьмите окно Ханнинга некоторой ширины вокруг него, вычислите среднее значение абсолютных выборок и по этим данным выберите максимум и нормализуйте все.

Так же, как 2, но каким-то другим способом получить какое-то усредненное значение.

2 и 3 имеют недостаток в том, что мне может понадобиться отсечение и, следовательно, потеря качества. Не нормализуя до 1, но до 0,95 или около того, я, возможно, мог бы избежать этого в некоторой степени, хотя. Но я думаю, что 2 и 3 имеют то преимущество, что это может быть более естественной нормализацией для пользователя.Википедия также имеет некоторую информацию об этом и упоминаетRMS,ReplayGain или жеEBU R128 измерить громкость песни.

Как другие популярные музыкальные плееры (например, iTunes или около того) делают это?

Ответы на вопрос(1)

Ваш ответ на вопрос