本文介绍 wav 文件格式,主要关注该类格式的结构。

参考:

  [1] 以一个wav文件为实例分析wav文件格式 ( 2017.04.11 CSDN )

  [2] WAV ( Wikipedia )

  [3] Ubuntu Linux 查看、编辑、比较二进制文件 ( 2014.4.24 ChinaUnix )

  [4] wav文件格式分析与详解 ( 2017.10.12 cnblog )

  [5] WAV文件格式解析 ( 2017.04.16 CSDN )

  [6] wav音频文件格式解析 ( 2016.09.11 CSDN )

1、背景


  波形( Waveform )文件格式,由于其拓展名为 .wav ,常被叫作 wave 文件。是微软和 IBM 的音频文件格式标准,主要用于 PC ( Personal Computer ) 存储音频文件。该标准利用了数据传输格式 ( Resource Interchange File Format ab. RIFF ) 中的比特流技术,在"数据块"中存储数据。传统的比特流技术使用的是线性脉冲码调制 ( linear pulse-code modulation ab.LPCM )格式。

2、结构


  为了查看十六进制的数据,还是花了一点功夫。事实上我先生成了目标音频文件,然后利用 VIM 的十六进制模式浏览该文件[3]

 vim -b file.wav
:%!xxd -g 1

示例如下:

   1 00000000: 52 49 46 46 24 40 00 00 57 41 56 45 66 6d 74 20  RIFF$@..WAVEfmt
2 00000010: 10 00 00 00 01 00 01 00 40 1f 00 00 80 3e 00 00 ........@....>..
3 00000020: 02 00 10 00 64 61 74 61 00 40 00 00 4a 83 48 b4 ....data.@..J.H.
4 00000030: 5b 23 ff dd 85 d9 e0 af fe ff da 88 a1 2c 66 61 [#...........,fa
5 00000040: 58 d0 20 a5 7a ad de ce 17 ba 94 56 9f 69 5f cd X. .z......V.i_.
6 00000050: 73 e9 0b 5f 5b 08 cf b9 73 66 c1 32 f3 40 68 61 s.._[...sf.2.@ha
7 00000060: b0 8d 60 ac e5 b9 ff 0c 97 b3 63 8a c4 bd aa a9 ..`.......c.....
8 00000070: dc 5a 0b da b3 70 57 d8 97 78 2b 28 09 10 41 e9 .Z...pW..x+(..A.
9 00000080: b4 c1 43 05 8b 1b 5b dd 0c 58 de 00 fc ff ba f9 ..C...[..X......
10 00000090: 06 8b 6e eb 75 04 4c 37 e8 75 d8 16 15 72 98 cd ..n.u.L7.u...r..

依据引用的示例可得 .wav 文件结构如下:

采样位数越大,电平描述越精细;采样频率越大,帧数多,高频细节越清晰。后面 [4-6] 三篇引用中有关于每一块数据的具体说明。


END

wav文件系列_1_wav格式解读的更多相关文章

  1. wav文件系列_2_Python实现读写

    本文介绍了 Python 实现音频读写的方法.Python wave 模块提供便捷的 wav 文件操作.该模块并不支持压缩与解压,但支持单声道/立体声的转换. 参考: [1] wave — Read ...

  2. Python解析Wav文件并绘制波形的方法

    资源下载 #本文PDF版下载 Python解析Wav文件并绘制波形的方法 #本文代码下载 Wav波形绘图代码 #本文实例音频文件night.wav下载 音频文件下载 (石进-夜的钢琴曲) 前言 在现在 ...

  3. 音视频学习系列第(三)篇---wav文件的存储和解析

    音视频系列 什么是wav wav是一种无损的音频文件格式,wav文件有两部分,第一部分是文件头,记录一些重要的参数信息,如音频的采样率,通道数,数据位宽,第二部分是数据部分,数据部分可以是PCM,也可 ...

  4. 如何利用 iTunes 把 m4a/wav 文件转成 MP3 格式

    MAC技巧 | 如何利用 iTunes 把 m4a/wav 文件转成 MP3 格式 - 简书

  5. 将任意音频格式文件转换成16K采样率16bit的wav文件

    此转换需要使用ffmpeg 假设有目录 d:\录音 目录有 张三.m4a, 李四.m4a xxx.m4a(其他任意格式音频触类旁通可以把 *.m4a改成*.*).批量转换成采样率16K,有符号,16b ...

  6. C++标准库实现WAV文件读写

    在上一篇文章RIFF和WAVE音频文件格式中对WAV的文件格式做了介绍,本文将使用标准C++库实现对数据为PCM格式的WAV文件的读写操作,只使用标准C++库函数,不依赖于其他的库. WAV文件结构 ...

  7. zlib压缩一个文件为gzip格式

    网上有很多针对zlib的总结,但是很零散,自己经过总结,实现了用zlib压缩一个文件为gzip格式,似的可以直接使用winr工具解压. 具体方法是使用zlib的deflate系列函数,将buffer压 ...

  8. PC-1500的代码存入WAV文件

    目录 第1章保存    1 1.1 操作    1 1.2 波形说明    4 1.3 波形整形    5 1.4 压缩    8 第2章载入    9 2.1 操作    9 2.2 音量    9 ...

  9. Ubuntu下用cue文件对ape和wav文件自动分轨

    很多音乐CD的镜像文件都带cue格式的分轨文件,在Ubuntu Linux下可以通过一些工具来实现自动分轨. 一.Ubuntu下需要安装的工具有flac,shntool,libav-tools $ s ...

随机推荐

  1. OSPFv3与OSPF的配置

    IPv6 路由-OSPFv3 实验目的 1.   掌握 OSPFv3 的配置方法 2.   掌握在帧中继环境下 OSPFv3 的配置方法 3.   掌握 OSPFv3 NSSA 的配置方法 4.   ...

  2. LAMP环境配置安装注意安装步骤及说明事项

    一.安装gcc shell># yum -y install gcc 二.安装zlib压缩库 shell>## cd /home/hsk/tar shell># tar –zxvf ...

  3. Django_URL

    视图函数介绍 视图一般都写在app的views中,并且视图的第一个参数永远都是request(HttpRequest)对象.这个对象存储了请求过来的所有信息,包括携带的参数以及一些头部信息等.再视图中 ...

  4. (JavaScript)实现上传图片实时预览和(文件)大小判断

    唉,为什么我一个做大数据和后端的要为前端耗尽心力啊??!! 昨天在做一个网页时遇到了一个问题,有一处需要插入图片,我原本的想法是获取到上传文件的URL,然后动态插入img标签,设置src为图片的URL ...

  5. Mysql生产指定时间段随机日期函数

    UPDATE basicsale_b2b2c.basic_customer SET registerDate = ( from_unixtime( unix_timestamp('2017-01-01 ...

  6. 关于分布式代码管理工具git

    一.安装 Step1  进入官网https://www.git-scm.com/download/下载,然后安装,一直“下一步”即可 Step2  验证是否安装成功,在任意地方右键,菜单中含有Git ...

  7. mysql排序之ORDER BY IF、ORDER BY配合IN、TIMESTAMPDIFF、TIMESTAMPADD、FIELD

    1.order by if 排序 SELECT * FROM pet ORDER BY if (species='snake',0,1),species;--species为snake的行数放置到了查 ...

  8. thinkpaidE480office安装文件夹

     C:\Program Files (x86)\Microsoft Office\root\Office16     需要嵌入office的小伙伴自行百度吧教程吧,网上有很多的

  9. unity中多个门的开关动画保持独立性

    List<Animation> storeAnimation; public void Awake() { storeAnimation = new List<Animation&g ...

  10. python全栈考题 3.30

    1.执行Python 脚本的两种方式 1.>>python ../pyhton.py      2. >>python.py   #必须在首行有 #!/usr/bin/env ...