【音频基础学习】第 2 天,理解数字音频如何表示声音

📅 2026/7/16 3:46:52
【音频基础学习】第 2 天,理解数字音频如何表示声音
前言第 1 天解决的是一个物理问题声音到底是什么。第 2 天要解决的是一个工程问题真实世界里连续变化的声音为什么进入计算机之后会变成一串数字。如果这一步没搞清楚后面学PCM、WAV、采样率、位深、频谱、剪辑、导出都会像在背术语。相反只要你把今天这一层理解了后面很多看起来复杂的音频概念都会自动落到一个很清楚的框架里。这篇文章默认你是完全零基础会从最基础的“模拟和数字有什么区别”开始讲再一步步讲到什么是采样sample什么是采样率sample rate什么是位深bit depth什么是量化什么是PCM为什么数字音频不是连续曲线为什么常见规格会写成44.1kHz / 16-bit这篇在整套教程里的位置这篇承接 [第 1 天理解声音本身]把前一篇的“连续振动”正式映射到数字系统。本文要解决的问题是计算机到底记录了什么为什么会出现sample、采样率、位深和PCM这些概念。学完后建议继续看 [第 3 天理解声道和帧]进一步理解这些采样值在多声道场景里如何组织。今天学完后你应该掌握什么看完这篇文章后你应该能说清下面这些问题真实声音为什么是连续的计算机为什么必须把声音变成数字采样到底在做什么采样率为什么影响声音记录的精细程度位深为什么影响振幅表示的精细程度PCM到底是不是一种文件格式44.1kHz / 16-bit这样的规格在描述什么如果这些问题你能用自己的话解释出来第 2 天的目标就达到了。先理解“模拟”和“数字”的区别在讲数字音频之前先要理解一个更基础的概念模拟和数字。什么是模拟模拟可以先理解成信号是连续变化的。现实中的声音就是典型的模拟信号。空气压力不会突然从一个固定值“跳到下一个格子”它是在时间里连续变化的。你可以把它想成一条没有断点的曲线现在有一个值下一瞬间有一个略微不同的值再下一瞬间又继续变化整个过程是连续的。什么是数字数字可以先理解成用一组离散的数值去描述原本连续变化的东西。计算机本身不擅长直接处理“无限连续变化”的物理现象它更擅长处理0 和 1整数固定精度的小数结构化的二进制数据所以如果想让计算机保存、处理、复制、编辑声音就必须先把连续变化的声音转成一串可以存储和计算的数字。为什么一定要数字化把声音数字化以后计算机才能完成这些事情保存音频文件复制而不明显劣化做裁剪、拼接、淡入淡出做滤波、混音、变速、变调传输到手机、电脑、网络和播放器里所以数字音频并不是另一个“不同的声音”而是对真实声音的一种数字表示方法。真实声音为什么是连续的第 1 天已经讲过声音本质上是介质中的压力变化。这里要再强调一遍真实世界里的声音在时间上是连续变化的。比如你说一句话声带不会每隔固定一大段时间才振一下空气压力也不会只在某几个时刻才变化它是在持续变化的。如果把这段变化画成图你可以想象成一条平滑延伸的曲线而不是一串孤立的点。这就是为什么很多人第一次看到数字音频时会问“明明真实声音是连续的为什么计算机里只剩一堆数字”答案就是因为计算机不能直接把这条连续曲线完整原样装进去它只能定期取样再把取到的值记录下来。数字音频的第一步采样今天最核心的第一件事就是理解采样。什么是采样采样可以先理解成每隔一小段时间去读一次当前声音的瞬时值。也就是说计算机不会记录“无限连续的整条曲线”而是会在很多个时间点上分别记下当时的数值。这些被记下来的单个数值就是sample。用拍照类比采样如果觉得抽象可以把采样理解成“连续动作的定格拍照”。比如一只手在空中连续挥动真实动作是连续的。但如果你用相机连拍第 1 张拍一个位置第 2 张拍另一个位置第 3 张再拍一个位置最后你拿到的是很多张离散照片而不是那个连续动作本身。数字音频里的采样有点像这个过程真实声音是连续变化的系统不断在时间轴上“拍点”每拍一次就得到一个采样值当然这只是帮助理解的类比。声音采样记录的是振幅值不是画面位置但“从连续过程里定期取点”这个核心思想是一样的。一个采样值记录的是什么在最基础的理解里可以把一个采样值看成某个时刻声音振幅的数值表示。这句话非常重要因为后面你看到波形、PCM、音量计算时几乎都在围绕它。换句话说时间点决定“什么时候测”采样值决定“测到了多大”为什么数字音频不是连续曲线这其实就是采样带来的直接结果。连续曲线变成离散点真实声音本来是一条连续变化的曲线。采样以后系统不是记录这条曲线的每一个无穷细小变化而是只记录第 1 个时刻的值第 2 个时刻的值第 3 个时刻的值…于是原来连续的东西就被表示成了一串离散点。计算机里保存的是“点列”不是“无限连续变化”这是今天必须建立起来的一个认知数字音频本质上保存的是一系列按时间顺序排列的采样值。后面播放器播放音频时会通过数模转换、重建等过程把这些离散数据重新变成连续可播放的模拟信号。所以现实世界里的声音是连续的计算机里的数字音频是离散的播放设备会把离散数据重新转换成可听的连续声音什么是采样率当你理解了“采样”是定期取点之后下一个问题自然就是到底多久取一次这个频率就是采样率。采样率的定义采样率sample rate可以理解成1 秒钟取多少个采样点。单位通常写成Hz但在音频场景里经常会直接说44.1kHz48kHz96kHz例如44.1kHz表示 1 秒采样 44100 次48kHz表示 1 秒采样 48000 次采样率越高时间记录越细你可以把时间轴想成一条很长的线。如果你在这条线上取点很少那么两个点之间隔得就比较远如果你取点很多那么两个点之间就更密。所以采样率低记录得更稀疏采样率高记录得更密集这意味着什么这意味着采样率越高通常越能更精细地描述声音随时间变化的过程。一个直观例子你可以继续用“连拍”来类比一秒拍 2 张动作信息会非常粗糙一秒拍 200 张动作变化就会细很多声音采样也类似一秒取点少描述会粗一秒取点多描述会更细常见采样率为什么是这些数初学阶段先记住最常见的几个44.1kHz48kHz96kHz它们分别常见于不同场景44.1kHz常见于音乐分发历史体系48kHz常见于视频、影视、很多工程工作流96kHz常见于更高规格的录音或后期场景你现在不需要深挖历史来源只需要知道这些不是随便写的数字它们代表每秒采样的次数采样率不是“音质越高越无脑更好”这是一个非常常见的误区。采样率更高确实意味着时间记录更密但并不代表在所有场景下都能明显听出差别也不代表项目里永远该无脑选最高值。更高采样率通常还会带来更大的数据量更高的处理开销更高的存储和传输成本所以工程里选择采样率通常是在质量、兼容性、性能之间做平衡。什么是奈奎斯特频率采样率讲到这里通常会碰到一个很重要但经常被讲得过于学术的词奈奎斯特频率。先说结论如果你想让某个频率成分被比较可靠地表示出来采样率至少要比它高很多。最基础的理论里常会说采样率至少要大于目标最高频率的 2 倍。这就是人们常说的奈奎斯特采样思想。为什么会有这个限制可以先用一个直觉理解如果你取点太稀疏一个原本变化很快的波动你可能根本没“看清楚”它是怎么变化的。就像你拍一个高速旋转的轮子如果帧率不够画面里可能会出现看起来转得更慢看起来像反着转看起来动作不真实声音采样也会出现类似问题。这和可听频率范围的关系人耳常说可听范围大致到20kHz所以常见音频系统会选在这个基础上更高一些的采样率比如44.1kHz或48kHz就是这个思路的一部分。你现在不需要去推公式只需要先建立一个概念采样率不是随便定的它和你想保留的最高频率范围直接相关采样之后还不够还要做量化很多初学者以为声音数字化只有一步采样。其实还不够。采样解决的是什么时候测一次但还没解决每次测到的值要用多精细的数字去表示这第二件事就是量化。什么是量化量化可以先理解成把原本连续变化的振幅值映射到一组有限的数字等级上。因为真实世界的振幅也是连续变化的不是天然只会落在几个固定格子里。但计算机存储时不能给你无限精度它必须使用有限的数字位数去表示。所以系统会做一件事先测到一个实际振幅再把它“归到”最接近的可表示数值上这就是量化。用尺子刻度来类比量化你可以把量化想成用一把有刻度的尺子测长度。如果刻度很粗比如只能精确到 1 厘米那么10.2 cm10.4 cm10.6 cm可能最后都只能近似记录成某几个有限值。如果刻度非常细你记录出来的结果就更接近真实值。声音量化也是一样可用刻度越粗误差越大可用刻度越细表示越精确什么是位深量化要用到多少“刻度等级”就引出了今天第三个核心概念位深。位深的定义位深bit depth可以理解成每一个采样值用多少位二进制来表示。例如16-bit24-bit32-bit这里的意思不是“每秒多少位”而是每一个采样点占多少位。位深越高振幅表示越细位深决定了一个采样值可以有多少种不同的数值等级。你可以先不记具体公式只记住这个直觉位深低可表示的振幅等级少位深高可表示的振幅等级多这意味着位深越高通常越能更细致地表示振幅变化位深越低量化更粗误差更明显16-bit 和 24-bit 最先该怎么理解对初学者来说最好的第一层理解是16-bit已经能满足很多常见音频场景24-bit能提供更细的振幅刻度和更大的动态范围余量后面你学到动态范围、噪声底、录音余量时会更深刻地理解它们的区别。今天先建立第一层认识就够了采样率主要管时间维度位深主要管振幅维度。这句话非常关键。用一句话区分采样率和位深很多初学者会把采样率和位深混在一起。你可以先这样区分采样率1 秒钟取多少次点位深每次取到的点用多细的刻度表示再直白一点采样率解决“时间上取多密”位深解决“数值上记多细”如果这个区分你已经稳了第 2 天最难的部分就已经过了一大半。量化误差是什么因为量化只能把真实值归到有限等级上所以一定会产生误差。误差从哪里来假设真实振幅是某个连续值但系统只能表示几个固定等级那它就必须选一个“最接近的格子”。选完以后记录值和真实值之间就会有差距。这个差距就是量化误差。为什么位深越高量化误差通常越小因为可用等级越多刻度越细真实值就更容易被映射到一个非常接近的记录值。所以位深低刻度粗误差更容易明显位深高刻度细误差通常更小你现在不需要去分析失真形式只要知道量化不是“无损瞬移”它是一种有限精度表示。什么是 PCM当你已经理解采样和量化之后就可以正式进入PCM。PCM 不是文件格式先说最重要的一句PCM 首先是一种音频数据表示方式不等于某个具体文件格式。很多初学者会把PCM和WAV混为一谈这是不对的。PCM 的核心含义PCM是Pulse Code Modulation的缩写中文常叫“脉冲编码调制”。这个名字听起来有点吓人但你不需要被它劝退。对初学者来说先这样理解就够了PCM 就是把声音经过采样、量化之后得到的一串按顺序排列的数字音频数据。更口语一点按时间不断取样把每次的振幅记录成数字按顺序排起来这就是最基础的 PCM 思路。PCM 数据里通常包含什么要正确解释一段 PCM 数据通常至少需要知道这些信息采样率是多少位深是多少声道数是多少数据是如何排列的如果只给你一串裸二进制字节而不告诉你这些参数你往往没法正确还原它对应的声音。这也是为什么音频文件除了数据本身通常还需要头信息、元数据或容器结构来描述格式参数。PCM 为什么重要因为它是最基础、最直接的数字音频表示形式之一。很多音频处理逻辑本质上就是在处理 PCM读 PCM改 PCM统计 PCM导出 PCM在你的项目背景里这一点尤其重要。后面你看AudioToolProcessor、导出处理、波形统计时很多逻辑都是围绕 PCM 展开的。什么是 WAV它和 PCM 是什么关系既然今天讲到了 PCM就顺手把一个常见混淆点讲清楚。WAV 是容器或文件格式WAV可以先理解成一种常见音频文件格式里面除了音频数据本身通常还会包含描述信息比如采样率位深声道数数据大小WAV 里常常装的是 PCM很多常见的WAV文件里面装的是 PCM 音频数据。所以人们经常会把两者一起提。但它们不是同一个层级的概念PCM是数据表示方式WAV是文件封装形式之一你可以先粗略理解成PCM 像“原始数据内容”WAV 像“把这些数据和说明书一起装起来的文件盒子”这个比喻不严格但对入门非常有帮助。44.1kHz / 16-bit到底在描述什么到这里可以解释今天最常见的一组规格写法了。第一部分44.1kHz这表示每秒采样 44100 次也就是时间轴上每秒取了 44100 个点。第二部分16-bit这表示每个采样值使用 16 位二进制表示也就是每次采样测到的振幅用 16 位精度记录下来。如果再加上声道信息在实际工程里通常还要配合声道一起理解比如44.1kHz / 16-bit / stereo这才更完整。不过声道细讲会放到第 3 天。今天先知道采样率描述时间维度位深描述振幅精度声道描述有几路独立音频数据为什么同样 1 秒音频参数不同数据量会不同理解采样率和位深后这个问题就很好解释。采样率越高每秒的点越多点越多需要存的数据通常就越多。位深越高每个点占的位数越多每个点更“宽”总数据量通常也会更大。声道越多总数据量也越大虽然第 3 天才会系统讲声道但这里可以先知道双声道通常比单声道需要更多数据。所以决定原始音频数据量的核心因素通常包括时长采样率位深声道数这也是为什么高规格原始音频文件往往体积更大。数字音频是怎么播放出来的很多人学到这里会问“如果计算机里只有一串数字为什么扬声器里能听到连续声音”这是个很好的问题。播放时会做反向转换录音或采集时是把模拟声音变成数字。播放时则是把数字数据重新转换成可驱动扬声器的模拟信号。这个过程通常依赖数模转换等硬件和电路过程。扬声器最后发出的仍然是振动不管中间在计算机里经过了多少数字处理最后进入你耳朵的仍然不是“二进制”而是扬声器振膜振动空气压力变化耳朵接收声音也就是说数字音频只是中间表示形式最终回到人耳时还是物理世界里的声音。把今天的概念串成一条完整链路到这里建议你把今天的知识点串成下面这条链路真实声音是连续变化的模拟信号计算机不能直接保存无限连续变化所以要定期取样得到很多sample每秒取多少次由采样率决定每个采样值记录得多精细由位深决定连续振幅映射到有限数字等级这一步叫量化最终得到的一串数字音频数据就是最基础的 PCM 思路如果这条链路你能顺着讲下来第 2 天的核心已经掌握了。初学者最容易混淆的几个点误区 1采样率就是音量大小不对。采样率描述的是每秒取样多少次不是声音大小。音量大小更接近振幅相关问题。误区 2位深就是文件时长不对。位深描述的是每个采样值的表示精度和时长不是同一个概念。误区 3PCM 就是 WAV不对。PCM 是数据表示方式WAV 是常见文件封装形式之一。很多 WAV 里装的是 PCM但两者不能画等号。误区 4数字音频完全就是连续声音本体不对。数字音频是对连续声音的离散数字表示不是物理声音本身。误区 5采样率越高就一定全面更好不对。更高采样率意味着更高的数据量和处理成本工程里要结合场景、兼容性和收益来选。今天建议这样练今天仍然不需要写代码重点是把抽象概念和实际观察对应起来。练习 1找几种音频文件看参数你可以随便找几段音频查看它们的媒体属性重点关注采样率是多少位深是多少声道数是多少然后问自己哪些文件是44.1kHz哪些文件是48kHz有没有文件没有直接显示位深练习 2自己解释44.1kHz / 16-bit不要背书试着用自己的话说出来44.1kHz代表什么16-bit代表什么如果你能讲给别人听而且对方能听懂说明你已经掌握了。练习 3画一个最简流程图你可以在纸上写出这条链路真实声音 - 采样 - 量化 - PCM 数据 - 播放还原然后在每个箭头旁边补一句解释。这个练习很简单但非常有效。今天这一步为什么重要第 1 天你学的是声音本身第 2 天你学的是计算机如何记录声音。这一步的重要性在于它是后面所有工程概念的共同基础。例如第 3 天为什么要讲sample和frame第 4 天为什么波形能画出来第 5 天为什么可以统计峰值和 RMS第 7 天为什么不同格式体积和用途不同后面为什么可以对 PCM 做裁剪、归一化、淡入淡出本质上都建立在今天这一层之上。今天的总结第 2 天真正要记住的核心句子只有几句真实声音是连续的模拟信号计算机需要把声音转成数字才能保存和处理采样是在时间轴上定期取点采样率决定每秒取多少点位深决定每个点记录得多精细量化是把连续振幅映射到有限数字等级PCM 是最基础的数字音频表示方式之一如果这些句子你已经理解了而不是只会复述你就已经进入数字音频的门了。自检问题你可以先不看前文尝试自己回答下面这些问题为什么真实声音进入计算机后不能原样保持连续状态什么是采样一个sample记录的是什么什么是采样率44.1kHz表示什么什么是位深它主要影响哪一层精度什么是量化为什么会有量化误差PCM是文件格式吗它和WAV是什么关系自检参考答案1. 为什么真实声音进入计算机后不能原样保持连续状态因为真实声音是连续变化的模拟信号而计算机更适合处理离散的数字数据所以需要把声音转换成可以存储和计算的一串数值。2. 什么是采样一个sample记录的是什么采样就是每隔一小段时间测一次声音当前的振幅值。一个sample可以理解成某个时刻的振幅数值记录。3. 什么是采样率44.1kHz表示什么采样率是 1 秒钟采样多少次。44.1kHz表示每秒采样 44100 次。4. 什么是位深它主要影响哪一层精度位深是每个采样值用多少位二进制表示。它主要影响振幅表示的精细程度。5. 什么是量化为什么会有量化误差量化是把连续变化的真实振幅映射到有限的数字等级上。因为等级有限记录值和真实值之间通常会有差距这就是量化误差。6.PCM是文件格式吗它和WAV是什么关系PCM 首先是数据表示方式不等于文件格式。WAV 是常见的文件封装形式很多 WAV 文件里装的是 PCM 数据。明天会学什么明天会继续往前走一步既然已经知道数字音频是由一串采样值组成的那在单声道、双声道、多声道情况下这些数据到底是怎么排布的sample和frame到底有什么区别这会直接进入工程里最常见、也最容易出错的一层数据组织问题。