Как откалибровать микрофон планшета для отображения фактических дБ в соответствии с измерителем дБ - PullRequest
0 голосов
/ 07 августа 2020

У нас есть настольное приложение c# wpf, работающее на планшете. Это приложение содержит измеритель рабочего объема с использованием Naudio. С помощью приведенного ниже кода я могу заставить измеритель объема правильно отображать высоту / объем, а полоса движется так, как должна, пока все хорошо!

        float max = 0;
        for (int index = 0; index < a.BytesRecorded; index += 2)
        {
            short sample = (short)((a.Buffer[index + 1] << 8) | a.Buffer[index + 0]);
            // to floating point
            var sample32 = sample / 32768f;
            // absolute value 
            if (sample32 < 0) sample32 = -sample32;
            if (sample32 > max) max = sample32;
        }

//progressbar min 0 - max 100
        PogressBarValue = Convert.ToInt32(100*max);

Моя новая работа требует, чтобы я отображал приблизительную получено правильное значение в дБ. (так что не dbFS или обычное значение индикатора выполнения) Я считаю, что мне нужно откалибровать микрофон вместе с измерителем дБ, чтобы иметь возможность правильно отображать эти значения. Я нашел этот действительно старый пост, в котором описываются шаги, которые необходимо предпринять, однако я не могу понять, как это сделать. (Может быть, я слишком долго вычислял числа?)

Как я могу использовать свой микрофон, чтобы получить громкость / амплитуду или «громкость» в c#

Пусть Скажем, мы воспроизводим звук, который измеряется измерителем дБ (рядом с планшетом mi c):

дБ, измеренным измерителем: 85 дБ

макс, рассчитанным по вышеуказанной функции: 0,95 (во время этого звука текущее значение шкалы прогресса, закодированное сейчас, равно 95 (должно отображаться 85 дБ?)

это было измерено с системной mi c входной громкостью 90

"тихий" (как можно меньше звука) шум был измерен на уровне около 30 дБ. Приглушенный шум был неизмеримым (всегда был некоторый объемный шум), но, допустим, 0 дБ

Итак, мой вопрос действительно двоякий: достаточно ли первого измерения для выполнения расчетов или мне нужно больше контрольных точек, таких как «тихий» и «приглушенный»? (другими словами: как мне выполнить калибровку?) И как можно рассчитать (приблизительно + -5 дБ) правильные децибелы для отображения на измерителе громкости с помощью эти значения калибровки? Было бы неплохо сделать несколько реальных примеров вычислений с числами, так как я не мог sh это сделать из текстового объяснения в сообщении выше.

Надеюсь, что кто-то с большим пониманием, чем я, сможет помочь!

...