gpt4 book ai didi

javascript - 使用Web Audio API将频率映射到响度

转载 作者:行者123 更新时间:2023-12-03 01:25:49 31 4
gpt4 key购买 nike

我想使用Web Audio API(使用麦克风作为输入设备)检测演奏的音符和和弦。在分析数据之前,需要将其映射到响度的各个频率。我从以下代码段开始:

const stream = await navigator.mediaDevices.getUserMedia({
audio: true,
video: false
});
const context = new AudioContext();
const source = context.createMediaStreamSource(stream);
const analyser = context.createAnalyser();

const data = new Uint8Array(analyser.frequencyBinCount);
analyser.getByteFrequencyData(data);
data现在是 0255之间的值数组。现在的问题是如何将频率映射到数据阵列的响度值?

理想情况下,我想要一个这样的对象:

{
...
438: 128,
439: 200,
440: 255,
441: 200,
...
}

谢谢你的帮助。

最佳答案

data[k]中的值对应于频率k * Nyquist/frequencyBinCount,其中Nyquist是采样频率AudioContext.sampleRate的一半。

我想这就是您要的。如果没有,请澄清。

关于javascript - 使用Web Audio API将频率映射到响度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59929307/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com