音频 .wav 编解码器文件有一个 44 字节的标头,它将为您提供关键数据,例如位深度(CD 质量音频为每个样本 16 位)、采样率(CD 质量使用每秒 44,100 个音频样本)、通道数等。 .wav 文件中的字节余额是有效负载,它是存储为一组整数的音频曲线,这些整数定义了音频曲线在时间连续实例中的高度。.wav 的美妙之处在于它没有被压缩,因此标头之后的所有字节都只存储音频曲线。
许多音频库将允许您读取 wav 文件并返回每个通道的浮点样本数组。想象一下狗叫声,这种声音从狗身上传播并落在麦克风的膜上。类似的摆动不同的介质。随着时间的推移记录的这种摆动可以表示为时间序列曲线......随着它的数字化,它从模拟转换为数字(ADC)原始模拟音频波每秒被〜采样〜X次以生成该模拟的简化在此模数转换过程中的曲线。每个音频样本代表该音频曲线在特定时刻的高度。
如果您只使用 1 位来记录音频曲线,对于给定的样本,这将从 0 过渡到 1,因为音频曲线会在固定静音平线标记上方和下方摆动。而可以存储 2^16 个不同整数的 16 位位深度允许更大的粒度,因此更准确地模拟音频曲线的高度。
与概念上整个数据集可以在瞬间消耗掉的图像处理不同,音频具有内在的时间维度。音频是一个时间序列。音频的另一个属性是任何任意音频曲线都可以用一组纯正弦曲线表示的简单性,每条曲线都有一个幅度、频率和相移。Joseph Fourier 概述了这样的理论,即音频等时域数据可以在时域(wav 编解码器或模拟音频曲线)或频域中同样好地表示。值得注意的是,这种对称性意味着信息的守恒。
对于任意程度的精度,可以使用傅里叶变换将音频样本窗口(在时域中)转换为具有可控程度的信息丢失或缺失的频域表示。请注意,当您增加此窗口中的样本数量时,您会降低所得频谱图的时间特异性......这意味着通过使用窗口中发送到的最低数量的音频样本来确定频率何时发生的能力FFT 调用...尽管通过向 FFT 调用提供大量样本来提高频率域中的频率分辨率...没有免费的午餐
所以现在您有选择...在其本机时域中执行您的音频分析或将其发送到 FFT 调用并具有与一组频率箱相同的信息,其中每个箱具有(频率、幅度、相移)的值)
这应该会给你一些想法来梳理和深入研究——保重