Вопрос

В чем разница между методами peakPowerForChannel и averagePowerForChannel AVAudioRecorder?

И почему возвращаемое значение отрицательное?Разве оно не должно быть равно 0 при отсутствии звука и увеличиваться при увеличении амплитуды звука?Как я могу преобразовать в более "читаемый" формат?

Спасибо.

Это было полезно?

Решение

Хотя я не рассматривал эти значения, поскольку они связаны с громкостью звука, я бы предположил, что они измеряются как изменение в децибелах.

0 - максимальная громкость, а все, что тише этого значения, может быть выражено как падение в децибелах.

Положительное и отрицательное не имеет значения.Просто помните, что это логарифмическая шкала, по которой вы измеряете разницу в громкости (или воспринимаемую громкость).

Другие советы

Пиковая мощность означает получение максимального значения из всех абсолютных значений всех выборок.Это полезно для предотвращения обрезки звука.

Средняя мощность - это среднеквадратичное значение выборок.Это полезно для определения того, насколько громко звук звучит для человеческих ушей.

Значение является отрицательным, поскольку оно выражено в децибелах, где 0 дБ равно максимальному значению аудиосистемы.Это шкала log10, и формула для преобразования такова:

db = 10 * log10 (level);

где db - децибелы, а level - скалярное значение в диапазоне от 0.0 до 1.0.Таким образом, когда уровень равен 0.0 (тихий), результатом будет отрицательная бесконечность.

Если вам нужен "читаемый" формат, вы можете использовать уровнемер (UIProgressView или ваш собственный), где максимальное значение равно 0,0, а минимальное -60,0 (вы можете настроить в зависимости от минимального уровня шума).Как только вы привыкнете к децибелам, они станут более осмысленными, чем линейные уровни.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top