Audio WAV怎么样;“数据”;子块结构?
我正在编写一个C#应用程序来处理WAV文件,并且我已经完成了足够的代码来读取任何文件的块(即读取格式化元数据和所有其他块,准备用这些信息处理数据) 我现在必须处理数据块,但我不知道/没有资源来了解样本是如何拼凑在一起的。如果可能的话,请您只回答数据块的链接/信息,而不是WAV文件的一般结构 我需要更多地了解随着时间的推移,样本是如何逐字节构造的Audio WAV怎么样;“数据”;子块结构?,audio,wav,chunks,Audio,Wav,Chunks,我正在编写一个C#应用程序来处理WAV文件,并且我已经完成了足够的代码来读取任何文件的块(即读取格式化元数据和所有其他块,准备用这些信息处理数据) 我现在必须处理数据块,但我不知道/没有资源来了解样本是如何拼凑在一起的。如果可能的话,请您只回答数据块的链接/信息,而不是WAV文件的一般结构 我需要更多地了解随着时间的推移,样本是如何逐字节构造的 谢谢大家!!如果我在这个问题上做错了什么,请发表评论,这样我就可以重新措辞/编辑这篇文章。这当然取决于所使用的编解码器,但我们将假设PCM,因为这是迄今
谢谢大家!!如果我在这个问题上做错了什么,请发表评论,这样我就可以重新措辞/编辑这篇文章。这当然取决于所使用的编解码器,但我们将假设PCM,因为这是迄今为止在WAV文件中最常见的东西 PCM是一种对特定时刻的压力测量进行编码的方法。如果我测量压力级别的速度足够快,分辨率足够高,我就能准确地近似原始波形 来自维基百科: 因为您已经在分析标头,所以您知道采样率。这是每秒采集的样本数。每秒44100个采样(或44.1 kHz采样率)是典型的CD音频。对于视频,更常用48 kHz的采样率 从标题中,还可以知道每个样本的位数。这表示所采集的每个样本的分辨率。16位样本自然每个样本占用2个字节 在音频数据中,样本只是一个接一个的数值
[sample 0][sample 1][sample 2][...]
通道计数也在标题中指示,它告诉您采样了多少个离散通道。单声道声音只有1。立体声将有2个。5.1环绕声将有6个。采样值本身是交错的,一个通道采样一个通道采样,形成一个帧。如果我有一个左右声道的立体声音轨,它看起来会像这样:
[L][R][L][R][L][R][L][R][...]
要实际读取这些数值,数据通常以小尾数形式写入。对于16位及更高的采样,通常使用有符号整数