- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于 Visual C++6.0 的声音文件操作
一、前言
当前 Visual C++ 相关的编程资料中,无论是大部头的参考书,还是一些计
算机杂志, 对声音文件的处理都是泛泛的涉及一下, 许多编程爱好者都感到对该
部分的内容了解不是很透彻, 本文希望能够给刚刚涉及到声音处理领域的朋友们
起到一个引路的作用,帮助他们尽快进入声音处理的更深奥空间。
当前计算机系统处理声音文件有两种办法: 一是使用现成的软件, 如微软的
录音机、 SoundForge 、CoolEdit 等软件可以实现对声音信号进行录音、编辑、
播放的处理,但它们的功能是有限的,为了更灵活,更大限度地处理声音数据,
就不得不使用另外一种方法,既利用微软提供的多媒体服务,在 Windows 环境
下自己编写程序来进行声音处理来实现一些特定的功能。 下面就开始介绍声音文
件的格式和在 Windows 环境下使用 Visual C++ 开发工具进行声音文件编程处理
的方法,本文所有的程序代码都在 Windows2000 、Visual C++6.0 环境下编译通
过,运行正常。
二、 RIFF 文件结构和 WAVE 文件格式
Windows 支持两种 RIFF(Resource Interchange File Format, 资源交互文件
格式 )格式的音频文件: MIDI 的 RMID 文件和波形音频文件格式 WAVE 文件,
其中在计算机领域最常用的数字化声音文件格式是后者,它是微软专门为
Windows 系统定义的波形文件格式 (Waveform Audio ),由于其扩展名为 *.wav ,
因而该类文件也被称为 WAVE 文件。为了突出重点,有的放矢,本文涉及到的
声音文件所指的就是 WAVE 文件。常见的 WAVE 语音文件主要有两种, 分别对
应于单声道 (11.025KHz 采样率、 8Bit 的采样值) 和双声道 (44.1KHz 采样率、
16Bit 的采样值)。这里的采样率是指声音信号在进行 模→数转换过程中单位
时间内采样的次数。 采样值是指每一次采样周期内声音模拟信号的积分值。 对于
单声道声音文件,采样数据为八位的短整数( short int 00H-FFH );而对于双声
道立体声声音文件,每次采样数据为一个 16 位的整数( int ),高八位和低八位
分别代表左右两个声道。 WAVE 文件数据块包含以脉冲编码调制( PCM )格式
表示的样本。在进行声音编程处理以前,首先让我们来了解一下 RIFF 文件和
WAVE 文件格式。
RIFF 文件结构可以看作是树状结构, 其基本构成是称为 块 (Chunk )的单
元,每个块有 标志符 、数据大小 及 数据 所组成,块的结构如图 1 所示:
块的标志符( 4BYTES )
数据大小 (4BYTES )
数据
图一、 块的结构示意图
从上图可以看出, 其中 标志符 为 4 个字符所组成的代码, 如RIFF ,LIST
等,指定块的标志 ID;数据大小用来指定块的数据域大小,它的尺寸也为 4 个
字符;数据用来描述具体的声音信号,
文档评论(0)