音频基础知识

一、为什么要先学音频基础

在嵌入式音视频开发中,音频不像表面看起来那么简单。

很多初学者在接触录音、播放、编码、推流时,容易直接上手 ALSA、FFmpeg 或厂商 SDK,但如果对音频的基本概念理解不够,后面会频繁遇到这些问题:

  • 为什么采样率常见的是 8k、16k、44.1k、48k?
  • 为什么位深越高,音质越好,但数据量也越大?
  • 为什么原始 PCM 文件这么大?
  • 为什么会出现噪声、爆音、卡顿、延迟?
  • 为什么同样 10 秒音频,PCM、WAV、AAC 文件大小差别很大?

所以,音频基础知识不是"可学可不学"的理论,而是后续学习:

  • ALSA 采集与播放
  • WAV 文件格式
  • AAC 编码
  • 音频推流
  • 音视频同步

这些内容的底层前提。


二、声音的本质

声音本质上是一种机械波 ,是物体振动在空气等介质中传播形成的。

它属于一种连续变化的模拟信号。

从工程角度来说,我们平时听到的说话声、音乐声、环境噪声,本质上都是空气压力随时间变化形成的波形。

2.1 声音的三要素

通常我们用三个维度去描述声音:

1)频率(Frequency)

频率表示声波在 1 秒内振动的次数,单位是 Hz(赫兹)。

  • 频率越高,音调越高
  • 频率越低,音调越低

例如:

  • 鼓声通常频率较低
  • 女声通常频率比男声高
  • 鸟叫声通常频率更高

人耳可听到的频率范围大致为:20Hz ~ 20kHz

低于 20Hz 的叫次声波 ,高于 20kHz 的叫超声波


2)振幅(Amplitude)

振幅表示波动的强弱,可以简单理解为声音的"大小"。

  • 振幅越大,声音听起来越响
  • 振幅越小,声音听起来越轻

在数字音频里,振幅最终会被量化成离散的数值。


3)波形(Waveform)

波形决定声音的"音色"。

为什么同样唱一个音符,钢琴和小提琴听起来不同?

因为它们产生的波形不同,谐波成分不同,所以音色不同。

也就是说:

  • 频率决定音调
  • 振幅决定音量
  • 波形决定音色

三、模拟音频与数字音频

现实世界中的声音是模拟信号,它的特点是:

  • 时间连续
  • 幅值连续

但是计算机、单片机、处理器更擅长处理的是数字信号,也就是:

  • 时间离散
  • 幅值离散

所以,要想让设备处理声音,就必须把模拟音频转换成数字音频,这个过程就叫做:音频数字化

音频数字化通常分为三个步骤:

  1. 采样
  2. 量化
  3. 编码

这三个步骤也是理解 PCM 的基础。


四、音频数字化过程

4.1 采样(Sampling)

采样就是:每隔固定时间,对模拟信号取一个点。

原本连续的声音波形,通过不断"取样",就变成了一串离散的数据点。

采样率

采样率表示:1 秒钟采集多少个样本点,单位是 Hz。

常见采样率如下:

采样率 典型场景
8kHz 电话语音
16kHz 语音识别、对讲
44.1kHz CD 音乐
48kHz 视频音频、专业音频
96kHz 高保真音频

为什么采样率要这样选?

这和一个非常重要的理论有关:奈奎斯特采样定理

奈奎斯特采样定理

如果一个模拟信号的最高频率为 fmax,那么采样率至少要满足:

text 复制代码
fs >= 2 * fmax

也就是说,采样率必须至少是信号最高频率的两倍,才能尽量还原原始信号。

例如:

  • 人耳最高能听到约 20kHz
  • 所以理论上采样率至少要大于 40kHz
  • CD 最后采用了 44.1kHz

这就是为什么 44.1kHz 会成为经典音频采样率之一。


4.2 量化(Quantization)

采样解决的是"时间离散化",

量化解决的是"幅值离散化"。

因为模拟信号的振幅是连续变化的,而数字系统只能表示有限个数值,所以必须把每个采样点的振幅映射到一个固定范围的整数值。

位深(Bit Depth)

量化精度通常由位深决定。

常见位深:

  • 8 bit
  • 16 bit
  • 24 bit
  • 32 bit

不同位深可表示的离散级数:

  • 8 bit:2^8 = 256 级
  • 16 bit:2^16 = 65536 级
  • 24 bit:2^24 = 16777216 级

位深的影响

位深越高:

  • 振幅表示越精细
  • 量化误差越小
  • 动态范围越大
  • 音质越好
  • 数据量也越大

所以在工程里经常要平衡:

  • 音质
  • 存储
  • 带宽
  • 处理开销

4.3 编码(Encoding)

完成采样和量化后,就需要把这些数值按一定规则保存为二进制数据,这一步叫编码。

最基础、最常见的音频编码方式就是:PCM(Pulse Code Modulation,脉冲编码调制)

PCM 不是压缩编码,它本质上就是把音频采样值"原样保存"。

所以 PCM 的特点是:

  • 实现简单
  • 还原度高
  • 数据量大
  • 适合做原始音频数据

五、PCM 音频数据详解

PCM 是后续学习 WAV、AAC、ALSA、音频采集播放的核心基础。

5.1 PCM 的三个关键参数

一个 PCM 音频流,通常由下面三个核心参数决定:

  • 采样率(Sample Rate)
  • 位深(Bit Depth)
  • 声道数(Channels)

例如:

text 复制代码
44100Hz / 16bit / 2channel

表示:

* 每秒采样 44100 次
* 每个样本用 16 位表示
* 双声道

5.2 PCM 数据量怎么算?

这是面试和工程中都非常常见的问题。

例子 1:44.1kHz、16bit、双声道

text 复制代码
每秒数据量 = 采样率 × 位深 × 声道数
          = 44100 × 16 × 2
          = 1411200 bit/s

换算成字节:

text 复制代码
1411200 / 8 = 176400 Byte/s ≈ 172.27 KB/s

也就是说,1 秒钟大约 176KB。

那 1 分钟呢?

text 复制代码
176400 × 60 = 10584000 Byte ≈ 10.09 MB

这就是为什么原始 PCM 文件很大。


5.3 单声道与双声道

单声道(Mono)

只有一路音频数据。

特点:

  • 数据量小
  • 适合语音
  • 常见于对讲、语音识别、低带宽场景
双声道(Stereo)

左右两个声道:

  • Left
  • Right

特点:

  • 更有空间感
  • 更适合音乐和多媒体播放
  • 数据量是单声道的 2 倍

5.4 PCM 数据存储顺序

对于双声道 PCM,常见有两种存储方式。

1)交错模式(Interleaved)
text 复制代码
L R L R L R L R ...

即一个左声道样本、一个右声道样本交替存放。

这是最常见的方式,ALSA 默认也常见这种布局。

2)非交错模式(Non-Interleaved)
text 复制代码
L L L L ...
R R R R ...

左右声道分别连续存储。

这种方式在一些专业音频处理中也会看到。


5.5 大端与小端

在保存多字节样本时,还会涉及字节序问题。

常见格式:

  • s16le:16 位有符号小端
  • s16be:16 位有符号大端
  • s24le:24 位有符号小端
  • s32le:32 位有符号小端

例如 s16le 表示:

  • signed:有符号
  • 16:16 位
  • little endian:小端序

在嵌入式 Linux 和 PC 平台上,最常见的是:S16_LE


六、比特率、码率与数据量

很多初学者容易把"采样率"和"比特率"混淆。

6.1 比特率(Bitrate)

比特率表示:单位时间内传输或存储的数据位数

单位通常是:

  • bps
  • kbps

对于未压缩 PCM 来说,比特率可以直接由参数计算出来:

text 复制代码
比特率 = 采样率 × 位深 × 声道数

例如:

text 复制代码
48000 × 16 × 2 = 1536000 bps = 1536 kbps

6.2 压缩编码中的码率

对于 AAC、MP3 这种有损压缩格式,码率通常是编码器输出的目标值,比如:

  • 64 kbps
  • 96 kbps
  • 128 kbps
  • 192 kbps

码率越高:

  • 音质通常越好
  • 文件越大
  • 带宽占用越高

七、常见音频格式之间的关系

很多人会把 PCM、WAV、AAC、MP3 混在一起,其实它们不是同一个层面的概念。

7.1 PCM

PCM 是原始音频数据,本质是采样值本身。

7.2 WAV

WAV 本质上通常是:带文件头的 PCM

也就是说:

  • PCM 是裸数据
  • WAV = 文件头 + PCM 数据

所以 WAV 更方便播放器识别参数,比如:

  • 采样率
  • 位深
  • 声道数
  • 数据长度

7.3 MP3 / AAC

它们属于压缩编码格式

特点:

  • 文件更小
  • 更适合存储和网络传输
  • 解码复杂度更高
  • 不再是"原始采样值"

八、嵌入式音频系统中的完整链路

学完基础概念后,一定要用"系统链路"的方式理解嵌入式音频。

8.1 录音链路

text 复制代码
声音 -> 麦克风 -> 模拟电信号 -> ADC -> 数字音频数据 -> I2S/PCM总线 -> SoC -> ALSA -> 应用程序

8.2 播放链路

text 复制代码
应用程序 -> ALSA -> I2S/PCM总线 -> Codec/DAC -> 模拟电信号 -> 功放 -> 扬声器

8.3 关键硬件模块

麦克风(Mic)

把声音转换成模拟电信号。

ADC(模数转换器)

把模拟信号转换成数字信号。

DAC(数模转换器)

把数字信号转换成模拟信号。

Codec

很多芯片会把 ADC、DAC、增益控制、混音等功能集成在一起,这类芯片通常统称音频 Codec。

I2S

I2S 是常见的音频数字接口,用来在 SoC 和 Codec 之间传输音频数据。


九、为什么嵌入式音频开发常见 8k / 16k / 48k

很多初学者看到不同项目参数不一样,会疑惑为什么。其实这和业务场景强相关。

9.1 8kHz

  • 电话语音
  • 低带宽场景
  • 只保证人声基本可懂度

9.2 16kHz

  • 语音识别
  • 对讲
  • 智能语音设备

相比 8kHz,16kHz 的高频保留更多,语音清晰度更高。

9.3 44.1kHz

  • 音乐
  • CD 标准

9.4 48kHz

  • 视频音频
  • 广播电视
  • 影视与流媒体系统中较常见

所以不是参数越大越好,而是要根据:

  • 应用场景
  • 带宽
  • 存储
  • 算力
  • 实时性

来综合取舍。


十、音频开发中的常见问题

掌握概念只是第一步,真正做项目时,经常会遇到实际问题。

10.1 噪声

常见原因:

  • 模拟电路设计不好
  • 电源干扰
  • 地线处理不好
  • 麦克风前端增益过大
  • 采样环境本身就很嘈杂

10.2 爆音

常见原因:

  • 播放缓存供不上数据
  • 数据突变
  • 时钟异常
  • 音量切换过快
  • 录播开始/停止时处理不当

10.3 卡顿

常见原因:

  • CPU 忙不过来
  • DMA/缓存配置不合理
  • 用户态读写不及时
  • 中断处理不及时

10.4 延迟过大

常见原因:

  • buffer 设置太大
  • 编码处理耗时
  • 音频链路过长
  • 推流发送阻塞

这些问题后面在 ALSA、AAC、推流开发中都会不断遇到。


十一、学习音频基础时容易混淆的几个点

11.1 采样率不是码率

  • 采样率:每秒取多少个样本
  • 码率:每秒需要多少比特存储或传输

11.2 WAV 不是编码算法

WAV 更像是一种封装格式,内部很多时候装的是 PCM。

11.3 PCM 不是压缩格式

PCM 是最原始的数字音频表示方式,数据量通常很大。

11.4 声道数会直接影响数据量

双声道的数据量是单声道的两倍。


十二、从音频基础到后续章节的衔接

学完这一章之后,后面建议按这个顺序继续学习:

  1. PCM 编码与 WAV 文件格式
  2. ALSA 音频采集与播放流程
  3. AAC 音频压缩编码
  4. 音频封装格式(ADTS、FLV、MP4、TS)
  5. 音频推流与同步
  6. 音视频同步

这样知识链路会比较完整。


十三、总结

音频的本质,是把现实世界中连续变化的声音,转换成设备能存储、处理、传输的数字数据。

理解音频基础,重点要抓住下面几个关键词:

  • 声音三要素:频率、振幅、波形
  • 音频数字化:采样、量化、编码
  • PCM 三参数:采样率、位深、声道数
  • 数据量核心:采样率越高、位深越高、声道越多,数据量越大
  • 工程目标:在音质、实时性、存储、带宽、算力之间做平衡

对于嵌入式音视频开发来说,音频基础不是"背概念",而是后续做录音、播放、编码、推流、同步的底层前提。

相关推荐
不才小强3 小时前
Windows Graphics Capture (WGC) 屏幕捕获简介
windows·音视频
云边散步5 小时前
godot2D游戏教程系列二(23)
笔记·学习·游戏·音视频·游戏开发
linkingvision6 小时前
国产操作系统和国产GPU 能代替Windows + Intel的安防视频客户端解码功能么
音视频·视频监控·国产显卡·vaapi·国产cpu·国产gpu
AI服务老曹6 小时前
打破协议孤岛:基于 GB28181/RTSP 的 AI 视频统一接入网关架构解析(源码级)
人工智能·架构·音视频
烧饼Fighting7 小时前
java+vue推rtsp流实现视频播放(由javacv+ffmpg转为vlcj)
java·开发语言·音视频
Black蜡笔小新7 小时前
GB28181/GB35114/RTSP/ONVIF视频监控平台EasyCVR平台视频质量诊断扩展服务插件
音视频
ai产品老杨8 小时前
终结碎片化:基于GB28181/RTSP协议网关与边缘协同的企业级AI视频平台架构深度解析(附源码交付)
人工智能·架构·音视频
EasyGBS8 小时前
实战落地:国标GB28181视频平台EasyGBS+国密GB35114协议,双重保障赋能智慧安防全场景安全高效联网
人工智能·安全·音视频
正宗咸豆花8 小时前
Sora关停,实时AI交互如何破解视频生成的高成本困境?
人工智能·音视频