声音(WAV)文件的解读

合集下载

PCM编码与Waveform音频文件(.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文件格式分析与详解

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文件格式分析
WAV(PCM)文件格式是一种容器文件格式,它可以包含多种编码方式的
音频数据,但最常见的是PCM编码方式。

PCM是一种无损的音频编码方式,它将音频信号按照时序进行采样,并将每个采样值量化成离散的数字,进
而进行存储。

PCM编码方式的音频数据是最原始、最接近原始音频信号的
数据,因此在音质上具有高保真性。

文件头是WAV(PCM)文件的第一部分,用于描述整个文件的基本信息。

文件头的长度为44个字节。

它包含了文件的格式、采样率、通道数、量
化位数等信息。

其中,采样率表示每秒采样的次数,通道数表示音频数据
的通道数(例如单声道或立体声),量化位数表示每个采样值用多少位进
行表示。

附加信息部分是可选的,它可以用来存储一些附加的音频信息,如音
频标记、标题、歌手信息等。

附加信息部分的长度可以根据需要进行扩展。

然而,WAV(PCM)文件格式也存在一些不足之处。

由于PCM编码方式没
有对音频数据进行压缩处理,因此WAV(PCM)文件的尺寸相对较大,占用
存储空间较多。

另外,由于其采样率和量化位数的限制,WAV(PCM)文件格
式可能无法满足一些高质量音频的需求。

针对这些问题,人们常常使用其
他音频格式如MP3、AAC等进行压缩编码,以减小文件尺寸并提高存储和
传输效率。

总结起来,WAV(PCM)文件格式是一种常见的音频文件格式,它基于PCM编码方式进行存储和传输。

WAV(PCM)文件格式具有音质高、兼容性强
等优点,但同时也存在文件较大和存储、传输效率低的不足之处。

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

常见的声音文件格式

常见的声音文件格式

常见的声音文件格式声音文件格式是用来储存、传输和播放声音的一种文件格式。

目前常见的声音文件格式有MP3、WAV、AIFF、FLAC和OGG等。

首先,MP3是一种广泛应用于音频压缩的文件格式。

它通过压缩音频数据来减小文件大小,但保持高质量的音频声音。

MP3文件格式使音频文件易于传输和共享,适合在各种设备上播放,如电脑、手机、MP3播放器等。

MP3文件格式广泛应用于音乐、广播、电影和其他多媒体领域。

它被广大用户所熟知和喜爱。

其次,WAV是一种无损的声音文件格式。

它以原始音频数据的形式储存声音,无任何压缩。

这样的文件格式可以保持音频的原始质量,并提供高保真的声音效果。

WAV文件格式在音频制作和编辑领域被广泛使用,如音乐制作、录音棚、电影制作等。

尽管WAV文件相对较大,但它提供了最高质量的声音。

除了WAV,AIFF也是一种无损声音文件格式。

它由苹果公司开发,并在Macintosh系统中被广泛使用。

AIFF文件格式具有与WAV相似的特点,支持无损音频数据的存储和传输,以及高质量的声音效果。

AIFF文件格式常用于音乐制作、音频编辑和传输,具有广泛的应用和兼容性。

另外,FLAC是一种开源无损的音频压缩格式。

与MP3不同,FLAC通过压缩音频数据来减小文件大小,但保持无损质量的音频声音。

FLAC文件格式可以实现较高的压缩比,使音频文件更容易存储和传输。

它被广泛用于音乐爱好者和音频专业人士之间的音频交流和分享。

最后,OGG是一种自由而开放的多媒体容器格式,支持多种音频和视频编码。

在音频方面,OGG文件格式通常使用Vorbis编码进行音频压缩。

它提供了相对较高的音频质量和较小的文件大小。

OGG文件格式适用于音乐、游戏、动画等领域,提供了多种解决方案和自定义选项。

总结起来,常见的声音文件格式包括MP3、WAV、AIFF、FLAC和OGG。

它们在音频压缩、无损音频、高保真声音和多媒体容器方面都有各自的特点和应用。

了解这些常见的声音文件格式对于使用、存储和传输声音文件都有指导意义,能够更好地满足不同需求和需求。

WAV文件格式分析与应用

WAV文件格式分析与应用

14H
2
int
1(WAVE_FORMAT_PCM); 格式类别,1 表示为
PCM 形式的声音数据
16H
2
int
2; 通道数,单声道为 1,双声道为 2
18H
2
int
44100; 采样频率(每秒样本数)
1CH
4
long int 0x10B10000; 每秒数据量;其值为通道数×每秒数据
位数×每样本的数据位数/8。播放软件利用此值可以
采样一
采样二
……
低字节
高字节
低字节
高字节
……
16 位双声道:
采样一
……
左声道
右声道
……
低字节
高字节
低字节
高字节
……
图四、WAVE 文件数据采样格式
WAV 文件格式实例分析: 0123456789ABCDEF
00000000H 52 49 46 46 0A 06 01 00 57 41 56 45 66 6D 74 20 00000010H 12 00 00 00 01 00 02 00 44 AC 00 00 10 B1 02 00 00000020H 04 00 10 00 64 61 74 61 E6 05 01 00 00 00 00 00
RIFF/LIST 标志符
数据 1 大小
数据 1
格式/列表类型 数据
图二、RIFF/LIST 块结构 只要依循此一结构的文件,我们均称之为 RIFF 档。此种结构提供了一种系统化的分类。
如果和 MS 一 DOS 文件系统作比较,"RIFF"chunk 就好比是一台硬盘的根目录,其格式辨别码
便是此硬盘的逻辑代码(C:或 D:),而"L1ST"chunk 即为其下的子目录,其他的 chunk 则为一 般的文件。至于在 RIFF 文件的处理方面,微软提供了相关的函数。视窗下的各种多媒体文件 格式就如同在磁盘机下规定仅能放怎样的目录,而在该目录下仅能放何种数据。

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格式


采样频率
AvgBytesPerSec 4 Bytes
BlockAlign
2 Bytes
BitsPerSample 2 Bytes
每秒所需字节数
数据块对齐单位(每个采样需要的字节 数)
每个采样需要的 bit 数
WAVE_FORMAT
2 Bytes 附加信息(可选,通过 Size 来判断有无)
图 3 Format Chunk 以'fmt '作为标示。一般情况下 Size 为 16,此时最后附加信息没有;如果为 18,则最后 多了 2 个字节的附加信息。主要由一些软件制成的 wav 格式中含有该 2 个字节的附加信息。
//Read RIFF_HEADER fread(&riff_header, sizeof(struct RIFF_HEADER), 1, wav_in);
if(memcmp(riff_header.szRiffID, "RIFF", 4) != 0 || memcmp(riff_header.szRiffFormat, "WAVE", 4) != 0 )
Fact Chunk
名称
所占字节数
具体内容

4 Bytes
‘fact’
Size
4 Bytes
数值为 4
data
4 Bytes
‘WAVE’
图 4 Fact Chunk Fact Chunk 是可选字段,一般当 wav 文件由某些软件转化而成,则包含该 Chunk。
Data Chunk
名称 ID Size data
2、具体介绍 RIFF WAVE Chunk
名称
所占字节数
具体内容

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