Я пытаюсь получить аудио спектр из потока микрофона на Android. Я использую TarsosDSP, чтобы сделать тяжелую работу. Но, кажется, не может получить результаты, которые имеют какой-либо смысл в процессе события. Я пытаюсь получить 8 частот и показать их величины в реальном времени. Я использую класс SpectrumPeakAnalyser, но я не знаю, правильно ли это использовать. Вот соответствующий код события процесса:
public static int SAMPLE_RATE = 22050;
public static int BUFFER_SIZE = 1024;
public static int OVERLAP = 0;
AudioDispatcher dispatcher = AudioDispatcherFactory.FromDefaultMicrophone (SAMPLE_RATE, BUFFER_SIZE, OVERLAP);
spectralPeakFollower = новый SpectralPeakProcessor (BUFFER_SIZE, OVERLAP, SAMPLE_RATE);
dispatcher.AddAudioProcessor (spectralPeakFollower);
А в процессе события
var magnitudes = spectralPeakFollower.GetMagnitudes();
var freqencies = spectralPeakFollower.GetFrequencyEstimates();
float[] noiseFloor = SpectralPeakProcessor.CalculateNoiseFloor(magnitudes, BUFFER_SIZE / 2, 1f);
var localMaximaIndexes = SpectralPeakProcessor.FindLocalMaxima(magnitudes, noiseFloor);
var peaks = SpectralPeakProcessor.FindPeaks(magnitudes, freqencies, localMaximaIndexes, 8, 80);
Кажется, я не могу найти никаких примеров, подходящих для этого сценария, так как меня не волнуют пики, я просто хочу величины в реальном времени. Спасибо за любую помощь, которую вы можете предложить.