我正在寫一個音樂播放器,我想規範不同歌曲的音量。音量標準化
我能想到的一些不同的方式來做到這一點,如:
通過所有PCM採樣(假設浮點從-1到1),選擇M = MAX(ABS(樣本) )。然後將因子1/m應用於所有PCM樣本。這將使得峯值位於1.
通過PCM流並且對於每個位置,取其周圍的一定寬度的漢寧窗,計算絕對樣本的平均值,並從這些數據中挑選最大值並標準化一切。
與2相同,但有一些其他方式獲得某種平均值。
2和3有缺點,我可能需要一些裁剪,從而失去一些質量。雖然沒有正常化到1,但到了0.95左右,但我也許可以在一定程度上避免這種情況。但我認爲2和3的優勢在於,這可能是用戶更自然的標準化。 Wikipedia也有一些關於此的信息並提及RMS,ReplayGain或EBU R128來測量歌曲的響度。
其他流行音樂播放器(如iTunes等)如何做到這一點?
#1是正常化的定義。忘記#2和#3。 –
@BjornRoche:我不確定你的評論是什麼意思。根據我目前閱讀的內容,大多數音樂播放器都使用ReplayGain或其他類似的方法來測量響度。你可以在任何地方閱讀#1是非常不是你想要的解決方案。 – Albert
對不起,讓我再試一次:當A/V專業人員說到正常化音頻時,他們指的是#1。它沒有完全實現你想要的東西(雖然它可能是一個合理的第一個近似值),但它在A/V世界中確實有意義。 #2和#3沒有意義。 –