Я хотел бы получить преобразование Фурье для небольшого временного окна (то есть ~ 1 секунда).
let audioCtx = new AudioContext();
let analyser = audioCtx.createAnalyser()
let buffer = new Uint8Array(analyser.frequencyBinCount);
//given an audio stream 'stream'
let source = audioCtx.createMediaStreamSource(stream);
setInterval(()=>{
analyser.getByteFrequencyData(buffer);
//Do some analysis with buffer...
},1000)
С помощью AnalyserNode в WebAPI я могу получать данные Фурье в ячейках шириной 44100/analyser.fftSize = 22050/analyser.frequencyBinCount
, что позволяет указатьразрешение путем установки analyser.fftSize
.Из документации мне неясно, как устанавливается временное окно.
Из API :
Рендеринг звукового графика выполняется в блоках128 образцов-кадров.Блок из 128 отсчетов-кадров называется квантом рендеринга, а размер кванта рендеринга равен 128.
Означает ли это временное окно 128/44100Hz=2.9ms
?