wave格式

合集下载

WAV文件格式相关资料集

WAV文件格式相关资料集

endianFile offset (bytes)Field Size (bytes)播放软件利用此值可以估描述WAVE文件的基本单元是“sample”,一个sample 代表采样一次得到的数据。

因此如果用44KHz采样,将在一秒中得到44000个sample。

每个sample可以用8位、24位,甚至32位表示(位数没有限制,只要是8的整数倍即可),位数越高,音频质量越好。

其数值不确定,取决于编码格1(WAVE_FORMAT_PCM); 编码格通道数,单声道为1,双声采样频率(每秒样本数)常用的采样频率有11025,每秒数据量;其值为:通道数×每数据块的调整数(按字节算的),如果有多个声道,对每个声道而言,样“RIFF”大写字符串"RIFF",标明该“WAVE”;WAVE 标志所有WAV格式的文件此处为字符串“fmt ”播放软件需要一次处理多个该值大小每样本的数据位数,表示每个对于PCM文件为16。

指除前8字节的fmt标志,最后一位为空littlefield name4biglittlelittle littlelittlelittlelittlelittle……biglittlebigbiglittle224224444442文件长度从下一个字段首地址开始到文件末尾的对基本格式块的扩充部分,根据AudioFormat 有所不同。

“data”数据标记符语音数据大实际的声音此处有一个值得注意的细节,8位代表无符号的数值,而16位或16位以上代表有符号的数值。

例如,如果有一个10bit的样本,由于sample位数要求是8的倍数,我们就需要把它填充到16位。

16位中:0-5位补0,6-15位是原始的10bit数据。

这就是左补零对齐原则 上述只是单声道,如果要处理多声道,就需要在任意给定时刻给出多个sameple。

例如,在多声道中,给出某一时刻,我们需要分辨出哪些sample是左声道的,哪些sample是右声道的。

delphi中对Wave格式的录音和播放

delphi中对Wave格式的录音和播放
procedure Stop;
SWriteWaveError = 'Write wave file error';
SOverlay = 'File is exists, are you overlay?';
SConfirm = 'confirm';
SNotActive = 'no ope';
implementation
procedure CheckError(Res: Integer);
procedure SetActive(Value: Boolean); override;
public
constructor Create(AOwner: TComponent); override;
procedure Start;
nAvgBytesPerSec: 192000;
nBlockAlign: 4;
wBitsperSample: 16;
cbSize: 0);
resourcestring
SInvalidWaveFile = 'Invalid wave file';
SReadWaveError = 'Read wave file error';
procedure FreeHeaderBuffer;
protected
function GetFileName: string; virtual;
procedure CheckError(msg: string);
procedure SetActive(Value: Boolean); virtual;

WAV文件解码

WAV文件解码

wav文件格式分析详解一、综述WAVE文件作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的。

RIFF是英文Resource Interchange File Format的缩写,每个WAVE文件的头四个字节便是“RIFF”。

WAVE文件是由若干个Chunk组成的。

按照在文件中的出现位置包括:RIFF WAVEChunk, Format Chunk, Fact Chunk(可选), Data Chunk。

具体见下图:------------------------------------------------| RIFF WAVE Chunk || ID = 'RIFF' || RiffType = 'WAVE' |------------------------------------------------| Format Chunk || ID = 'fmt ' |------------------------------------------------| Fact Chunk(optional) || ID = 'fact' |------------------------------------------------| Data Chunk || ID = 'data' |------------------------------------------------图1 Wav格式包含Chunk示例其中除了Fact Chunk外,其他三个Chunk是必须的。

每个Chunk有各自的ID,位于Chunk最开始位置,作为标示,而且均为4个字节。

并且紧跟在ID后面的是Chunk 大小(去除ID和Size所占的字节数后剩下的其他字节数目),4个字节表示,低字节表示数值低位,高字节表示数值高位。

wav文件格式分析

wav文件格式分析

一. RIFF概念在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/LIST块结构只要依循此一结构的文件,我们均称之为RIFF档。

此种结构提供了一种系统化的分类。

如果和MS一DOS 文件系统作比较,"RIFF"chunk就好比是一台硬盘的根目录,其格式辨别码便是此硬盘的逻辑代码(C:或D:),而"L1ST"chunk即为其下的子目录,其他的chunk则为一般的文件。

至于在RIFF文件的处理方面,微软提供了相关的函数。

视窗下的各种多媒体文件格式就如同在磁盘机下规定仅能放怎样的目录,而在该目录下仅能放何种数据。

二. WAV文件格式WAVE文件是非常简单的一种RIFF文件,它的格式类型为"WAVE"。

如何解决输出的WAV超过4GB的问题

如何解决输出的WAV超过4GB的问题

本文以一部MKV格式的电影为例,片名为《泰坦尼克》,时长为3小时14分。

素材分析:电影一般在90分钟以上,从片源提取出来的音频本身就很大。

据测算,一部120分钟以上的电影,如果用eac3to转成单个的WAV文件后,输出的WAV文件很容易超过4GB。

(120分钟以下的电影,一般不会超过)WAVE是微软的音频格式,当初设计时是32位,单个文件最大只能支持4GB(232),存在设计局限。

现在的WAVE已经有了WAVE64格式,后缀为.w64,单个文件最大可以支持到16777216 TB(264)了。

因此,如果输出的WAV文件超过了4GB,那就输出.w64格式,尽量规避4GB带来的瓶颈和限制。

准备工作建议:事先将MKV里封装的音频提取出来。

MKV格式,可以用MKVExtractGUI2提取,也可以用eac3to提取。

方法一、用MKVExtractGUI2提取。

提取后的5.1dts音频,高达2.05G。

通过Mediainfo比对参数,它跟源视频第2轨音轨的参数完全一样,属于无损提取。

方法二、用eac3to提取。

1、先用eac3to命令查看一下素材,看看里面有几轨,都是什么内容。

2、带上轨道号,将第2轨的5.1dts音频提取出来;这是提取后的5.1dts音频,通过Mediainfo比对参数,它跟源视频第2轨音轨的参数完全一样,属于无损提取。

方法一、将前面提取的5.1dts格式,转换成5.1wav格式。

转换完毕后,出现了警告提示:“输出的wav文件已超过4GB”虽然音频已经输出了,但超过了4GB,如下图所示:本文开头说过,据测算,一部120分钟以上的电影,如果用eac3to转成单个的WAV文件后,输出的WAV文件很容易超过4GB。

原则上,如果影片在120分钟以下,可以尝试输出wav格式;如果影片超过了120分钟,或者输出的wav超过了4GB,建议输出w64格式。

方法二、将前面提取的5.1dts格式,转换成5.1的w64格式。

常用音频文件格式

常用音频文件格式

常用音频文件格式1、cd——*.cda文件——基本无损——不能直接拷贝即我们通常所说的CD音轨,是我们所熟悉的CD音乐光盘中的文件格式。

标准CD格式也就是44.1K的采样频率,速率88K/秒,16位量化位数,因为CD音轨可以说是近似无损的,因此它的声音基本上是忠于原声的,因此如果你如果是一个音响发烧友的话,CD是你的首选。

CD光盘可以在CD唱机中播放,也能用电脑里的各种播放软件来重放。

一个CD音频文件是一个*.cda文件,这只是一个索引信息,并不是真正的包含声音信息,所以不论CD音乐的长短。

在电脑上看到的“*.cda文件”都是44字节长,不能直接的复制CD格式的*.cda文件到硬盘上播放,需要使用Windows Media Player/格式工厂把CD格式的文件转换成WAV。

2、wav、wave格式——波形文件——基本无压缩WAV是波形文件,可直接存储声音波形,还原的波形曲线十分逼真。

WAV文件格式简称WAV格式是一种存储声音波形的数字音频格式,是最常见的声音文件格式之一,是微软公司专门为Windows开发的一种标准数字音频文件,该文件能记录各种单声道或立体声的声音信息,并能保证声音不失真。

但WAV文件有一个致命的缺点,就是它所占用的磁盘空间太大(每分钟的音乐大约需要12兆磁盘空间)。

声音文件质量和CD相差无几。

能够真实记录自然声波形,基本无压缩,数据量大。

3、mp3格式——音频压缩技术——占用空间小MP3是一种音频压缩技术,其全称是动态影像专家压缩标准音频层面3,简称为MP3。

它被设计用来大幅度地降低音频数据量。

利用 MPEG Audio Layer 3 的技术,将音乐以1:10 甚至 1:12 的压缩率,压缩成容量较小的文件,而对于大多数用户来说重放的音质与最初的不压缩音频相比没有明显的下降。

用MP3形式存储的音乐就叫作MP3音乐,能播放MP3音乐的机器就叫作MP3播放器。

最高参数的MP3(320Kbps)的音质较之CD的,FLAC和APE无损压缩格式的差别不多,其优点是压缩后占用空间小,适用于移动设备的存储和使用。

WAVE文件格式分析

WAVE文件格式分析

WAVE文件格式分析
WAVE文件格式是一种用于存储音频数据的文件格式,它是由微软和IBM共同开发的,是Windows操作系统中普遍使用的音频文件格式之一、WAVE是英文"Waveform Audio File Format"的缩写,意为波形音频文件格式。

在WAVE文件的数据部分,音频采样数据以二进制形式存储。

每一个采样值表示了音频信号在特定时间点上的振幅。

振幅大小由采样的位数决定,常见的位数包括8位、16位、24位和32位。

位数越大,表示的振幅范围越广,音质也越高,但同时也会占用更多的存储空间。

此外,WAVE文件还支持多通道音频数据的存储,如立体声、环绕声等。

多通道的音频数据将各个通道的音频采样值依次交错存储,以便于播放软件正确解析和处理多通道的音频数据。

总结起来,WAVE文件格式是一种无损音频文件格式,能够保存音频的完整信息。

它采用了无压缩的PCM编码方式,可以保存各种音频属性的数值,并支持多通道的音频数据存储。

此外,WAVE文件还支持附加信息的存储,提供了便于操作和管理音频文件的功能。

因此,WAVE文件格式在音频文件存储与处理中具有广泛的应用价值。

wave是什么格式「常见的wave格式的扩展名」

wave是什么格式「常见的wave格式的扩展名」

wave是什么格式「常见的wave格式的扩展名」1、WAVE是录音时用的标准的WINDOWS文件格式,文件的扩展名为“WAV”,数据本身的格式为PCM或压缩型WAVE文件格式是一种由微软和IBM联合开发的用于音频数字存储的标准,它采用RIFF文件格式结构,非常接近于AIFF和IFF格式符合 PIFF。

2、wave是录音时用的标准的windows文件格式,文件的扩展名为“wav”,数据本身的格式为pcm或压缩型,属于无损音乐格式的一种。

3、WAVE是录音时用的标准的WINDOWS文件格式,文件的扩展名为“WAV”,数据本身的格式为PCM或压缩型怎样打开若是在电脑上打开,使用Windows自带的媒体播放器就可以打开,如今主流的音频播放器都支持打开WAV文件,如千千静听,Rea。

4、wave ,它的后缀是 wav 音频格式。

5、Wave档案是由微软公司所制订的声音规格,由於历史久远,加上微软在其作业系统中大量使用WAVE格式的声音档案,使得此种格式已经成为电脑的标准声音格式,例如进入Windows与离开Windows的声音,与操作滑鼠时的各种事件的声音等等。

6、Wave格式支持MSADPCMCCITT A律CCITTμ律和其他压缩算法,支持多种音频位数采样频率和声道,是PC机上最为流行的声音文件格式但其文件尺寸较大,多用于存储简短的声音片段一般来说,采样的样本尺度信息量越大。

7、WAV为微软公司Microsoft开发的一种声音文件格式,它符合RIFFResource Interchange File Format文件规范,用于保存Windows 平台的音频信息资源,被Windows平台及其应用程序所广泛支持,该格式也支持MSADPCM,CCITT A LAW等多种压缩。

8、1Wave格式是微软公司开发的一种声音文件格式,它符合PIFFResource Interchange File Format 文件规范,用于保存WINDOWS平台的音频信息资源,被WINDOWS平台及其应用程序所支持2AIFF是音频交换文件格式的英文缩写,是。

wav文件文件头格式

wav文件文件头格式

一、WAVE文件格式剖析WA VE文件作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的。

RIFF是英文ResourceInterchangeFileFormat的缩写,每个W A VE文件的头四个字节便是“RIFF”。

WA VE文件由文件头和数据体两大部分组成。

其中文件头又分为RIFF/WAV 文件标识段和声音数据格式说明段两部分。

W A VE文件各部分内容及格式见附表。

常见的声音文件主要有两种,分别对应于单声道(11.025KHz采样率、8Bit的采样值)和双声道(44.1KHz采样率、16Bit的采样值)。

采样率是指:声音信号在“模→数”转换过程中单位时间内采样的次数。

采样值是指每一次采样周期内声音模拟信号的积分值。

对于单声道声音文件,采样数据为八位的短整数(short int 00H-FFH);而对于双声道立体声声音文件,每次采样数据为一个16位的整数(int),高八位和低八位分别代表左右两个声道。

WA VE文件数据块包含以脉冲编码调制(PCM)格式表示的样本。

W A VE文件是由样本组织而成的。

在单声道W A VE文件中,声道0代表左声道,声道1代表右声道。

在多声道W A VE文件中,样本是交替出现的。

WA VE文件格式说明表偏移地址字节数数据类型内容文件头00H4char"RIFF"标志04H4longint文件长度08H4char"WA VE"标志0CH4char"fmt"标志10H4过渡字节(不定)14H2int格式类别(10H为PCM形式的声音数据)16H2int通道数,单声道为1,双声道为218H2int采样率(每秒样本数),表示每个通道的播放速度,1CH4longint波形音频数据传送速率,其值为通道数×每秒数据位数×每样本的数据位数/8。

播放软件利用此值可以估计缓冲区的大小。

20H2int数据块的调整数(按字节算的),其值为通道数×每样本的数据位值/8。

pcm编码方式与wave音频格式

pcm编码方式与wave音频格式

1. 音频简介经常见到这样的描述: 44100HZ 16bit stereo 或者 22050HZ 8bit mono 等等.44100HZ 16bit stereo: 每秒钟有 44100 次采样, 采样数据用 16 位(2字节)记录, 双声道(立体声);22050HZ 8bit mono: 每秒钟有 22050 次采样, 采样数据用 8 位(1字节)记录, 单声道;当然也可以有 16bit 的单声道或 8bit 的立体声, 等等。

采样率是指:声音信号在“模→数”转换过程中单位时间内采样的次数。

采样值是指每一次采样周期内声音模拟信号的积分值。

对于单声道声音文件,采样数据为八位的短整数(short int 00H-FFH);而对于双声道立体声声音文件,每次采样数据为一个16位的整数(int),高八位(左声道)和低八位(右声道)分别代表两个声道。

人对频率的识别范围是 20HZ - 20000HZ, 如果每秒钟能对声音做 20000 个采样, 回放时就足可以满足人耳的需求. 所以 22050 的采样频率是常用的, 44100已是CD音质, 超过48000的采样对人耳已经没有意义。

这和电影的每秒 24 帧图片的道理差不多。

每个采样数据记录的是振幅, 采样精度取决于储存空间的大小:1 字节(也就是8bit) 只能记录 256 个数, 也就是只能将振幅划分成 256 个等级;2 字节(也就是16bit) 可以细到 65536 个数, 这已是 CD 标准了;4 字节(也就是32bit) 能把振幅细分到 4294967296 个等级, 实在是没必要了.如果是双声道(stereo), 采样就是双份的, 文件也差不多要大一倍.这样我们就可以根据一个 wav 文件的大小、采样频率和采样大小估算出一个wav 文件的播放长度。

譬如 "Windows XP 启动.wav" 的文件长度是 424,644 字节, 它是"22050HZ / 16bit / 立体声" 格式(这可以从其 "属性->摘要" 里看到),那么它的每秒的传输速率(位速, 也叫比特率、取样率)是 22050*16*2 = 705600(bit/s), 换算成字节单位就是 705600/8 = 88200(字节/秒), 播放时间:424644(总字节数) / 88200(每秒字节数) ≈ 4.8145578(秒)。

音频文件格式WAVE的转换

音频文件格式WAVE的转换

音频文件格式 的转换!"#$ 李 敏东南大学无线电工程系!江苏 南京$"!JJ /K摘要)本文详细介绍了 #$% 声音文件的格式!分析了两种文件头的条目安排及相应文件中的数据存放方式!并简要例举了实际应用"关键词!#$% 格式#&’((#文件头#)*+,- 中图分类号!.,/!"01 文献标识码!$*+,-./0+1,230- 0/ %4’ 45630 $378 $0+1,2234356789:;475; <= &9>3< ?5@3577:35@ A B <C ;D79E ; +53F 0 A ,95G 35@A H395@E C I "!JJ /K49.2+,:2) .D 3E 9:;3L M 7 @3F7E 9 8:7E 75;9;3<5 <= #$% $C >3< (3M 7 (<:49; 35 >7;93MA 959M N O35@ ;D7 3;74 9::95@7475; 95>P 9N E <= >9;9 E ;<:9@7 =<: ;P< ;N 87E <= =3M 7 D79>0 $; M 9E ;A 3; 9M E < 35;:<>CL7E E <47 988M 3L9;3<5 Q :37=M N 0;8< =0+6) #$% E 877LD =3M 7 =<:49;R &’(( R (3M 7 *79>R )*+,-&’()声音文件格式是目前 &*+,-./ 最直 接 保 存 声音数据的文件格式! 在涉及声音信号处理时"大多是 对 &’( 文件直接操作"有必要搞清楚所研究声音的文 件格式!针对这两种 472+?"05:: 又从原先的C 裸数据C 中切出 G A B 61 作为C 格式辨别码C "如表 !所示% ! "#$$ 文件与 %&’ 文件在 &*+,-./ 环境下" 大部分多媒体文件都依循着 表 "对 05:: 的树状结构有所了解之后"可以知道它相当于一个根目录"而格式辨识码则相当于具体的盘符 如 H (I (等等% 视窗下的各种多媒体文件格式就如同 在磁盘机下规定只能存放怎样的目录"而在该目录下 仅能存放何种数据%一 种 结 构 来 存 放 信 息 " 称 为 资 源 互 换 文 件 格 式 #01!/-2341/ 5+613478+91 :*;1 :-3<86$=简称 05::%比如声音的&’( 文件&视频的 ’(5 文件&动画的 >>> 文件等均是由此结构衍生出来的! 所以"要掌握多媒体文件格式" 首先得认识 05:: 的结构!05:: 是一种树状结构" 其基本组成单位是 472+?’ 即 块 $" 每 个 472+? 由 辨 识 码 & 数 据 大 小 和 数 据 组 成 " 如表 @! 可以看出"一个 472+? 的长度"就是数据的大小 加上 %A B 61!( %&’ 文件头顾名思义"&’( 就是波形音频文件’&8J 1 ’2,*-$"是 &*+,-./ 中用来表示数字化声音的一种标准格式" 其文件扩展名为$.8J "是一种非常简单的 05:: 文件"格 式辨识码为)&’()*%整个 &’( 文件分成两部分(文件头和数据块% 在 用计算机处理声音信号的过程中"常常遇到以下两种情况(当没有现成 &’( 文件时"需要使用一些音频处 理软件如 H --;1,*6" E -2+,1,*6 等"将其它格式转化成表 !一般而言"472+? 本身不允许内部再包含 472+?"但有两个例外( 以 C 05::C 和 以CD 5E F C 为 辨 识 码 的 472+?%个 !") 文件经过编解码以后!只产生了数据块!少了!") 文件头!无法直接播放# 于是!为了让程序自动 生成 !") 文件!必须在裸数据前添加正确的 !") 文件头#研究中发现!!") 格式文件主要有两种文件头#!"# 标准的 $$ 字节文件头这种 !") 是最简单的一种 *+,, 格式! 包含两个UU 采样频率&每秒取样数’V !B *V 0;8[WP &9E =9R Y9-T UU 每秒数据量 !B *V 0W ’H :1;’F [.T UU记录区块的对齐单位Z !;)@AB *?;D T为了产生出能够正确读出的 !;) 文件!必须严格注意以下几个分量间的特定关系L 否则产生出的文件将 无法正常播放$0;8[WP &9E =9R Y 9- ‘ 0Y %4Q ’9E =9R Y9- a 0>.%009’E a7W F&E X 9R Y %4Q ’9U b0W ’H -1;’F [0 ‘ 0>.%009’E a 7W F&E X 9R Y %4Q ’9U b根据以上规则! 表 < 给出一个 b1c G 采样!NO (F& 量 化的声音文件的234&5-./016$表 " #$%&!’()*+!单声道 ,-+ 子块这两个子块都 是 一 个 -./01$234&5-16%27%895:%&%6 ! !;) 文件必须包含的#234&5-16子块! 描述了波形数据27%895:%&%6的格 式!对于 << 字节文件头!它由结构 =>?!;)@ABC ?;D组成!其子块大小是 EFG 9H 3I=>?!;)@ABC ?;J KL 数据是 =>?!;)@ABC ?;D 的 数 据 ! 如 表 M 所 示 # 其中 =>?!;)@AB *?;D 是 =>? 波形音频数据的数据格式结构!大小是 NO 字节!定义如下$表 ! "" 字节文件头结构!%! &’ 字节文件头表 . .# 字节的文件头&PQ9:93 E&R /-& S!;)@A BC ?;D 73TUU 先包含一个 !;)@A B *?;D 结构!B *V 7W F&E X 9R Y %4Q ’9T UU 每个取样所须位元数 Z =>?!;)@AB *?;D T&PQ9:93 E&R /-& S!B *V 7A H R 4%&D %[TUU 编码格式如 !;)@\A BC ?;D \=>?&]^]]]N ’!BC V 0>.%009’ETUU 声道数$单声道 N %双声道 _如果不是 !F 0:H 7E 的标准 !;) 文件!而是经过了 一些软件处理的! 往往就是 db 字节的文件头! 如表 d所示! 它比 && 字节的多了一个 ’()* 子块! +’()*,)-.储 表 * +,- 文件中的位安排方式存了关于 /01 文件内容的重要信息" 该子块 定 义 如 下#+’()*,)-. 2. ’()*3+456789:7;9< =/>?=.@AA BC D E9F G ’ H (D I 89H其中+’D *,)-.见表 J "它由结构 /01K6>?L 0M KN 所组成O "大小为 P% 字节"定义如下#*Q I 949’ H *F C )* 5(R9’GF D (*S9T*9B 494S*(U V/>?= 56GF D (*M (U W AA 编码格式 />?= B X Y (BB98H WAA 声道数#单声道 P "双声道 !=/>?= B :(D I 89H Z 9F :9)W AA 采样频率$每秒取样数% =/>?= B 0RU [Q *9H Z 9F :9)W AA 每秒数据量 />?= B [8G )-087UB W A A记录区块的对齐单位/>?= 5[7*H Z 9F :(D I 89W AA 每个取样所需位元数 />?= )E :7;9W AA 附加信息的字节数\ /01K6>?L 0M KN W表 ! "#$%!&!’()!单声道形式如表 ^ 所示"根据声道数不同及取样位数的不同" 安排 & 位的位置&注 意 #/7B 4G 5H 中 将 PJ 位 值 的 范 围 定 为 ,_!^J % "_!^J ^& 另外"" 并不一定代表无声"而是由中间数值来决定"即 % 位的时候为 P !%"P J 位时 " 才是无声& 所以" 编程中需要放入无声的数据时" 是 PJ 位还是 % 位&必须先认清声音格式 结束语% 通常解压缩后得到的文件仅仅是裸数据" 不能正常播放声音& 了解了 /01 文件格式后"就可以按照标 准 的 && 字 节 格 式 " 在解 码 数 据 前 编 写 一 个 正 确 的 /01 文件头"使其成为一个有效的 /01 文件&另一种情况下" 如果缺少标准的 /01 文 件 " 我们 可以用一些特殊的软件去将其它格式转化成 /01"这时得到的通常就是 #% 字节格式& 了解了该文件头所包含的内容及各个条目所在位置" 编程时就能方便地提 取所需要的音频信息"进行下一步的处理&因此" 对 /01 格式的清楚 分 析 " 是 在 /7B 4G 5H 中 进行声音信号处理的第一步&参考文献‘P a 黄伟伦"等$L H ,/7B 4G 5H 多媒体程序设计实务与 范例‘L a$ 武汉#华中理工大学出版社"P bbJ‘!a 陈立伟$基于 1XJ $" 的 >I 9B c 8 与 /7B 4G 5H 图形 接口设置方法$西南科技大学学报O !""!$P ^d &e<!^,_"‘_a 陈昭 炎$ /7B 4G 5H 环 境 下 的 声 音 信 号 处 理 方 法 ‘L a$ 中国期刊全文数据库‘&a 朱学芳"徐建平$ 计算机语音信号处理与语音识别系统$ 南京邮电学院学报$P bb %$P %3#e<PP _,PP b $收稿日期#!""# 年 ! 月!!"#$#"子块数据安排方式]4(*(]子块中装的是真正的声音数据& 除非安装其它特殊软件" 否则 /7B 4G 5H 目前仅提供 /01K S 6>?! L 0MS ZX L 一种数据格式" 即脉冲编码调制$Z C 8H 9 X G 49 L G 4C 8(*7G B %&针对此格式"/7B 4G 5H 中]4(*(] 子块中数据存放的。

Wave文件格式

Wave文件格式

WAV简介WAV为微软公司(Microsoft)开发的一种声音文件格式,它符合RIFF(Resource Interchange File Format)文件规范,用于保存Windows平台的音频信息资源,被Windows平台及其应用程序所广泛支持,该格式也支持MSADPCM,CCITT A LAW等多种压缩运算法,支持多种音频数字,取样频率和声道,标准格式化的WAV文件和CD格式一样,也是44.1K的取样频率,16位量化数字,因此在声音文件质量和CD相差无几! WAV打开工具是WINDOWS的媒体播放器。

通常使用三个参数来表示声音,量化位数,取样频率和声道数。

声道有单声道和立体声之分,取样频率一般有11025Hz(11kHz) ,22050Hz(22kHz)和44100Hz(44kHz) 三种,不过尽管音质出色,但在压缩后的文件体积过大!相对其他音频格式而言是一个缺点,其文件大小的计算方式为:WAV格式文件所占容量 = (取样频率 X 量化位数 X 声道) X 时间 / 8 (字节 = 8bit)目前支持WAV设计的手机主要为智能手机,如索尼爱立信P910和诺基亚N90以及采用微软OS的多普达等手机,而其它一些非智能手机的产品,如果宣传支持WAV格式则多半属于只是支持单声道的。

WAV剖析WAVE是录音时用的标准的WINDOWS文件格式,文件的扩展名为“WAV”,数据本身的格式为PCM或压缩型。

WAV文件格式是一种由微软和IBM联合开发的用于音频数字存储的标准,它采用RIFF文件格式结构,非常接近于AIFF和IFF格式。

符合 PIFF Resource Interchange File Format规范。

所有的WAV都有一个文件头,这个文件头音频流的编码参数。

WAV文件作为最经典的Windows多媒体音频格式,应用非常广泛,它使用三个参数来表示声音:采样位数、采样频率和声道数。

声道有单声道和立体声之分,采样频率一般有11025Hz(11kHz)、22050Hz(22kHz)和44100Hz(44kHz)三种。

wave文件(.wav)格式、PCM数据格式

wave文件(.wav)格式、PCM数据格式

wave文件(*.wav)格式、PCM数据格式1. 音频简介经常见到这样的描述: 44100HZ 16bit stereo 或者 22050HZ 8bit mono 等等.44100HZ 16bit stereo: 每秒钟有 44100 次采样, 采样数据用 16 位(2字节)记录, 双声道(立体声);22050HZ 8bit mono: 每秒钟有 22050 次采样, 采样数据用 8 位(1字节)记录, 单声道;当然也可以有 16bit 的单声道或 8bit 的立体声, 等等。

采样率是指:声音信号在“模→数”转换过程中单位时间内采样的次数。

采样值是指每一次采样周期内声音模拟信号的积分值。

对于单声道声音文件,采样数据为八位的短整数(short int 00H-FFH);而对于双声道立体声声音文件,每次采样数据为一个16位的整数(int),高八位(左声道)和低八位(右声道)分别代表两个声道。

人对频率的识别范围是 20HZ - 20000HZ, 如果每秒钟能对声音做 20000 个采样, 回放时就足可以满足人耳的需求. 所以 22050 的采样频率是常用的, 44100已是CD音质, 超过48000的采样对人耳已经没有意义。

这和电影的每秒 24 帧图片的道理差不多。

每个采样数据记录的是振幅, 采样精度取决于储存空间的大小:1 字节(也就是8bit) 只能记录 256 个数, 也就是只能将振幅划分成 256 个等级;2 字节(也就是16bit) 可以细到 65536 个数, 这已是 CD 标准了;4 字节(也就是32bit) 能把振幅细分到 4294967296 个等级, 实在是没必要了.如果是双声道(stereo), 采样就是双份的, 文件也差不多要大一倍.这样我们就可以根据一个 wav 文件的大小、采样频率和采样大小估算出一个wav 文件的播放长度。

譬如 "Windows XP 启动.wav" 的文件长度是 424,644 字节, 它是"22050HZ / 16bit / 立体声" 格式(这可以从其 "属性->摘要" 里看到),那么它的每秒的传输速率(位速, 也叫比特率、取样率)是 22050*16*2 = 705600(bit/s), 换算成字节单位就是 705600/8 = 88200(字节/秒), 播放时间:424644(总字节数) / 88200(每秒字节数) ≈ 4.8145578(秒)。

ADPCM格式说明

ADPCM格式说明

ADPCM WAVE文件的压缩与解压缩[原创]分类:程序设计:经典算法与技术赏析2005-10-13 21:15 8342人阅读评论(8) 收藏举报一、概述:本文叙述了如何通过IMA-ADPCM压缩和解压缩算法来完成从IMA-ADPCM文件转换为PCM文件的过程。

主要包括的内容有:PCM和IMA-ADPCM WAVE文件内部结构的介绍,IMA-ADPCM压缩与解压缩算法,以及如何生成特有的音频压缩格式文件等三方面的内容。

二、WAVE文件的认识WAVE文件是计算机领域最常用的数字化声音文件格式之一,它是微软专门为Windows系统定义的波形文件格式(Waveform Audio),由于其扩展名为"*.wav"。

wave文件有很多不同的压缩格式,而且现在一些程序生成的wave文件都或多或少地含有一些错误。

这些错误的产生不是因为单个数据压缩和解压缩算法的问题,而是因为在压缩和解压缩后没有正确地组织好文件的内部结构。

所以,正确而详细地了解各种WAVE文件的内部结构是成功完成压缩和解压缩的基础,也是生成特有音频压缩格式文件的前提。

最基本的WAVE文件是PCM(脉冲编码调制)格式的,这种文件直接存储采样的声音数据没有经过任何的压缩,是声卡直接支持的数据格式,要让声卡正确播放其它被压缩的声音数据,就应该先把压缩的数据解压缩成PCM格式,然后再让声卡来播放。

1.Wave文件的内部结构WAVE文件是以RIFF(Resource Interchange File Format,"资源交互文件格式")格式来组织内部结构的。

RIFF文件结构可以看作是树状结构,其基本构成是称为"块"(Chunk)的单元,最顶端是一个“RIFF”块,下面的每个块有“类型块标识(可选)”、“标志符”、“数据大小”及“数据”等项所组成,块的结构如表1所示:上面说到的“类型块标识”只在部分chunk中用到,如“WAVE”chunk中,这时表示下面嵌套有别的chunk,当使用了“类型块标识”时,该chunk就没有别的项(如块标志符,数据大小等),它只作为文件读取时的一个标识。

WAVE文件格式解析

WAVE文件格式解析

WAVE⽂件格式解析WAVE ⽂件作为Windows多媒体中使⽤的声⾳波形⽂件格式之⼀,它是以RIFF(Resource Interchange File Format)格式为标准的。

这⾥不针对RIFF⽂件格式做介绍,不太了解的可以参考“”⼀⽂。

WAVE⽂件构成每个WAVE⽂件的头四个字节便是“RIFF”。

WAVE ⽂件由⽂件头和数据体两⼤部分组成。

其中⽂件头⼜分为 RIFF/WAV ⽂件标识段和声⾳数据格式说明段两部分。

相对于RIFF⽂件,只是将“RIFF”chunk的form id替换为“WAVE”。

下表是⼀个典型的WAVE⽂件各部分构成及其长度字段。

注意所有数据采⽤windows默认的⼩端存储。

(FOURCC是⼀个特殊的四字节码,判断时按照字符顺序判断即可。

)域长度内容说明chunkID4Chunk ID: "RIFF",FOURCC四字节码chunksize4Chunk size: 4+nWAVEID4WAVE ID: "WAVE",FOURCC四字节码WAVE chunks n Wave chunks包含格式信息和⾳频采样数据,分为“format” chunk和“data”chunk两部分。

Format chunkFormat chunk⽤于说明data chunk中PCM数据的格式。

主要三种不同的format chunk格式(不同的格式码)。

如下表:域长度内容说明ckID4Chunk ID: "fmt ",FOURCC四字节码,注意最后⼀个填充是空格。

cksize4Chunk size: 16 or 18 or 40 wFormatTag2Format code,格式码nChannels2Number of interleaved channels,采样声道数(交织存储)nSamplesPerSec4Sampling rate (blocks per second),⾳频采样率nAvgBytesPerSec4Data rate,⾳频码率nBlockAlign2Data block size (bytes),⾳频数据块⼤⼩(单位字节)wBitsPerSample2Bits per sample,量化位数(⽐如8bits、16bits、32bits)cbSize2Size of the extension (0 or 22),扩展字段长度wValidBitsPerSample2Number of valid bits,有效的位长度dwChannelMask4Speaker position mask,声道描述掩码,⽐如左声道、右声道等SubFormat16GUID, including the data format code,数据格式码标准中定义的wFormatTag(Format code)可取值范围如下表:Format Code PreProcessor Symbol Data 0x0001WAVE_FORMAT_PCM PCM0x0003WAVE_FORMAT_IEEE_FLOAT IEEE float,[-1.0f,1.0f] 0x0006WAVE_FORMAT_ALAW8-bit ITU-T G.711 A-law 0x0007WAVE_FORMAT_MULAW8-bit ITU-T G.711 µ-law 0xFFFE WAVE_FORMAT_EXTENSIBLEDetermined by SubFormatPCM格式当wFormatTag为0x0001时,表⽰WAVE⽂件中存储的是PCM格式的⾳频数据。

WAV文件操作

WAV文件操作

WAVE文件格式剖析WAVE文件作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的。

RIFF是英文Resource Interchange File Format的缩写,每个WAVE文件的头四个字节便是“RIFF”。

WAVE文件由文件头和数据体两大部分组成。

其中文件头又分为RIFF/WAV文件标识段和声音数据格式说明段两部分。

WAVE文件各部分内容及格式见附表。

常见的声音文件主要有两种,分别对应于单声道(11.025KHz采样率、8Bit的采样值)和双声道(44.1KHz采样率、16Bit的采样值)。

采样率是指:声音信号在“模→数”转换过程中单位时间内采样的次数。

采样值是指每一次采样周期内声音模拟信号的积分值。

对于单声道声音文件,采样数据为八位的短整数(short int00H-FFH);而对于双声道立体声声音文件,每次采样数据为一个16位的整数(int),高八位和低八位分别代表左右两个声道。

WAVE文件数据块包含以脉冲编码调制(PCM)格式表示的样本。

WAVE文件是由样本组织而成的。

在单声道WAVE文件中,声道0代表左声道,声道1代表右声道。

在多声道WAVE文件中,样本是交替出现的。

WAVE文件格式说明表PCM数据的存放方式:WAVE文件的每个样本值包含在一个整数i中,i的长度为容纳指定样本长度所需的最小字节数。

首先存储低有效字节,表示样本幅度的位放在i的高有效位上,剩下的位置为0,这样8位和16位的PCM波形样本的数据格式如下所示。

运用多媒体WAV文件格式二三例 2000/11/20 软件世界徐济仁陈家松多媒体技术近年来发展很快,较好品质的声卡可以提供16位的立体声及44KHZ的播放录制能力,它不仅可以提供原音逼真的取样,其合成的音质也十分理想,有的声卡还加入了数字信号处理器,可编程控制的DSP具有强大的运算能力,它可以用来作声音信息的压缩和一些特殊效果的处理。

具有此功能的声卡提供的WAV文件提供的语音信息可以满足语音特征识别的要求。

wave格式

wave格式

WAVE是录音时用的标准的WINDOWS文件格式,文件的扩展名为“WAV”,数据本身的格式为PCM或压缩型。

WAVE文件格式是一种由微软和IBM联合开发的用于音频数字存储的标准,它采用RIFF文件格式结构,非常接近于AIFF和IFF格式。

符合PIFF Resource Interchange File Format规范。

所有的WAV都有一个文件头,这个文件头音频流的编码参数。

WAVE文件它使用三个参数来表示声音:采样位数、采样频率和声道数。

声道有单声道和立体声之分,采样频率一般有11025Hz(11kHz)、22050Hz(22kHz)和44100Hz(44kHz)三种。

WAVE文件所占容量=(采样频率×采样位数×声道)×时间/8(1字节=8bit)。

下面我们具体地分析WAVE 文件的格式以下是对各个字段的详细解说:对于Data块,根据声道数和采样率的不同情况,布局如下(每列代表8bits):1. 8 Bit 单声道:2. 8 Bit 双声道1. 16 Bit 单声道:2. 16 Bit 双声道实例如下:此处需要注意文件读取方式:例如:24 08 00 00,实际获取为00 00 08 24,所有字节均如此,所幸微软提供了RIFF文件的读取函数:以下为相关代码:MMCKINFO ckIn; // chunk info. for general use.PCMWAVEFORMAT pcmWaveFormat; // Temp PCM structure to load in.HMMIO m_hmmio; // MM I/O handle for the WAVEMMCKINFO m_ck; // Multimedia RIFF chunkMMCKINFO m_ckRiff; // Use in opening a WAVE filem_pwfx = NULL;//读取ChunkID、ChunkSize、Format参数if( ( 0 != mmioDescend( m_hmmio, &m_ckRiff, NULL, 0 ) ) )return FALSE ;// Check to make sure this is a valid wave fileif( (m_ckRiff.ckid != FOURCC_RIFF) ||(m_ckRiff.fccType != mmioFOURCC('W', 'A', 'V', 'E') ) )return FALSE ;// Search the input file for for the 'fmt ' chunk.//读取SubChunk1ID、SubChunk1Size参数ckIn.ckid = mmioFOURCC('f', 'm', 't', ' ');if( 0 != mmioDescend( m_hmmio, &ckIn, &m_ckRiff, MMIO_FINDCHUNK ) )return FALSE ;// Expect the 'fmt' chunk to be at least as large as <PCMWAVEFORMAT>;// if there are extra parameters at the end, we'll ignore themif( ckIn.cksize < (LONG) sizeof(PCMWAVEFORMAT) )return FALSE ;// Read the 'fmt ' chunk into <pcmWaveFormat>.//读取AudioFormat、NumChannels、SampleRate、SampleRate、BlockAlign、BitsPerSample参数if( mmioRead( m_hmmio, (HPSTR) &pcmWaveFormat,sizeof(pcmWaveFormat)) != sizeof(pcmWaveFormat) )return FALSE ;//定位寻找数据段m_ck.ckid = mmioFOURCC('d', 'a', 't', 'a');if( 0 != mmioDescend( m_hmmio, &m_ck, &m_ckRiff, MMIO_FINDCHUNK ) )return FALSE ;参考文章:/liyiwen/archive/2010/04/19/1715715.html。

WAVE文件的头文件定义

WAVE文件的头文件定义

WAVE文件的头文件定义typedef struct _TWavHeader{long rId;long rLen;long wId;long fId;long fLen;WORD wFormatT ag;WORD nChannels;long nSamplesPerSec;long nAvgBytesPerSec;WORD nBlockAlign;WORD wBitsPerSample;long dId;long wSampleLength;}TWavHeader;TWavHeader wh;wh.rId = 0x46464952;wh.rLen = 36;wh.wId = 0x45564157;wh.fId = 0x20746d66;wh.fLen = 16;wh.wFormatTag = 1;wh.nChannels = wChannels;wh.nSamplesPerSec = lRate;wh.nAvgBytesPerSec = wChannels * lRate * (wResolu tion / 8);wh.nBlockAlign = wChannels * (wResolution / 8);wh.wBitsPerSample = wResolution;wh.dId = 0x61746164;wh.wSampleLength = 0;int nHandle = FileCreate(strFileName);FileSeek(nHandle, 0, 0);FileWrite(nHandle, &wh, sizeof(wh));FileClose(nHandle);===================================== wav文件包括头和数据两部分,其结构如下:(从文件头开始依次排列)1)首先是字符串“RIFF”,占4个字节。

2)波形块的大小:DWORD,占4字节。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
==================================
| ID | 4 Bytes | 'RIFF' |
----------------------------------
| Size | 4 Bytes | |
| ID = 'RIFF' |
| RiffType = 'WAVE' |
------------------------------------------------
| Format Chunk |
| ID = 'fmt ' |
------------------------------------------------
| Fact Chunk(optional) |
| ID = 'fact' |
{
WORD wFormatTag;
WORD wChannels;
DWORD dwSamplesPerSec;
DWORD dwAvgBytesPerSec;
WORD wBlockAlign;
WORD wBitsPerSample;
};
struct FMT_BLOCK
{
char szFmtID[4]; // 'f','m','t',' '
而后是数据区的开头,有一个DWORD,我这里的字符是“C0 3C 00 00”,对应的十进制数为15552,看一下前面正好可以看到,文件大小是15596,其中到“data”标志出现为止的头是40个字节,再减去这个标志的4个字节正好是15552,再往后面就是真正的Wave文件的数据体了,头文件的解析就到这里。
-------------------------------------------------------------------- |
| Channels | 2 Bytes | 声道数目,1--单声道;2--双声道 | |
-------------------------------------------------------------------- |
图1 Wav格式包含Chunk示例
其中除了Fact Chunk外,其他三个Chunk是必须的。每个Chunk有各自的ID,位
于Chunk最开始位置,作为标示,而且均为4个字节。并且紧跟在ID后面的是Chunk大
小(去除ID和Size所占的字节数后剩下的其他字节数目),4个字节表示,低字节
随后的是“44 AC 00 00”,这是一个DWORD,对应数字44100,代表的是每秒的数据量。
然后是“02 00”,这是一个WORD,对应数字是2,表示块对齐的内容,含义不太清楚。
然后是“10 00”,这是一个WORD,对应WAVE文件的采样大小,数值为16,采样大小为16Bits。
然后是一串“64 61 74 61”,这个是Ascii字符“data”,标示头结束,开始数据区域。
图4 Fact Chunk
Fact Chunk是可选字段,一般当wav文件由某些软件转化而成,则包含该Chunk。
----------------------------------
| Size | 4 Bytes | 数值为4 |
----------------------------------
| data | 4 Bytes | |
----------------------------------
表示数值低位,高字节表示数值高位。下面具体介绍各个Chunk内容。
PS:
所有数值表示均为低字节表示低位,高字节表示高位。
二、具体介绍
RIFF WAVE Chunk
==================================
| |所占字节数| 具体内容 |
| Size | 4 Bytes | 数值为16或18,18则最后又附加信息 |
-------------------------------------------------------------------- ----
| FormatTag | 2 Bytes | 编码方式,一般为0x0001 | |
和Size所占用的字节数,即FileLen - 8 = Size。然后是Type字段,为'WAVE',表
示是wav文件。
结构定义如下:
struct RIFF_HEADER
{
char szRiffID[4]; // 'R','I','F','F'
DWORD dwRiffSize;
| AvgBytesPerSec| 4 Bytes | 每秒所需字节数 | |===> WAVE_FORMAT
-------------------------------------------------------------------- |
图3 Format Chunk
以'fmt '作为标示。一般情况下Size为16,此时最后附加信息没有;如果为18
则最后多了2个字节的附加信息。主要由一些软件制成的wav格式中含有该2个字节的
附加信息。
结构定义如下:
struct WAVE_FORMAT
DWORD dwFmtSize;
WAVE_FORM明:
首先是一串“52 49 46 46”这个是Ascii字符“RIFF”,这部分是固定格式,表明这是一个WAVE文件头。
然后是“E4 3C 00 00”,这个是我这个WAV文件的数据大小,记住这个大小是包括头文件的一部分的,包括除了前面8个字节的所有字节,也就等于文件总字节数减去8。这是一个DWORD,我这个文件对应是15588。
wav文件格式分析详解
一、综述
WAVE文件作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的。
RIFF是英文Resource Interchange File Format的缩写,每个WAVE文件的头四个
字节便是“RIFF”。
WAVE文件是由若干个Chunk组成的。按照在文件中的出现位置包括:RIFF WAVE
-------------------------------------------------------------------- |
| | 2 Bytes | 附加信息(可选,通过Size来判断有无) | |
-------------------------------------------------------------------- ----
====================================================================
| ID | 4 Bytes | 'fmt ' |
--------------------------------------------------------------------
Fact Chunk
==================================
| |所占字节数| 具体内容 |
==================================
| ID | 4 Bytes | 'fact' |
| BlockAlign | 2 Bytes | 数据块对齐单位(每个采样需要的字节数) | |
-------------------------------------------------------------------- |
| BitsPerSample | 2 Bytes | 每个采样需要的bit数 | |
----------------------------------
| Type | 4 Bytes | 'WAVE' |
----------------------------------
图2 RIFF WAVE Chunk
以'FIFF'作为标示,然后紧跟着为size字段,该size是整个wav文件大小减去ID
随后的字节是“01 00”,这是一个WORD,对应定义为编码格式“WAVE_FORMAT_PCM”,我们一般用的是这个。
随后的是“01 00”,这是一个WORD,对应数字1,表示声道数为1,这是个单声道Wav。
随后的是“22 56 00 00”,这是一个DWORD,对应数字22050,代表的是采样频率22050。
| SamplesPerSec | 4 Bytes | 采样频率 | |
-------------------------------------------------------------------- |
char szRiffFormat[4]; // 'W','A','V','E'
};
Format Chunk
====================================================================
| | 字节数 | 具体内容 |
然后是“57 41 56 45 66 6D 74 20”,也是Ascii字符“WAVEfmt”,这部分是固定格式。
然后是PCMWAVEFORMAT部分,可以对照一下上面的struct定义,首先就是一个WAVEFORMAT的struct。
相关文档
最新文档