Как получить аудио спектр от TarsosDSP - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь получить аудио спектр из потока микрофона на 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);

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

...