2024年4月29日发(作者:)

龙源期刊网

WAV文件格式分析与详解

作者:王若钧 何杉

来源:《数字技术与应用》2014年第03期

摘要:WAV文件格式信息是对WAV文件编程的重要依据。揭开WAV文件格式

的奥秘是开发功能强大的具有自主知识产权的语音处理软件的关键。本文结合波形文件的

基本知识,较系统地说明了WAV文件的存储原理、文件结构、WAV文件头格式、基于

PCM编码的数据组织,内容全面、清楚、准确,还包含了一些新汇集的参数。可作为开

发人员的参考资料。

关键词:文件格式 WAV 编码 声音

中图分类号:TP311 文献标识码:A 文章编号:1007-9416(2014)03-0093-

02

1 引言

WAV文件是在PC机平台上很常见的、最经典的多媒体音频文件,最早于1991

年8月出现在Windows 3.1操作系统上,文件扩展名为WAV,是WaveFom的简写,

也称为波形文件,可直接存储声音波形,还原的波形曲线十分逼真。WAV文件格式简称

WAV格式是一种存储声音波形的数字音频格式,是由微软公司和IBM联合设计的,经过

龙源期刊网

了多次修订,可用于Windows,Macintosh,Linix等多种操作系统,详述如下。

2 波形文件的基础知识

2.1 波形文件的存储过程

声源发出的声波通过话筒被转换成连续变化的电信号,经过放大、抗混叠滤波

后,按固定的频率进行采样,每个样本是在一个采样周期内检测到的电信号幅度值;接下

来将其由模拟电信号量化为由二进制数表示的积分值;最后编码并存储为音频流数据。有

的应用为了节省存储空间,存储前,还要对采样数据先进行压缩。

2.2 WAV文件的编码

编码包括了两方面内容,一是按一定格式存储数据,二是采用一定的算法压缩数

据。WAV格式对音频流的编码没有硬性规定,支持非压缩的PCM(Puls Code

Modulation)脉冲编码调制格式,还支持压缩型的微软自适应差分脉冲编码调制

Microsoft ADPCM(Adaptive Differential Puls Code Modulation)、国际电报联盟

(International Telegraph Union)制定的语音压缩标准ITU G.711 a-law、ITU G.711-

law、IMA ADPCM、ITU G.723 ADPCM (Yamaha)、GSM 6.10、ITU G.721

ADPCM编码和其它压缩算法。MP3编码同样也可以运用在WAV中,只要安装相应的

Decode,就可以播放WAV中的MP3音乐。

2.3 PCM编码格式

龙源期刊网

PCM编码是直接存储声波采样被量化后所产生的非压缩数据,故被视为单纯的无

损耗编码格式,其优点是可获得高质量的音频信号。

基于PCM编码的WAV格式是最基本的WAV格式,被声卡直接支持,能直接存

储采样的声音数据,所存储的数据能直接通过声卡播放,还原的波形曲线与原始声音波形

十分接近,播放的声音质量是一流的,在Windows平台下被支持得最好,常常被用作在

其它编码的文件之间转换的中间文件。PCM的缺点是文件体积过大,不适合长时间记

录。正因为如此,又出现了多种在PCM编码的基础上经改进发展起来的编码格式,如:

DPCM,ADPCM编码等。

2.4 与声音有关的三个参数

(1)采样频率:又称取样频率。是单位时间内的采样次数,决定了数字化音频的

质量。采样频率越高,数字化音频的质量越好,还原的波形越完整,播放的声音越真实,

当然所占的资源也越多。根据奎特采样定理,要从采样中完全恢复原始信号的波形,采样

频率要高于声音中最高频率的两倍。人耳可听到的声音的频率范围是在16Hz-20kHz之

间。因此,要将听到的原声音真实地还原出来,采样频率必须大于40kHz。常用的采样

频率有8kHz、11.025kHz、 22.05kHz、44.1kHz、48kHz等几种。22.05KHz相当于普

通FM广播的音质,44.1KHz理论上可达到CD的音质。对于高于48KHz的采样频率人

耳很难分辨,没有实际意义。

(2)采样位数:也叫量化位数(单位:比特),是存储每个采样值所用的二进制

位数。采样值反应了声音的波动状态。采样位数决定了量化精度。采样位数越长,量化的

龙源期刊网

精度就越高,还原的波形曲线越真实,产生的量化噪声越小,回放的效果就越逼真。常用

的量化位数有4、8、12、16、24。量化位数与声卡的位数和编码有关。如果采用PCM

编码同时使用8位声卡,可将音频信号幅度从上限到下限化分成 256个音量等级,取值

范围为0-255;使用16位声卡,可将音频信号幅度划分成了64K个音量等级,取值范围

为-32768至32767。

(3)声道数:是使用的声音通道的个数,也是采样时所产生的声音波形的个数。

播放声音时,单声道的WAV一般使用一个喇叭发声,立体声的WAV可以使两个喇叭发

声。记录声音时,单声道,每次产生一个波形的数据,双声道,每次产生两个波形的数

据,所占的存储空间增加一倍。

3 WAV文件结构

在Windows环境下,大部分多媒体文件都是按照资源互换文件格式(Resources

lnterchange File Format) 存放信息,简称RIFF格式。构成RIFF文件的基本单位称之

为块(chunk)。每个RIFF文档是由若干个块构成。每个块(chunk)由块标识、块长

度及数据等三部分所组成,其结构如表1。

其中,块标识保存的是由4个ASCII码字符组成的块名字。如不满4个字符则在

右边以空格充填。块长度字段,占4个字节,保存的是当前块数据的长度,不包括块标识

和块长度字段。所以一个块的实际长度为块长度字段内的数值加8。RIFF格式规定,只有

RIFF及LIST块可以含有子块,其它的块不允许包含子块。一个RIFF格式文档本身就是

一个块。其前4个字节为文档标识“RIFF”,同时也是RIFF的块标识,标明该文档是一

龙源期刊网

个有效的RIFF文档;第二部分为文件的数据长度,占4个字节,其数值为文件长度-8;

第三部分为RIFF块数据,其中,前4个字节为文件格式类型标识,如:“WAVE”,

“AVI”等,后面其它部分为RIFF块的子块。

WAV文件采用的是RIFF格式结构。至少是由3个块构成,分别是RIFF、fmt 和

Data。所有基于压缩编码的WAV文件必须含有fact块。此外所有其它块都是可选的。

块fmt,Data及fact均为RIFF块的子块。WAV文件的文件格式类型标识符为

“WAVE”。基本结构如表2。

4 WAV文件头格式

WAV文件由文件头和数据体两部分组成。其中,文件头是由文件标识字段与格式

块两部分组成,后者保存的是编码参数和声音参数,格式如表3。

4.1 扩展格式块

当WAV文件采用非PCM编码时,使用的是扩展格式块,它是在基本格式块fmt

之后扩充了一个的数据结构。该结构的前两字节为长度字段,指出后面区域的长度。紧接

其后的区域称之为扩展区,含有扩充的格式信息,其长度取决于压缩编码类型。当某种编

码格式(如ITU G.711 a-law)使扩展区的长度为0时,长度字段还必须保留,只是长度

字段的数值为0。因此,扩展格式块长度的最小值为基本格式块的长度16加2。

4.2 格式块的扩充

龙源期刊网

当编码格式代码为0xFFFE时,为扩充标识码。此时格式块扩展区长度为24字

节,包含了新增的格式字段和真正的编码格式代吗,格式如表5。

4.3 fact块

采用压缩编码(修订版Rev.3以后出现的编码格式)的WAV文件必须有含有fact

块。块标识符为“fact”。块长度至少4个字节。目前fact块只有一个数据项,为每个声

道采样总数,或采样帧总数。该数值可由data块中的数据长度除以数据块对齐单位的数

值计算出。

虽然基于压缩编码的文件含有fact块,然而,实测中发现,将文件转换成PCM

编码格式后,原fact块仍然存在(如表6)。

5 WAV文件语音数据的组织结构

WAV文件的声音数据保存在数据块中。块标识符为“data”,块长度值为声音数

据的长度。从数据块的第9个字符开始是声音波形采样数据。每个样本按采样的时间先后

顺序写入。样本的字节数取决于采样位数。对于多字节样本,低位字节数据放在低地址单

元,相邻的高位字节数据放在高地址单元。

多声道样本数据采用交替方式存储。例如:立体声(双声道)采样值的存储顺序

为:通道1第1采样值,通道2第1采样值;通道1第2采样值,通道2第2采样值;

以此类推。基于PCM编码的样本数据排列方式如表7-9。

龙源期刊网

6 结语

对WAV格式影响最大的参数是编码格式。采用不同的编码的WAV格式是不同

的,PCM是最常见的编码格式,其它的为压缩编码格式,一般很少使用,有的已经废

弃。随着人们认识的进步可能还会有新的编码格式出现。今后对WAV文件格式的更多的

研究是压缩编码格式。

参考文献

[1]郭兴吉.绵阳师范学院.WAV波形文件的结构及其应用实践.

[2]张敬怀,马道钧.WAV语音文件格式的分析与处理.

[3] Kabal, MMSP Lab, ECE, McGill University,Audio File

Format Specifications.