wave音频数据的格式

原创 2001年08月17日 17:27:00

近日见到有网友询问音频数据的格式,恰好我也正在做这个方面的项目。特将我收集的文章转贴。

WAVE文件格式剖析

  WAVE文件作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的。RIFF是英文Resource Interchange File Format的缩写,每个WAVE文件的头四个字节便是“RIFF”。WAVE文件由文件头和数据体两大部分组成。其中文件头又分为RIFF/WAV文件标识段和声音数据格式说明段两部分。WAVE文件各部分内容及格式见附表。
  常见的声音文件主要有两种,分别对应于单声道(11.025KHz采样率、8Bit的采样值)和双声道(44.1KHz采样率、16Bit的采样值)。采样率是指:声音信号在“模→数”转换过程中单位时间内采样的次数。采样值是指每一次采样周期内声音模拟信号的积分值。
  对于单声道声音文件,采样数据为八位的短整数(short int 00H-FFH);而对于双声道立体声声音文件,每次采样数据为一个16位的整数(int),高八位和低八位分别代表左右两个声道。
        WAVE文件数据块包含以脉冲编码调制(PCM)格式表示的样本。WAVE文件是由样本组织而成的。在单声道WAVE文件中,声道0代表左声道,声道1代表右声道。在多声道WAVE文件中,样本是交替出现的。 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

  WAVE文件格式说明表  

 

偏移地址

字节数

数据类型

   容

 

文件头

00H

4

char

"RIFF"标志

04H

4

long int

文件长度

08H

4

char

"WAVE"标志

0CH

4

char

"fmt"标志

10H

4

 

过渡字节(不定)

14H

2

int

格式类别(10H为PCM形式的声音数据)

16H

2

int

通道数,单声道为1,双声道为2

18H

2

int

采样率(每秒样本数),表示每个通道的播放速度,

1CH

4

long int

波形音频数据传送速率,其值为通道数×每秒数据位数×每样本的数据位数/8。播放软件利用此值可以估计缓冲区的大小。

20H

2

int

数据块的调整数(按字节算的),其值为通道数×每样本的数据位值/8。播放软件需要一次处理多个该值大小的字节数据,以便将其值用于缓冲区的调整。

22H

2

 

每样本的数据位数,表示每个声道中各个样本的数据位数。如果有多个声道,对每个声道而言,样本大小都一样。

24H

4

char

数据标记符"data"

28H

4

long int

语音数据的长度

  PCM数据的存放方式:

 

样本1

样本2

8位单声道

0声道

0声道

8位立体声

0声道(左)

1声道(右)

0声道(左)

1声道(右)

16位单声道

0声道低字节

0声道高字节

0声道低字节

0声道高字节

16位立体声

0声道(左)低字节

0声道(左)高字节

1声道(右)低字节

1声道(右)高字节

 WAVE文件的每个样本值包含在一个整数i中,i的长度为容纳指定样本长度所需的最小字节数。首先存储低有效字节,表示样本幅度的位放在i的高有效位上,剩下的位置为0,这样8位和16位的PCM波形样本的数据格式如下所示。 

样本大小

数据格式

最大值

最小值

8位PCM

unsigned int

225

0

16位PCM

int

32767

-32767

把音频数据写入wave文件

使用DirectX SDK中带的CWaveFile类可以进行wave文件的读写,新建一个wave文件,并将头信息和音频数据写入文件: CWavefile *g_pWaveFile; WAVEFOR...
  • u011417605
  • u011417605
  • 2016年05月06日 19:23
  • 1191

WAVE格式

一.wave格式概述 Wave文件格式是用于多媒体文件存储的Microsoft RIFF(Resource Interchange FileFormat)的一个子集。每一个RIFF文件以一个文件...
  • yejia1280
  • yejia1280
  • 2017年04月17日 22:02
  • 429

PCM WAVE格式详解及用C语言实现wave文件的读取

转自:http://ibillxia.github.io/blog/2013/07/20/details-of-wave-format-and-reading-wave-files-in-C-lang...
  • yasi_xi
  • yasi_xi
  • 2014年07月28日 10:18
  • 5628

WAVE文件结构之疑问及对策

《Windows程序设计》及网络上其他资料都定义WAVE格式类似如下: 但实际打开.wav文件如下: 第一,0010处定义的格式块的大小,按照说明值应为16,即0x10,但实际上我打开好几个文件都...
  • tomwillow
  • tomwillow
  • 2016年07月09日 12:08
  • 328

多声道音频数据和 WAVE 文件

http://msdn.microsoft.com/zh-cn/windows/hardware/gg463006 文章介绍了详细的多声道数据的排列结构,各个属性的参数设置,我认为最重要的是...
  • FrankieWang008
  • FrankieWang008
  • 2013年12月12日 20:46
  • 665

WAVE格式解码分析

经过大半个月的学习,了解了分离器、解码器。学习了WAVE格式音频的解码,其中包括:MS_ADPCM、DVI_ADPCM。这里对这段时间的学习做个总结   1、了解WAVE格式数据结构。 WAVE格式的...
  • ff313976
  • ff313976
  • 2014年12月30日 11:08
  • 817

Windows和Linux下播放采集wave格式音频文件的简单记录

wave音频的部分介绍可参看前面两篇文章:WAV格式常见的几种压缩形式(compression code)、WAV音频格式。 Windows: 1、在windows上,api基本上屏蔽了驱动的不能...
  • leiych
  • leiych
  • 2013年12月01日 22:36
  • 1416

Wave Driver介绍-1(PCM文件格式)

PCM文件格式简介
  • daydayupfromnowon
  • daydayupfromnowon
  • 2010年11月10日 22:17
  • 998

音频PCM数据存储方式

8位单声道    0声道                          0声道  8位立体声    0声道(左)               1声道(右)                 0...
  • tanningzhong
  • tanningzhong
  • 2016年02月15日 17:06
  • 894

wave 文件采样率转换

  Wave格式音频文件采样率转换一、此转换方法为文件转换方式,需要对现在的文件分析的基础上生成新的音频文件。二、方法占用时间比较多,但速度在允许范围之内三、分析文件与写入新文件的时候是按字节操作四、...
  • WhiteCloud
  • WhiteCloud
  • 2001年08月17日 17:48
  • 2630
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:wave音频数据的格式
举报原因:
原因补充:

(最多只允许输入30个字)