gpt4 book ai didi

audio-recording - AnalyserNode 的 getFloatFrequencyData 与 getFloatTimeDomainData

转载 作者:行者123 更新时间:2023-12-03 20:18:24 27 4
gpt4 key购买 nike

所以我想我明白 getFloatFrequencyData很不错。如 getFloatFrequencyData返回一个包含 1024 个值的数组,每个值代表一个频率区间/范围的音量。在采样率为 44.1 的 1024 个值的情况下,每个值将代表大约 20 赫兹频率范围的音量。

现在怎么样getFloatTimeDomainData ?假设我有 2048 个值,每个值代表什么?

不一样 understanding getByteTimeDomainData and getByteFrequencyData in web audio .或者至少,这个问题的答案没有回答我的。

最佳答案

Float32Array使用 getFloatTimeDomainData 获得将包含一个样本值数组,每个值定义采样位置的幅度,通常在 [-1, 1] 的域中。 .样本位置是唯一分布的,得到的数据本质上相当于原始PCM .

对于正弦波,它将在以下近似曲线中产生逐渐变化的连续值:

0 ... 0.7 ... 1.0 ... 0.7 ... 0 ... -0.7 ... -1.0 ... -0.7 ... 0 ...

将其视为一系列共同定义音频波形状的后续值;如果您要在 Canvas 上可视化获得的值,请使用样本值作为 y坐标(幅度)和随后增加的值 x坐标(时间),你会得到一个 oscilloscope , 如:

sine wave

请注意此正弦波形如何与上面的示例值相关联。以下是您可以对这些数据执行的一些示例操作,以便更好地理解:
  • 如果您将每个值乘以 2,您会将音量放大 100%(双倍音量)
  • 如果你用 0 替换每个值,你会得到沉默
  • 如果您跳过每一秒的值,您将获得 100% 音高的音频(双倍播放速度)
  • 关于audio-recording - AnalyserNode 的 getFloatFrequencyData 与 getFloatTimeDomainData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40315433/

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