Wave(.wav)文件格式

news/2024/11/2 2:22:41/

Wave文件格式主要是用来存储音频PCM数据的,其实也可以存储非PCM音频数据,这种情况我们就不考虑了。文件的扩展名为“.wav”,采用RIFF文件结构。

一、RIFF文件格式简介

1、RIFF文件是由一个一个的chunk组成的,并且chunk之间可以嵌套。使用小端存储。

2、chunk的基本结构如下:

struct chunk
{char   chunkId[4];       // 4个字符组成的chunk标识,少于4字符右补空格U32    chunkSize;        // 数据块的大小,字节char   data[chunkSize]
};

chunkId可以为"RIFF"、"LIST"、"fmt"、"data"...

3、当chunkId为"RIFF"或"LIST"(类型块)时,chunk的结构变形为下面这样:

struct chunk
{char    chunkId[4];    // 4字符组成的chunk标识,少于4字符右补空格U32     chunkSize;     // chunkType + data的数据大小,字节char    chunkType[4];  // chunk的类型,e.g. WAVE/AVI...char    data[chunkSize - 4]
};

二、Wave文件格式

1、Wave文件采用RIFF文件格式,当然也就遵循RIFF文件结构。总体来看Wave文件是由多个chunk嵌套组成的。

Wave文件格式
字段长度(B)字段描述
chunk1chunkId4第一个chunk的标识始终是"RIFF"
chunkSize4该chunk的数据大小,包括chunkType
chunkType4对于Wave文件chunk的类型为"WAVE"
datachunk2chunkId4Wave文件的第二个chunk标识为"fmt"
chunkSize4该chunk的数据大小
datawFormatTag2音频数据格式,0x0001表示PCM数据
nChannels2声道数
nSamplesPerSec4采样率,每秒采样次数
nAvgBytesPerSec4每秒的音频数据大小(B),声道数*采样率*每个采样点的比特数/8
nBlockAlign2每个时刻的音频数据块大小(B),声道数*每个采样点的比特数/8
wBitsPerSample2每个采样点(的幅值)用多少比特编码(8 or 16)
chunk3chunkId4Wave文件的第三个chunk的标识为"data"
chunkSize4该chunk的数据大小
dataPCM数据chunkSizePCM数据

从上表可以看出:

(1) Wave文件最外层是一个标识为"RIFF"的类型块chunk1

(2) 在chunk1的data部分嵌套了2个chunk,即chunk2和chunk3

(3) chunk2的标识为"fmt",在它的data部分存储音频的一些相关属性

(4) chunk3的标识为"data",在它的data部分存储具体的音频PCM数据

2、PCM数据存储格式

三、实例分析

文件:C:\Windows\Media\Windows 关机.wav

工具:notepad++ Hex Editor插件(或者UltraEdit)

Windows 关机.wav

为方便描述,把Wave文件的各个字段进行了1-14编号 


1: 0x 52 49 46 46,4字节,"RIFF"的ASCII码,对应chunk1的chunkId字段


2: 0x dc 95 02 00,4字节,小端存储,转为大端字节序0x 00 02 95 dc,即十进制的169436

表示chunk1的数据大小为169436字节,对应chunk1的chunkSize字段

查看Windows 关机.wav文件的大小为169444字节,chunkId和chunkSize占用8字节,所以还有169436字节


3: 0x 57 41 56 45,4字节,"WAVE"的ASCII码,对应chunk1的chunkType字段


4: 0x 66 6d 74 20,4字节,"fmt "的ASCII码,"fmt"不够4个字符,所以右边补空格

对应chunk2的chunkId字段


5: 0x 10 00 00 00,4字节,小端存储,转为大端字节序0x 00 00 00 10,即十进制的16

表示chunk2的数据大小为16字节,由上面表格可知,wFormatTag、nChannels、nSamplesPerSec、nAvgBytesPerSec、nBlockAlign、wBitsPerSample总共16字节

对应chunk2的chunkSize字段


6: 0x 01 00,2字节,转为大端字节序0x 00 01,表示Wave文件存储的是音频PCM数据

 对应chunk2的data部分的wFormatTag字段


7: 0x 02 00,2字节,转为大端字节序0x 00 02,即十进制的2,表示声道数为2即双声道

对应chunk2的data部分的nChannels字段


8: 0x 44 ac 00 00,4字节,转为大端字节序0x 00 00 ac 44,即十进制的44100,表示音频采样率为44100Hz

 对应chunk2的data部分的nSamplesPerSec字段


9: 0x 10 b1 02 00,4字节,转为大端字节序0x 00 02 b1 10,即十进制的176400

表示每秒的音频数据大小为176400B,该值等于”声道数*采样率*每个采样点的比特数/8”

即2 * 44100 * 16 / 8 = 176400,对应chunk2的data部分的nAvgBytesPerSec


10: 0x 04 00,2字节,转为大端0x 00 04,即十进制的4

表示每个时钟(有2个采样点)的音频数据有4B大小,该值等于”声道数*每个采样点的比特数/8”

即2 * 16 / 8 = 4,对应chunk2的data部分的nBlockAlign字段


11: 0x 10 00,2字节,转为大端0x 00 10,即十进制的16,表示每个采样值用16比特编码

对应chunk2的data部分的wBitsPerSample字段


12: 0x 64 61 74 64,4字节,"data"的ASCII码,对应chunk3的chunkId字段


13: 0x b8 95 02 00,4字节,转为大端0x 00 02 95 b8,即十进制的169400

表示chunk3的data部分的数据大小即PCM音频数据的大小,对应chunk3的chunkSize字段


14: 音频PCM数据,chunk3的data


http://www.ppmy.cn/news/361262.html

相关文章

WAV格式详解

概述 WAV即WAVE,是经典的Windows音频数据封装格式,由Microsoft开发。数据本身格式为PCM,也可以支持一些编码格式的数据,比如最近流行的AAC编码。如果是PCM,则为无损格式,文件会比较大,并且大小…

音频存储格式wav介绍与解析

音频格式 音频格式中 规定了使用多少 bits 来对信号进行编码。 无压缩的格式无损压缩有损压缩 1. wav 音频格式介绍 微软 和 IBM 于 1991 年 提出的资源交换的文件格式 RIFF( resource interchange File Format); wav 是 属于RIFF 中的一…

wav音频文件格式

在做音频信号采集或音频信号分析时会经常遇到wav格式的文件,本章将介绍wav文件的格式。wav是基于资源交换文件格式(RIFF(Resource Interchange File Format))的应用之一。RIFF是一种带标签的文件结构,其可以…

wav数据格式详解

1. 音频简介 经常见到这样的描述: 44100HZ 16bit stereo 或者 22050HZ 8bit mono 等等. 44100HZ 16bit stereo: 每秒钟有 44100 次采样, 采样数据用 16 位(2字节)记录, 双声道(立体声); 22050HZ 8bit mono: 每秒钟有 22050 次采样, 采样数据用 8 位(1字节)记录, 单声道; 当然…

WAV音频文件

WAV音频文件 象棋小子 1048272975 WAV是一种保存音频信息的文件格式,广泛应用于Windows及其应用程序中,如今主流的音频播放器都支持WAV音频文件的播放。 1. WAV音频格式 WAV是录音时用的标准Windows文件格式,文件扩展名为”.wav”&…

WAV格式文件分析

WAV格式文件分析 目录 WAV格式文件分析概述一、WAV格式文件1、波形声音文件格式 WAV2、音频文件参数简介 二、文件结构1、WAV文件的文件头2、WAV文件的数据体 三、WAV格式文件数据体结构1、RIFF Chunk区块2、Format Chunk区块3、DATA区块 总结 参考及引用材料 概述 WAV格式目前…

音频格式wav与mp3和wma的区别与音质

MP3 全称是Moving Picture Experts Group Audio Layer III。简单的说,MP3就是一种音频压缩技术,由于这种压缩方式的全称叫MPEG Audio Layer3,所以人们把它简称为MP3。 wma 是微软在制订的音频压缩文件格式,比mp3标准晚&#xf…

wav文件格式分析详解

wav文件格式分析详解 一、综述 WAVE文件作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的。RIFF是英文Resource Interchange File Format的缩写,每个WAVE文件的头四个字节便是“RIFF”。 WAVE文件是由若干个Chunk组成的。按照在文件中的…