文档章节

写给小白的音频认识基础

叶大侠
 叶大侠
发布于 03/07 12:03
字数 1194
阅读 38
收藏 0

初识音频

从初中物理上我们就学到,声音是一种波。计算机只能处理离散的信号,通过收集足够多的离散的信号,来不断逼近波形,这个过程我们叫做采样。怎么样才能更好的还原声音信息呢?这里很自然引出两个概念了。

声音波形图

采样频率(Sample Rate):每秒采集声音的数量,它用赫兹(Hz)来表示。

采样率越高越靠近原声音的波形,常见的采样率有以下几种:

  • 8khz:电话等使用,对于记录人声已经足够使用。
  • 22.05khz:广播使用频率。
  • 44.1kb:音频CD。
  • 48khz:DVD、数字电视中使用。
  • 96khz-192khz:DVD-Audio、蓝光高清等使用。

采样精度(Bit Depth): 它表示每次采样的精度,位数越多,能记录的范围就越大。

采样精度常用范围为8bit-32bit,而CD中一般都使用16bit。

把声音记录下来之后,通过喇叭的震动把波再还给空气传到你的耳朵就完成了这个完美的循环了。但是富有创造力的人类不会限制于此就结束了,很快人们发现,当把不同的声音传递到不同的喇叭的时候,竟然会惊奇地让声音变得有空间感了,即时是同一个声音,也比单个通道能获得更好的体验,于是就出现了什么立体声,5.1 环绕等看起来很高大上的东西。所以,音频又多了一个东西:

声音通道(Channel): 你知道每个通道存储的声音会从其中的一个喇叭出来就好了,不过可以通过算法的模拟来让没有那么多喇叭也能出来类似的效果。

有了声音通道,乐队在录音的时候就可以每个人插一条音轨了,然后每一个声音可以写到不同的通道里面,当然,实际录音当然都是后期混音而成的。下面介绍的其中一个混音算法会用到声音通道这个特性。

最后再介绍一个大家经常看到的概念:

比特率(bps [bits per second]): 其实看单位就很容易知道它要表达的意思了,就是每秒钟要播放多少 bit 的数据。公式一目了然:

比特率 = 采样率 × 采样深度 × 通道。

比如 采样率 = 44100,采样深度 = 16,通道 = 2 的音频的的比特率就是 44100 * 16 * 2 = 1411200 bps。

一般来说,比特率越高,音频质量越好。要注意一些比特率的换算不是 1024 作为一个级别换算的哈。

1,000 bps	= 【1 kbps】 =	1,000 bit/s
1,000,000 bps	= 【1 Mbps】 =	1,000,000 bit/s	
1,000,000,000 bps	= 【1 Gbps】 =	1,000,000,000 bit/s

音频在计算机中的表示

我们来看一下真实音频在计算机中究竟是怎样的表示状态,这里指的是原始的数据表示,而非编码(Mp3,Acc等)后的表示,平时我们看到的.wav后缀的音频,把前面 44 个字节用于记录采样率、通道等的头部信息去掉后就是就是原始的音频数据了。

WAV表示图

在理解了上面的概念之后,我们再来看这张图。对于文件头部信息我们就不详细介绍了,不影响我们理解介绍的混音处理方式,需要了解的可以点击这里

我们抽取其中的一个采样来看,这里我加多了一个通道,便于大家理解通道的存储位置。

音频采样图

不难理解,这个采样中有三个通道,每通道采样精度是 16 比特。每个采样值的排序是 Little-Endian 低位在前的方式,比如通道 1 的采样值就是 AB03, 每个采样值的大小表示的是幅度信息。

好了,先介绍到这里,希望对你有帮助,如果文章有理解错误的地方,请给我留言指出,感谢你的阅读,下一篇将会介绍有关音频混音的相关知识。

参考资料

  1. WAV文件格式
  2. 维基百科-比特率

不玩音乐的看到这里可以关闭了。

色彩浓重的广告时间:

如果你有玩音乐,我做了一个音乐学习和记录的辅助工具。刚在 Google Play 发布,音乐笔记+。我平时会用它来作即兴练习和合奏练习,这是个付费应用,你可以通过购买它对我表示支持。

以下是免费的:

© 著作权归作者所有

共有 人打赏支持
叶大侠

叶大侠

粉丝 57
博文 44
码字总数 67312
作品 5
广州
程序员
你应该如何学习一个未知的技术领域?- 菜鸟小白篇

一、前言 2018年初开始从事线上课程的开发,陆续开发了几门课程,《人工智能产品经理最佳实践请添加链接描述》《知识图谱实战开发完全剖析请添加链接描述》和《智能对话机器人实战开发完全剖...

数据饕餮
07/12
0
0
强烈谴责辱骂抹黑开源作者的恶劣行为

近日收到以下低素质用户的辱骂邮件,真的让人愤慨 fourinone到底挖了谁家的祖坟,至于这样变态吗? 一个坚持创新并自由分享的开源软件,居然一直有这种阴暗卑鄙的人对作者做人身攻击,并且到...

fourinone
2015/12/08
169
2
专注才是第一生产力

写给自己的话: 在程序开发这个行业,学历不是最重要的,梦想,兴趣和坚持才是最重要的! 一个人是否成功,完全取决于对待工作的态度和投入的热情有多大!!要做就做最好。 坚持是获得成功的...

DevShaw
2015/11/25
108
0
学爬虫先学什么?写给小白的python爬虫入门方法论

编者注:这是笔者基于自身在入门python爬虫一些感悟,而写作的——入门小参考或建议。本文没有过多讲述学习爬虫需要哪些库或代码,而是期望为初学者提供一些爬虫思维或方法论,从而快速入门。...

铁扇公主1
2017/06/13
305
1
iOS音频能力提升——PCM基础

前言 音频是移动端很重要的能力,像直播类、在线教育类、唱歌类、短视频类等APP,都离不开音频功能。 具备音频相关知识与能力,对未来的职业发展有很大优势。 本文主要围绕音频知识的基础——...

落影loyinglin
01/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7防火墙firewalld操作

firewalld Linux上新用的防火墙软件,跟iptables差不多的工具。 firewall-cmd 是 firewalld 的字符界面管理工具,firewalld是CentOS7的一大特性,最大的好处有两个:支持动态更新,不用重启服...

dingdayu
今天
1
0
关于组件化的最初步

一个工程可能会有多个版本,有国际版、国内版、还有针对各种不同的渠道化的打包版本、这个属于我们日常经常见到的打包差异化版本需求。 而对于工程的开发,比如以前的公司,分成了有三大块业...

DannyCoder
今天
2
0
Spring的Resttemplate发送带header的post请求

private HttpHeaders getJsonHeader() { HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); ......

qiang123
昨天
3
0
Spring Cloud Gateway 之 Only one connection receive subscriber allowed

都说Spring Cloud Gateway好,我也来试试,可是配置了总是报下面这个错误: java.lang.IllegalStateException: Only one connection receive subscriber allowed. 困扰了我几天的问题,原来...

ThinkGem
昨天
27
0
学习设计模式——观察者模式

1. 认识观察者模式 1. 定义:定义对象之间一种一对多的依赖关系,当一个对象状态发生变化时,依赖该对象的其他对象都会得到通知并进行相应的变化。 2. 组织结构: Subject:目标对象类,会被...

江左煤郎
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部