Skip to content

音频在计算机中如何表示

一、音频基础

从初中物理我们就知道,声音是一种波。然而计算机只能处理离散的数字信号,它无法直接记录连续的模拟波形。于是,人们通过在时间轴上密集地采集离散样本,来逼近原始波形,这个过程就叫做采样(Sampling)

声音波形图

那么,怎样才能更完整地还原原始声音呢?这自然引出了几个核心概念。

采样频率(Sample Rate)

采样频率是指每秒钟采集声音样本的次数,单位为赫兹(Hz)。采样率越高,采集到的样本越密集,还原出来的声音也就越接近原声。常见的采样率有以下几种:

采样率应用场景
8 kHz电话通话,对人声记录已经足够
22.05 kHz广播
44.1 kHz音频 CD(最常见的音乐格式)
48 kHzDVD、数字电视
96 ~ 192 kHzDVD-Audio、蓝光高清等高保真音频

采样精度(Bit Depth)

采样精度(也称位深度)表示每个采样值所使用的二进制位数。位数越多,能够记录的幅度范围就越大,声音的动态层次也就越丰富。

采样精度的常用范围为 8 bit 到 32 bit,CD 音质通常使用 16 bit

声音通道(Channel)

只要一个喇叭,就能让声音传进耳朵——这是最早的单声道(Mono)。但人类富有创造力,当人们把不同的声音分别传递给不同方向的喇叭时,竟然产生了惊人的空间感!即使是同一段声音,多通道也比单通道带来更好的听觉体验。于是便有了立体声(Stereo)、5.1 环绕声等技术。

声音通道定义了每个通道的声音会从哪个喇叭播出。当然,也可以通过算法模拟,让喇叭数量不足的设备也能呈现出类似的效果。

有了声道的概念,录音时就可以为乐队的每位成员单独分配一条音轨,录完之后再通过后期混音合并输出。

比特率(Bit Rate)

比特率(bps,bits per second)表示每秒钟需要播放多少 bit 的音频数据,它直接决定了音频文件的大小和音质上限。计算公式为:

比特率=采样率×采样精度×通道数

以 CD 音质为例:采样率 44100 Hz、采样精度 16 bit、双通道(Stereo),则:

44100×16×2=1,411,200 bps1411 kbps

一般而言,比特率越高,音频质量越好。需要注意的是,比特率的单位换算是以 1000 为进制,而非常见的 1024:

换算关系
1,000 bps = 1 kbps
1,000,000 bps = 1 Mbps
1,000,000,000 bps = 1 Gbps

二、音频在计算机中的表示

理解了上面这些概念,我们再来看音频数据在计算机中究竟是如何存储的。这里说的是原始 PCM 数据,即未经编码(非 MP3、AAC 等格式)的裸数据。

.wav 文件为例,整个文件由两部分组成:

  • 文件头(Header):前 44 个字节,用于记录采样率、通道数、采样精度等元信息;
  • 数据区(Data):紧随其后的原始 PCM 音频数据。

WAV 文件格式示意图

WAV 文件格式规范可参考 soundfile.sapp.org,这里不做深入介绍。我们重点关注数据区的存储方式,以便后续理解混音算法。

一个采样的存储结构

下图展示了一个含三个通道(每通道 16 bit)的采样在内存中的排列方式:

音频采样存储结构

可以看到,多个通道的数据是交错(Interleaved)存储的——通道 1 的采样值、通道 2 的采样值、通道 3 的采样值,依次排列,然后是下一个采样时刻的三个通道值,如此循环。

每个采样值以 Little-Endian(低字节在前) 的方式存储。例如,通道 1 的采样值为 0x03AB,在内存中存放顺序为 AB 03,低位字节 AB 在前,高位字节 03 在后。

每个采样值的大小代表该时刻声音的**幅度(Amplitude)**信息,正是这些幅度值的变化,重建了声音波形。

三、小结

本文介绍了音频编程中最基础的几个概念:

  • 采样频率:每秒采集样本的次数,决定了频率还原能力;
  • 采样精度:每个样本的位深,决定了动态范围;
  • 声音通道:多路声音的分离记录与播放;
  • 比特率:单位时间的数据量,综合反映音频质量;
  • PCM 原始数据:多通道交错、Little-Endian 存储。

掌握这些基础,是后续深入理解音频编码、混音处理等进阶知识的前提。

参考资料

  1. WAV 文件格式规范 - soundfile.sapp.org
  2. 维基百科 - 比特率

评论