WAV文件分析

本文介绍了WAV文件的基础知识,这是一种遵循RIFF文件规范的声音文件格式,由微软开发。WAV文件由'RIFF'头部和'WAVE'数据块组成,其中包含'fmt'和'data'两个子数据块。'fmt'子块描述音频数据结构,包括通道数、采样率等信息,而'data'子块存储实际的音频数据。文章还提及了不同音频质量和编码方式的对比。


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



WAVE文件结构:

打开一个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)






参考链接:

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

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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值