云计算百科
云计算领域专业知识百科平台

Audio学习1(基础)

1 声学基础知识

最开始的声音传播诞生于1876年美国,其实就是声音通过在带动铁片震动,然后引起经过磁铁上电流的变化。

对于现在流行的PCM(脉冲编码调制(Pulse Code Modulation,PCM)),则是一种将模拟信号转换为数字信号的编码技术。该技术由英国工程师Alec Reeves于1937年提出。

这里顺便说一下PCM和我以前接触比较多的G.711的关系,总的来说就是一种压缩,实现了体积减半。当然,现在开发了话不学这个了,学Opus了。

G.711 是一套编码标准,它的基础载体就是 PCM;G.711 ≠ PCM,G.711 是对 8kHz、16bit 线性 PCM 做压缩映射后的编码规范。

  • PCM:是原始采样格式。 语音采集:8kHz 采样,16bit 线性 PCM(Linear PCM),每个样本是直接表示幅值的二进制数,范围 -32768 ~ +32767。 线性 PCM 的问题:人耳对小声更敏感、大声不敏感,均匀分配 16bit 很浪费。
  • G.711(ITU 标准,电话语音标准) 规定:输入是 8kHz 16bit 线性 PCM,通过非线性压扩算法,映射成 8bit 编码,每个样本 8bit。
  •  声音的本质:机械纵波与三要素

    物理量决定听感单位/示例
    振幅 响度 dB SPL(0dB=20µPa)
    频率 音高 Hz(A4=440Hz)
    波形/谐波 音色 基频+泛音组合

    数字化:把连续的声波变成 0/1

    关键概念:

    概念一句话解释为什么管理者要懂
    采样率 每秒取多少个点(常见 16k/48k) 决定带宽上限(48k→24kHz)、算力、延迟
    位深 每个点用多少 bit 表示(16/24/32) 决定动态范围(每 bit 约 6dB)
    dB 对数刻度,+6dB≈电压翻倍,+10dB≈功率×10 所有指标都用它,不懂 dB 无法判断"提升 3dB"值不值
    SNR 信号/噪声比 降噪算法的核心 KPI
    THD+N 总谐波失真+噪声 评估音质劣化的硬指标
    延迟 从采集到输出的时间 ANC/AEC/通话的生命线,通常 <10ms 才自然
    块处理 攒够 N 个点再算一次 块越大越省算力但延迟越大,核心权衡
    定点/浮点 定点(Q15)快省电,浮点简单 芯片选型与移植成本的关键
    MIPS/负载 算法每秒要多少运算 决定能不能跑在目标芯片上、要不要加钱
    自适应滤波 滤波器参数随环境自动调整 AEC/ANC/降噪的公共内核
    波束成形 多麦克风"聚焦"某个方向 远场语音的核心,麦克风数量=成本
    心理声学 利用人耳掩蔽效应省比特/省算力 编码器、降噪策略的底层依据

    换能器总览:麦克风与喇叭/耳机互为镜像

    麦克风 → ADC(采样率、位深、THD+N、SNR)→ 分块(块处理,带来延迟)→ DSP(定点 / MIPS 算力约束)→ 算法:波束成形拾音 → 自适应滤波(AEC/ANC)→ 心理声学降噪 / 编码 → DAC 输出

    2 录音全流程

     麦克风:声 → 电

    目前的几种麦克风:

    对比项

    模拟麦克风

    PDM 数字麦克风

    I²S 数字麦克风

    麦克风输出

    模拟电压/电流

    1-bit 比特流

    多位 PCM 数据

    ADC 在哪里

    外部 Codec / SoC 等

    麦克风内部

    麦克风内部

    是否需要 PDM 解码

    不需要

    需要

    不需要

    常见连接

    模拟输入

    DATA + CLK

    BCLK + WS + DOUT

    MCU 工作

    采样 ADC

    PDM 滤波、抽取

    接收 I²S DMA 数据

    目前用的最多的基本上就是数字麦克风,全流程如下:

    数字麦克风全流程:

    PDM(Pulse Density Modulation,脉冲密度调制)

    PDM 是单比特的音频调制格式,广泛用于 MEMS 数字麦克风。它只用 0 和 1 两种电平,不靠幅值、而是依靠脉冲的疏密密度来表征声音信号大小:信号幅值越大,高脉冲占比越高。只需要两根线(时钟 + 数据)传输,电路简单、抗干扰强;缺点是原始 PDM 不能直接给音频 DSP 算法使用,必须经过抽取滤波(Decimation),降采样、多 bit 量化后转换成 PCM。

    PCM(Pulse Code Modulation,脉冲编码调制)

    PCM 是我们 DSP 算法里最常用的标准数字音频格式,ADC 或者 PDM 解码器输出后的标准形式。它按固定采样率周期性采样,每个采样点用多位二进制(16bit/24bit 等)编码表示信号幅值,是规整的多比特采样序列。AEC、ANC、波束成形、滤波等所有音频算法,都是直接对 PCM 数据流做运算,也是音频编解码、I2S 总线传输的主流信号格式。

    模拟信号到PDM的转换:

    PDM到PCM的转换:

    对于我们用的最多的有线耳机,其实是模拟麦克风。

    此时ADC通常在手机、电脑或USB音频设备里,而不是传统耳机的麦克风里。

    从分工来说,算法工程师通常从 PCM 开始;嵌入式音频工程师要能追溯到 PDM、I²S、DMA 和 Codec;硬件与芯片工程师才会经常深入到模拟前端和 Σ-Δ 电路内部。整个步骤了解就行,因为一般处理都是针对最后的PCM。

     3 播放全流程

     喇叭(扬声器):电 → 声

    4 常见算法

    算法链通常是:
    高通(去直流) → 降噪(NS) → 回声消除(AEC) → 波束成形(BF)
    → EQ → 动态范围控制(DRC/限幅) → 输出

  • 滤波器:biquad 级联、极点稳定性、群延迟、线性相位 FIR 的代价
  • 自适应滤波:LMS 收敛条件、NLMS、步长控制、泄漏因子、FxLMS(ANC 核心,需估计次级路径)
  • AEC:线性自适应 + 非线性残余抑制、双讲检测(Geigel/互相关)、延迟对齐
  • 降噪:谱减、Wiener/MMSE、后滤波、DNN 降噪(RNNoise 结构)
  • 阵列:延迟求和、MVDR、GSC、TDOA(GCC-PHAT)
  • 工程:定点位宽分析、SIMD(NEON/CMSIS-DSP)、DMA 双缓冲、块大小与延迟权衡
  • 音频基础:采样率转换、抖动、削波、等响度、心理声学掩蔽
  • ANC : Active Noise Cancellation,主动降噪
  • 可以玩的一些小练习。

    内容作品(GitHub + README 指标)
    采样/量化/DFT、FIR/IIR 设计、定点运算(Q 格式、饱和舍入) C 语言实现 biquad/FFT,与 scipy 结果对比误差 <1e-3
    实时音频框架:ALSA/块处理/环形缓冲/延迟测量 Pi 上 C 语言实时 EQ+DRC 链路,报告 CPU% 与端到端延迟
    自适应滤波:NLMS/LMS 推导+实现、AEC 结构 回声消除 demo:Pi 放音乐同时录人声,ERLE 指标 >15dB
    麦克风阵列:延迟求和/MVDR、后滤波降噪 双麦波束成形:测 SNR 提升 + 声源定位误差(你的板子正好双麦)
    赞(0)
    未经允许不得转载:网硕互联帮助中心 » Audio学习1(基础)
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!