文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发VB运用多媒体WAV文件格式二三例
精品推荐
特别推荐
·VB表格控件总览与例程分析
·用VB6.0制作画图板
·VB打造超酷个性化菜单(六)
·MSHFlexGrid 控件的应用
·Visual Basic 控件简介
·利用硬盘序列号计算软件注册码
·计算机等级考试二级VB常用算法:排序
·用diskid.dll和disk32.dll获得硬盘序列号
·VB6中使用Winsock穿越各种代理的实现
·在VFP、VB应用程序中激活鼠标功能
·vb基础(打印问题)
·想用就用,VB基础代码
·运用多媒体WAV文件格式二三例
·VB基础学习:编码规范
·VB实现程序的隐形
·使用.NET Framework从VB6中访问事件日志
·怎样把VC++代码转换成VB代码
·如何用VB程序来播放WAV文件
·VB 实用函数集
·用VB制作RM压缩软件
热点TOP10
·VB+Access设计图书管理系统
·DataGrid 控件的使用
·VB设计有语音报时和报警功能的闹钟
·窗体控件大小随窗体大小变化而变化
·Visual Basic 控件简介
·VB中使用DirectX库的简明教程
·串口通讯及其在VB平台下的实现
·用VB跟我学做记事本(很简单哟)
·VB API函数介绍--绘图函数
·用VB6.0制作画图板
·Visual Basic CommonDialog 控件的使用
·VB中使用EXCEL输出
·编写电话拨号程序时一点小技巧
·VB表格控件总览与例程分析
·用VB.net2008编写数据查询窗体
·用VB6.0设计一个打字练习软件
·用diskid.dll和disk32.dll获得硬盘序列号
·VB编程之路-如何让界面美化
·VB经典:操作.ini文件的通用类源代码
·VB网络编程中Winsock的使用

运用多媒体WAV文件格式二三例

日期:2007年5月12日 作者: 查看:[大字体 中字体 小字体]


作者:徐济仁 陈家松   多媒体技术近年来发展很快,较好品质的声卡可以提供16位的立体声及44KHZ的播放录制能力,它不仅可以提供原音逼真的取样,其合成的音质也十分理想,有的声卡还加入了数字信号处理器,可编程控制的DSP具有强大的运算能力,它可以用来作声音信息的压缩和一些特殊效果的处理。具有此功能的声卡提供的WAV文件提供的语音信息可以满足语音特征识别的要求。  

1.1 RIFF文件和WAV文件格式  
  在Windows环境下,大部分的多媒体文件都依循着一种结构来存放信息,这种结构称为"资源互换文件格式"(Resources lnterchange File Format),简称RIFF。例如声音的WAV文件、视频的AV1文件等等均是由此结构衍生出来的。RIFF可以看做是一种树状结构,其基本构成单位为chunk,犹如树状结构中的节点,每个chunk由"辨别码"、"数据大小"及"数据"所组成。
  辨别码由4个ASCII码所构成,数据大小则标示出紧跟其后数据的长度(单位为Byte),而数据大小本身也用掉4个Byte,所以事实上一个chunk的长度为数据大小加8。一般而言,chunk本身并不允许内部再包含chunk,但有两种例外,分别为以"RIFF"及"L1ST"为辨别码的chunk。而针对此两种chunk,RIFF又从原先的"数据"中切出4个Byte。 此4个Byte称为"格式辨别码",然而RIFF又规定文件中仅能有一个以"RIFF"为辨别码的chunk。
  只要依循此一结构的文件,我们均称之为RIFF档。此种结构提供了一种系统化的分类。如果和MS一DOS文件系统作比较,"RIFF"chunk就好比是一台硬盘的根目录,其格式辨别码便是此硬盘的逻辑代码(C:或D:),而"L1ST"chunk即为其下的子目录,其他的chunk则为一般的文件。至于在RIFF文件的处理方面,微软提供了相关的函数。视窗下的各种多媒体文件格式就如同在磁盘机下规定仅能放怎样的目录,而在该目录下仅能放何种数据。
  WAV为WAVEFORM(波形)的缩写。声音文件的结构如图1所示,"RIFF"的格式辨别码为"WAVE"。整个文件由两个chunk所组成:辨别码"fmt"(注意,最后一个是空白字符!)及"data"。
  在"fmt"的chunk下包含了一个PCMWAVEFORMAT数据结构,其定义如下:
  typedef struct pcmwaveformat - tag {
  WAVEFORMAT wf ;
  WORD wBitsPerSample;
  } PCMWAVEFORMAT;
  typedef struct waveformat - tag {
  WORD wFormatTag ;
  WORD nChannels;
  DWORD nSamplesPerSec;
  DWORD nAvgBytesperSec;
  WORD nBlockAlign;
  } WAVEFORMAT;
  其意义分别为:
  wFormatTag:记录着此声音的格式代号,例如WAVE_FORMAT_PCM,WAVE_F0RAM_ADPCM等等。
  nChannels:记录声音的频道数。
  nSamp1esPerSec:记录每秒取样数。
  nAvgBytesPerSec:记录每秒的数据量。
  nBlockA1ign:记录区块的对齐单位。
  wBitsPerSample:记录每个取样所需的位元数。
  "data"Chunk包含真正的声音数据。Window目前仅提供WAVE_FORMAT_PCM一种数据格式,所代表的意义是脉派编码调变(Pu1se Code Modulation)。针对此格式,Windows定义了在"data"的chunk中数据的存放情形,图2中列出了四种不同频道数及取样所需的位元数以及位元位置的安排。
  "RIFF" 频道0 频道0 频道0 频道0
  xxxx nChannels=1,wBitsPerSample=8
  "WAVE" 频0(左) 频道1(右) 频道0(左) 频道1 (右)
  "fmt "
  nChannels=2,wBitsPerSample=8
  sizeof(PCMWAVEFORMAT)
  struct of PCMWAVEFORMAT 频道0(低位) 频道0(高位) 频道0(低位)频道0(高位)
  "data" nChannels=1,wBitsPerSample=16
  xxxx 频道0(低位) 频道0(高位) 频道0(低位)频道0(高位)
  (低位) (高位) (低位) (高位)
  wave form data
  nChannels=2,wBitsPerSample=16
  图1 WAV文件结构 图2 PCM文件中位元安排方式
  第一排表示单声道8位元,第二排表示双声道8位元,第三排表示单声道16位元,第四排表示双声道16位元。8位元代表音量大小由8个位元所表示,16位元则代表音量大小由16个位元所表示。理论上8位元可以表示0~255,16位元可表示0~65536,不过windows却定16位元其值的范围从-32168~32167。此外尚有一点要注意的是,0并不一定代表无声,而是由中间的数值来决定,也就是在8位元时为128,16位元时为0才是无声。所以,若程序设计时需放入无声的数据,糯特别注意声音格式是16或是8位元,以放入适当的值。


1.2 WAV文件信息的具体应用
  WAV文件中包括了对原始声音的高速率采样,并且以WAVE_PCM_FORMAT脉派编码调变格式,我们可以在VISUAL C++程序中实现,在读出WAVEHDR文件头之后,下面就是原始声音的高速率采样信息,我们可以对它作多方面的信息处理。  

[1] [2] 下一页 




上一篇:在“状态区”中建立图标

下一篇:与众不同的进制转换方法

运用多媒体WAV文件格式二三例 相关文章:
·MPEG、RM、WMV电影文件格式转换指南
·清除垃圾文件DIY
·怎样清除硬盘及系统垃圾文件?
·ASP.NET上传文件的实例
·制作自己的多媒体毕业纪念册
·TCP/IP编程实现远程文件传输
·dll文件下载
·Windows无法访问指定设备,路径或文件.您可能没有合适的权限访问这个项目
·如何将DVD影片转换为DVDrip格式?
·局域网内共享文件 提示没有访问权限的问题
运用多媒体WAV文件格式二三例 相关软件:
·自己动手组装与维护多媒体电脑
·最强文件加密锁2007
·硬盘分区与格式化详解
·Flash MX2004中文版多媒体教程
·巨城文件保险柜 v2.3
·东日-多媒体日记本(DiaryOne)V6.66 绿色特别版
·Ultra RM Converter(Real文件转换分割,合并)V3.3.0916 汉化版
·Allok Video Splitter(视频文件分割)V2.2 0726 修正II版
·联想OEM Winxp的5个文件
·视频格式转换通V3.1

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:viphot