【FFmpeg学习】音频基础知识

688 阅读2分钟

今天了解了一下音频的相关基础知识。记录一下,以作备忘。

一.声音的本质

声音的本质是空气中物体振动在人耳中的反映。物体振动的同时,带动周围空气分子的振动,空气分子又带动与之相邻的空气分子振动,于是形成了一种声音以波的形式向外扩散的现象。这大概也是“声波”的由来。

声波扩散的距离越远,物体振动的振幅越大;扩散的速度越快,物体振动的频率越高。联系初中物理讲声音的三要素:响度、音调、音色。我们可以知道:说某个声音响度大,就是在说声波可以扩散得很远,到达我们的耳朵时仅仅衰减了一点点;而说某个声音音调高,就是说声波扩散非常快,给我们一种声音很尖锐的感觉。

二.音频的本质和相关术语

音频的本质是对自然界中声音的模拟。

自然界中的声音也许可以如下图这样表示,它是模拟信号,表现为随时间变化的一段平滑曲线。 2021-04-10_211447.png

但是当我们想要把这些声音信息输入计算机中时,我们不可能采尽每个时间点的值。我们只能进行有限地采样,即模拟信号转化为数字信号,此过程称为A/D(analog to digital conversion)。

举例来说,一秒钟的声音,我们将它分为44100份,这样就有了大小为1/44100s时间切片,每个时间切片我们记录一个对应的振幅值,一般取时间切片中点对应的振幅值。

单位时间被划分的时间切片越多,我们对模拟信号还原度越高。每秒钟时间切片的个数我们称为采样率(sampling rate)。上面所说44100份时间切片对应着音视频领域常用的一种采样率:44100Hz。

下图为蓝线为数字信号。

2021-04-10_211507.png

既然我们想要记录每个样本的值,我们应该用什么样的数据类型来存储这些值呢?以前的音频样本一般用一个8位有符号整数来表示,而如今大多采用16位有符号整数(signed int)存储。当然了,也有采用24位、32位来记录的。这些记录样本数据的不同数据类型,我们称为采样大小(sampling size)。

还有个音频相关的术语叫声道数(number of channels)。有单声道、双声道等等。我对双声道的理解是在播放音频的时候会模拟出两个声源,这样人耳所感知的声音会更立体些。

图片来源:developer.mozilla.org