音量用浮點數(float)和對數(logarithmic scale)表示各有特點和應用場景
浮點數:直接使用線性刻度表示音量,例如在0.0(最小音量)到1.0(最大音量)的范圍內。
對數刻度:使用對數刻度表示音量,常用分貝(dB)表示。這是因為人耳對音量的感知是對數的
常見公式是:。其中 V0是當前音量,V1是參考音量。
對于人耳的感知來說,直接變化的浮點數音量在感知上可能不夠線性。例如,從0.5到1.0的變化和從0.0到0.5的變化在人耳感知上不一樣。從浮點數字來看數字增大了一倍,但不代表聲音大小在感知上大了一倍,相比之下,分貝刻度更符合人耳對音量的感知。例如,增加10dB大約被認為是音量增加了一倍。
也就是說,增加音量:如果聲音強度增加一倍,人耳感受到的響度并不會增加一倍,而是增加一個常數值(大約10dB)。
音量減半:同理,如果聲音強度減小一半,人耳感受到的響度減少一個常數值(大約6dB)。
所以一般在編程和數字音頻處理中直接用浮點數表示音量,更直觀。音量運算的時候都是按照浮點數來運算
在專業音頻工程中,使用dB更符合實際感知和標準,在電氣指標測試中一般使用dB單位來描述
在數字音頻中,0dB代表最大音量,0dB意味著不對數據進行任何的變換處理,對應的浮點音量即為1.0
假設有一個音量調節器,音量范圍從0.0到1.0,對應的分貝范圍是從-∞到0dB。
-
如果當前音量是0.5(浮點數),轉換為dB: dB=20log?10(0.5)≈?6.02dB
-
如果當前音量是-10dB,轉換為浮點數: volume_float=
≈0.316
在電聲測量中通常以輸入2V 為0db信號參考,那么可知-12db
衰減6個db,電壓降一半,衰減12個db,那么2V信號降將為500mv信號