首页 / 资讯中心 / 文章详情

Audio学习1(基础)

Audio学习1(基础) ★ FEATURED ARTICLE
1 声学基础知识最开始的声音传播诞生于1876年美国其实就是声音通过在带动铁片震动然后引起经过磁铁上电流的变化。对于现在流行的PCM脉冲编码调制Pulse Code ModulationPCM则是一种将模拟信号转换为数字信号的编码技术。该技术由英国工程师Alec Reeves于1937年提出。这里顺便说一下PCM和我以前接触比较多的G.711的关系总的来说就是一种压缩实现了体积减半。当然现在开发了话不学这个了学Opus了。G.711 是一套编码标准它的基础载体就是 PCMG.711 ≠ PCMG.711 是对 8kHz、16bit 线性 PCM 做压缩映射后的编码规范。PCM是原始采样格式。 语音采集8kHz 采样16bit 线性 PCMLinear PCM每个样本是直接表示幅值的二进制数范围 -32768 ~ 32767。 线性 PCM 的问题人耳对小声更敏感、大声不敏感均匀分配 16bit 很浪费。G.711ITU 标准电话语音标准规定输入是8kHz 16bit 线性 PCM通过非线性压扩算法映射成8bit 编码每个样本 8bit。声音的本质机械纵波与三要素物理量决定听感单位/示例振幅响度dB SPL0dB20µPa频率音高HzA4440Hz波形/谐波音色基频泛音组合数字化把连续的声波变成 0/1关键概念概念一句话解释为什么管理者要懂采样率每秒取多少个点常见 16k/48k决定带宽上限48k→24kHz、算力、延迟位深每个点用多少 bit 表示16/24/32决定动态范围每 bit 约 6dBdB对数刻度6dB≈电压翻倍10dB≈功率×10所有指标都用它不懂 dB 无法判断提升 3dB值不值SNR信号/噪声比降噪算法的核心 KPITHDN总谐波失真噪声评估音质劣化的硬指标延迟从采集到输出的时间ANC/AEC/通话的生命线通常 10ms 才自然块处理攒够 N 个点再算一次块越大越省算力但延迟越大核心权衡定点/浮点定点(Q15)快省电浮点简单芯片选型与移植成本的关键MIPS/负载算法每秒要多少运算决定能不能跑在目标芯片上、要不要加钱自适应滤波滤波器参数随环境自动调整AEC/ANC/降噪的公共内核波束成形多麦克风聚焦某个方向远场语音的核心麦克风数量成本心理声学利用人耳掩蔽效应省比特/省算力编码器、降噪策略的底层依据换能器总览麦克风与喇叭/耳机互为镜像麦克风 → ADC采样率、位深、THDN、SNR→ 分块块处理带来延迟→ DSP定点 / MIPS 算力约束→ 算法波束成形拾音 → 自适应滤波AEC/ANC→ 心理声学降噪 / 编码 → DAC 输出2 录音全流程麦克风声 → 电目前的几种麦克风对比项模拟麦克风PDM 数字麦克风I²S 数字麦克风麦克风输出模拟电压/电流1-bit 比特流多位 PCM 数据ADC 在哪里外部 Codec / SoC 等麦克风内部麦克风内部是否需要 PDM 解码不需要需要不需要常见连接模拟输入DATA CLKBCLK WS DOUTMCU 工作采样 ADCPDM 滤波、抽取接收 I²S DMA 数据目前用的最多的基本上就是数字麦克风全流程如下数字麦克风全流程PDMPulse Density Modulation脉冲密度调制PDM 是单比特的音频调制格式广泛用于 MEMS 数字麦克风。它只用 0 和 1 两种电平不靠幅值、而是依靠脉冲的疏密密度来表征声音信号大小信号幅值越大高脉冲占比越高。只需要两根线时钟 数据传输电路简单、抗干扰强缺点是原始 PDM 不能直接给音频 DSP 算法使用必须经过抽取滤波Decimation降采样、多 bit 量化后转换成 PCM。PCMPulse 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、步长控制、泄漏因子、FxLMSANC 核心需估计次级路径AEC线性自适应 非线性残余抑制、双讲检测Geigel/互相关、延迟对齐降噪谱减、Wiener/MMSE、后滤波、DNN 降噪RNNoise 结构阵列延迟求和、MVDR、GSC、TDOAGCC-PHAT工程定点位宽分析、SIMDNEON/CMSIS-DSP、DMA 双缓冲、块大小与延迟权衡音频基础采样率转换、抖动、削波、等响度、心理声学掩蔽ANC Active Noise Cancellation主动降噪可以玩的一些小练习。内容作品GitHub README 指标采样/量化/DFT、FIR/IIR 设计、定点运算Q 格式、饱和舍入C 语言实现 biquad/FFT与 scipy 结果对比误差 1e-3实时音频框架ALSA/块处理/环形缓冲/延迟测量Pi 上 C 语言实时 EQDRC 链路报告 CPU% 与端到端延迟自适应滤波NLMS/LMS 推导实现、AEC 结构回声消除 demoPi 放音乐同时录人声ERLE 指标 15dB麦克风阵列延迟求和/MVDR、后滤波降噪双麦波束成形测 SNR 提升 声源定位误差你的板子正好双麦
阅读完成 · 觉得有帮助?
咨询建站