WAV格式文件分析

WAV格式文件分析
WAV格式简介
WAV是最常见的声音文件格式之一,是微软公司专门为Windows开发的一种标准数字音频文件,该文件能记录各种单声道或立体声的声音信息,并能保证声音不失真。它符合资源互换文件格式(RIFF)规范,用于保存Windows平台的音频信息资源,被Windows平台及其应用程序所广泛支持。Wave格式支持MSADPCM、CCITT A律、CCITT μ律和其他压缩算法,支持多种音频位数、采样频率和声道,是PC机上最为流行的声音文件格式;但其文件尺寸较大,多用于存储简短的声音片段。(来自百度百科)

WAV格式组成
WAV文件遵循RIFF规则,其内容以chunk为最小单位进行存储。WAV文件一般由三个区块组成:RIFF chunk,Format chunk和Data chunk。同时,文件中也可能存在一些可选的区块,比如:Fact chunk,PlayList chunk等。在分析的过程中,我们重点分析前三种区块:RIFF chunk,Format chunk和Data chunk。

下面详细给出各区块的组成结构:

1 RIFF Chunk

名称字节数偏移地址端序内容
ID40x00大端RIFF (0x52494646)
SIZE40x04小端fileSize - 8
Type40x08大端WAVE(0x57415645

以RIFF为标识
Size是指的整个文件的大小减去ID和Size的长度。故是f i l e s i z e − 8 filesize - 8filesize−8
Type为Wave表示后面需要有两个子块:Format和Data

2 Format Chunk
 

名称字节数偏移地址 内容
ID40x00大端fmt (0x666D7420)
Size40x04小端16/18
AudioFormat20x08小端音频格式
NumChannels20x0A小端声道数
SampleRate40x0C小端采样率
ByteRate40x10小端每秒数据字节数
BlockAlign20x14小端数据块对齐
BitsPerSample20x16小端采样位数

以fmt为标识
Size表示该区块数据的长度(不包含ID和Size的长度)为16时WAV头部不包含附加信息。
AudioFormat表示Data区块存储的音频数据的格式,PCM音频数据的值为1
NumChannels表示音频数据的声道数,1:单声道,2:双声道
SampleRate表示音频数据的采样率
ByteRate每秒数据字节数 S a m p l e R a t e ∗ N u m C h a n n e l s ∗ B i t s P e r S a m p l e / 8 SampleRate * NumChannels * BitsPerSample / 8SampleRate∗NumChannels∗BitsPerSample/8
BlockAlign每个采样所需的字节数 N u m C h a n n e l s ∗ B i t s P e r S a m p l e / 8 NumChannels * BitsPerSample / 8NumChannels∗BitsPerSample/8
BitsPerSample每个采样存储的bit数,取值有8,16,32
 

3 Data Chunk

名称偏移地址字节数端序内容
ID0x004data(0x64617461)
Size0x044视实际情况
Data0x08文件大小有关音频数据

Data为标识
Size表示音频的长度B y t e R a t e ∗ S e c o n d s ByteRate * SecondsByteRate∗Seconds
Data表示数据
对于Data Chunk,声道数和采样率不同,造成不同的数据布局

大小端端序

Wave文件以小端端序来存储数据

  • 大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中,如PNG文件格式;
  • 小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值