2012-05-05 3 views
1

Можно ли рассчитать значение децибела с уровня громкости звука?
Предположим, что воспроизводится звук (это может быть любой трек, но я использую сгенерированный звук с AudioTrack). Во время воспроизведения звука громкость звука увеличивается с 0 (без звука) до 99 (максимум). Теперь я хочу получить значение децибела, например, если уровень громкости равен 50.
Возможно ли это?Android - Рассчитать децибел с уровня громкости

Я нашел, как вычислить значение децибел в этой теме: 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

Смежные вопросы