WAV语音文件格式的分析与处理
PCM编码与Waveform音频文件(.wav)格式详解

PCM编码与Waveform⾳频⽂件(.wav)格式详解 ⼤家好,我是痞⼦衡,是正经搞技术的痞⼦。
今天痞⼦衡给⼤家介绍的是PCM编码及Waveform⾳频⽂件格式。
嵌⼊式⾥有时候也会和⾳频打交道,⽐如最近特别⽕的智能⾳箱产品,离不开前端的⾳频信号采集、降噪,中间的语⾳识别(ASR)、⾃然语⾔处理(NLP),以及后端的⽂语合成(TTS)、⾳频播放。
⾳频信号采集是处理声⾳的第⼀步,要采集⾳频就离不开PCM编码,⾳频采集完成⾃然需要保存,waveform格式(.wav)是⼀种最经典的⾳频⽂件格式。
今天痞⼦衡就给⼤家详细介绍PCM编码以及waveform⽂件格式。
⼀、声⾳基础 众所周知,声⾳是由物体振动产⽣的声波,声⾳通过介质(空⽓或固体、液体)传播并能被⼈听觉器官所感知。
发⾳物体情况(材料,距离,振动强度等)不同,产⽣的声⾳也不同。
为了区分不同的声⾳,我们主要⽤如下三个参数来描述声⾳的特征:⾳量:⼈主观上感觉到的声⾳⼤⼩(也叫响度),由“振幅”(amplitude)和⼈离声源的距离决定。
⾳调:声⾳的⾼低(⾼⾳、低⾳),由“频率”(frequency)决定,频率越⾼⾳调越⾼。
⾳⾊:⾳⾊是⼀种抽象的东西,波形决定了声⾳的⾳⾊。
声⾳因不同发声物体材料⽽具有不同特性,波形是把这个抽象特性直观的表现出来。
典型的⾳⾊波形有⽅波,锯齿波,正弦波,脉冲波等。
三⼤参数⾥除了⾳⾊没有度量单位外(可以认为⾳⾊是声⾳的UID,每种⾳⾊都是独⼀⽆⼆的),⾳量和⾳调均有度量单位,这意味着⾳量和⾳调是可调整的,也是声⾳之间可对⽐的特征参数。
1.1 ⾳量单位-分贝(dB) 声波是⼀种机械波(压⼒波)。
声波(空⽓质点)的连续振动,使空⽓分⼦不断交替的压缩和松弛,使⼤⽓压迅速产⽣起伏,这种⽓压的起伏部分,就称为声压。
声压的振幅表⽰质点离开平衡位置的距离,反映从波形波峰到波⾕的压⼒变化,以及波所携带的能量的多少。
声压值虽然可以反映⾳量⼤⼩,但⼈们⽇常⽣活中遇到的声⾳,若以声压值表⽰,变化范围⾮常⼤(达到六个数量级以上),并且⼈体听觉对声信号强弱刺激反应不是线形的,⽽是成对数⽐例关系。
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编码和其它压缩算法。
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开始的位置。
wav文件格式分析

char szFactID[4]; // 'f','a','c','t'
DWORD dwFactSize;
};
Data Chunk
==================================
| |所占字节数| 具体内容 |
==================================
{
char szFmtID[4]; // 'f','m','t',' '
DWORD dwFmtSize;
WAVE_FORMAT wavFormat;
};
Fact Chunk
==================================
| |所占字节数| 具体内容 |
--------------------------------------------------------------------
| Size | 4 Bytes | 数值为16或18,18则最后又附加信息 |
-------------------------------------------------------------------- ----
| FormatTag | 2 Bytes | 编码方式,一般为0x0001 | |
-------------------------------------------------------------------- |
| Channels | 2 Bytes | 声道数目,1--单声道;2--双声道 | |
wav音频文件格式分析与数据获取

wav音频文件格式分析与数据获取作者:罗海涛来源:《电脑知识与技术》2016年第27期摘要:音频文件是把语音信号离散化的数字文件,wav格式的音频文件是常用的二进制音频格式,广泛应用于语音信号处理、语音识别、语音合成等领域;本文详细分析了wav音频文件格式,并用C语言编程,实现对该格式文件的访问,获取音频信息和数据。
关键字:wav;音频文件;音频信息;音频数据中图分类号:TP37 文献标识码:A 文章编号:1009-3044(2016)27-0211-031 概述语言是人们之间进行通讯和交流必不可少的手段。
语音由人的发音器官发出,语音信号是连续的模拟信号,在用计算机来处理时,需要进行数字化,包括采样、量化等过程,转换成离散的数字信号,保存在音频文件中。
现在很多领域要求对语音信号中的音频数据进行进一步的加工和处理。
例如,利用读出的音频信号数据,进行语音信号时域和频域分析、语音压缩、语音编码、解码、语音合成、语音识别、语音增强等,并通过波形观察比较不同编码效果。
另外,利用多媒体语音系统我们还可以用语音数据和波形方便地进行噪声模拟分析,语音特征提取研究,以及语音识别和训练等应用方面的实验。
又如:在人工智能领域,通过设计软件和硬件电路,用声音去控制计算机工作,还有机器人通过语音与人进行简单的对话交流等等。
这些都要求我们对数字语音信号进行一些必要的加工处理。
wav文件格式是一种重要的数字音频文件格式,是目前应用很广泛的一种音频格式。
相比于其他格式如MP3、MP4、RAM等压缩效率更高的音频文件格式,wav文件没有采用压缩技术,因而其文件要大很多,一般都在几兆字节,甚至更大。
但也正因为没有采用压缩技术,wav文件中声音的采样数据很容易被读出来,便于做其他处理。
例如:画出声音的信号波形、作出频谱,进行时域、频域分析,提取语音信号的特征参数用于语音识别等。
现在的应用程序几乎都支持wav文件格式,也有专门软件可以完成从wav文件格式向其他文件格式的转换,或者把其他格式文件转换为wav格式,例如,微软公司的Adobe Audition。
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全集解析

cnt++; } printf("Sample Cnt:%d\n",cnt); free(sample); fclose(fp); fclose(fp1); return 0; }
4.3.将 PCM 音频数据转换成 WAV 格式
WAV 为微软公司(Microsoft)开发的一种声音文件格式,它符合 RIFF(Resource Interchange File Format)文件规范,用于保存 Windows 平台的音频信息资源,被 Windows 平台及其应用程序所广泛支持。 WAVE 文件通常只是一个具有单个 “WAVE”块的 RIFF 文件,该块由两个子块(”fmt”子数据块和”data”子
db 的意义
其实再简单不过了,就是把一个很大(后面跟一长串 0 的)或者很小(前面有一长串 0 的)的数比较简短地 表示出来[2]。dB 的引入是为了将乘除关系变为加减关系,更便于工程运算。如: X = 1000000000000000= 10lgX = 150 dB X = 0.000000000000001 = 10lgX = -150 dB [例 1] 甲功率比乙功率大一倍,那么 10lg(甲功率/乙功率)=10lg2=3dB。也就是说,甲的功率比乙的功率 大 3 dB。 [例 2] 7/8 英寸 GSM900 馈线的 100 米传输损耗约为 3.9dB。 [例 3] 如果甲的功率为 46dBm,乙的功率为 40dBm,则可以说,甲比乙大 6 dB。 [例 4] 如果甲天线为 12dBd,乙天线为 14dBd,可以说甲比乙小 2 dB。
22 56 00 00 88 58 01 00 04 00 10 00 64 61 74 61 00 08 00 00 00 00 00 00 24 17 1e f3 3c 13 3c 14 16 f9 18 f9 34 e7 23 a6 3c f2 24 f2 11 ce 1a 0d
wav文件格式详解

WAV (Waveform audio format )是微软与IBM 公司所开发的一种声音编码格式,它符合RIFF(Resource Interchange File Format)文件规范,用于保存Windows 平台的音频信息资源,被Windows 平台及其应用程序所广泛支持,也是其音乐发烧友中常用的指定规格之一。
由于此音频格式未经过压缩,所以在音质方面不会出现失真的情况,但档案的体积因而在众多音频格式中较为大。
该格式支持多种音频数字,取样频率和声道,标准格式化的WAV 文件和CD 格式一样,也是44.1K 的取样频率,16位量化数字,因此在声音文件质量和CD 相差无几! WAV 打开工具是WINDOWS 的媒体播放器。
每个WAVE 文件的头四个字节便是“RIFF”。
WAVE 文件由文件头和数据体两大部分组成。
其中文件头又分为RIFF /WAV 文件标识段和声音数据格式说明段两部分。
WAVE 文件各部分内容及格式见下表。
文件头声音数据块偏移地址 字节数 类型 内容24H~27H 4 字符 数据标志符(data ) 28H~2BH 4 长整型 采样数据总数 2CH......采样数据示例下图是用UltraEdit 打开的wav 文件的部分截图偏移地址 字节数 类型 内容00H~03H 4 字符 资源交换文件标志(RIFF ) 04H~07H 4 长整数 从下个地址开始到文件尾的总字节数 08H~0BH 4 字符 WAV 文件标志(WAVE ) 0CH~0FH 4 字符 波形格式标志(FMT )10H~13H 4 整数 过滤字节(一般为00000010H )14H~15H 2 整数 格式种类(值为1时,表示数据为线性PCM 编码)16H~17H 2 整数 通道数,单声道为1,双声音为2 18H~1BH 4 长整数 采样频率1CH~1FH 4 长整数 波形数据传输速率(每秒平均字节数) 20H~21H 2 整数 数据的调整数(按字节计算) 22H~23H2整数样本数据位数此段W A V文件是使用window自带的录音机软件完成,生成的16进制文件内容,采用用的是小段存放格式(高地址存储高位,低地址存储低位)按字节存储(8bit)补充头文件样例说明:(1)“52 49 46 46”这个是Ascii字符“RIFF”,这部分是固定格式,表明这是一个WAVE 文件头。
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(秒)。
常见音频格式及其特点

常见音频格式及其特点常见音频格式1.PCM编码的WAVPCM编码的WAV文件是音质最好的格式,Windows平台下,所有音频软件都能够提供对她的支持。
Windows提供的WinAPI中有不少函数可以直接播放wav,因此,在开发多媒体软件时,往往大量采用wav,用作事件声效和背景音乐。
PCM编码的wav可以达到相同采样率和采样大小条件下的最好音质,因此,也被大量用于音频编辑、非线性编辑等领域。
特点:音质非常好,被大量软件所支持。
适用于:多媒体开发、保存音乐和音效素材。
2.MP3MP3具有不错的压缩比,使用LAME编码的中高码率的mp3,听感上已经非常接近源WAV文件。
使用合适的参数,LAME编码的MP3很适合于音乐欣赏。
由于MP3推出年代已久,加之还算不错的音质及压缩比,不少游戏也使用mp3做事件音效和背景音乐。
几乎所有著名的音频编辑软件也提供了对MP3的支持,可以将mp3象wav 一样使用,但由于mp3编码是有损的,因此多次编辑后,音质会急剧下降,mp3并不适合保存素材,但作为作品的demo确实相当优秀的。
mp3长远的历史和不错的音质,使之成为应用最广的有损编码之一,网络上可以找到大量的mp3资源,mp3player日渐成为一种时尚。
不少VCDPlayer、DVDPlayer甚至手机都可以播放mp3,mp3是被支持的最好的编码之一。
MP3也并非完美,在较低码率下表现不好。
MP3也具有流媒体的基本特征,可以做到在线播放。
特点:音质好,压缩比比较高,被大量软件和硬件支持,应用广泛。
适用于:适合用于比较高要求的音乐欣赏。
3.OGGOgg是一种非常有潜力的编码,在各种码率下都有比较惊人的表现,尤其中低码率下。
Ogg除了音质好之外,她还是一个完全免费的编码,这对ogg被更多支持打好了基础。
Ogg有着非常出色的算法,可以用更小的码率达到更好的音质,128kbps的Ogg比192kbps甚至更高码率的mp3还要出色。
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格式转换分析

WAV音频转换分析报告音频转换数据:莫斯科没有眼泪.wav 1400kbps 40.2M莫斯科没有眼泪.wma 320kbps 16.4M莫斯科没有眼泪.wma 128kbps 8.4M莫斯科没有眼泪.mp3 320kbps 10.1M莫斯科没有眼泪.mp3 128kbps 4.4M莫斯科没有眼泪.mp3 64kbps 2.2M莫斯科没有眼泪.mp3 33kbps 1.01M数据分析:1).WAV本身的结构更适合存放未经压缩的音频数据,因此其最大的缺点是占用存储空间大,不适合长时间记录数据。
2)在128kbps及以下码流的试听中WMA完全超过了MP3格式,低码流之王不是浪得虚名的。
但是当码流上升到128kbp以后,WMA的音质却并没有如MP3一样随着码流的提高而大大提升。
3). 相同数据率下如128Kbs,WMA的音值的确稍胜一筹;5). 在低数据率情况下,WMA的音质比MP3要高出很多。
如64Kbps时,WMA基本与128Kbps相差无几,而MP3已有明显差别;在32Kbps时WMA依然可听,MP3已经绝对不可听了;值的说明的是,128kbps的MP3要好于64kbps的WMA,更远远好于48Kbps的WMA。
6). MP3的确是一种非常成功的算法,在128Kbps时音质足够,如果用大于128Kbps的变码率压缩则音质可以达到非常好的程度,但其数据率的下限是128Kbps,在低于这个数值时,效果大幅度下降;7).WMA主要改善了极低数据率下高频信号的回放,在大于128Kbps时与MP3相比并无优势,而且高频失真情况比较严重,但如果用于压缩英语听力等素材则是上上之选。
8).从格式转换后,发现主要问题之一是WMA的高音部分有金属声,失真较大。
9).总体感觉WMA的声音偏硬,适合流行摇滚,如果是古典或者纯人声的话,感觉有点生硬,在低于128K时,WMA对于MP3拥有绝对优势!128以上的WMA相比MP3会有薄的感觉。
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(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头、格式块和数据块。
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格式解析

ID big-endian FOURCC 值为'R' 'I' 'F' 'F' Size little-endian data字段中数据的字节数Data big-endian包含其它的chunkID big-endian FOURCC 值为 'f' 'm' 't' ' 'Size little-endian数据字段包含数据的⼤⼩。
如⽆扩展块,则值为16;有扩展块,则值为 16 + 2字节扩展块长度 + 扩展块长度或者值为18(只有扩展块的长度为2字节,值为0)Data little-endianformat_tag2字节,表⽰⾳频数据的格式。
如值为1,表⽰使⽤PCM格式。
little-endianchannels2字节,声道数。
值为1则为单声道,为2则是双声道。
little-endiansamples_per_sec采样率,主要有22.05KHz,44.1kHz和48KHz。
little-endianbytes_per sec⾳频的码率,每秒播放的字节数。
samples_per_sec *channels * bits_per_sample / 8,可以估算出使⽤缓冲区的⼤⼩little-endianblock_align数据块对齐单位,⼀次采样的⼤⼩,值为声道数 * 量化位数 / 8,在播放时需要⼀次处理多个该值⼤⼩的字节数据。
WAV格式解析WAV为微软公司(Microsoft)开发的⼀种声⾳⽂件格式,它符合RIFF(Resource Interchange File Format)⽂件规范,⽤于保存Windows平台的⾳频信息资源,被Windows平台及其应⽤程序所⼴泛⽀持,该格式也⽀持MSADPCM,CCITT A LAW等多种压缩运算法,⽀持多种⾳频数字,取样频率和声道,标准格式化的WAV⽂件和CD格式⼀样,也是44.1K的取样频率,16位量化数字,因此在声⾳⽂件质量和CD相差⽆⼏。
语音信号实验报告

一、实验目的1. 理解语音信号的基本特性和处理方法。
2. 掌握语音信号的采样、量化、编码等基本过程。
3. 学习使用相关软件对语音信号进行时域和频域分析。
4. 了解语音信号的降噪、增强和合成技术。
二、实验原理语音信号是一种非平稳的、时变的信号,其频谱特性随时间变化。
语音信号处理的基本过程包括:信号采集、信号处理、信号分析和信号输出。
三、实验仪器与软件1. 仪器:计算机、麦克风、耳机。
2. 软件:Matlab、Audacity、Python。
四、实验步骤1. 信号采集使用麦克风采集一段语音信号,并将其存储为.wav格式。
2. 信号处理(1)使用Matlab读取.wav文件,提取语音信号的采样频率、采样长度和采样数据。
(2)将语音信号进行时域分析,包括绘制时域波形图、计算信号的能量和过零率等。
(3)将语音信号进行频域分析,包括绘制频谱图、计算信号的功率谱密度等。
3. 信号分析(1)观察时域波形图,分析语音信号的幅度、频率和相位特性。
(2)观察频谱图,分析语音信号的频谱分布和能量分布。
(3)计算语音信号的能量和过零率,分析语音信号的语音强度和语音质量。
4. 信号输出(1)使用Audacity软件对语音信号进行降噪处理,比较降噪前后的效果。
(2)使用Python软件对语音信号进行增强处理,比较增强前后的效果。
(3)使用Matlab软件对语音信号进行合成处理,比较合成前后的效果。
五、实验结果与分析1. 时域分析从时域波形图可以看出,语音信号的幅度、频率和相位特性随时间变化。
语音信号的幅度较大,频率范围一般在300Hz~3400Hz之间,相位变化较为复杂。
2. 频域分析从频谱图可以看出,语音信号的能量主要集中在300Hz~3400Hz范围内,频率成分较为丰富。
3. 信号处理(1)降噪处理:通过对比降噪前后的时域波形图和频谱图,可以看出降噪处理可以显著降低语音信号的噪声,提高语音质量。
(2)增强处理:通过对比增强前后的时域波形图和频谱图,可以看出增强处理可以显著提高语音信号的幅度和频率,改善语音清晰度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
WAV语音文件格式的分析与处理
作者:张敬怀, 马道钧
作者单位:张敬怀(北京电子科技学院实验中心,北京,100070), 马道钧(北京电子科技学院计算机科学与技术系,北京,100070)
刊名:
北京电子科技学院学报
英文刊名:JOURNAL OF BEIJING ELECTRONIC SCIENCE AND TECHNOLOGY INSTITUTE
年,卷(期):2004,12(2)
被引用次数:7次
1.马道钧话音信号的功率谱分析[期刊论文]-清华大学学报(自然科学版) 1999(05)
2.马道钧;张增话音信号限带的实验分析 1999(05)
3.陈昭炎Windows环境下的声音信号处理方法[期刊论文]-计算机应用研究 2001(01)
4.朱学芳;徐建平计算机语音信号处理与语音识别系统 1998(05)
1.郭兴吉.Guo,Xingji WAV波形文件的结构及其应用实践[期刊论文]-微计算机信息2005,21(8)
2.徐济仁.牛纪海.陈家松对WAV文件格式的实例分析[期刊论文]-电声技术2001(11)
3.徐济仁.牛纪海.陈家松WAV文件格式实例分析[期刊论文]-微型机与应用2002,21(3)
4.徐济仁.陈家松.谢成山基于多媒体WAV文件的语音特征识别[期刊论文]-计算机工程2000,26(11)
5.徐济仁.王昌宝.陈家松运用多媒体WAV文件格式二三例[期刊论文]-电子技术2001,28(1)
6.孙世军.彭承琳.白洋WAV音频文件的分句播放技术及应用[期刊论文]-计算机工程与应用2004,40(12)
7.张广渊.李晶皎.王显巍语音文件拼接算法的设计与实现[期刊论文]-沈阳大学学报2004,16(4)
8.张力强RIFF文件浅析[期刊论文]-电脑知识与技术(技术论坛)2005(2)
9.郭姣VB中调用API实现wav文件的记录和播放[期刊论文]-科技创新导报2009(3)
1.马道钧.陈天策.高婕语音端点检测方法的分析与实现[期刊论文]-北京电子科技学院学报 2007(4)
2.马道钧.张敬怀语音数据的分析与处理[期刊论文]-北京电子科技学院学报 2005(4)
3.赵文博.张生.孙国强.王艇艇WAV音频分句的算法设计[期刊论文]-微计算机信息 2011(8)
4.聂虹基于LPC2148和SD卡的语音信息处理技术研究[期刊论文]-自动化与仪器仪表 2010(3)
5.彭波.申长军.郑文刚.吴文彪.鲍锋智能语音驱鸟系统设计与实现[期刊论文]-农机化研究 2010(9)
6.贾安学.乔文孝.鞠晓东.车小花.陆蓉.王瑞甲声波测井井下数据压缩算法压缩效果测试[期刊论文]-测井技术2011(3)
7.宋培毓基于小波变换的语音分析训练系统[学位论文]硕士 2006
引用本文格式:张敬怀.马道钧WAV语音文件格式的分析与处理[期刊论文]-北京电子科技学院学报 2004(2)。