音频数据格式:PCM,WAV,MIDI
1. 前言
限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承诺。
2. 音频数据格式基础
2.1 PCM(Pulse Code Modulation):脉冲编码调制
把声源数据按一定的频率进行脉冲调制进行存储的数据格式,简单来说就是对模拟声音信号的数字转换。
2.2 WAV
WAV是一种无损
音频数据格式。WAV符合RIFF规范
。符合RIFF规范的文件可用于存储音频视频交错格式数据(.AVI) 、波形格式数据(.WAV) 、位图格式数据(.RDI) 、MIDI格式数据(.RMI) 、调色板格式(.PAL) 、多媒体电影(.RMN) 、动画光标(.ANI) 、其它RIFF文件,RIFF包含的数据文件格式有文件扩展名来标识。
文件扩展名.WAV用来存储波形数据格式。WAV对于数据编码没有硬性规定,PCM是WAV多种编码格式当中的一种。
采样数据
可用 采样频率
(WAV通常有22050HZ、44100HZ两种)、采样幅度
2个参数来表示。WAV文件除开40个字节的开头,声音数据部分记录的就是采样的幅度
:单声道
的情况下,如果是单字节8-Bit的采样,就是把声音采样幅度分成 2^8=256 个等级,采样数据记录了当前采样幅度等级。双字节16-Bit的采样同理,只是幅度等级更丰富了( 2^16=64K 个等级)。双声道
的情况道理一样,只不过每个声道都有一份数据,所以数据加倍。
上面是对WAV格式技术上的描述。而通常我们采用 (采样频率 + 声道数
) 或 传输速率
来描述。如:
44100HZ 16bit stereo : 每秒钟有 44100 次采样, 采样数据用 16 位(2字节)记录, 双声道(立体声)。
22050HZ 8bit mono : 每秒钟有 22050 次采样, 采样数据用 8 位(1字节)记录, 单声道。
或
44100 * 16 * 2 = 1411200 bits/s
22050 * 8 * 1 = 176400 bits/s
通过上面的计算公式知道了传输速率,如果还知道了WAV文件的数据的大小,可以通过下面的公式计算播放的时长
:
播放时长 = WAV数据大小 / 传输速率
2.3 MIDI(Musical Instrument Digital Interface)
首先要明确的是,MIDI存储的数据和前面两种格式均不同,MIDI文件存储的是如何演奏的一系列指令
,而真正的音频数据则来源一些预定义的乐器数据,如钢琴,贝斯等
,每种乐器的不同音色都有对应的数据,这些就是平常所说的MIDI音色库。MIDI的通过一系列预定义的消息指令告诉系统怎样演奏,这些预定义的指令指定了使用的乐器,节拍,音调等
。
MIDI的存储格式除了以字串MThd标记的一个头部外,还有一个或多个以字串MTrk标记的音轨数据块。
3. 参考链接
WAV和PCM的关系和区别
标准MIDI文件格式
4. 后记
文章从个人51CTO博客(原地址)迁移过来。
音频数据格式:PCM,WAV,MIDI相关推荐
- 音频数据文件格式(PCM,WAV,MIDI)简记
PCM(Pulse Code Modulation):脉冲编码调制 把声源数据按一定的频率进行脉冲调制进行存储的数据格式,简单来说就是对模拟声音信号的数字 转换. WAV WAV是一种无损音频数据格式 ...
- Android使用AudioRecord录制PCM音频、PCM转AAC、使用MediaRecorder直接录制AAC编码音频
Android为我们提供了两个音频处理的API:AudioRecord和MediaRecorder AudioRecord:偏底层的api MediaRecorder:对AudioRecord进行包装 ...
- 音频之PCM与WAV
音频原始数据格式 PCM:纯音频数据,没有格式 WAV:既可以存储原始数据(PCM),也可以存储压缩数据 差异:WAV在PCM之上加了一个文件头(包含基础数据) 量化基本概念 位深(采样大小):一个采 ...
- 音频文件PCM、WAV、MP3的区别以及文件合并
一.数字音频三要素 1.采样率 采样率即采样频率,指的一秒内的采样次数,它反映了采样点之间的间隔大小.常说的 44.1KHz 采样率,也即 1 秒采集了 44100 个样本.间隔越小,丢失的信息越少 ...
- android音频编辑之音频转换PCM与WAV
前言 本篇开始讲解在Android平台上进行的音频编辑开发,首先需要对音频相关概念有基础的认识.所以本篇要讲解以下内容: 常用音频格式简介 WAV和PCM的区别和联系 WAV文件头信息 采样率简介 声 ...
- 原 android音频编辑之音频转换PCM与WAV
http://blog.csdn.net/hesong1120/article/details/79043482 本文出自: hesong的专栏 前言 本篇开始讲解在Android平台上进行的音频编辑 ...
- 程序人生 - 音频格式 PCM、WAV、MP3 区别
PCM PCM(Pulse Code Modulation----脉码调制录音).所谓PCM录音就是将声音等模拟信号变成符号化的脉冲列,再予以记录.PCM信号是由[1].[0]等符号构成的数字信号,而 ...
- PCM音频数据封装为WAV文件
------------------------------------全系列文章目录------------------------------------ PCM(Pulse Code Modul ...
- PCM原始音频数据格式介绍
一 什么是PCM PCM全称Pulse-Code Modulation,翻译一下是脉冲调制编码.在音视频中,PCM是一种用数字表示采样模拟信号的方法.要将一段音频模拟信号转换为数字表示,包含如下三个步 ...
最新文章
- 行货手机和水货手机究竟啥区别
- Dialog的使用(二):AlertDialog.setItems
- 【数字信号处理】相关函数应用 ( 正弦信号 的 自相关函数 分析 | 在白噪声中检测正弦信号 )
- [hdu3966 Aragorn's Story]树链剖分
- mysql中b树索引_Mongo和Mysql中的B树索引
- 《失控玩家》爆火背后:什么才是拥抱人工智能的正确姿势?
- java float什么类型数据类型_Java中的Float和double数据类型
- android studio 触摸锁,学习AndroidStudio布局,并编写一个图案解锁demo
- elm具体实现过程_函数式编程中的战斗机(二)---elm语言MUV设计模式应用实例...
- 四川省大学生计算机作品大赛,我院承办2019“新华三杯”四川省大学生计算机作品大赛并获佳绩...
- 制作可被svchost调用的服务(上)
- 用户 用户组 切换用户
- 已解决IndexError: list index out of range
- 孙鑫java高清完整版(课件+视频)_孙鑫Java高清完整版(课件+视频) - 程序语言 - 小木虫 - 学术 科研 互动社区...
- Git提交代码到新仓库(--mirror)
- 6.1 欧拉方法与改进欧拉方法
- 记武汉疫情期间的一次数据库和翻译记忆库的数据恢复 (一)
- 哪个计算机软件可以探究小孔成像,探究小孔成像
- R的一些常用函数【基于尚学堂的部分总结】
- 算法与分析-实验一 算法设计基础