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

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

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

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.

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

Заранее спасибо, Thomas

5
задан Bijoy Thangaraj 24 August 2012 в 10:06
поделиться

1 ответ

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

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

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

5
ответ дан 14 December 2019 в 19:08
поделиться