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

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

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

Go through all PCM samples (assume floating point from -1 to 1) and select the m = max(abs(sample)). Then apply the factor 1/m to all the PCM samples. This would make the peak be at 1.

Go through the PCM stream and for each position, take the Hanning window of some width around it, calculate the average of absolute samples and from those data, pick the maximum and normalize everything.

The same as 2 but some other way to get some sort of averaged value.

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

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

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

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