news 2026/7/2 21:04:38

音频技术知识-基础

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
音频技术知识-基础

一、音频术语

1、PCM是什么

简单说,PCM就是把声音“翻译”成电脑能懂的数字。

翻译过程:采样、量化、编码

PCM(Pulse Code Modulation)又称脉冲编码调制,是一种用于数字通信和音频记录的技术。PCM通过对模拟信号进行采样、量化、编码,将连续的模拟信号转换为离散的数字信号,从而实现信号的高保真传输和存储。

自然界中的声音通过麦克风等采集设备处理后,首先会将声音信号转换成电信号,但此时的电信号是连续的模拟信号,将这些音频模拟信号在坐标系表示就类似于下图:

然而,计算机只认识0和1,这样连续的模拟信号要被计算机传输或存储等处理的话,就需要先转换成数字信号。通过模数转换器(A/D),将音频模拟信号转换成数字信号后就可以被计算机处理,经过模数转换器处理后的音频数字信号就是PCM,是声音的原始数据。在音视频编程中,常被称为音频裸数据,它还可以继续被编码或封装成其他格式的音频数据如:wav、mp3、aac、ogg;

计算机处理后的数字音频信号,再通过数模转换器(D/A),转换成音频模拟信号,最后通过扬声器等设备转成声音信号,进行播放。

把电脑想象成一个工厂,声音就是原材料。

第一步:收货(模数转换,A/D)
自然界的声音是连绵不断的“水流”(模拟信号),电脑这个“工厂”只认“乐高积木”(数字信号0和1)。所以,需要一台“水流切片机”(模数转换器),把连续的水流切成一片一片的,再给每片标上精确的尺寸数字。切好并标好数字后的这些“积木块”,就是PCM数据——它是声音最原始、最赤裸的形态,也叫“音频裸数据”。

第二步:加工或储存
拿到这些“裸数据”积木后,电脑就可以随便处理了。你可以直接堆成原始模型(存成.wav),也可以压缩打包节省仓库空间(压成.mp3、.aac等),或者通过网络传给别的工厂。

第三步:发货(数模转换,D/A)
当需要让人听到声音时,电脑不能直接把0和1扔给人耳。需要另一台“积木还原机”(数模转换器),把那些标着数字的积木块,重新拼成一条连续的水流(模拟信号),再通过“水龙头”(扬声器)喷出来,变成我们能听到的声音。

2、PCM编码过程-采样

因为声音是连续性数据,需要将其转换为离散型数据,因此需要每隔一个时间(很微小的时间)采取一个点的数据保存,这就是采样。

每个时间内容(1s内)采样多少次,就是采样率,例如:每秒采样100次,就是采样率。

如图所示,采样就是将模拟信号的音频连续性数据)转换成数字信号音频离散型数据)的过程,通过模/数转换器(A/D)对声波进行采样,每一次采样都记录下了原始模拟声波在某一时刻的状态,称之为样本,将一串的样本连接起来,就可以描述一段声波。把每一秒钟所采样的次数称为采样频率,单位为HZ(赫兹)。其实,采样就是在时间轴上对信号进行数字化。

采用过程如上图,用若干个黑点来表示红色的曲线。红色的曲线是音频模拟信号,各个黑点就是样本。

采样率:每一秒钟所采样的样本个数;如果每秒所采集的样本越多,越能精确的表示曲线。

常见的采样率有:

  • 8000Hz:常用于电话语音通信。电话系统对音质要求相对不高,该采样率能满足基本语音通话需求,有效降低数据传输量和存储成本 。
  • 16000Hz:在一些对音质有一定要求的语音录制场景使用,如部分语音助手的音频采集,相比 8000Hz 能更好还原语音细节。
  • 44.1kHz:是音频 CD 的标准采样率。它能较好还原人耳可听范围的声音,涵盖了音乐等丰富音频内容所需频率范围,是音乐制作、消费级音频存储播放常见采样率 。
  • 48kHz:广泛应用于专业音频录制、影视制作等领域。像电影音频制作、录音棚专业录制等,该采样率与视频帧率配合较好,且能提供高质量音频录制效果 。
  • 96kHz192kHz:属于高分辨率音频采样率。用于对音质要求极高的专业音频制作,如高端音乐录制、母带处理等。高采样率能更精准捕捉声音细节,提供更宽广频率响应和动态范围,但数据量大幅增加 。

3、PCM编码过程-量化

位宽就是尺子的精细度——格子越多,量得越准,声音越真,但数据也越多。就像照片像素,像素越高越清楚,但照片也越大。

把声音想象成一把“音量尺”。

  • 16位:这把尺子上有 2的16次幂 即65536个刻度(从-32768到32767),每个刻度都特别细,就像用毫米尺量东西,量得特别准。声音的高低起伏都能记下来,音质好,但记录的内容多,文件就大。

  • 8位:这把尺子上只有2的8次幂 即256个刻度(从0到255),就像用厘米尺量东西,大概其能知道多高多矮,细的地方就凑合了。声音细节少一些,音质普通,但文件小省地方。

8位尺子的特殊情况:

  • 普通8位尺子是0~255,0是最小声,255是最大声。

  • 如果标“有符号”的,就是-128~127,相当于把0刻度放在中间,上下各一半。

16位尺子固定是 -32768~32767,最高一格用来标是正数还是负数。

量化就是为采集的样本确定一个取值范围。比如用16比特的二进制信号来表示声音的一个样本, 而16比特(一个short) 所表示的范围是[-32768,32767], 共有65536个可能取值, 因此最终音频的数字信号在幅度上也分为了65536层。而如果用8比特的二进制信号来表示声音的一个样本,8比特(一个unsigned char)所表示的范围是[0,255],共有256个层级。

注意:

在8位的PCM音频数据中,样本的取值范围是从0到255。对于有符号的8位PCM编码,取值范围为-128到127。每个样本使用一个8位字节来表示其幅度值,其中最低位(LSB)表示0,最高位(MSB)表示255。这种编码方式使得正负幅度能够均匀地分布在取值范围内,方便存储和处理。如果没有明确指定是有符号还是无符号的情况下,通常默认为无符号的0到255取值范围。

在16位PCM音频数据中,样本的取值范围是-32768到32767。16位PCM音频数据使用两个字节(16个比特)来表示每个样本的取值,其中一个比特用于表示正负号(16位中最高位为符号位)。

位宽越大,能够描述声音的振幅层次越多,也就能保留更多原始声音信号的细节,但是响应大,存储和处理的开销也会越大。

4、PCM编码过程-编码

想象你去菜市场买菜:

  1. 采样= 你每隔一会儿看一眼秤上的重量(比如0.5kg、0.6kg、0.55kg…)。

  2. 量化= 你把这些重量四舍五入成固定的刻度(比如精确到两,0.5kg、0.6kg…)。

  3. 编码= 你拿出小本本,按固定格式记下来
    “第一笔:土豆,0.5kg,5块钱;第二笔:白菜,0.6kg,3块钱……”
    你可以按顺序记(顺序存储),也可以把同类东西归到一起记(压缩存储)。但不管怎么记,本子上写的都是统一的数字和文字(二进制码)。

放到声音上:

  • 采样和量化做完,声音就变成了一串数字(比如:-3, 5, -2, 7, -4…)。

  • 编码就是把这串数字按固定规则写成计算机认识的0和1

    • 比如规定好:每个数字用16位二进制表示,正数怎么写、负数怎么写,顺序怎么排。

    • 写完之后,这串0和1就是PCM数据——声音的原始“电子账本”。

编码,就是按照一定的格式记录采样和量化后的样本数据,将量化后的数字信号转换为二进制码的过程。比如顺序存储或压缩存储等等。采样、量化后的数据经过编码后产生的二进制数据,就是PCM数据。

5、PCM相关的音频参数

想象你去一家饮品店买奶茶,店员记了一笔“声音订单”:


1. 采样率 = “每隔多久看一眼杯子的刻度”

  • 如果店员每秒看1次(1Hz),就只能知道大概的水位变化,声音听起来像卡顿的幻灯片。

  • 如果每秒看48000次(48kHz),就能把水位每一瞬间的变化都记下来,声音连续又顺滑。

一句话:采样率越高,声音“画面”越流畅,细节越丰富。


2. 位深度 = “量杯上的刻度有多细”

  • 8位(256格)= 量杯上只有厘米刻度,大概知道水位高低,但细微抖动看不出。

  • 16位(65536格)= 量杯上有毫米刻度,水位哪怕只动了一丁点都能记录下来。

一句话:位深度越大,声音的“精细度”越高,音量变化的层次更丰富。


3. 声道数 = “用了几个麦克风同时记录”

  • 单声道= 只用了1个麦克风,像一个人站在你面前说话,声音从中间来。

  • 立体声= 用了2个麦克风(左右各一个),像你坐在音乐厅中间,左右耳听到不同声音,有空间感。

  • 5.1/7.1声道= 用了更多麦克风围成一圈,像在电影院,声音从四面八方包围你。

一句话:声道越多,声音的“空间感”和“方位感”越强。


4. 字节序 = “数字怎么往本子上写”

假如有一个16位的数字,高8位是“12”,低8位是“34”:

  • 大端序= 按正常习惯写:先写“12”,再写“34”(高位在前)。

  • 小端序= 倒着写:先写“34”,再写“12”(低位在前)。

电脑里必须统一用一种规则,不然读数据时会“看反”导致声音错乱。

一句话:字节序就是“写数字时的前后顺序”,约好了大家都按同一个规矩来。


5. 是否有符号 = “刻度尺有没有正负号”

  • 有符号= 刻度尺中间是0,左边负、右边正(比如-32768 ~ 32767)。适合记录声音波形,正负对应声波的“推”和“拉”。

  • 无符号= 刻度尺从0开始到正数(比如0 ~ 255),只有正方向。通常老式设备或8位音频用这种。

一句话:有符号像温度计有零上零下,无符号像身高尺只能从0往上量。

  • 采样率(Sampling Rate):表示每秒钟采样的样本数量,单位为赫兹(Hz)。它决定了PCM音频的时间分辨率和频率范围。
  • 位深度(Bit Depth):也叫位宽,表示每个样本的取值精度,通常以位数表示。它决定了PCM音频的动态范围和信噪比,一般为16bit。
  • 声道数(Number of Channels):表示PCM音频中的独立声道数量。常见的声道数有单声道(Mono)和立体声(Stereo),还可以有更多声道如5.1声道、7.1声道等。
  • 字节序(Byte Order):PCM 字节序指的是在存储 PCM(脉冲编码调制)音频数据时,字节的排列顺序(位深度非8位时需要考虑)。主要分为大端序(Big - Endian)和小端序(Little - Endian) :
    • 大端序(Big - Endian):低地址存放最高有效字节(MSB,Most Significant Bit )。比如对于一个 16 位(2 字节)的 PCM 数据,假设数值用二进制表示为<font style="color:rgb(0, 0, 0);">10101100 01010101</font>,大端序会将高字节<font style="color:rgb(0, 0, 0);">10101100</font>存放在低地址,低字节<font style="color:rgb(0, 0, 0);">01010101</font>存放在高地址 。这种方式类似于人们习惯的数字书写顺序,高位在前。
    • 小端序(Little - Endian):低地址存放最低有效字节(LSB,Least Significant Bit ) 。对于上述 16 位 PCM 数据,小端序会先将低字节<font style="color:rgb(0, 0, 0);">01010101</font>存放在低地址,高字节<font style="color:rgb(0, 0, 0);">10101100</font>存放在高地址 。
  • 采样数据是否有符号(Signed or Unsigned Samples):表示每个样本的取值是否包含符号位。有符号PCM样本的取值范围涵盖正负值,而无符号PCM样本的取值范围仅包含非负值。以 s16le 为例:它描述的是有符号16位小端PCM数据。

二、I2S协议简介

1、I2S协议简介

想象一个乐队演出,需要指挥、乐手和音响师紧密配合:

  • 位时钟(BCLK)= 指挥的节拍器,每打一拍,就传一个数据位。节拍越快,数据传得越快。

  • 帧时钟(LRCK)= 指挥的左右手,左手挥表示“该左声道了”,右手挥表示“该右声道了”。挥一次,就传完一个声道的完整数据,挥的频率就是采样率(比如每秒挥48000次)。

  • 数据信号(SD)= 乐手演奏的音符,在节拍和左右手的指挥下,一个接一个地传出去。

I2S的核心规则:

数据比帧时钟晚一个节拍——就像乐手听到指挥抬手后,稍微慢半拍再演奏,这样接收方能准确判断哪个数据属于哪个声道。

一句话总结I2S:

I2S就是音频设备之间的“标准乐谱”和“指挥手势”,让数字音频数据能整齐有序地传输。

I2S(Inter-IC Sound)是由飞利浦公司开发的一种数字音频传输协议,主要用于连接音频编解码器、数字麦克风和扬声器等音频设备。

I2S 协议通过差分信号传输数字音频数据,主要包含以下几种关键信号:

  • 时钟信号
    • 位时钟(BCLK/SCK):用于同步数据传输的时钟信号。
    • 帧时钟(LRCK/WS):用于区分左右声道数据,频率等于音频采样率。当 LRCK 为高电平时表示传输左声道数据,为低电平时表示传输右声道数据。
  • 数据信号
    • 串行数据输出(SDO/Dout):从主设备发送到从设备的音频数据。
    • 串行数据输入(SDI/Din):从从设备接收至主设备的音频数据。

2、ESP32-S3对I2S的支持

想象ESP32-S3是一个“智能音乐中转站”:

1. 硬件特性

  • 两个控制器(I2S0和I2S1)= 中控台有两个独立工位,可以同时处理两路音频(比如一路放音乐,一路录麦克风)。

  • 全双工= 每个工位可以一边说话一边听,同时收发不耽误。

  • 独立FIFO缓冲区= 每个工位都有自己的临时储物柜,数据先暂存再处理,不会乱也不会丢。

2. 配置参数

  • 采样率范围(8kHz~192kHz)= 中转站可以适应不同速度的“指挥频率”——电话音质用8kHz,Hi-Fi音质用192kHz。

  • 数据位宽(16/24/32位)= 中转站可以处理不同精细度的“音符”——16位够用,32位更精细。

  • 声道数(单声道/立体声)= 可以只接一个麦克风(单声道),也可以接左右两个(立体声)。


一句话总结ESP32-S3的I2S能力:

ESP32-S3就像有两个工位、能同时收发、可调速度快慢和精度高低、支持单双声道的“音频数据中转站”,灵活适配各种数字音频设备。

ESP32 集成了两个 I2S 控制器(I2S0 和 I2S1),具有以下特性:

  • 硬件特性
    • 支持全双工数据传输,可同时进行音频数据的发送和接收。
    • 每个 I2S 控制器有独立的发送和接收 FIFO 缓冲区,减少数据传输延迟。
    • 支持多种音频格式,包括I2S 标准格式、左对齐格式和右对齐格式。
  • 配置参数
    • 采样率范围:8kHz 至 192kHz,可灵活适应不同音频应用需求。
    • 数据位宽:支持 16 位、24 位和 32 位,满足不同精度的音频数据传输。
    • 声道数:支持单声道和立体声模式。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/2 21:04:20

Kiran-wallpapers背后的设计故事:从抽象到星空的视觉之旅

Kiran-wallpapers背后的设计故事&#xff1a;从抽象到星空的视觉之旅 【免费下载链接】kiran-wallpapers Kiran desktop wallpapers 项目地址: https://gitcode.com/openeuler/kiran-wallpapers 前往项目官网免费下载&#xff1a;https://ar.openeuler.org/ar/ Kiran-w…

作者头像 李华
网站建设 2026/7/2 21:04:01

从0到1掌握Wisdom-advisor:开发者必备的调优框架指南

从0到1掌握Wisdom-advisor&#xff1a;开发者必备的调优框架指南 【免费下载链接】wisdom-advisor Wisdom-advisor is a tunning framework aimming at improving the performance of applications. 项目地址: https://gitcode.com/openeuler/wisdom-advisor 前往项目官…

作者头像 李华
网站建设 2026/7/2 21:03:04

深度解密RPA提取技术:5个实战场景下的高效资源解包方案

深度解密RPA提取技术&#xff1a;5个实战场景下的高效资源解包方案 【免费下载链接】unrpa A program to extract files from the RPA archive format. 项目地址: https://gitcode.com/gh_mirrors/un/unrpa unrpa是专业的RPA&#xff08;RenPy Package Archive&#xff…

作者头像 李华
网站建设 2026/7/2 20:58:08

QPushButton美化秘籍:Kiran Style按钮样式全解析

QPushButton美化秘籍&#xff1a;Kiran Style按钮样式全解析 【免费下载链接】kiran-widgets-qt5 Kiran Desktop Widgets Library 项目地址: https://gitcode.com/openeuler/kiran-widgets-qt5 前往项目官网免费下载&#xff1a;https://ar.openeuler.org/ar/ 想要让Qt…

作者头像 李华