4

我有一个基于 Web Audio API 的信号处理应用程序,我必须使用 AudioKit(基于 EZAudio)框架将它移植到 iOS。

我只需要在 Web Audio API 中包含 0-255 之间数字的频率域。

但在 AudioKit 中,AKFFTTap fftData 让我返回 -6 到 6 之间的浮点数,有时 <1000。

这是我已经在ios上尝试过的:

初始化进程...

let mic = AKMicrophone()
let fftTap = AKFFTTap.init(mic)

要求 ...

return fftTap.fftData

关于 Web 音频 API:初始化...

var analyser = audioContext.createAnalyser();

要求...

let freqDomain = new Uint8Array(analyser.frequencyBinCount);
analyser.getByteFrequencyData(freqDomain);
return freqDomain

我怎样才能取回相同的数据?

4

1 回答 1

3

您的网络场景中有两点与 AKFFTap 不同...首先,它返回一个 256 大小的数组。这可能意味着被捕获的 bufferSize 是 512 个样本。您可以使用此自定义 AKFFTTap 解决此问题:

https://gist.github.com/denisb411/3e832a592ff8b79cca2afdbed432a0d0

其次,WebAudio 读取样本二进制文件的方式似乎不同。我建议您在网络上使用 Float32,因为 AudioKit 使用这种格式。参考这个来了解更多。

于 2017-06-19T12:32:06.187 回答