WAV文件作为多媒体中使用的声音波形文件格式之一,它是以RIFF格式为标准的。每个WAV文件的头四个字节便是“RIFF”。WAV文件由文件头和数据体两大部分组成。其中文件头又分为RIFF/WAV文件标识段和声音数据格式说明段两部分。WAV文件数据块包含以脉冲编码调制格式表示的样本。WAV文件由样本组织而成,在单声道WAV文件中,声道0表示左声道声道1表示右声道,在多声道WAV文件中,样本是交替出现的。
WAV文件结构
WAV文件采用的是RIFF格式结构。至少是由3个区块构成,分别是文件标识块RIFF chunk、文件属性块Format chunk、文件数据块Data chunk,另外,文件中还可能包含一些可选的区块,如:Fact chunk、Cue points chunk、Playlist chunk、Associated data list chunk等。
1、文件标识块RIFF chunk
该区块作为WAV文件的标识区块以'RIFF'作为标示,然后紧跟着为size字段,该size是整个wav文件大小减去ID和Size所占用的字节数。然后是Type字段,为'WAVE',表示是wav文件。
其中,大端表示数据的低位保存在内存的高地址中,而数据的高位保存在内存的低地址中。而小端表示数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。
2、文件属性块Format chunk
该区块描述了波形文件的属性,例如每个样本的声道数、采样频率、采样位数等等。以'fmt '作为标示,一般情况下Size为16,表示最后没有附加信息,如果Size为18则最后多了2个字节的附加信息。
3.文件数据块Data chunk
该区块是真正保存wav数据的地方,以'data'作为该Chunk的标示。
案例分析:
(1)“52 49 46 46”:是Ascii字符“RIFF”,固定格式,表明这是一个WAVE文件头。
(2)“7E 726 3A 00”:是WAV文件的数据大小
(3)“57 41 56 45 66 6D 74 20”:是Ascii字符“WAVEfmt”,这部分是固定格式。
(4)“12 00 00 00”:是一个DWORD,对应长度18
(5)“00 01”:音频格式AudioFormat为线性PCM编码。
(6)“00 02”:声道数NumChannels,2为双声道
(7)“00 00 AC 44 ”:对应数字44100,采样频率为44100Hz。
(8)“00 02 B1 10”:每秒数据字节数为176400,代表的是每秒的数据量,波形音频数据传送速率,其值为通道数x每秒样本数x单个样本的数据位数/8。
(9)“00 04”:对应数字是2,表示块对齐的内容。数据块的调整数(按字节算的),其值为通道数×每样本的数据位值/8。
(10)“00 10 ”:数值为16,采样大小为16Bits,每样本的数据位数,表示每个声道中各个样本的数据位数。
(11)“64 64 74 61”:是Ascii字符“data”,标示头结束,开始数据区域。