【问题标题】:WebAudio API data array size?WebAudio API 数据数组大小?
【发布时间】:2016-05-06 22:49:04
【问题描述】:

所以,我正在使用 WebAudio API 显示来自麦克风的声音流的波形和 FFT。

我的问题是,每个数据数组在特定时刻有多大?例如,查看AnalyserNode 中的getByteTimeDomainData 函数。它在文档中说它"copies the current waveform, or time-domain, data into a Uint8Array"current waveform 到底是什么?声音输入的最后一秒?当前波形数据的大小是否取决于输入频率?

换句话说,更像是一个接收数据块的流接口,每个块有多大?如果我们每 100 毫秒只获取一次时域数据,我们是否会错过在这些时间之间发生的声音,或者声波是否被缓冲到下一次 getByteTimeDomainData 调用?

【问题讨论】:

    标签: javascript html audio web-audio-api


    【解决方案1】:

    您使用 AnalyserNode 上的 fftSize 属性设置大小。是的,你会“错过那些时间之间发生的声音”——如果你需要做类似的事情,请使用 ScriptProcessor。

    【讨论】:

    • 所以,如果我将 fftSize 设置为2048,frequencyBinCount 将是1024,所以每次我调用getByteTimeDomainData 我都会得到1024 值。如果输入频率是 48000hz,这是否意味着我只能得到最后的 1024/48000 = 0.00213 seconds ~= 2 毫秒?
    • 是的。尽管“last”有点不准确——它没有保持连续输入的样本流,但音频处理系统倾向于将事物分块推进;特别是在高延迟系统(如 Linux)上。但在您的示例中,它是一个“最近”的 ~2ms 块,是的。
    猜你喜欢
    • 2012-02-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多