前面几篇,我们已经讲过三个问题。
1)计算机最底层只有 0 和 1。
2)文字能保存,是因为每个字都可以被编成一个编号。
3)图片能保存,是因为一张图可以拆成很多个小格子,也就是像素。每个像素的颜色,也可以用数字表示。
那问题来了:
声音不是文字,也不是图片。
你说一句话,唱一首歌,拍一段视频,这些东西看起来都不像数字。
可手机为什么能录音?
电脑为什么能保存视频?
微信为什么能发送语音?
这篇就接着往下讲:
声音和视频,为什么也能被电脑保存?
01 声音不是“东西”,而是一阵震动
我们平时说“听到声音”,好像声音是一种看不见的东西。
但如果说得更直白一点:
声音其实是空气在震动。
你说话的时候,声带会震动。
声带一震动,就会带动周围的空气一起震动。
空气一层一层往外传,传到别人的耳朵里,耳膜也跟着震动。
大脑收到这些信号之后,就觉得:
哦,这是人在说话。
所以声音不是一个固定的物体。
它更像一条一直变化的波。
有时候强,有时候弱。
有时候快,有时候慢。
有时候高,有时候低。
问题就在这里:
电脑不认识空气震动。
电脑真正能处理的,还是数字。
那声音要进入电脑,就必须先经过一次“翻译”。
这个翻译器,就是麦克风。
02 麦克风其实是电脑的“耳膜”
人的耳朵听声音,靠的是耳膜。
空气震动过来,耳膜跟着震动。
麦克风也很像一个电子版的耳膜。
它里面通常有一片很薄、很敏感的膜。
你可以先把它想象成一张特别小的鼓皮。
当你对着手机说话时,空气不是安安静静地待在那里,而是在一阵一阵地推这张膜。
声音大一点,推得就明显一点。
声音小一点,推得就轻一点。
声音高一点,推的速度就快一点。
声音低一点,推的速度就慢一点。
所以第一步其实很简单:
空气震动,推动麦克风里的薄膜震动。
但这时候还没有变成电脑能保存的数字。
它只是从“空气在动”,变成了“麦克风里的薄膜在动”。
接下来才是关键:
薄膜一动,怎么变成电信号?
03 薄膜一动,电路也跟着变
不同类型的麦克风,里面的结构不完全一样。
但它们要做的事情是一样的:
把薄膜的运动,变成电路里的变化。
比如有些麦克风里有线圈和磁铁。
薄膜一动,就带着线圈在磁场里动。
线圈在磁场里动,就会产生微小的电信号。
这有点像一个很小很小的发电机。
还有些麦克风用的是另一种方式。
它里面有两片很薄的金属板。
一片会跟着声音轻微移动,另一片相对固定。
声音来了以后,两片金属板之间的距离发生变化。
距离一变,电路里的状态也会跟着变。
手机里的麦克风通常更小,属于微型传感器。
但思路仍然差不多:
空气震动让一个微小结构发生变化。
这个变化再被电路检测出来。
所以麦克风并不是“听懂了你在说什么”。
它只是很老实地记录:
空气什么时候推了我一下,推得有多重,推得有多快,变化节奏是什么样。
到这一步,声音就从空气震动变成了电信号。
但注意:
这时候还不是 0 和 1。
04 电信号还要再变成数字
麦克风产生的电信号,通常是连续变化的。
你可以把它想象成一条上下起伏的曲线。
你说话时,这条曲线就跟着你的声音变化。
声音大,曲线起伏更明显。
声音小,曲线起伏更轻。
音调高,曲线变化更快。
音调低,曲线变化更慢。
但电脑不能直接保存这条连续的曲线。
电脑需要的是一个个明确的数字。
所以手机或电脑里还需要一个东西:
模数转换器。
这个名字听起来有点硬,但意思很简单。
“模”就是模拟信号,也就是连续变化的电信号。
“数”就是数字信号,也就是电脑能保存和处理的数字。
模数转换器做的事情,就是:
把连续变化的电信号,切成一个个数字。
比如它会隔很短很短的时间测一次:
这一刻是多少?
下一刻是多少?
再下一刻是多少?
于是,一条连续变化的声音曲线,就变成了一长串数字。
最后这些数字再变成 0 和 1,保存到电脑里。
所以完整过程可以这样理解:
空气震动 → 薄膜震动 → 电信号变化 → 数字 → 0 和 1
这就是声音进入电脑的大致过程。
05 什么叫采样?
刚才说到,电脑会隔很短的时间测一次声音。
这个动作就叫:
采样。
采样这个词听起来专业,其实很好理解。
比如你想记录一天的气温变化。
你不可能每一秒都盯着温度计。
你可能会这样记录:
早上 8 点,多少度。
中午 12 点,多少度。
下午 6 点,多少度。
晚上 10 点,多少度。
这些记录点,就是采样。
声音采样也是一样。
电脑不会把声音那条连续变化的曲线完整搬进去。
它会隔很短很短的时间,测一下声音现在是多少。
测一次,得到一个数字。
再过一点点时间,再测一次,又得到一个数字。
这样连续测很多次,就得到了一长串数字。
比如可以粗略想成这样:
第 1 次:126第 2 次:130第 3 次:135第 4 次:132第 5 次:128
这些数字按顺序排起来,就大概描述了声音的变化。
所以录音不是把“声音本身”塞进电脑。
而是把声音在很多时间点上的状态,记录成数字。
06 为什么经常听到 44.1kHz?
你可能见过一个词:
44.1kHz
这个词经常出现在音乐、录音、音频设置里。
它说的就是采样率。
44.1kHz 的意思是:
每秒采样 44100 次。
也就是说,一秒钟的声音,电脑会记录 44100 个点。
为什么要这么多?
因为声音变化很快。
如果你每秒只记录几次,声音就会变得非常粗糙。
这就像你只用几个点去画一条曲线,肯定画不准。
点越多,越接近原来的样子。
采样率越高,声音细节通常就越多。
但代价也很明显:
文件会变大。
这和图片很像。
图片像素越多,画面通常越清楚,但文件也越大。
声音采样越密,记录越细,但文件也越大。
07 采样之后,每个点还要记录得够细
采样解决的是:
多久记录一次。
但还有另一个问题:
每一次记录,要记录得多精细?
这就涉及另一个概念:
位深。
这个词不用死记。
你可以把它理解成:
每个声音点,可以分成多少个等级来记录。
如果等级很少,声音变化就会很粗。
比如只能分成:
很小声、小声、中等、大声、很大声。
那很多细微变化就丢了。
如果等级很多,声音就可以记录得更细。
比如从 100 到 101,再到 102,再到 103。
变化就更平滑。
常见的 CD 音质是 16-bit。
可以简单理解为:
每一个采样点,都可以用很多等级来表示。
这样声音听起来就不会太粗糙。
所以,一个声音文件,可以先粗略理解成:
很多很多个时间点,每个时间点都有一个数字。
这些数字按照顺序排起来,电脑就能保存声音。
08 为什么同样是音频,文件大小差很多?
你可能遇到过这种情况。
同一首歌,有的文件几十 MB。
有的文件只有几 MB。
但听起来好像也差不多。
这是为什么?
答案是:
压缩。
最原始的音频保存方式,可以理解成老老实实地全部记录。
比如 WAV 文件,通常就比较接近这种思路。
它保留的信息比较多,声音质量也比较完整。
缺点是文件大。
而 MP3、AAC 这类格式,会做压缩。
压缩不是随便把文件变小。
它背后有一套规则。
比如有些声音太细,人耳不容易听出来。
有些声音被更大的声音盖住了,你也不太容易分辨。
那压缩算法就会想:
这些地方能不能少存一点?
这样一来,文件就变小了。
所以 MP3 不是魔法。
它只是用规则减少了一部分人耳不太敏感的信息。
文件小了,代价是:
声音信息不是百分百保留。
这也是为什么有人会说无损音乐更好。
因为无损格式保留的信息更多。
不过对普通人来说,如果耳机一般、环境也一般,很多差别确实不容易听出来。
09 视频又是怎么保存的?
理解了声音,再看视频就容易多了。
视频看起来很复杂。
有人物。
有动作。
有画面。
还有声音。
但把它拆开,其实就是两部分:
一连串图片,加上一段声音。
电影为什么能动?
不是因为屏幕上真的有一个连续运动的东西。
而是因为它在快速播放很多张图片。
每一张图片叫一帧。
如果一秒播放 24 张、30 张,甚至 60 张图片,人眼就会觉得画面动起来了。
所以视频可以先简单理解成:
第 1 帧图片。第 2 帧图片。第 3 帧图片。第 4 帧图片。
再加上一条同步播放的声音。
这就是视频。
10 如果视频不压缩,文件会大到吓人
我们来算一个很简单的账。
一张 1920×1080 的图片,大约有 207 万个像素。
如果每个像素都要记录红、绿、蓝三个数字,那一帧画面就已经有很多数据。
如果一秒钟有 30 帧。
那就是:
一秒钟要存 30 张高清图片。
一分钟要存 1800 张高清图片。
十分钟要存 18000 张高清图片。
这样一想,视频文件能不大吗?
所以如果视频每一帧都完整保存,文件会非常夸张。
你手机随便拍几分钟,可能就占掉很多空间。
这也是为什么视频必须压缩。
11 视频压缩的核心:不要重复存废话
视频压缩最聪明的地方在于:
它不会每一帧都从头完整保存。
比如你拍一个人坐在桌前说话。
背景可能一直没变。
墙没变。
桌子没变。
窗帘没变。
真正变化的,可能只是人的嘴巴、眼睛和手势。
那电脑就没必要每一帧都把整面墙重新保存一遍。
它可以只记录:
这一帧和上一帧相比,哪里变了。
这就像你给别人描述一个房间。
第一遍你可能要说:
房间里有桌子、椅子、窗户、书架。
第二遍你不用全部重说。
你只要说:
椅子挪了一下。
桌上多了一本书。
这就够了。
视频压缩也是类似的思路。
它利用前后画面的相似性,尽量只保存变化。
所以视频文件才能被压到我们可以接受的大小。
否则,手机和电脑根本装不下那么多视频。
12 文件格式是什么?
说到这里,还差最后一步。
你会看到各种文件后缀:
.mp3.wav.aac.mp4.mov.avi
这些是什么?
它们可以理解成不同的“包装方式”。
比如 MP4,不是简单等于“视频本身”。
它更像一个盒子。
这个盒子里可以装:
视频画面。音频声音。字幕。时间信息。压缩规则。
电脑打开 MP4 文件的时候,要先看懂这个盒子的结构。
然后再按照里面的规则,把视频和声音解出来。
所以文件格式很重要。
同样是一堆 0 和 1,如果不知道它是什么格式,电脑也不知道该怎么解释。
这就像你拿到一串数字:
20260626
它可以是日期。
也可以是编号。
也可以是密码。
数字本身不会告诉你答案。
必须有解释规则。
13 声音和视频到底是怎么被电脑保存的?
现在我们可以把整件事串起来。
声音进入电脑,大概经历了这些步骤:
空气发生震动。
麦克风里的薄膜跟着震动。
薄膜的运动引起电信号变化。
电脑把连续变化的电信号进行采样。
每个采样点变成一个数字。
这些数字再变成 0 和 1,被保存到文件里。
为了节省空间,还可以进行压缩。
视频进入电脑,大概是这样:
画面被拆成一帧一帧的图片。
每一帧图片被拆成一个个像素。
像素颜色变成数字。
声音也被转换成数字。
视频格式把画面、声音和时间信息打包起来。
压缩算法减少重复内容。
最后,它们都变成了电脑能保存的东西:
0 和 1。
14 这件事真正重要的地方
学到这里,其实可以发现一个规律。
电脑并不“懂”声音。
电脑也不“懂”视频。
它不知道这是一首歌。
也不知道这是你拍的旅行视频。
它只是保存数字。
只不过人类设计了一套套规则:
声音怎么采样。
图片怎么拆成像素。
视频怎么分成帧。
文件怎么打包。
数据怎么压缩。
有了这些规则,0 和 1 就能被重新解释成人能听懂的声音、能看懂的画面。
所以,计算机世界里有一句很重要的话:
数据本身没有意义,解释规则才让数据有意义。
这句话后面还会反复出现。
因为不只是声音和视频。
文字、图片、程序、网页、游戏,本质上也都是这样。
底层都是 0 和 1。
区别只在于:
你用什么规则去解释它。
结尾
到现在为止,我们已经从 0 和 1 讲到了文字、图片、声音和视频。
你会发现,电脑不是靠“理解世界”来保存世界。
它靠的是一种很朴素的方法:
把世界拆开,测量它,编号它,再按照规则保存它。
文字被编号。
图片被拆成像素。
声音被切成采样点。
视频被拆成一帧帧图片和一段段声音。
看起来完全不同的东西,到了电脑里面,最后都变成了数字。
这也是计算机最神奇、也最朴素的地方。
它不懂世界。
但它能用数字,把世界重新拼出来。
下一篇,我们就可以继续追问一个更关键的问题:
同样都是 0 和 1,为什么有时候它是文字,有时候它是图片,有时候又变成了声音和视频?
夜雨聆风