【音频处理】WAV 文件格式分析 ( 逐个字节解析文件头 | 相关字段的计算公式 )

本文详细介绍了WAV文件格式的结构,包括RIFF标识、WAVE标志、fmt 格式块、数据块和PCM音频样本等关键部分。通过分析文件头的字节信息,解释了采样率、通道数、数据传输速率等参数,并展示了如何计算文件大小和PCM数据长度。
摘要由CSDN通过智能技术生成

文章目录





一、WAV 文件格式



在这里插入图片描述

这是纯 PCM 样本的二进制内容 : 开始的部分都是 00 00 00 方便阅读 ;

在这里插入图片描述

这是使用 Adobe Audition 将上述 PCM 音频数据转为 WAV 格式后的音频数据二进制信息 :

在这里插入图片描述

WAV 文件格式分析 : WAV 文件是在 PCM 纯音频样本数据的基础上添加了 44 44 44 字节的文件头 ;

52 49 46 46 A8 BD 1F 00 57 41 56 45 66 6D 74 20 12 00 00 00 01 00 02 00 80 BB 00 00 00 EE 02 00 04 00 10 00 00 00 64 61 74 61 00 A8

00 00 00 ~ 03 03 03 : 资源交换文件标志 ( RIFF ) , 52 49 46 46 , 固定写法 ;

在这里插入图片描述


04 04 04 ~ 07 07 07 : 从下个地址 ( 08 08 08 ) 开始到 WAV 文件结尾的总字节数 , A8 BD 1F 00 , 整个 WAV 文件的大小就是该数值 + 8 ;

整个 WAV 文件大小是 2,080,176 字节 ,
A8 BD 1F 00 使用十进制表示是 2,080,168 字节 ,
二者正好差了 8 8 8 字节 ;

该 int 字节计算公式 : P C M 音 频 样 本 总 字 节 数 + 44 − 8 \rm PCM 音频样本总字节数 + 44 - 8 PCM+448

在这里插入图片描述


08 08 08 ~ 11 11 11 : WAVE 文件标志 , 57 41 56 45 , 是 WAVE 四个字母的 ASCII 码 , 固定写法 ;

在这里插入图片描述


12 12 12 ~ 15 15 15 : 波形格式标志 , 66 6D 74 20 , 一般都是 fmt , 其中 0x20 对应的字符是空格 ;

在这里插入图片描述


16 16 16 ~ 19 19 19 : 过渡字节 , 12 00 00 00 , 不确定 , 有的时候是 10 00 00 00 ;

在这里插入图片描述


20 20 20 ~ 21 21 21 : 格式种类 , 01 00 , 1 时表示线性 PCM 编码 ;

在这里插入图片描述


22 22 22 ~ 23 23 23 : 通道数 , 02 00 , 1 表示单声道 , 2 表示立体声 ;

在这里插入图片描述


22 22 22 ~ 23 23 23 : 通道数 , 02 00 , 1 表示单声道 , 2 表示立体声 ;

在这里插入图片描述


24 24 24 ~ 27 27 27 : 采样频率 , 80 BB 00 00 , 48000 Hz ;

在这里插入图片描述


28 28 28 ~ 31 31 31 : 波形数据传输速率 , 即每秒中的字节数 , 00 EE 02 00 , 每秒传输 192000 字节 ;

计算公式 :

采 样 率 × 通 道 数 × 采 样 位 数 8 = 48000 × 2 × 16 8 = 192000 \cfrac{采样率 \times 通道数 \times 采样位数}{8} = \cfrac{48000 \times 2 \times 16}{8} = 192000 8××=848000×2×16=192000

采样位数是 16 16 16 位 , 1 1 1 字节 8 8 8 位 , 16 16 16 位是 2 2 2 字节 , 即每个采样 2 2 2 字节 ;

在这里插入图片描述


32 32 32 ~ 33 33 33 : 数据块调整长度 , 04 00 , 4 字节 ;

计算公式如下 : 通 道 数 × 样 本 数 据 位 数 8 = 2 × 16 8 = 4 \cfrac{通道数 \times 样本数据位数}{8} = \cfrac{2 \times 16}{8} = 4 8×=82×16=4

在这里插入图片描述


34 34 34 ~ 35 35 35 : 每个样本的数据位数 , 10 00 , 16 位 , 2 2 2 字节 ;

在这里插入图片描述


36 36 36 ~ 39 39 39 : 数据标记 , 64 61 74 61 , data 的 ASCII 码值 ;

这里注意该 WAV 文件在 36 ~ 37 位置插入了两个无意义的 00 字节 , 目前不清楚含义 , 暂时不用管 ;

在这里插入图片描述


40 40 40 ~ 43 43 43 : PCM 数据总长度, 单位 字节 , 00 A8 1F 00 , PCM 数据总长度为 2,074,624 字节 ;

在这里插入图片描述





在这里插入图片描述

  • 16
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
wav文件是一种常见的音频文件格式,它是由Microsoft和IBM共同定义的。下面是对wav文件格式的详解: 1. 文件(Header):wav文件的前44个字节文件,包含了文件的基本信息。文件的结构如下: - ChunkID(4字节):文件标识,通常为"RIFF"。 - ChunkSize(4字节):文件大小,即整个文件的大小减去8个字节(ChunkID和ChunkSize本身的大小)。 - Format(4字节):文件格式,通常为"WAVE"。 - Subchunk1ID(4字节):子块标识,通常为"fmt "。 - Subchunk1Size(4字节):子块大小,即除去Subchunk1ID和Subchunk1Size本身的大小。 - AudioFormat(2字节):音频格式,常见值为1表示PCM(脉冲编码调制)。 - NumChannels(2字节):声道数,常见值为1表示单声道,2表示立体声。 - SampleRate(4字节):采样率,即每秒采样的样本数。 - ByteRate(4字节):数据传输速率,即每秒传输的字节数。 - BlockAlign(2字节):数据块对齐,即每个采样的字节数。 - BitsPerSample(2字节):样本位数,即每个采样的位数。 2. 数据块(Data Chunk):文件之后的部分是音频数据块,包含了实际的音频采样数据。数据块的结构如下: - Subchunk2ID(4字节):子块标识,通常为"data"。 - Subchunk2Size(4字节):子块大小,即音频数据的大小。 - Data(变长):音频数据,以二进制形式存储。 在wav文件中,音频数据以采样点的形式存储,每个采样点的值表示音频信号在该时间点上的幅度。采样点的位数(BitsPerSample)决定了每个采样点的精度,位数越高,精度越高,音频质量也越好。 总结起来,wav文件格式通过文件和数据块来存储音频数据,其中文件包含了文件的基本信息,数据块存储了实际的音频采样数据。通过解析文件和读取数据块中的采样数据,可以对wav文件进行分析处理
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值