WAV文件分析


WAV为微软公司(Microsoft)开发的一种声音文件格式,它符合RIFF(Resource Interchange File Format)文件规范。一个RIFF文件的开始部分是由一系列的数据块(data chunks)组成的头部文件。一个WAVE文件通常就是一个包含“WAVE”数据块(chunk)的RIFF文件,而这个WAVE数据块(chunk)由两个子数据块(sub-chunks)组成—— ”fmt” chunk(说明数据的结构)和”data” chunk(包含真正的音频数据)



WAVE文件结构:

WAV文件分析_第1张图片

打开一个WAV文件查看其二进制编码



4字节 ChunkID 包含字符“RIFF”

4字节 ChunkSize 剩余chunk的总字节数

(值 = 整个文件的大小 - 8Bytes,这8Bytes就是前面的ChunkID和ChunkSize)


4字节 Format 包含字符“WAVE”

WAVE包含两个subchunk :     fmt   和    data

其中的subchunk - fmt 描述了音频数据的结构

============================================

4字节 Subchunk1ID 包含字符”fmt”

4字节 Subchunk1size 接下来剩余的Subchunk的大小

(一般为00000010H,若为00000012H则说明数据头携带附加信息)


2字节 AudioFormat 格式种类(值为1时,表示数据为线性PCM编码)


2字节 NumChannel 通道数,单声道为1,双声道为2

4字节 SampleRate 采样频率 此文件是44100

4字节 ByteRate 波形数据传输速率(SampleRate * NumChannels * BitsPerSample/8)

2字节 BlockAlign   DATA数据块长度,字节(NumChannels * BitsPerSample/8)

2字节 BitsPerSample PCM位宽 (后面的00 00是附加数据)

4字节 Subchunk2ID 包含字符“data”

4字节 Subchunk2size 是data的总数据字节长度,也是剩余数据的大小

      (NumSamples * NumChannels * BitsPerSample/8)

剩余数据为真实的音频数据(actual sound data)

 

注:

8bit样值储存为 unsigned bytes (范围0至255)

16bit 样值存储为补码2's-complement signed integers (范围-32768 至 32767)


以下比较单声道(非立体声)WAV文件的音频质量和音频编码

(压缩方式包括PCM,ADPCM,微软GSM 6.10,CELP,SBC、Truespeech和MPEG Layer-3)


WAV文件分析_第2张图片




参考链接:

https://en.wikipedia.org/wiki/WAV

http://soundfile.sapp.org/doc/WaveFormat/




你可能感兴趣的:(WAV文件分析)