【问题标题】:Android - Calculate deciBel from sound volumeAndroid - 从音量计算分贝
【发布时间】:2012-05-05 15:27:48
【问题描述】:

是否可以从音量级别计算分贝值?
假设正在播放声音(它可以是任何轨道,但我使用的是带有 AudioTrack 的生成声音)。播放声音时,声音的音量从 0(静音)增加到 99(最大)。 现在我想检索分贝值,例如当音量为 50 时。
有可能吗?

我在这个帖子中找到了如何计算分贝值:Calculate Decibel from amplitude - Android media recorder

power_db = 20 * log10(amp / amp_ref);

但这里它使用的是幅度,而不是音量。

【问题讨论】:

    标签: java android audio android-emulator android-ndk


    【解决方案1】:

    对于您的计算,您可能可以假设更大的振幅 = 更大的音量。

    它们的关系非常密切:http://en.wikipedia.org/wiki/Volume_(sound)

    【讨论】:

    • 好的,我会试试这个。那么在这个公式中,amp_ref 等于什么?
    • 您必须选择一个 - 分贝是音量的相对量度,而不是绝对量度。尝试 30dB 作为基线,并根据需要进行调整。
    • 我还是不明白...让我们假设:amp = 50,amp_ref = 30(正如你所指出的)。然后 db=20*log10(amp/amp_ref), 将等于 = 0。这看起来不正确。主要担心的是,客户希望每 2 秒增加 10 分贝的音调强度,从 -10 到 100。顺便问一下,这可以模拟吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-08
    • 1970-01-01
    • 2018-08-12
    • 2011-11-04
    • 1970-01-01
    • 2012-02-28
    • 2014-09-18
    相关资源
    最近更新 更多