2016-08-12 11 views
2

Я получаю значения амплитуды от -70 до около 10 от AVAudioRecorder.peakPowerForChannel (0). Мне нужны значения в масштабе от 0 до 120, как я это делаю. Мне нужно получить максимальное значение по амплитуде от всего аудио. Видел этот код в интернетеAVAudioRecorder! Мне нужно иметь значения децибел от амплитуды по шкале от 0 до 120 ios swift?

var numver = 20 * log10(audioRecorder.peakPowerForChannel(0))

, но это дает значение нан (не число) .Как я могу получить значение амплитуды в положительном диапазоне.

ответ

2

Функция peakPowerForChannel() обычно возвращает логарифмически масштабированное значение децибела от -160 дБ до 0 дБ.

Он может вернуть значение больше нуля, когда мощность превышает уровень для 0 дБ.

Для преобразования в линейную шкалу для значений от 0 до 120, пожалуйста, используйте следующую формулу.

let db = audioRecorder.peakPowerForChannel(0) 
let result = pow(10.0, db/20.0) * 120.0 

Вы можете выбрать, следует ли сохранить или отменить значения, превышающие 120 с максимальным() или функции (мин).