2012-05-05 63 views
1

是否可以從音量水平計算分貝值?
假設正在播放聲音(可能是任何曲目,但我使用AudioTrack生成的聲音)。在播放聲音時,聲音的音量從0(靜音)增加到99(最大)。 例如,當音量級別爲50時,現在我想要檢索分貝值。
可能嗎?Android - 從音量計算deciBel

我發現如何在這個線程計算分貝值:Calculate Decibel from amplitude - Android media recorder

power_db = 20 * log10(amp/amp_ref); 

但在這裏它使用的振幅,而不是音量。

回答

0

對於您的計算,您可能可以假設更多的振幅=更多的音量。

他們是非常密切相關的:http://en.wikipedia.org/wiki/Volume_(sound

+0

好吧,我會試試這個。那麼在這個公式中'amp_ref'等於什麼? – VCODE

+0

您必須選擇一個 - 分貝是量的相對量度,而不是絕對量度。嘗試30dB作爲基準,並根據需要進行調整。 – theelfismike

+0

我仍然不明白... 讓我們假設:amp = 50和amp_ref = 30(正如您指出的那樣)。 然後db = 20 * log10(amp/amp_ref),將等於= 0.這似乎看起來不正確。 主要關心的是,客戶希望每隔2秒鐘增加10分貝的音調強度,從-10開始到100. 順便說一句,這是可以模擬的嗎? – VCODE