本文介绍 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. 『高性能模型』轻量级网络ShuffleNet_v1及v2

    项目实现:GitHub 参考博客:CNN模型之ShuffleNet v1论文:ShuffleNet: An Extremely Efficient Convolutional Neural Netwo ...

  2. React文档(二十二)context

    React中,通过React组件可以很容易地追踪数据流.当你关注一个组件,你可以发现哪一个props被传递了,这样使得你的应用很容被推断. 在一些情况下,你想要传递数据通过组件树而不需要去手动在每一层 ...

  3. 非阻塞模式(ioctlsocket)

    //Server.cpp #include <stdio.h> #include <winsock2.h> //winsock.h (2种套接字版本) #pragma comm ...

  4. Fatal error: Uncaught Error: Call to undefined function curl_init()

    系统:win7 对于此错误首先检查php_curl扩展是否开启 , extension=curl  #注意去掉前面的分号 然后检查php\ext下是否有php_curl.dll 文件(默认都有) ph ...

  5. nvm 设置 nodejs 默认版本

    nvm 设置 nodejs 默认版本 windows 系统的版本管理软件是nodist mac系统的node版本管理根据是nvm 每次重启vscode软件后,nvm ls 看到的默认版本都会恢复到v5 ...

  6. Laravel 利用中间件控制权限。

    1.把所有需要控制的url写到config/admin.php里. 2.http/kernel.php文件里加上中间件. 3.http/Middleware/Permission.php 4.视图层

  7. This application failed to start because it could not find or load the Qt platform plugin异常

    双击项目Release文件夹下的exe程序无法启动: 解决办法: 1.将用到的QT组件拷贝到程序目录: 2.将D:\Qt\Qt5.3.2\5.3\msvc2013_64_opengl\plugins目 ...

  8. C语言操作符

    C语言操作符的分类: 算术操作符 逻辑运算符 位操作符     赋值操作符 单目操作符 关系操作符 条件操作符 逗号表达式 数组下标引用 函数调用 结构体成员使用 大体上,C语言的操作符具体就这么些, ...

  9. java中之内存溢出说明

    java语句是编译型和解释型语言,选通过编译命令javac 把java文件编译为.class字节码文件,然后通过java虚拟机(JVM)加载class文件到内存运行. 而java虚拟机在运行程序时有自 ...

  10. 【jenkins】jenkins+maven+gitlab+testng,jenkins配置

    电脑版本:windows10企业版 jenkins配置: 1.general配置,这里的配置比较简单,基本默认就可以了 2.源码管理 2.1填写git地址,从你的gitlib项目里去找.不会的自行百度 ...