音频基础知识

张开发
2026/4/22 3:58:35 15 分钟阅读

分享文章

音频基础知识
一、为什么要先学音频基础在嵌入式音视频开发中音频不像表面看起来那么简单。很多初学者在接触录音、播放、编码、推流时容易直接上手 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波形决定声音的“音色”。为什么同样唱一个音符钢琴和小提琴听起来不同因为它们产生的波形不同谐波成分不同所以音色不同。也就是说频率决定音调振幅决定音量波形决定音色三、模拟音频与数字音频现实世界中的声音是模拟信号它的特点是时间连续幅值连续但是计算机、单片机、处理器更擅长处理的是数字信号也就是时间离散幅值离散所以要想让设备处理声音就必须把模拟音频转换成数字音频这个过程就叫做音频数字化音频数字化通常分为三个步骤采样量化编码这三个步骤也是理解 PCM 的基础。四、音频数字化过程4.1 采样Sampling采样就是每隔固定时间对模拟信号取一个点。原本连续的声音波形通过不断“取样”就变成了一串离散的数据点。采样率采样率表示1 秒钟采集多少个样本点单位是 Hz。常见采样率如下采样率典型场景8kHz电话语音16kHz语音识别、对讲44.1kHzCD 音乐48kHz视频音频、专业音频96kHz高保真音频为什么采样率要这样选这和一个非常重要的理论有关奈奎斯特采样定理。奈奎斯特采样定理如果一个模拟信号的最高频率为fmax那么采样率至少要满足fs 2 * fmax也就是说采样率必须至少是信号最高频率的两倍才能尽量还原原始信号。例如人耳最高能听到约 20kHz所以理论上采样率至少要大于 40kHzCD 最后采用了 44.1kHz这就是为什么 44.1kHz 会成为经典音频采样率之一。4.2 量化Quantization采样解决的是“时间离散化”量化解决的是“幅值离散化”。因为模拟信号的振幅是连续变化的而数字系统只能表示有限个数值所以必须把每个采样点的振幅映射到一个固定范围的整数值。位深Bit Depth量化精度通常由位深决定。常见位深8 bit16 bit24 bit32 bit不同位深可表示的离散级数8 bit2^8 256 级16 bit2^16 65536 级24 bit2^24 16777216 级位深的影响位深越高振幅表示越精细量化误差越小动态范围越大音质越好数据量也越大所以在工程里经常要平衡音质存储带宽处理开销4.3 编码Encoding完成采样和量化后就需要把这些数值按一定规则保存为二进制数据这一步叫编码。最基础、最常见的音频编码方式就是PCMPulse Code Modulation脉冲编码调制PCM 不是压缩编码它本质上就是把音频采样值“原样保存”。所以 PCM 的特点是实现简单还原度高数据量大适合做原始音频数据五、PCM 音频数据详解PCM 是后续学习 WAV、AAC、ALSA、音频采集播放的核心基础。5.1 PCM 的三个关键参数一个 PCM 音频流通常由下面三个核心参数决定采样率Sample Rate位深Bit Depth声道数Channels例如44100Hz / 16bit / 2channel 表示 * 每秒采样 44100 次 * 每个样本用 16 位表示 * 双声道5.2 PCM 数据量怎么算这是面试和工程中都非常常见的问题。例子 144.1kHz、16bit、双声道每秒数据量 采样率 × 位深 × 声道数 44100 × 16 × 2 1411200 bit/s换算成字节1411200 / 8 176400 Byte/s ≈ 172.27 KB/s也就是说1 秒钟大约 176KB。那 1 分钟呢176400 × 60 10584000 Byte ≈ 10.09 MB这就是为什么原始 PCM 文件很大。5.3 单声道与双声道单声道Mono只有一路音频数据。特点数据量小适合语音常见于对讲、语音识别、低带宽场景双声道Stereo左右两个声道LeftRight特点更有空间感更适合音乐和多媒体播放数据量是单声道的 2 倍5.4 PCM 数据存储顺序对于双声道 PCM常见有两种存储方式。1交错模式InterleavedL R L R L R L R ...即一个左声道样本、一个右声道样本交替存放。这是最常见的方式ALSA 默认也常见这种布局。2非交错模式Non-InterleavedL L L L ... R R R R ...左右声道分别连续存储。这种方式在一些专业音频处理中也会看到。5.5 大端与小端在保存多字节样本时还会涉及字节序问题。常见格式s16le16 位有符号小端s16be16 位有符号大端s24le24 位有符号小端s32le32 位有符号小端例如s16le表示signed有符号1616 位little endian小端序在嵌入式 Linux 和 PC 平台上最常见的是S16_LE六、比特率、码率与数据量很多初学者容易把“采样率”和“比特率”混淆。6.1 比特率Bitrate比特率表示单位时间内传输或存储的数据位数单位通常是bpskbps对于未压缩 PCM 来说比特率可以直接由参数计算出来比特率 采样率 × 位深 × 声道数例如48000 × 16 × 2 1536000 bps 1536 kbps6.2 压缩编码中的码率对于 AAC、MP3 这种有损压缩格式码率通常是编码器输出的目标值比如64 kbps96 kbps128 kbps192 kbps码率越高音质通常越好文件越大带宽占用越高七、常见音频格式之间的关系很多人会把 PCM、WAV、AAC、MP3 混在一起其实它们不是同一个层面的概念。7.1 PCMPCM 是原始音频数据本质是采样值本身。7.2 WAVWAV 本质上通常是带文件头的 PCM也就是说PCM 是裸数据WAV 文件头 PCM 数据所以 WAV 更方便播放器识别参数比如采样率位深声道数数据长度7.3 MP3 / AAC它们属于压缩编码格式。特点文件更小更适合存储和网络传输解码复杂度更高不再是“原始采样值”八、嵌入式音频系统中的完整链路学完基础概念后一定要用“系统链路”的方式理解嵌入式音频。8.1 录音链路声音 - 麦克风 - 模拟电信号 - ADC - 数字音频数据 - I2S/PCM总线 - SoC - ALSA - 应用程序8.2 播放链路应用程序 - ALSA - I2S/PCM总线 - Codec/DAC - 模拟电信号 - 功放 - 扬声器8.3 关键硬件模块麦克风Mic把声音转换成模拟电信号。ADC模数转换器把模拟信号转换成数字信号。DAC数模转换器把数字信号转换成模拟信号。Codec很多芯片会把 ADC、DAC、增益控制、混音等功能集成在一起这类芯片通常统称音频 Codec。I2SI2S 是常见的音频数字接口用来在 SoC 和 Codec 之间传输音频数据。九、为什么嵌入式音频开发常见 8k / 16k / 48k很多初学者看到不同项目参数不一样会疑惑为什么。其实这和业务场景强相关。9.1 8kHz电话语音低带宽场景只保证人声基本可懂度9.2 16kHz语音识别对讲智能语音设备相比 8kHz16kHz 的高频保留更多语音清晰度更高。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 声道数会直接影响数据量双声道的数据量是单声道的两倍。十二、从音频基础到后续章节的衔接学完这一章之后后面建议按这个顺序继续学习PCM 编码与 WAV 文件格式ALSA 音频采集与播放流程AAC 音频压缩编码音频封装格式ADTS、FLV、MP4、TS音频推流与同步音视频同步这样知识链路会比较完整。十三、总结音频的本质是把现实世界中连续变化的声音转换成设备能存储、处理、传输的数字数据。理解音频基础重点要抓住下面几个关键词声音三要素频率、振幅、波形音频数字化采样、量化、编码PCM 三参数采样率、位深、声道数数据量核心采样率越高、位深越高、声道越多数据量越大工程目标在音质、实时性、存储、带宽、算力之间做平衡对于嵌入式音视频开发来说音频基础不是“背概念”而是后续做录音、播放、编码、推流、同步的底层前提。

更多文章