wav文件头

合集下载

各种格式的文件头

各种格式的文件头

1、从 Ultra - edit-32 中提取出来的- ]0 v* \7 L+ pJPEG (jpg) ,文件头: FFD8FF . W7 B" m: Y2 s $ t1 g. u PNG (png) ,文件头: 89504E47 GIF (gif) ,文件头: 47494638 ,文件头: 49492A00 1 k3 u0 i 8 g. y- U1 G Windows Bitmap (bmp) ,文件头: 424D 3 P' s2 Z, t1 F; \* 6 U" b2 ?) ~; u: S0 a. R 1 c# B: S TIFF (tif)|1 T CAD (dwg) ,文件头: 41433130 8 m9 j% v9 x/ S' ]7 U" z& y9 X+ a Adobe Photoshop (psd) ,文件头:38425053 : E2 Z& R4 F. n1 y Rich Text Format (rtf) ,文件头: 7B5C727466 6 F: u! i$ y+ W1 F8 x f$ EXML (xml),文件头:3C3F786D6C %-HTML (html) ,文件头: 68746D6C3EEmail [thorough only] (eml) ,文件头: 44656C69766572792D646174653AOutlook Express (dbx) ,文件头: CFAD12FEC5FD746FOutlook (pst) ,文件头: 2142444EMS Word/Excel (xls.or.doc) ,文件头: D0CF11E0 & @3 X& k$ T 7 r$ ~# _* E% B# oMS Access (mdb) ,文件头: 5374616E64617264204A 3 O1 r, C; s3 s! O, Z- Y! a WordPerfect (wpd) ,文件头: FF575043 2 [0 v) j" I8 C& X! {Postscript (eps.or.ps) ,文件头: 252150532D41646F6265Adobe Acrobat (pdf) ,文件头: 255044462D312E 4 s8 D9 F* U / Y6 o+ J6 { Quicken (qdf) ,文件头:AC9EBD8F 1 ]' T) V+Windows Password (pwl),文件头:E3828596ZIP Archive (zip) ,文件头: 504B0304RAR Archive (rar),文件头:52617221Wave (wav) ,文件头: 57415645AVI (avi) ,文件头: 41564920Real Audio (ram) ,文件头: 2E7261FDReal Media (rm) ,文件头: 2E524D46MPEG (mpg) ,文件头: 000001BA 1 h: ?! r) T& B7 zMPEG (mpg) ,文件头: 000001B3Quicktime (mov) ,文件头: 6D6F6F76Windows Media (asf),文件头:3026B2758E66CF11 #MIDI (mid) ,文件头: 4D546864二、从 winhex 中取出的文件头列表File Type ExtensionsHeader 4 G4 X" s( j 5 D( w% vJPEG jpg;jpeg 0xFFD8FFPNG png 0x89504E470D0A1A0A " |( Z# {" R1d3 X+ M+ N- [& X8 @GIF gif GIF8TIFF tif;tiff 0x49492A00TIFF tif;tiff 0x4D4D002A .…一Bit map bmp BMAOL ART art 0x4A47040E000000AOL ART art 0x4A47030E000000 &@PC Paintbrush pcx 0x0A050108 .....Graphics Metafile wmf 0xD7CDC69AGraphics Metafile wmf 0x01000900Graphics Metafile wmf 0x02000900Enhanced Metafile emf 0x0100000058000000 # Y$ Y% [: s' Q Corel Draw cdr CDR ) q7 k- f1 R$ i4 E& ECAD dwg 0x41433130Adobe Photoshop psd 8BPS 3 X4 s 2 x; F7 S' cRich Text Format rtf rtf 6 k' Y% K$ X2 O: a" eXML xmlHTML html;htm;php;php3;php4;phtml;shtml type& v ; e# a0 z 2 Q2 l, U" WEmail eml Delivery-date:Outlook Express dbx 0xCFAD12FEOutlookpst!BDNMS Office/OLE2 doc;xls;dot;ppt;xla;ppa;pps;pot;msi;sdw;db 0xD0CF11E0A1B11AE1 MS Access mdb;mda;mde;mdt Standard J WordPerfect wpd 0xFF575043OpenOffice Writer sxw writer 6 n# Q [1 r" O" x- h# c, \$ { OpenOffice Calc sxc calc . q& F4 j 1 ~ % K8 J% v ! Q* C OpenOffice Math sxm math + Z {$ Z, p& q 4 _6 T 1 a$ c 5 E! I OpenOffice Impress sxi impress 1 Y* d% W7 h& g! V OpenOffice Draw sxd draw( Z! \/ u% B, k & @6 jAdobe FrameMaker fm <MAKERFILE # b- Q2 z, p* S5 P* D0 H PostScript eps.or.ps;ps;eps %!PS-Adobe ' m9 c) ?! D' b8 g0 M- d1 TAdobe Acrobat pdf %PDF-1. 4 {, e' l1 J$ S7 G7 M0 ~. o* C & g) k Quicken qdf 0xAC9EBD8F $ v5 m {( B6 z QuickBooks Backup qbb 0x458600000600Sage sly.or.srt.or.slt;sly;srt;slt 0x53520100Sage Backup 1 SAGEBACKUPLotus WordPro v9 lwp 0x576F726450726F Lotus 123 v9 123 0x00001A00051004 Lotus 123 v5 wk4 0x00001A0002100400 Lotus 123 v3 wk3 0x00001A0000100400 Lotus 123 v1 wk1 0x2000604060) w7 {8 v7 B0 o- r Windows Password pwl 0xE3828596ZIP Archive zip;jar 0x504B0304 1 g3 h'{" {/ d) \, cZIP Archive (outdated) zip 0x504B3030RAR Archive rar Rar!GZ Archive gz;tgz 0x1F8B085 G3 ~ % a, a( x$ l+ B BZIP Archive bz2 BZhARJ Archive arj 0x60EA7-ZIP Archive 7z ■7—隹 17z 集 'Wave wav WAVEAVI avi AVIReal Audio ram;ra .ra?0Real Media rm .RMFMPEG mpg;mpeg 0x000001BA# L. w& P: P! ]: F; F 2 i MPEG mpg;mpeg 0x000001B3 Quicktime mov moov …Windows Media asf 0x3026B2758E66CF11 MIDI mid MThd 0 Y; q; ]* \9 V" AWin32 Executable exe;dll;drv;vxd;sys;ocx;vbx MZWin16 Executable exe;dll;drv;vxd;sys;ocx;vbx MZELF Executable elf;; 0x7F454C4601010100 常见文件的文件头jpg: 255,216gif: 71,73bmp: 66,77png: 137,80doc: 208,207docx: 80,75xls: 208,207xlsx: 80,75js: 239,187swf: 67,87txt: 70,67mp3: 73,68wma: 48,38mid: 77,84rar: 82,97zip: 80,75xml: 60,63用文件头判断。

WAV文件格式分析与详解

WAV文件格式分析与详解

WAV文件格式分析与详解作者:王若钧何杉来源:《数字技术与应用》2014年第03期摘要:WAV文件格式信息是对WAV文件编程的重要依据。

揭开WAV文件格式的奥秘是开发功能强大的具有自主知识产权的语音处理软件的关键。

本文结合波形文件的基本知识,较系统地说明了WAV文件的存储原理、文件结构、WAV文件头格式、基于PCM编码的数据组织,内容全面、清楚、准确,还包含了一些新汇集的参数。

可作为开发人员的参考资料。

关键词:文件格式 WAV 编码声音中图分类号:TP311 文献标识码:A 文章编号:1007-9416(2014)03-0093-021 引言WAV文件是在PC机平台上很常见的、最经典的多媒体音频文件,最早于1991年8月出现在Windows 3.1操作系统上,文件扩展名为WAV,是WaveFom的简写,也称为波形文件,可直接存储声音波形,还原的波形曲线十分逼真。

WAV文件格式简称WAV格式是一种存储声音波形的数字音频格式,是由微软公司和IBM联合设计的,经过了多次修订,可用于Windows,Macintosh,Linix等多种操作系统,详述如下。

2 波形文件的基础知识2.1 波形文件的存储过程声源发出的声波通过话筒被转换成连续变化的电信号,经过放大、抗混叠滤波后,按固定的频率进行采样,每个样本是在一个采样周期内检测到的电信号幅度值;接下来将其由模拟电信号量化为由二进制数表示的积分值;最后编码并存储为音频流数据。

有的应用为了节省存储空间,存储前,还要对采样数据先进行压缩。

2.2 WAV文件的编码编码包括了两方面内容,一是按一定格式存储数据,二是采用一定的算法压缩数据。

WAV格式对音频流的编码没有硬性规定,支持非压缩的PCM(Puls Code Modulation)脉冲编码调制格式,还支持压缩型的微软自适应差分脉冲编码调制Microsoft ADPCM(Adaptive Differential Puls Code Modulation)、国际电报联盟(International Telegraph Union)制定的语音压缩标准ITU G.711 a-law、ITU G.711-law、IMA ADPCM、ITU G.723 ADPCM (Yamaha)、GSM 6.10、ITU G.721 ADPCM编码和其它压缩算法。

C语言解析WAV音频文件

C语言解析WAV音频文件

C语⾔解析WAV⾳频⽂件C语⾔解析WAV⾳频⽂件代码地址:⽬录在计算机中有着各式各样的⽂件,⽐如说EXE这种可执⾏⽂件,JPG这种图⽚⽂件,也有我们平时看的TXT,或者C,CPP,PHP等代码⽂件。

如果把这些⽂件⽤记事本或者其他纯⽂本编辑器打开,会发现前⾯这类⽂件打开之后基本上都是乱码,也就是⾮⼈类可读的字符,⽽后⾯这类代码或者TXT⽂件打开之后都是⼈类可读的字符串。

如果我们把这些⽂件统⼀做⼀个分类,那么前⾯的EXE,JPG之类的这种打开之后都是我们看不懂的外星球⽂字的⽂件叫做⼆进制⽂件,⽽后⾯那些⽂件可以称为是⽂本⽂件。

后⾯那种分类是⽂本⽂件很好理解,毕竟都是我们认识的⽂本⽂字,但是前⾯的那些乱码为什么叫他⼆进制⽂件呢?这些⼆进制⽂件是怎么被计算机识别的,为什么这些乱码就能被计算机识别,并且放出悠扬动听的⾳乐或者栩栩如⽣的图⽚呢?我们学编程,搞计算机的⼈能不能也⾃⼰写⼀个程序把这些数据解析出来呢?请跟听本专栏栏猪⼀起慢慢道来。

前⾔我们将⼀步⼀步来了解C语⾔的⼀些基本库的使⽤,以及如何使⽤这些库来解析⼀个wav格式的⾳频⽂件,将其中的元数据(也就是该⾳频⽂件的⼀些属性)提取出来。

因此您需要有基本的计算机基础知识以及了解C语⾔,最好还对⾳频或者信号处理感兴趣。

了解WAV⾳频⽂件下⾯是百度百科的解释WAV为微软公司(Microsoft)开发的⼀种声⾳⽂件格式,它符合RIFF(Resource Interchange File Format)⽂件规范,⽤于保存Windows平台的⾳频信息资源,被Windows平台及其应⽤程序所⼴泛⽀持,该格式也⽀持MSADPCM,CCITT A LAW等多种压缩运算法,⽀持多种⾳频数字,取样频率和声道,标准格式化的WAV⽂件和CD格式⼀样,也是44.1K的取样频率,16位量化数字,因此在声⾳⽂件质量和CD相差⽆⼏! WAV打开⼯具是WINDOWS的媒体播放器。

通常使⽤三个参数来表⽰声⾳,量化位数,取样频率和采样点振幅。

WAV文件读取

WAV文件读取

WAV⽂件读取WAV是⼀种以RIFF为基础的⽆压缩⾳频编码格式,该格式以Header、Format Chunk及Data Chunk三部分构成。

本⽂简要解析了各部分的构成要素,概述了如何使⽤C++对⽂件头进⾏解析以及提取⾳频数据。

上图展⽰了WAV⽂件格式,包括每⼀field的⼤⼩与端序HeaderChunkID: 4字节⼤端序。

⽂件从此处开始,对于WAV或AVI⽂件,其值总为“RIFF”。

ChunkSize: 4字节⼩端序。

表⽰⽂件总字节数减8,减去的8字节表⽰ChunkID与ChunkSize本⾝所占字节数。

Format: 4字节⼤端序。

对于WAV⽂件,其值总为“WAVE”Format ChunkSubchunk1ID: 4字节⼤端序。

其值总为“fmt ”,表⽰Format Chunk从此处开始。

Subchunk1Size: 4字节⼩端序。

表⽰Format Chunk的总字节数减8。

AudioFormat: 2字节⼩端序。

对于WAV⽂件,其值总为1。

NumChannels: 2字节⼩端序。

表⽰总声道个数。

SampleRate: 4字节⼩端序。

表⽰在每个通道上每秒包含多少帧。

ByteRate: 4字节⼩端序。

⼤⼩等于SampleRate * BlockAlign,表⽰每秒共包含多少字节。

BlockAlign: 2字节⼩端序。

⼤⼩等于NumChannels * BitsPerSample / 8,表⽰每帧的多通道总字节数。

BitsPerSample: 2字节⼩端序。

表⽰每帧包含多少⽐特。

Data ChunkSubchunk2ID: 4字节⼤端序。

其值总为“data”,表⽰Data Chunk从此处开始。

Subchunk2Size: 4字节⼩端序。

表⽰data的总字节数。

data:⼩端序。

表⽰⾳频波形的帧数据,各声道按帧交叉排列。

使⽤C++解析WAV⽂件⽂件头结构定义结构体WaveHeader来保存WAV⽂件头,即Header、Format Chunk及Data Chunk的⾮data部分,此外在该结构体中添加了num_frame 字段,⽤来保存⽂件总帧数,由于Header、Format Chunk与Data Chunk之间可能有其他说明信息,所以还添加了start_pos字段⽤来保存真正的data开始的位置。

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(秒)。

名词解释wav格式

名词解释wav格式

名词解释wav格式
WAV格式是一种音频格式,全称为waveform Audio File Format,也称
为波形文件,是一种存储声音波形的数字音频格式。

它是由微软公司和IBM 联合设计的,是微软公司专门为Windows开发的一种标准数字音频文件,能记录各种单声道或立体声的声音信息,并保证声音不失真。

WAV文件可直接存储声音波形,还原的波形曲线十分逼真。

但是,WAV
文件占用空间极大,每分钟的WAV文件大约要占用12MB左右的磁盘空间,而同等大小的MP3文件,则仅需要1MB左右。

如需更多信息,建议到WAV相关论坛获取或咨询音频领域专业人士。

wav文件头详解,看懂wav文件

wav文件头详解,看懂wav文件

wav⽂件头详解,看懂wav⽂件⼯作中部门萌新常问的wav⽂件头格式及怎么看wav⽂件,且有时会遇到 “伪.pcm” 格式现总结如下: WAV是最常见的声⾳⽂件格式之⼀,是微软公司专门为Windows开发的⼀种标准数字⾳频⽂件,该⽂件能记录各种单声道或⽴体声的声⾳信息,并能保证声⾳不失真。

但WAV⽂件有⼀个缺点,就是它所占⽤的太⼤(每分钟的⾳乐⼤约需要12兆磁盘空间)。

它符合资源互换⽂件格式(RIFF)规范,⽤于保存Windows平台的⾳频信息资源推荐⼀个好⽤的16进制⽂件查看的⼯具:HxDx64对于完全0基础的,推荐下⾯⽹站中的详细解释,⽐较详细:(侵删)1.RIFF块(RIFF-Chunk)偏移地址字节数数据类型内容&H004String‘RIFF‘⽂件标志&H044UInteger⽂件总长&H08 4 String ‘WAVE‘⽂件标志2.格式化块(Format-Chunk)偏移地址字节数数据类型内容&H0C4String‘fmt‘标志&H104UInteger块长度&H12 2 UShort PCM格式类别&H142 UShort 声道数⽬&H184 UInteger 采样率&H1C 4 UInteger 传输速率&H1E 2UShort 数据块对齐&H202UShort 每样本bit数&H22 2UShort 可选3.附加块(Fact-Chunk) *当前块偏移地址需要根据实际数据变更偏移地址字节数数据类型内容&H264String‘fact‘标志&H2A4UInteger块长度&H2E4UInteger附加信息4.数据块(Data-Chunk) *当前块偏移地址需要根据实际数据变更偏移地址字节数数据类型内容&H324String‘data‘⽂件标志&H364UInteger数据块总长按照相关头格式,来观察字节即可Example:(取⾃上⾯博客)。

WAV文件的头信息

WAV文件的头信息

{
char cRiffFlag[4];
UIN32 nFileLen;
char cWaveFlag[4];
char cFmtFlag[4];
char cTransition[4];
UIN16 nFormatTag ;
UIN16 nChannels;
04H 4 long int 文件长度
08H 4 char "WAVE"#34;标志
10H 4 过渡字节(不定)
14H 2 int 格式类别(10H为PCM形式的声音数据)
16H 2 int 通道数,单声道为1,双声道为2
18H 2 int 采样率(每秒样本数),表示每个通道的播放速度, (Hz) sample frequency
UIN16 nSamplesPerSec;
UIN32 nAvgBytesperSec;
UIN16 nBlockAlign;
UIN16 nBitNumPerSample;
char cDataFlag[4];
UIN16 nAudioLength;
} WAVEFORMAT;
16位PCM int 32767 -32767
///////////////////////////////////////////////////////////////////////下面是常用来表示的数据结构
unsigned short tag; /* MS PCM = 1 */
1CH 4 long int 波形音频数据传送速率,其值为通道数×每秒样本数×每样本的数据位数(bit)/8。播放软件利用此值可以估计缓冲区的大小。
20H 2 int 数据块的调整数(按字节算的),其值为通道数×每样本的数据位值/8。播放软件需要一次处理多个该值大小的字节数据,以便将其值用于缓冲区的调整。

WAV文件格式说明

WAV文件格式说明

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(秒)。

C++标准库实现WAV文件读写的操作

C++标准库实现WAV文件读写的操作

C++标准库实现WAV⽂件读写的操作在上⼀篇⽂章中对WAV的⽂件格式做了介绍,本⽂将使⽤标准C++库实现对数据为PCM格式的WAV⽂件的读写操作,只使⽤标准C++库函数,不依赖于其他的库。

WAV⽂件结构WAV是符合RIFF标准的多媒体⽂件,其⽂件结构可以如下:WAV ⽂件结构RIFF块WAVE FOURCCfmt 块fact 块(可选)data块(包含PCM数据)⾸先是⼀个RIFF块,有块标识RIFF,指明该⽂件是符合RIFF标准的⽂件;接着是⼀个FourCC,WAVE,该⽂件为WAV⽂件;fmt块包含了⾳频的⼀些属性:采样率、码率、声道等;fact 块是⼀个可选块,不是PCM数据格式的需要该块;最后data块,则包含了⾳频的PCM数据。

实际上,可以将⼀个WAV⽂件看着由两部分组成:⽂件头和PCM数据,则WAV⽂件头各字段的意义如下:本⽂实现的是⼀个能够读取PCM数据格式的单声道或者双声道的WAV⽂件,是没有fact块以及扩展块。

结构体定义通过上⾯的介绍发现,WAV的头⽂件所包含的内容有两种:RIFF⽂件格式标准中需要的数据和关于⾳频格式的信息。

对于RIFF⽂件格式所需的信息,声明结构体如下:// The basic chunk of RIFF file formatstruct Base_chunk{FOURCC fcc; // FourCC iduint32_t cb_size; // 数据域的⼤⼩Base_chunk(FOURCC fourcc): fcc(fourcc){cb_size = 0;}};chunk是RIFF⽂件的基本单元,⾸先⼀个4字节的标识FOURCC,⽤来指出该块的类型;cb_size则是改块数据域中数据的⼤⼩。

⽂件头中另⼀个信息则是⾳频的格式信息,实际上是frm chunk的数据域信息,其声明如下:// Format chunk data fieldstruct Wave_format{uint16_t format_tag; // WAVE的数据格式,PCM数据该值为1uint16_t channels; // 声道数uint32_t sample_per_sec; // 采样率uint32_t bytes_per_sec; // 码率,channels * sample_per_sec * bits_per_sample / 8uint16_t block_align; // ⾳频数据块,每次采样处理的数据⼤⼩,channels * bits_per_sample / 8uint16_t bits_per_sample; // 量化位数,8、16、32等uint16_t ex_size; // 扩展块的⼤⼩,附加块的⼤⼩Wave_format(){format_tag = 1; // PCM format dataex_size = 0; // don't use extesion fieldchannels = 0;sample_per_sec = 0;bytes_per_sec = 0;block_align = 0;bits_per_sample = 0;}Wave_format(uint16_t nb_channel, uint32_t sample_rate, uint16_t sample_bits):channels(nb_channel), sample_per_sec(sample_rate), bits_per_sample(sample_bits)format_tag = 0x01; // PCM format databytes_per_sec = channels * sample_per_sec * bits_per_sample / 8; // 码率block_align = channels * bits_per_sample / 8;ex_size = 0; // don't use extension field};关于各个字段的信息,在上⾯图中有介绍,这⾥主要说明两个字段:format_tag表⽰以何种数据格式存储⾳频的sample值,这⾥设置为0x01表⽰⽤PCM格式,⾮压缩格式,不需要fact块。

C#实现WAV音频单声道提取

C#实现WAV音频单声道提取

C#实现WAV音频单声道提取作者:Joseph Pan (转载请注明出处/weizhoupan/archive/2011/03/20/1989718.html)喜欢买碟或者卡拉ok的朋友一定不会对声道这个术语陌生。

通常我们在音像店买回来的VCD或者DVD都是双声道的形式,唱片商在录制唱片时往往提供了两个或多个声道,以保存不同的音频内容,以形成立体声效。

左声道保存的大多为一些背景声效,如卡拉OK 的消音伴唱。

而右声道保存的往往是较为主要的声音,比如主唱的歌声。

利用多声道技术,听众可以清晰地分辨出各种乐器来自的方向,从而使音乐更富想象力,更加接近于临场感受。

有时候我们只需要音频里的单声道内容,比如喜欢用电脑录制卡拉ok的朋友就经常为了找歌曲的伴唱而流连于各大伴奏网站。

现在的网络翻唱非常流行,很多网络歌手就是先搜索喜欢的歌曲的伴奏,然后利用Adobe Audition(前身就是大名鼎鼎的CoolEdit)录制自己的演唱,然后加一些简单的降噪和压限处理,最后mix到伴奏的音轨里面。

尽管利用Audition 也可以完成单声道的提取工作,但是操作起来比较复杂。

其实对W A V的单声道提取并不困难。

关键在于对W A V文件格式的理解。

一、W A V的文件头W A V为微软公司(Microsoft)开发的一种声音文件格式,它符合RIFF(Resource Interchange File Format)文件规范。

所有的W A V都有一个文件头,这个文件头包含了音频流的编码参数。

偏移地址字节数类型内容00H~03H 4 字符资源交换文件标志(RIFF)04H~07H 4 长整数从下个地址开始到文件尾的总字节数08H~0BH 4 字符WA V文件标志(W A VE)0CH~0FH 4 字符波形格式标志(FMT)10H~13H 4 整数过滤字节(一般为00000010H)14H~15H 2 整数格式种类(值为1,表示数据PCMμ律编码的数据)16H~17H 2 整数通道数,单声道为1,双声道为218H~1BH 4 长整数采样频率1CH~1FH 4 长整数波形数据传输速率(每秒平均字节数)20H~21H 2 整数数据的调整数(按字节计算)22H~23H 2 整数样本数据位数表1W A V的文件头由表1我们可以得到以下几个重要的信息:116H~17H处记录通道数,当值为1时,表示文件为单声道;当值为2时,表示文件为双声道。

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。

WAV(PCM)文件格式分析

WAV(PCM)文件格式分析
16H 2 int 通道数,单声道为1,双声道为2
18H 2 int 采样率(每秒样本数),表示每个通道的播放速度,
1CH 4 long int 波形音频数据传送速率,其值为通道数×每秒数据位数×每 样本的数据位数/8。播放软件利用此值可以估计缓冲区的大小。
样本大小 数据格式 最大值 最小值
8位PCM unsigned int 225 0
16位PCM int 32767 -32767�
0CH 4 char "fmt"标志
10H 4 过渡字节(不定)
14H 2 int 格式类别(10H为PCM形式的声音数据)
W AVE文件数据块包含以脉冲编码调制(PCM)格式表示的样本。WAVE文件是由样本组织而成的。在单声道WAVE文件中,声道0代表左声道,声道1代表右声道。在多声道WAVE文件中,样本是交替出现的。
WAVE文件格式说明表
偏移地址 字节数 数据类型 内 容
8位立体声 0声道(左) 1声道(右) 0声道(左) 1声道(右)
16位单声道 0声道低字节 0声道高字节 0声道低字节 0声道高字节
16位立体声 0声道(左)低字节 0声道(左)高字节 1声道(右)低字节 1声道(右)高字节
WAVE文件的每个样本值包含在一个整数i中,i的长度为容纳指定样本长度所需的最小字节数。首先存储低有效字节,表示样本幅度的位放在i的高有效位上,剩下的位置为0,这样8位和16位的PCM波形样本的数据格式如下所示。
常见的声音文件主要有两种,分别对应于单声道(11.025KHz采样率、8Bit的采样值)和双声道(44.1KHz采样率、16Bit的采样值)。采样率是指:声音信号在“模→数”转换过程中单位时间内采样的次数。采样值是指每一次采样周期内声音模拟信号的积分值。

wav文件的文件头信息详解

wav文件的文件头信息详解

wav⽂件的⽂件头信息详解wav⽂件的⽂件头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 语⾳数据的长度楼主的帖⼦,⽂件头长度加起来是42字节,但是实际长度是44个字节(⽤UltraEdit打开⼀个WAVE⽂件,数⼀下就知道了)。

如果⽤以个结构体来定义WAVE⽂件头应该为: struct WAVEFILEHEADER { char chRIFF[4]; DWORD dwRIFFLen; char chWAVE[4]; char chFMT[4]; DWORD dwFMTLen; PCMWAVEFORMAT pwf; char chDATA[4]; DWORD dwDATALen; };但是实际测试,并不是所有的wave⽂件头都⼀样。

⽐较⿇烦的就是windows下⾃带的那个录⾳机录下的wav,⽂件头有58个Byte。

WAV文件结构范文

WAV文件结构范文

WAV文件结构范文WAV(Waveform Audio File Format)文件是一种常见的音频文件格式,它是无损音频文件的一种扩展名称。

WAV文件的结构相对简单,由文件头和音频数据组成。

下面将详细介绍WAV文件的结构。

1. RIFF头(RIFF Header)RIFF头是WAV文件的文件头,它包含了WAV文件的基本信息和数据格式。

RIFF头的结构如下:- ChunkID(4字节):文件标识,通常为"RIFF"。

- ChunkSize(4字节):文件大小,表示除了ChunkID和ChunkSize 字段外的文件大小。

- Format(4字节):文件格式,通常为"WAVE"。

2. 格式块(Format Chunk)格式块包含有关音频数据的格式信息。

格式块的结构如下:- SubChunk1ID(4字节):标识符,通常为"fmt "。

- SubChunk1Size(4字节):SubChunk1的大小,一般为16- AudioFormat(2字节):音频格式编码,一般为1表示PCM。

- NumChannels(2字节):声道数,常见为1表示单声道,2表示立体声。

- SampleRate(4字节):采样率,表示每秒采样的样本数。

- ByteRate(4字节):比特率,表示每秒的字节数。

- BlockAlign(2字节):块对齐,表示每个样本的字节数。

- BitsPerSample(2字节):每个样本的比特数。

3. 数据块(Data Chunk)数据块包含音频的实际采样数据。

- SubChunk2ID(4字节):标识符,通常为"data"。

- SubChunk2Size(4字节):SubChunk2的大小,表示音频数据的大小。

- Data(SubChunk2Size字节):音频数据。

总结起来,WAV文件结构包含RIFF头、格式块和数据块。

WAV文件文件头格式概述

WAV文件文件头格式概述

WAV文件文件头格式概述1.RIFF标识符:占据4个字节,固定值为"RIFF",表示该文件是一个资源交换文件。

2.文件长度:占据4个字节,表示文件的总长度,包括文件头和音频数据。

3.WAVE标识符:占据4个字节,固定值为"WAVE",表示该文件是一个WAV文件。

4. fmt格式块标识符:占据4个字节,固定值为"fmt ",表示该块是格式块。

5.格式块大小:占据4个字节,表示格式块的大小。

6.音频格式:占据2个字节,表示音频数据的格式,常见的值为PCM (脉冲编码调制)。

7.通道数:占据2个字节,表示音频数据的通道数,常见的值为1(单声道)和2(立体声)。

9.数据传输率:占据4个字节,表示每秒的数据传输率。

10.数据块对齐:占据2个字节,表示音频数据块的对齐方式。

11.位深度:占据2个字节,表示音频数据的位深度,即每个样本的位数。

12. 数据标记符:占据4个字节,固定值为"data",表示下一个块是音频数据块。

13.音频数据长度:占据4个字节,表示音频数据块的长度。

14.音频数据:占据实际长度,表示音频的实际数据。

WAV文件头是一个固定长度为44个字节的结构,用于描述WAV文件的基本信息和格式。

每个字节都有特定的含义,包括文件类型标识、文件长度、音频格式、通道数、采样率、位深度等。

通过读取文件头,可以了解WAV文件的基本信息,并在解码和播放音频时进行相应的处理。

总体而言,WAV文件头格式提供了关于音频数据的基本信息,使得解码器和播放器能够正确处理和播放音频数据。

同时,WAV文件头的固定结构也使得该文件格式易于解析和处理。

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(秒)。

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文件提供的语音信息可以满足语音特征识别的要求。

WAV文件格式分析详解

WAV文件格式分析详解

WAV文件格式分析详解WAV是一种非常常见的音频文件格式,它被广泛用于存储音乐、录音和其他音频数据。

以下是对WAV文件格式的详细分析:1.WAV文件的基本结构:-WAV文件是由一系列音频样本组成的。

每个样本表示一个特定时刻的音频振幅值。

- WAV文件以RIFF(Resource Interchange File Format)文件标识符开头。

- WAV文件由多个子块(chunk)组成,每个子块包含特定类型的数据。

- 子块包括文件头("fmt ")块,音频数据("data")块和其他可选的附加块。

2. 文件头("fmt "块):-文件头描述了WAV文件的格式和属性。

-文件头包含了采样率、音频通道数、样本大小(位数)等信息。

-附加块(可选)可能包含其他的扩展信息,如压缩格式、块对齐等。

3. 音频数据("data"块):-音频数据块是WAV文件中实际存储音频样本值的部分。

- 它以一个子块标识符("data")开头,紧随其后的是存储音频样本的二进制数据。

4.WAV文件属性:-采样率:表示每秒播放的样本数,常用的有44.1kHz(CD音质)和48kHz(DVD音质)。

- 音频通道数:表示同时播放的声道数,常见的有单声道(Mono)和立体声(Stereo)。

-样本大小:表示每个样本的位数,常用的有8位、16位和24位。

-比特率:表示每秒传输的位数,由采样率、样本大小和通道数决定。

-块对齐:表示每个子块的字节数,为样本大小×通道数。

5.WAV文件的优点和应用:-WAV文件具有较高的音质,因为它是无损压缩的。

-WAV文件是一种开放的标准,可以在不同的操作系统和平台上使用。

-WAV文件适用于存储和传输音频数据,如音乐、录音、语音等。

综上所述,WAV文件格式是一种常见的音频文件格式,它以RIFF文件标识符开始,由文件头、音频数据和附加块组成。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、各种WAV文件头格式
WAV文件也分好几个种类,相应的非数据信息存储在文件头部分,以下是各种WAV文件头格式。

表18KHz采样、16比特量化的线性PCM语音信号的WAV文件头格式表(共44字节)
表28KHz采样、8比特A律量化的PCM语音信号的WAV文件头格式表(共58字节)
表38KHz采样、8比特U律量化的PCM语音信号的WAV文件头格式表(共58字节)
表4ADPCM语音编码后的WAV文件头格式表(共90字节)
表5GSM(Global System for Mobile Communication全球移动通信系统)语音编码后的WAV文件头格式表(共60字节)
表6SBC(Sub-Band Coding子带编码)语音编码后的WAV文件头格式表(共58字节)
表7CELP(Code Excited Linear Prediction码激励线性预测编码——近10年来最成功的语音编码算法)语音编码后的WAV文件头格式表(共58字节)
概念1、读取WAV文件,填写WAVEFORMATEX结构
WAVEFORMATEX
typedef struct{WORD wFormatTag;WORD nChannels;DWORD nSamplesPerSec;DWORD nAvgBytesPe rSec; WORD nBlockAlign;WORD wBitsPerSample;WORD cbSize;} WAVEFORMATEX;
具体参数解释如下:
wFormatTag:波形数据的格式,定义在MMREG.H文件中
nChannels:波形数据的通道数:单声道或立体声
nSamplesPerSec:采样率,对于PCM格式的波形数据,采样率有8.0 kHz,11.025kHz,22.05 kHz,44.1 kHz 等
nAvgBytesPerSec:数据率,对于PCM格式的波形数据,数据率等于采样率乘以每样点字节数nBlockAlign:每个样点字节数
wBitsPerSample:采样精度,对于PCM格式的波形数据,采样精度为8或16
cbSize:附加格式信息的数据块大小
概念2、定义设备头结构
以下WAVEHDR定义了指向波形数据缓冲区的设备头。

WAVEHDR
typedef struct { LPSTR lpData; DWORD dwBufferLength; DWORD dwBytesRecorded; DWORD dwUser ; DWORD dwFlags; DWORD dwLoops; struct wavehdr_tag * lpNext; DWORD reserved; } WAVEHDR; lpData:波形数据的缓冲区地址
dwBufferLength:波形数据的缓冲区地址的长度
dwBytesRecorded:当设备用于录音时,标志已经录入的数据长度
dwUser:用户数据
dwFlags:波形数据的缓冲区的属性
dwLoops:播放循环的次数,仅用于播放控制中
lpNext和reserved均为保留值
注意:上述结构体以及我们在程序中所使用到的“HWAVEIN””HWAVEOUT”结构体均是系统已经存在的,我们只需要对其进行赋值即可。

二、PCM(44字节)的W AV文件头及其相关的编程方法
1、以下就经常见的一种格式PCM(44字节)的WAV文件头进行分析。

举例说明:kugoo下载的一首wav文件:魏三抹去泪水wav.wav(大小14,703,980 字节,时长2:46),文件头如下:
⑴地址00H-03H,值为“RIFF”标志;
⑵地址04H-07H,值为“64 5D E0 00”,存储的是文件大小刨去8字节后的值,注意这个是little-endian 的,也就是高地址存低位,地地址存高位,所以Size=00E05D64H=14703972字节,比文件总大小少8个字节,这8个字节就是00H-07H;
⑶地址08H-0FH,就是“WAVEfmt ”标记;
⑷地址10H-13H,fmt格式的块大小,这种格式时是“10 00 00 00”,也是little-endian的,即块大小为16,也有可能为18,这时最后多了2个字节的附加信息。

其他格式的可能是20;
⑸地址14H-15H,“01 00”,也是little-endian的,标记编码方式,一般为0x0001;
⑹地址16H-17H,“01 00”,也是little-endian,标记声道数,这里值为1。

注意1代表单声道,2代表双声道;
⑺地址18H-1BH,“44 AC 00 00”,也是little-endian,标记采样频率,这里为441000Hz;
⑻地址1CH-1FH,“88 5801 00”每秒所需的字节数,也是little-endian,
bytepersec=00015888H=88200(字节)。

(加上点自己的看法88200=频率*采样一次占的字节数
=44100*2,我觉得这种关系是存在的,虽然很多资料上没提到);
⑼地址20H-21H,“02 00”,采样一次占字节数,有些地方也叫数据块对齐单位,也是little-endian 的,这里是两个字节。

声道数*量化数/8=1*16/8=2(字节);
⑽地址22H-23H,“10 00”,量化数,也就是每个采样需要的bit数,也是little-endian的,所以这里是16位;
⑾地址24H-27H,“64 61 74 61”,就是“data”了;
⑿地址28H-2BH,“40 5D E0 00”,存储的是文件大小刨去44字节后的值,这个也是little-endian的,Size=00E05D40H=14703936字节。

2、编程方法
⑴计算文件播放时长
文件播放时长=(文件总长度-文件头长度)/每秒所需的字节数。

如上例duration=(14,703,980 -44)/88200=166.7s,这个在kugoo的制作铃声功能下可以查询的到。

⑵按时间点切割文件(只精确到秒已用程序实现过,精确到0.1s理论上也是可以,但是没有用程序去实现)。

①切割文件的前N秒为一个新文件
第一步,计算N秒的偏移量,SetOff=N*每秒所需的字节数
第二步,算出新文件的大小,修改文件头的两个size值。

第三步,新的文件头以二进制形式写入到新文件,紧接着根据偏移量把原文件中的第45字节到(setOff-1)字节写入到新文件。

②窃取中间某个时间段为一个新文件
这里可以根据①的步骤进行,同样的要修改文件头。

三、wav文件格式
WAV为微软公司(Microsoft)开发的一种声音文件格式,文件作为多媒体中使用的声波文件格式之一,它是以RIFF(Resource Interchange File Format)格式为标准的。

每个WAV文件的头四个字节便
是“RIFF”。

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

其中文件头又分为RIFF/WAV文件标识段和声音数据格式说明段两部分,包含了音频流的编码参数。

WAV对音频流的编码没有硬性规定,除了PCM(Pulse Code Modulation脉冲编码调制)之外,还有几乎所有支持ACM规范的编码都可以为WAV的音频流进行编码,如MP3编码同样也可以运用在WAV中,只要安装好了相应的Decode(指令解码),就可以欣赏这些WAV了。

在windows平台下,基于PCM编码的WAV是被支持得最好的音频格式,所有音频软件都能完
美支持,由于本身可以达到较高的音质要求,因此,WAV也是音乐编辑创作的首选格式,适合保存音乐素材。

因此,基于PCM编码的WAV被作为了一种中介的格式,常常使用在其他编码的相互转
换之中,例如MP3转换成WMA。

WAV文件可以存储大量格式的数据,通常采用的音频编码方式是脉冲编码调制(PCM)。

由于WAV格式源自Windows/Intel环境,因而采用Little-Endian(小字节序、低字节序)字节顺序进行存储。

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

WAV文件数据块包含以脉冲编码调制(PCM)格式表示的样本,WAV文件是由样本组织而成的。

在单声道WAV文件中,声道0代表左声道,声道1代表右声道;在多声道WAV文件中,样本是交替出现的。

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

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

相关文档
最新文档