文档章节

写给小白的音频认识基础

叶大侠
 叶大侠
发布于 03/07 12:03
字数 1194
阅读 34
收藏 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

没有更多内容

加载失败,请刷新页面

加载更多

下一页

[MicroPython]STM32F407开发板驱动OLED液晶屏

1.实验目的 1.学习在PC机系统中扩展简单I/O 接口的方法。 2.进一步学习编制数据输出程序的设计方法。 3.学习 F407 Micropython开发板控制OLED显示字符。 2.所需元器件 F407 Micropython开发板...

bodasisiter
21分钟前
0
0
php require和include 相对路径一个有趣的坑

以前总是被教育,不要使用相对路径,这样性能比较差,但是相对路径的问题不仅仅是性能哦,看下面这里例子 这是项目结构 .├── main.php├── t│ ├── t1.php│ └── t2.php└─...

anoty
21分钟前
9
0
x64技术之SSDT_Hook

测试环境: 虚拟机: Windows 7 64bit 过PG工具 驱动加载工具 PCHunter64 系统自带的计算器和任务管理器等 实现思路: 实际思路与win32的思路一样.都是替换SSDT表里边的函数地址.不过微软被搞怕...

simpower
22分钟前
0
0
TreeMap源码分析,看了都说好

一、简介 TreeMap最早出现在JDK 1.2中,是 Java 集合框架中比较重要一个的实现。TreeMap 底层基于红黑树实现,可保证在log(n)时间复杂度内完成 containsKey、get、put 和 remove 操作,效率很...

Java小铺
32分钟前
0
0
协变、逆变

概念 假设 A、B表示类型 ≤ 表示继承关系 f<⋅>表示类型转换 若A ≤ B,则 A是B的子类,B是A的超类 协变、逆变 什么是型变?型变(type variance)允许对类型进行子类型转换。 为了下面讲解先...

obaniu
38分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部