starry / backend /libs /three /audio /AudioAnalyser.js
k-l-lambda's picture
feat: add Python ML services (CPU mode) with model download
2b7aae2
class AudioAnalyser {
constructor(audio, fftSize = 2048) {
this.analyser = audio.context.createAnalyser();
this.analyser.fftSize = fftSize;
this.data = new Uint8Array(this.analyser.frequencyBinCount);
audio.getOutput().connect(this.analyser);
}
getFrequencyData() {
this.analyser.getByteFrequencyData(this.data);
return this.data;
}
getAverageFrequency() {
let value = 0;
const data = this.getFrequencyData();
for (let i = 0; i < data.length; i++) {
value += data[i];
}
return value / data.length;
}
}
export { AudioAnalyser };