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相关推荐

  1. 音频数据文件格式(PCM,WAV,MIDI)简记

    PCM(Pulse Code Modulation):脉冲编码调制 把声源数据按一定的频率进行脉冲调制进行存储的数据格式,简单来说就是对模拟声音信号的数字 转换. WAV WAV是一种无损音频数据格式 ...

  2. Android使用AudioRecord录制PCM音频、PCM转AAC、使用MediaRecorder直接录制AAC编码音频

    Android为我们提供了两个音频处理的API:AudioRecord和MediaRecorder AudioRecord:偏底层的api MediaRecorder:对AudioRecord进行包装 ...

  3. 音频之PCM与WAV

    音频原始数据格式 PCM:纯音频数据,没有格式 WAV:既可以存储原始数据(PCM),也可以存储压缩数据 差异:WAV在PCM之上加了一个文件头(包含基础数据) 量化基本概念 位深(采样大小):一个采 ...

  4. 音频文件PCM、WAV、MP3的区别以及文件合并

     一.数字音频三要素 1.采样率 采样率即采样频率,指的一秒内的采样次数,它反映了采样点之间的间隔大小.常说的 44.1KHz 采样率,也即 1 秒采集了 44100 个样本.间隔越小,丢失的信息越少 ...

  5. android音频编辑之音频转换PCM与WAV

    前言 本篇开始讲解在Android平台上进行的音频编辑开发,首先需要对音频相关概念有基础的认识.所以本篇要讲解以下内容: 常用音频格式简介 WAV和PCM的区别和联系 WAV文件头信息 采样率简介 声 ...

  6. 原 android音频编辑之音频转换PCM与WAV

    http://blog.csdn.net/hesong1120/article/details/79043482 本文出自: hesong的专栏 前言 本篇开始讲解在Android平台上进行的音频编辑 ...

  7. 程序人生 - 音频格式 PCM、WAV、MP3 区别

    PCM PCM(Pulse Code Modulation----脉码调制录音).所谓PCM录音就是将声音等模拟信号变成符号化的脉冲列,再予以记录.PCM信号是由[1].[0]等符号构成的数字信号,而 ...

  8. PCM音频数据封装为WAV文件

    ------------------------------------全系列文章目录------------------------------------ PCM(Pulse Code Modul ...

  9. PCM原始音频数据格式介绍

    一 什么是PCM PCM全称Pulse-Code Modulation,翻译一下是脉冲调制编码.在音视频中,PCM是一种用数字表示采样模拟信号的方法.要将一段音频模拟信号转换为数字表示,包含如下三个步 ...

最新文章

  1. 行货手机和水货手机究竟啥区别
  2. Dialog的使用(二):AlertDialog.setItems
  3. 【数字信号处理】相关函数应用 ( 正弦信号 的 自相关函数 分析 | 在白噪声中检测正弦信号 )
  4. [hdu3966 Aragorn's Story]树链剖分
  5. mysql中b树索引_Mongo和Mysql中的B树索引
  6. 《失控玩家》爆火背后:什么才是拥抱人工智能的正确姿势?
  7. java float什么类型数据类型_Java中的Float和double数据类型
  8. android studio 触摸锁,学习AndroidStudio布局,并编写一个图案解锁demo
  9. elm具体实现过程_函数式编程中的战斗机(二)---elm语言MUV设计模式应用实例...
  10. 四川省大学生计算机作品大赛,我院承办2019“新华三杯”四川省大学生计算机作品大赛并获佳绩...
  11. 制作可被svchost调用的服务(上)
  12. 用户 用户组 切换用户
  13. 已解决IndexError: list index out of range
  14. 孙鑫java高清完整版(课件+视频)_孙鑫Java高清完整版(课件+视频) - 程序语言 - 小木虫 - 学术 科研 互动社区...
  15. Git提交代码到新仓库(--mirror)
  16. 6.1 欧拉方法与改进欧拉方法
  17. 记武汉疫情期间的一次数据库和翻译记忆库的数据恢复 (一)
  18. 哪个计算机软件可以探究小孔成像,探究小孔成像
  19. R的一些常用函数【基于尚学堂的部分总结】
  20. 算法与分析-实验一 算法设计基础

热门文章

  1. 花滑三周连跳_花滑未来能有人做五周跳吗 专家:四周半或是极限
  2. java 文件删除不了File类的delete方法删不掉文件的原因分析
  3. 基于FPGA的波、幅、频、相可调DDS信号发生器的设计
  4. C#根据年份计算生肖属相的代码
  5. Java mail 535鉴权失败或启动报错
  6. [转]站长实用,42个著名搜索引擎免费登陆入口大全
  7. RAM 大全-DRAM, SRAM, SDRAM的关系与区别
  8. noip 2009 靶形数独
  9. 记一次服务器被植入木马/病毒:kdevtmpfsi
  10. Burpsuite破解用户名和密码