2016-08-12 8 views
2

Ich bekomme Amplitudenwerte von -70 bis ca. 10 von AVAudioRecorder.peakPowerForChannel (0). Ich brauche die Werte auf einer Skala von 0 bis 120, wie ich es mache. Ich muss den höchsten Amplitudenwert vom gesamten Audio erhalten. diesen Code im Internet gesehenAVAudioRecorder! Ich brauche Dezibel Werte von der Amplitude auf einer Skala von 0 bis 120 ios swift?

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

aber dies ergibt einen Wert nan (Not a number) .Wie kann ich Wert der Amplitude in positivem Bereich zu bekommen.

Antwort

2

Die Funktion peakPowerForChannel() gibt normalerweise einen logarithmisch skalierten Dezibelwert von -160 dB bis 0 dB zurück.

Es kann einen Wert größer als Null liefern, wenn die Leistung den Pegel für 0 dB überschreitet.

Um zu einer linearen Skala für Werte von 0 bis 120 zu konvertieren, verwenden Sie bitte die folgende Formel.

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

Sie können wählen, ob Werte zu halten oder zu verwerfen, die 120 mit einem max() oder min() Funktion nicht überschreiten.

Verwandte Themen