Ich versuche, den Lautstärkepegel vom Mikrofon auf Android zu berechnen. Ich habe AudioRecord benutzt, um die Rohdaten vom Mikrophon zu erhalten, und habe auch etwas Normalisierung durchgeführt und danach das Dezibel berechnet. Aber das Ergebnis ist nicht richtig. Die Dezibelwerte, die ich bekam, waren nicht stabil und können den Klang nicht wiedergeben. Selbst wenn ich Hände klatschte, spiegelte der Dezibelwert das Geräusch nicht wider. Wie sollte ich den Code ändern oder Was soll ich tun, wenn ich die Lautstärke vom Mikrofon in Echtzeit berechnen möchte? Vielen Dank.
%Vor% Hier gibt es zwei Probleme. Die erste besteht darin, dass Sie den RMS aus einem einzelnen Sample berechnen, da Sie die Summe nicht über den gesamten Puffer berechnen - Sie setzen es bei jedem Sample zurück. Also sum
enthält die Quadrat-Magnitude für eine Probe, aber dann dividiert man durch die Probenlänge.
Das zweite Problem ist, dass Sie nicht einfach in der Lage sein werden, ein Messgerät zur Messung der Lautstärke zu erstellen. Der Dezibelwert, den Sie berechnen, ist nur ein Leistungsverhältnis, bei dem der Maximalwert von 0 dB eine Spitze anzeigt. Es hat keine Korrelation mit physischem Schalldruck, was allgemein gemeint ist, wenn Leute 'Lautheit' sagen (dB (SPL) ist die Skala, wo 50 dB die Lautstärke der Sprache, 110 dB ein Rockkonzert usw. ist). p>
Siehe auch: Sound Meter android
Tags und Links android audio microphone decibel