Фурье-преобразование p5.js микрофонного входа не дает выхода - PullRequest
0 голосов
/ 24 декабря 2018

Я попытался проанализировать частотный спектр входа микрофона с помощью следующего кода, используя библиотеку p5.sound.

Вывод на консоль - это просто array of 1024 0's, как будто это не звук.Я протестировал с программным обеспечением рекордера, которое поставляется с компьютером, что он способен что-то записывать.

Так что я думаю, что что-то упустил между началом записи и ее анализом, я просто не могу понять, что.

Я импортировал библиотеки p5.js, P5.sound.js, audiosynth.js через загрузочный диск quickstaet cdn,он также должен загрузить библиотеку Jquery.

var mic;
var fft;
window.onload = init;

function init() {
  mic = new p5.AudioIn();
  mic.start();
  fft = new p5.FFT();
  fft.setInput(mic);
  let frequencies = fft.analyze();
  console.log(frequencies); // always an array full of 0's
}

1 Ответ

0 голосов
/ 24 декабря 2018

Возможно, вы захотите запустить анализ при нажатии кнопки, или через некоторое время, или каждые x секунд.Вот простой пример вызова анализа через 10 секунд после вызова init, который должен дать время для сбора некоторых данных.

    var mic;
    var fft;

    function getFreqSpectrum() {
        let frequencies = fft.analyze();
        console.log(frequencies);
    }

    window.onload = init;

    function init() {
        mic = new p5.AudioIn();
        mic.start();
        fft = new p5.FFT();
        fft.setInput(mic);
        setTimeout(getFreqSpectrum, 10000); // do this in 10 seconds
    }
...