声音应用程序开发指南 张新宇 第2章 WAV文件格式.pptVIP

声音应用程序开发指南 张新宇 第2章 WAV文件格式.ppt

  1. 1、本文档共74页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
声音应用程序开发指南 张新宇 第2章 WAV文件格式

第2章 WAV文件格式 2.1 WAV文件格式[1,2,3,4] 2.2 保存为WAV文件格式[1,2,3,4,5] 2.3 压缩WAVE音频[5] 2.4 本 章 小 结 2.1 WAV文件格式[1,2,3,4] 2.1.1 RIFF文件和WAV文件格式 1.RIFF文件 RIFF可以看做是一种树状结构,其基本构成单位为“块”(Chunk),它犹如树状结构中的节点。每个Chunk由“辨别码”(ID)、“数据大小”(Size)和“数据”(Data)所组成,如表2-1所示。 一般而言,Chunk本身并不允许内部再包含Chunk,但有两种情况例外,即分别以“RIFF”及“LIST”为辨别码的Chunk可以包含子Chunk。 以“RIFF”为辨别码的Chunk包含子Chunk的格式如图2-1所示。图中前4个字符 2.WAV文件 WAV为WAVEFORM(波形)的缩写。WAV文件的结构如图2-2所示,RIFF Chunk中子Chunk的“格式辨别码”为“WAVE”。整个文件由两个Chunk所组成:辨别码“fmt”(注意,最后一个是空白字符)及“data”。 在“fmt”的Chunk下包含了一个PCMWAVEFORMAT数据结构,该结构与前一章中的WAVEFORMATEX结构类似,其定义如下: ?typedef struct waveformat - tag { WORD wFormatTag ; WORD nChannels; DWORD nSamplesPerSec; DWORD nAvgBytesperSec; WORD nBlockAlign; } WAVEFORMAT; typedef struct pcmwaveformat - tag { WAVEFORMAT wf ; WORD wBitsPerSample; } PCMWAVEFORMAT; 其意义分别如下: ? wFormatTag:记录着此声音的格式代号,例如WAVE_FORMAT_PCM,WAVE_FORMAT_ADPCM等等。 ? ?nChannels:记录声音的声道数。 ? ?nSamp1esPerSec:记录每秒采样数(采样率)。 ?? nAvgBytesPerSec:记录每秒的平均数据量。 ? ?nBlockA1ign:记录块的对齐单位。 ? ?wBitsPerSample:记录每个采样样本所需的位元数。 “data”Chunk包含真正的声音数据。Windows目前仅提供WAVE_FORMAT_PCM一种数据格式,其所代表的意义是脉冲编码调制(PCM,Pu1se Code Modulation)。 用编辑工具UltraEdit查看WAV文件的文件头,如图2-3所示。 表2-2以数据在文件中的存放位置说明了WAV文件格式,其中偏移地址是相对于文件头的地址。 Windows定义了在“data”Chunk中数据的存放情形,表2-3列出了四种不同声道数及取样所需的位元数以及位元位置的安排。其中: 对于8位单声道,每个样本数据由8位(bit)表示; 对于8位立体声,每个声道的数据由一个8位(bit)数据表示,且第一个8位(bit)数据表示0声道(左)数据,紧随其后的8位(bit)数据表示1声道(右)数据; 对于16位单声道,每个样本数据由16位(bit)表示; 对于16位立体声,每个声道的数据由一个16位(bit)数据表示,且第一个16位(bit)数据表示0声道(左)数据,紧随其后的16位(bit)数据表示1声道(右)数据。 WAV文件的每个样本值包含在一个整数i中,i的长度为容纳指定样本长度所需的最小字节数。首先存储低有效字节,表示样本幅度的位放在i的高有效位上,剩下的位置为0,这样8位和16位的PCM波形样本的数据格式如表2-4所示。 2.1.2 WAV文件信息的具体应用 WAV文件包括了对原始声音的高速率采样数据,并且以WAVE_PCM_FORMAT格式的形式保存。在读出WAV文件头信息之后,接着的数据就是原始声音的高速率采样信息。我们可以在Visual C++程序中对这些信息作多方面的处理,其中包括: ? 波形显示 我们可以以时间–振幅的方式显示出原始声音的波形,这是最简单同时也是最直接的信息处理方式。在时间范围内,我们可以观察该信号波形是否连续,中间是否有跳变等。

文档评论(0)

118zhuanqian + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档