Как получить измерение громкости записи iPhone в дБ с пределом не менее 120 дБ

Пытаюсь сделать простой измеритель громкости для айфона. Я хочу, чтобы громкость отображалась в дБ. При использовании этого руководства я получаю измерения только до 78 дБ. Я читал, что это потому, что спектр dBFS для 16-битных аудиозаписей составляет всего 96 дБ.

Я попытался изменить этот фрагмент кода в функции инициализации:

dataFormat.mSampleRate = 44100.0f;
dataFormat.mFormatID = kAudioFormatLinearPCM;
dataFormat.mFramesPerPacket = 1;
dataFormat.mChannelsPerFrame = 1;
dataFormat.mBytesPerFrame = 2;
dataFormat.mBytesPerPacket = 2;
dataFormat.mBitsPerChannel = 16;
dataFormat.mReserved = 0;

Я изменил значение mBitsPerChannel, надеясь увеличить битовое значение записи.

dataFormat.mBitsPerChannel = 32;

Если для этой переменной установлено значение 32, функция «mAveragePower» возвращает только 0.

Итак, как я могу измерить больше децибел? Весь мой код практически такой же, как в учебнике, который я разместил выше.

Заранее спасибо, Томас


person Cyber    schedule 30.03.2010    source источник


Ответы (1)


16-битный звук имеет только динамический диапазон 96 dB, но я подозреваю, что вы можете запутаться между dB, которое является относительным измерением, и dB SPL, которое является < em> абсолютное измерение уровня звукового давления. Однако для измерения уровня звукового давления в дБ вам потребуется откалибровать микрофон и аудиооборудование с помощью какого-либо эталона. После того, как вы откалибровали входные данные, вполне возможно, что ваши 96 dB динамического диапазона преобразуются в абсолютный диапазон, скажем, от 44 dB SPL до 140 dB SPL.

См. Также мой ответ на предыдущий аналогичный вопрос по SO: Как я могу рассчитать звуковые дБ уровень?

Примечание: определение дБ SPL - это уровень звукового давления относительно 20 мкПа (среднеквадратичное значение).

person Paul R    schedule 30.03.2010
comment
Хорошо, спасибо за (быстрый) ответ. Если я откалибрую измерения на моем микрофоне iPhone, будут ли измерения на других iPhone также правильными? Меня не волнует, что это на пару децибел, я просто хочу указать громкость звуков, улавливаемых микрофоном. - person Cyber; 31.03.2010
comment
Я ожидал, что у вас будет разница в несколько дБ между iPhone одной и той же модели (например, 3G), но между разными моделями может быть больше различий. Учтите также, что частотная характеристика, вероятно, не будет плоской, поэтому ваши измерения будут приблизительными. Еще одно замечание: вы обычно используете взвешивающий фильтр при измерении дБ SPL (например, взвешивание). Да, и еще кое-что: в некоторых или во всех моделях iPhone может быть схема АРУ, которая может испортить ваши измерения, если вы не отключите ее. - person Paul R; 31.03.2010