Bootstrap

Wav文件格式

Wav文件格式

WAVE or Wav(Waveform Audio File Format )文件格式是微软存储多媒体文件的重复规范的一个子集。RIFF文件由由RIFF块描述块、fmt”块和“数据”块组成。下图是wave文件的格式

请添加图片描述

RIFF文件头

endianfield sizefield namedetail
big4ChunkIDRIFF的标志头0x52494646(ASCII)
little4ChunkSize整个wav文件大小 - 8
big4Format文件格式WAVE 0x57415645(ASCII)

FMT Chunk

endianfield sizefield namedetail
big4Subchunk1IDfmt块的标志头0x666d7420(ASCII)
little4Subchunk1Size表示该区块数据的长度(不包含IDSize的长度)
little2AudioFormat表示Data区块存储的音频数据的格式,PCM音频数据的值为1
little2NumChannels表示音频数据的声道数,1:单声道,2:双声道
little4SampleRate表示音频数据的采样率
little4ByteRate每秒数据字节数 = SampleRate * NumChannels * BitsPerSample / 8
little2BlockAlign每个采样所需的字节数 = NumChannels * BitsPerSample / 8
little2BitsPerSample每个采样存储的bit数,8:8bit,16:16bit,32:32bit

Data Chunk

endianfield sizefield namedetail
big4Subchunk2IDdata的标志头0x64617461(ASCII)
little4Subchunk2Size表示音频数据的长度,N = ByteRate * seconds
little*Data音频数据

Example:

下面是72字节wave文件的数据

52 49 46 46 24 08 00 00 57 41 56 45 66 6d 74 20 10 00 00 00 01 00 02 00 
22 56 00 00 88 58 01 00 04 00 10 00 64 61 74 61 00 08 00 00 00 00 00 00 
24 17 1e f3 3c 13 3c 14 16 f9 18 f9 34 e7 23 a6 3c f2 24 f2 11 ce 1a 0d 

请添加图片描述

关注微信公众号领取linux学习资料
在这里插入图片描述

;