回顾ESP32S3系列---音频开发



第一张图:I2S 总线的 "三根线" 和 "传输规则"

你可以把 I2S 想象成一个立体声广播系统,它有三根关键的 "线" 负责把声音从 ESP32S3 传到喇叭 / 耳机,或者从麦克风传到 ESP32S3:

  1. LRCLK(左右声道选择线)

    • 就像一个频道切换开关,它的电平高低决定现在传的是左声道还是右声道。
    • 它的频率就是采样率(比如 44.1KHz),意思是每秒切换左右声道 44100 次,每次切换就传一个声道的声音数据。
    • 图里的1/fs就是一个完整的 "左 + 右" 声道周期,对应一帧音频数据。
  2. BCLK(时钟线)

    • 这是整个系统的节拍器,每 "滴答" 一下,就传一个 bit 的数据。
    • 它的频率比 LRCLK 高很多,比如采样率 44.1KHz、16 位音频,BCLK 频率就是44.1KHz × 16位 × 2声道 = 1.4112MHz,这样才能在一个声道周期里传完所有数据。
  3. SD(数据线)

    • 这是真正的声音快递通道,音频数据从最高位(MSB)开始,一个 bit 一个 bit 地传,直到最低位(LSB)结束。
    • 图里的Word Length (WL)就是每个声道数据的 "包裹大小",比如 16 位、24 位。
  4. 主从模式

    • ESP32S3 通常作为主设备,就像 "总指挥",主动提供 LRCLK 和 BCLK 的节拍和频道切换信号,喇叭 / 麦克风等从设备只需要跟着节奏接收 / 发送数据就行。

第二张图:"位宽" 和 "位深",别再搞混了

这俩概念就像快递包裹的 "最大容量" 和 "实际装货量"

  1. 数据位宽(硬件属性)

    • 这是硬件接口设计的 "最大包裹容量",比如 32 位,意思是 I2S 总线每次最多能装 32 个 bit 的数据进一个包裹。
    • 这是硬件定死的,比如 ESP32S3 的 I2S 支持 16/24/32 位位宽。
  2. 数据位深(音频属性)

    • 这是音频数据的 "实际有效内容",比如 24 位,意思是真正的声音信息只有 24 个 bit,剩下的 8 个 bit 用 0 填充,就像包裹里有 24 件商品,剩下的空间用泡沫填充。
    • 位深越大,声音的细节和动态范围就越好,比如 24 位比 16 位的音质更细腻。
  3. 常见组合

    • CD 音质:16 位位深 + 16 位位宽(刚好装满)
    • 高保真音频:24 位位深 + 32 位位宽(用 0 填充 8 位)

第三张图:"采样率" 和 "帧率",声音的 "拍照速度"

你可以把音频采样想象成给声音 "拍照"

  1. 采样率(帧率)

    • 就是每秒给声音拍多少张 "照片",比如 44.1KHz 就是每秒拍 44100 张,采样率越高,声音还原得越真实。
    • 常见的采样率:8KHz(电话音质)、16KHz(语音通话)、44.1KHz(CD 音质)、48KHz(影视音频)。
  2. 采样率 = LRCLK

    • 因为 LRCLK 每秒钟切换左右声道的次数,就是采样率。比如 44.1KHz 的采样率,LRCLK 就是 44.1KHz,每秒钟有 44100 个左声道数据和 44100 个右声道数据。
  3. 单 / 双声道

    • 双声道(立体声):每帧数据包含 "左 + 右" 两个声道的声音,就像同时拍两张照片。
    • 单声道:每帧只有一个声道的数据,就像只拍一张照片。



1. 标准模式(飞利浦模式)

这是 I2S 协议的原生标准,也是应用最广泛的模式。

  • 核心特点

    • 声道选择:LRCLK(WCLK)为低电平时传输左声道,高电平时传输右声道。
    • 数据延迟:有效数据的 MSB(最高位)相对于 LRCLK 的跳变沿,延迟 1 个 BCLK(位时钟)周期。
    • 对齐方式:数据从 MSB 开始发送,MSB 与延迟 1 个 BCLK 后的边沿对齐。
    • 采样时机:在 BCLK 下降沿发送数据,上升沿采样数据。
  • 主要用途

    • 作为行业标准,它的兼容性最好,几乎所有现代音频 Codec、DAC、MCU(如 ESP32)都原生支持。
    • 适用于绝大多数通用音频场景,如手机音频输出、专业声卡、蓝牙音频传输等。
  • 优缺点

    • 优点:标准统一,时序清晰,兼容性极强,能适配不同位宽的音频设备。
    • 缺点:如果系统位宽与设备位宽不匹配,需要额外的位宽转换处理。

2. 左对齐模式(MSB 对齐模式)

这种模式也被称为 "MSB 对齐模式",是为了兼容一些早期音频设备而设计的。

  • 核心特点

    • 声道选择:LRCLK 为高电平时传输左声道,低电平时传输右声道(与标准模式相反)。
    • 数据延迟:无延迟,数据 MSB 直接与 LRCLK 的跳变沿对齐。
    • 对齐方式:数据从 MSB 开始发送,MSB 与 LRCLK 跳变沿对齐。
    • 采样时机:在 BCLK 下降沿发送数据,上升沿接收数据。
  • 主要用途

    • 主要用于老款音频 Codec、DAC(如 PCM5102)或需要简化时序的低成本设备。
    • 适合位宽固定的系统(如 16 位、24 位固定位宽),因为没有延迟,时序设计更简单。
  • 优缺点

    • 优点:时序简单,无延迟,适合位宽固定的音频设备。
    • 缺点:声道选择逻辑与标准模式相反,兼容性不如标准模式,配置时需格外注意。

3. 右对齐模式(LSB 对齐模式)

这是兼容性最差的模式,主要用于老式音频硬件。

  • 核心特点

    • 声道选择:与左对齐模式一致,LRCLK 高电平为左声道,低电平为右声道。
    • 数据延迟:无延迟。
    • 对齐方式:数据从 MSB 开始发送,但 LSB(最低位)与 LRCLK 跳变沿对齐,导致 MSB 出现在更早的 BCLK 周期。
    • 采样时机:在 BCLK 下降沿发送数据,上升沿接收数据。
  • 主要用途

    • 主要用于老式 8 位、16 位 DAC(如 TDA1543)或需要 LSB 优先处理的 DSP 场景。
    • 适合位宽较小的设备,或数据位宽可变的情况(如 8 位数据在 16 位通道中传输,LSB 对齐可让低 8 位有效)。
  • 优缺点

    • 优点:适合位宽较小的音频设备,或需要 LSB 优先处理的场景。
    • 缺点:兼容性最差,现代音频设备大多不支持,配置复杂,容易出现数据错位。

三种模式核心对比表

模式 LRCLK 电平对应声道 数据延迟 对齐方式 主要用途 兼容性
标准模式 低 = 左,高 = 右 延迟 1 个 BCLK MSB(延迟后) 通用音频传输 最好,几乎所有设备支持
左对齐模式 高 = 左,低 = 右 无延迟 MSB(直接) 老款 Codec、固定位宽设备 较好,部分设备支持
右对齐模式 高 = 左,低 = 右 无延迟 LSB(直接) 老式 DAC、位宽较小设备 最差,现代设备少支持



一、PCM(脉冲编码调制):数字音频的 "标准语言"

1. 核心原理

PCM(Pulse Code Modulation)是将模拟信号(如声音)转换为数字信号的基础技术,通过三步完成:

  • 采样:按固定时间间隔(如 44.1kHz)对模拟信号 "拍照",得到离散的样本点。
  • 量化:将每个样本的幅度值近似到最近的量化级别(如 16bit 可表示 65536 个级别)。
  • 编码:将量化后的数值转换为二进制代码(如十进制 5→二进制 101)。
2. 关键参数
  • 采样率:每秒采样次数(如 44.1kHz 是 CD 标准),越高声音还原越真实。
  • 采样位数:二进制编码的位数(如 16bit、24bit),位数越大,声音细节越精细。
3. 作用与功能
  • 是数字音频的原始无压缩格式(如 WAV 文件本质就是 PCM 数据)。
  • 实现模拟→数字的转换,是所有数字音频处理(编辑、压缩、传输)的基础。
  • 应用场景:CD、数字录音、音频 DAC/ADC 芯片、音频编辑软件等。

二、PDM(脉冲密度调制):微型音频的 "简化编码"

1. 核心原理

PDM(Pulse Density Modulation)用固定宽度脉冲的 "密度"(1 出现的频率)表示信号幅度,而非像 PCM 那样用数值:

  • 模拟信号幅度越大 → 对应数字信号中 "1" 的密度越高;
  • 模拟信号幅度越小 → 对应数字信号中 "0" 的密度越高。
  • 调制方式:采用 Δ-Σ 调制,通过 "过采样"(远高于奈奎斯特频率)提高精度。
2. 与 PCM 的关系

PDM 数据不能直接用于音频处理,需要先通过 "PDM 解调"(如低通滤波)转换为 PCM 格式,才能被主控、DAC 等设备识别。

3. 作用与功能
  • 适合高采样率、低成本、小体积的场景,如 MEMS 麦克风(TWS 耳机、智能音箱常用)。
  • 优势:电路设计简单、成本低、体积小,适合空间受限的设备。

三、I2S(集成电路内置音频总线):PCM 数据的 "传输高速路"

1. 核心定位

I2S 是专门用于传输数字音频数据的串行总线协议,是 PCM 数据在不同芯片间传递的 "标准通道"。

2. 与 PCM/PDM 的关系
  • 与 PCM :I2S 传输的核心是PCM 格式的数字音频数据,如图 1 中,PCM 调制模块、主控、DAC 之间通过 I2S 传递 PCM 数据,保证音频同步、稳定传输。
  • 与 PDM:PDM 数据一般通过专用的 PDM 接口(如图 4 的 CLK+DATA)直接由 PDM 麦传给主控,主控内部完成 PDM→PCM 解调后,再通过 I2S 传输 PCM 数据。
3. 作用与功能
  • 提供标准化的音频传输接口,避免不同芯片间的时序错误,保证音频同步。
  • 应用场景:音频 Codec 与主控通信、DAC 与主控通信、多声道音频系统等。

四、四张图的整体逻辑串讲

  1. 图 1(PCM 流程):麦克风采集模拟信号→PCM 调制(采样 / 量化 / 编码)→I2S 传主控→I2S 传 DAC→DAC 转模拟→喇叭播放。
  2. 图 2(PCM 过程):直观展示 PCM 如何将连续模拟信号转成离散二进制数据,以及采样率 / 采样位数对音质的影响。
  3. 图 3(PDM 编码):对比 PCM,说明 PDM 用 "脉冲密度" 表示幅度,需解调为 PCM 才能使用,适合微型麦克风。
  4. 图 4(PDM 接口):展示主控如何通过 PDM 接口(CLK+DATA)采集左右声道的 PDM 数据,时序上通过时钟边沿区分声道。

///麦克风输出 PDM → 单片机转 PCM → I2S 传 PCM 给数字功放 → 喇叭播放///

这是嵌入式音频最常用的标准链路 ,但不是所有麦克风都输出 PDM------ 只有「PDM 数字麦 / 硅麦」是这样;如果是「I2S 数字麦」,会直接输出 PCM,单片机就不用转格式了(少一步)

信号类型 本质 例子对照
模拟信号 连续变化的电压波(像波浪) 老式耳机线、模拟麦输出、功放最终给喇叭的信号
数字信号 只有 0 和 1(高低电平) 单片机的 IO 口电平、IIC 通信、PCM/PDM、I2S 传输的信号
  1. PDM 是数字信号:麦克风里的芯片把声音震动转成 "一串 0 和 1"(比如声音大时 1 多、声音小时 0 多),完全是数字电平(高 = 1,低 = 0),单片机可以直接读。
  2. PCM 也是数字信号:是 "更规整的 0 和 1"------ 比如 16 位 PCM 就是用 16 个 0/1 组合表示一个声音采样点(比如 00001111 表示某个音量),本质还是数字,单片机处理、I2S 传输的都是这种数字信号。
  3. 只有到数字功放最后一步,才会把 PCM 数字信号转成模拟信号(电压波),驱动喇叭震动发声(喇叭只能识别模拟的电压变化)。
  4. PCM 和 PDM 都是数字信号(0 和 1),只有模拟麦输出模拟信号;
  5. 数字信号抗干扰、易处理,所以现在都用 PDM/PCM+I2S 的数字链路,而非纯模拟。

PCM 能直接当 WAV 播放。 PDM 不能直接播放。

  • WAV 文件里面装的核心就是 PCM
  • PDM 只是麦克风输出的原始草稿数据,必须先转成 PCM 才能存、才能播放、才能进 WAV。

PCM 是给每一个声音瞬间,编一个精确数字。比如:

  • 声音小 = 1001
  • 声音大 = 1111这是规整、可直接播放的数字声音。

PDM 不编数字,只靠0 和 1 的疏密表示声音大小:

  • 声音大 → 1 特别多、特别密
  • 声音小 → 1 很少、很稀它只有 0 和 1 的密度,没有精确数值

麦克风分类:

  1. 模拟麦:输出模拟电压波,单片机要 ADC 转数字,最老款,不是数字。
  2. PDM 数字麦(硅麦):输出 PDM 数字,单片机转 PCM。
  3. I2S 数字麦(也是硅麦 / MEMS):直接输出 I2S 格式的 PCM,单片机不用转。

1. 模拟麦克风(最老式)

  • 输出:连续的电压波浪(模拟信号)
  • 单片机不能直接读,必须经过 ADC(模拟转数字) 才能变成 PCM
  • 不是数字麦,不是 I2S,不是 PDM
  • 就像:直接说话的声音,没经过任何数字化

2. PDM 数字麦(现在最常用、硅麦)

  • 输出:PDM 数字信号(0 和 1 密度)
  • 单片机要把 PDM → 转成 PCM
  • 数字麦

3. I2S 数字麦(高级一点的数字麦,也是硅麦)

  • 输出:直接就是 I2S 格式的 PCM
  • 单片机不用转格式,拿来就能用
  • 也是数字麦
相关推荐
ViiTor_AI2 小时前
AI 在线字幕去除工具:一键无损删除视频硬字幕与软字幕
人工智能·音视频
愚公搬代码2 小时前
【愚公系列】《AI短视频创作一本通》027-AI 短视频创作的注意事项及未来展望(AI短视频的技术展望)
人工智能·音视频
binderIPC2 小时前
macos环境下FFmpeg打包成.so文件
macos·ffmpeg·音视频
binderIPC2 小时前
macos的FFmpeg环境搭建
macos·ffmpeg·音视频
ViiTor_AI3 小时前
视频字幕怎么去除?5 种方法删除硬编码字幕与软字幕(CapCut 实操)
人工智能·计算机视觉·音视频
西***63474 小时前
深耕政务数字化,矩阵会议系统多点落地,解锁政务会商新范式
矩阵·音视频·会议系统
奔跑吧 android5 小时前
【车载audio】【audio hal 01】【Android 音频子系统:Audio HAL Server 启动全流程深度解析】
android·音视频·audio·audioflinger·aosp15·车载音频·audiohal
REDcker20 小时前
Oryx开发者快速入门
服务器·后端·音视频·实时音视频·srs·流媒体·oryx
REDcker21 小时前
Oryx完整文档
服务器·后端·音视频·实时音视频·srs·流媒体·oryx