本文介绍 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. OO面向对象第一单元总结

    OO面向对象第一单元总结(表达式求导) 写在前面: 魔鬼课程oo第一单元终于结束,当终究要落笔总结,竟不知从何写起…… 回首再去看第一次的作业,你会满足于那时的幸福,或许,这就是成长吧! 千言万语,一 ...

  2. 读javascript高级程序设计-目录

    javascript高级编程读书笔记系列,也是本砖头书.感觉js是一种很好上手的语言,不过本书细细读来发现了很多之前不了解的细节,受益良多.<br/>本笔记是为了方便日后查阅,仅作学习交流 ...

  3. 从零开始学Python 二

    上一章我们已经安装好了Python环境,并且写出了第一个Python程序.下面我们接着继续学习.首先,来分析下上一章我们写的代码. 我们最初的目的是为了可以输出一串有意义的文字,最终选择了英文语句“h ...

  4. 简单的压力测试工具 siege

    $ siege -c 1000 -r 100 -b http://127.0.0.1:13579/3344 HTTP/1.0 200 0.02 secs: 49 bytes ==> GET /3 ...

  5. jenkins log文件突然占满磁盘空间

    今天早上同事反应jenkins构建job发生异常,于是登录机器查看发现磁盘空间已满.进一步排查之后发现jenkins的catalina.out文件已占满磁盘空间. 用tail看了下日志后面都是关于DN ...

  6. 六、Linux的用户和组

    1. 用户的管理 useradd 添加一个用户 useradd test 添加test用户 useradd test -d /home/t1  指定用户home目录 或者直接  adduser tes ...

  7. 坦克大战学习笔记-TankWar

    最近学习了马士兵老师直播的单机版坦克大战,模仿的做了一个,整理一下思路记录下来,项目git地址:https://github.com/zhuchangli/TankWar/tree/master 视频 ...

  8. 使用VirtualBox把IMG文件转换为VDI文件

    使用VirtualBox把IMG文件转换为VDI文件 首先确保已安装VirtualBox. 需要使用的命令: 语法:$ VBoxManage convertdd input.img output.vd ...

  9. CTF资料

    题目大概有这么几个 web,密码学,pwn(综合渗透),misc(杂项),reverse(逆向),ppc(编程类) 入门: http://bobao.360.cn/ctf/  360的CTF训练营ww ...

  10. Java互联网应用和企业级应用的区别

    企业级应用是为了满足企业日常运营所产生的IT应用,其目的是满足企业自己,对交付厂家而言,俗称2B业务:互联网应用则是面向个人用户,俗称2C业务.就个人经验,企业应用主要关注业务服务的能力,针对该企业的 ...