AnalyserNode 的 getFloatFrequencyData 与 getFloatTimeDomainData
AnalyserNode's getFloatFrequencyData vs getFloatTimeDomainData
所以我想我理解 getFloatFrequencyData
相当好。如果getFloatFrequencyData
returns一个包含1024个值的数组,每个值代表一个频率bin/range的音量。在采样率为 44.1 的 1024 个值的情况下,每个值将代表大约 20 赫兹的频率范围的音量。
现在getFloatTimeDomainData
呢?假设我有 2048 个值,每个值代表什么?
与understanding getByteTimeDomainData and getByteFrequencyData in web audio不同。或者至少,这个问题的答案没有回答我的问题。
getFloatTimeDomainDatareturns 来自音频流的 PCM 数据样本 - 即原始音频数据。
Float32Array obtained using getFloatTimeDomainData
will contain an array of sample values, each value defining the amplitude at the sampled location, usually in the domain of [-1, 1]
. Sample locations are uniquely distributed, the obtained data is essentially the equivalent of raw PCM.
对于一个正弦波,它会在以下近似曲线中产生逐渐变化的连续值:
0 ... 0.7 ... 1.0 ... 0.7 ... 0 ... -0.7 ... -1.0 ... -0.7 ... 0 ...
将其视为一系列后续值,它们共同定义了音频波的形状;如果您要在 canvas 上可视化获得的值,使用样本值作为 y
坐标(振幅)并随后增加 x
坐标(时间)的值,您会得到一个 oscilloscope,例如:
请注意此正弦波形如何与上面的示例值相关联。以下是您可以对此数据执行的一些示例操作,以便更好地理解:
如果将每个值乘以 2,则音量将放大 100%(双倍音量)
如果你用 0 替换每个值,你会得到沉默
如果您跳过每一秒的值,您将获得 100% 调高的音频(双倍播放速度)
所以我想我理解 getFloatFrequencyData
相当好。如果getFloatFrequencyData
returns一个包含1024个值的数组,每个值代表一个频率bin/range的音量。在采样率为 44.1 的 1024 个值的情况下,每个值将代表大约 20 赫兹的频率范围的音量。
现在getFloatTimeDomainData
呢?假设我有 2048 个值,每个值代表什么?
与understanding getByteTimeDomainData and getByteFrequencyData in web audio不同。或者至少,这个问题的答案没有回答我的问题。
getFloatTimeDomainDatareturns 来自音频流的 PCM 数据样本 - 即原始音频数据。
Float32Array obtained using getFloatTimeDomainData
will contain an array of sample values, each value defining the amplitude at the sampled location, usually in the domain of [-1, 1]
. Sample locations are uniquely distributed, the obtained data is essentially the equivalent of raw PCM.
对于一个正弦波,它会在以下近似曲线中产生逐渐变化的连续值:
0 ... 0.7 ... 1.0 ... 0.7 ... 0 ... -0.7 ... -1.0 ... -0.7 ... 0 ...
将其视为一系列后续值,它们共同定义了音频波的形状;如果您要在 canvas 上可视化获得的值,使用样本值作为 y
坐标(振幅)并随后增加 x
坐标(时间)的值,您会得到一个 oscilloscope,例如:
请注意此正弦波形如何与上面的示例值相关联。以下是您可以对此数据执行的一些示例操作,以便更好地理解:
如果将每个值乘以 2,则音量将放大 100%(双倍音量)
如果你用 0 替换每个值,你会得到沉默
如果您跳过每一秒的值,您将获得 100% 调高的音频(双倍播放速度)