双麦语音前端模组AU-48:如何用波束成形与回声消除净化语音信号
2026/9/24 9:12:11 网站建设 项目流程

做语音交互产品,最容易被低估的其实是麦克风前面那十几厘米的路。很多团队拼命优化后端的识别模型,结果用户一句“你好小X”都唤不醒,回放录音才发现:采集到的信号里全是风扇声、嘈杂人声、放音腔体的啸叫混响,真正的人声反而淹没在里面。AU-48双麦多功能语音处理模组,就是专门解决这类问题的存在——它把双麦克风采集、回声消除、噪声抑制、自动增益这些原本要单独设计算法、单独调布的活,全部整合进一块小尺寸模组里,输出端直接给出干净的PCM/I2S信号。做智能家居面板、门禁对讲、会议终端、录音笔、老人助听类产品,或者做语音交互原型验证,这块模组都能让硬件工程师少走好几个月的弯路。

1. 为什么我会把双麦前端交给一个“小盒子”

1.1 第一版产品的惨痛教训:单麦克风在真实房间里的表现

我在做第一版室内对讲面板时,硬件方案非常“朴素”:一颗模拟驻极体麦克风,经过前级放大电路,直接进主控内置的音频Codec,再走音频总线送去云端识别。当时想得很简单,麦克风就是把声音变成电信号,Codec又是现成的,只要增益调好,问题不大。结果样机一下产线,回访反馈基本集中在三件事上:

  • 人站在1.5米以外说话,对方听到的声音像是隔着一床棉被。
  • 面板自己的扬声器正在播放远端声音时,本地这头只要一开口,远端听到的就是自己的回声+啸叫。
  • 靠近窗边或者风扇正吹的位置,背景噪声完全盖过人声。

这三个问题本质上是同一个:语音信号在到达ADC之前,就已经被声学环境“污染”了。单麦克风没有任何空间选择性,做不到区分“你想听的方向”和“噪声的方向”,也没有参考信号去做回声消除。后端的降噪算法再强,碰到的是已经被混响、噪声、回声叠加的非线性信号,能做的很有限。语音识别这行有句老话:前端给一分,后端省十分。我当时对这句话理解不够,后来补课才补得肉疼。

1.2 AU-48是一颗“语音前端全家桶”模组

认识AU-48是在二次选型的时候。当时我列了一圈需求:必须双麦克风,最好自带波束成形;要有回声消除能力,因为产品自带扬声器;不能对主控算力提太高要求,因为主控还要跑业务逻辑;体积要小,面板内空间金贵;最好能用I2S直接输出处理后的数据流,不搞复杂驱动。

AU-48几乎是对着这些需求长出来的。它的本质是一个完整的“语音前端子系统”:模组上面直接焊好两颗MEMS麦克风,板载一颗带音频DSP的处理芯片,内部集成了回声消除、噪声抑制、自动增益、去混响、双麦波束成形这些算法。主控只需要通过I2C写几个配置寄存器,再从I2S接口读数据,就到了“可以送ASR”的干净信号。

我后来在几个项目里反复使用这类模组,最大的体会是“全能”两个字并不是虚的。它把声学工程师、算法工程师、驱动工程师三个角色的活,压缩成了一颗料。对于中小团队和独立开发者来说,这意味着不用养一个专门的音频算法岗位,也不用对着几百页的DSP开发文档研究滤波器系数,省下来的时间可以全部花在业务功能上。

2. 拆开“全能”看门道:双麦架构和板载处理链路

2.1 双麦不是双通道录音,而是空间听音能力

很多人以为双麦克风就是“录两路声音,选一路好的用”,这个理解差了十万八千里。人耳之所以能在嘈杂餐厅里听清对面朋友说话,靠的是双耳效应:同一个声源到达左右耳的时间有微小的先后差,强度也有差异,大脑根据这些物理线索就能把注意力“指向”声源方向,同时把其他方向的声源当成背景噪声压下去。

AU-48的两颗麦克风在模组上的间距是固定的,两颗麦克风会同时采集信号,DSP内部计算两路信号的时间差和相位差,合成出一个具有方向选择性的“波束”。这个波束指向设备正前方,正前方的声音被保留,侧后方来的声音被压制。效果上很像给麦克风装了一个“聚光灯”,只照亮说话人的嘴巴,其余全部暗场。

波束成形并不需要多高的算力,本质上就是延时求和的经典算法,难的是麦克风间距的一致性。两颗麦克风之间的间距差哪怕只偏差0.5毫米,在8kHz频段上就会产生可观的相位误差,波束指向就会歪。AU-48把麦克风直接焊在模组上、间距出厂固定,反而让开发者避开了这个误差源。自己拿两颗分离式麦克风走线,很难做到这个一致性,这是模组化方案在声学上最实打实的优势。

2.2 板载DSP的四个核心处理模块

  • 回声消除(AEC):设备在播放远端音频时,扬声器发出的声音会通过空气和结构振动传回麦克风。AEC的原理是拿“本机正在播放的参考信号”和“麦克风采集信号”做相关性分析,自适应估计回声路径的响应,然后把麦克风信号里的回声成分减掉。AU-48支持从I2S总线获取参考信号,这意味着它可以配合你的音频播放链路做同步抵消,而不是盲目地把所有低频能量都切掉。

  • 噪声抑制(NR):这部分处理的是稳态噪声,比如空调声、风扇声、车辆胎噪。DSP会持续估计噪声底,对人声频段之外的能量做衰减。实测下来,它对白噪声和均匀的环境底噪能压得比较干净,同时尽量保留语音的辅音部分,避免“闷闷的广播音”那种处理痕迹。

  • 自动增益(AGC):说话人和麦克风的距离不可能永远固定。有人贴着设备说话,有人坐在两米外的沙发上喊。AGC会根据输入信号的强度动态调整增益,近讲不爆音,远讲能放大。这一级处理特别重要,因为后端的ASR模型通常对输入电平有一个比较窄的适应范围,电平忽高忽低,识别率一定上不去。

  • 双麦波束成形(Beamforming):如上面说的,利用两路信号的空间差异做定向拾音。它是AU-48能“听清前方人声、压掉后方噪声”的核心。波束方向、角度范围都可以通过I2C寄存器配置,具体选哪种模式要看产品的使用姿态。

2.3 双麦处理链路在模组内是怎么流转的

我画过一张自己的理解图,这里把处理流程用文字描述一下:

两颗MEMS麦克风采集到的数字信号,先进入DSP,第一级是回声消除,拿I2S上的播放参考信号做自适应滤波,把扬声器串扰减掉;第二级做波束成形,把两路信号合成一路带空间指向的信号;第三级做噪声抑制,把残余的稳态噪声继续压掉;第四级做AGC,把输出电平拉到一个稳定区间;最后,经过处理的PCM数据从I2S DOUT引脚输出,主控直接拿来用。

整套链路在模组内部完成,延迟被控制在一个语音帧级别,做到了人耳几乎察觉不到实时的延迟。对语音ASR来说,处理延迟必须低,否则会影响VAD检测和交互节奏。这也是为什么不能简单地在主控里跑一个软件降噪替代它——主控CPU跑FFT、跑自适应滤波,延迟和功耗都可能不可控,而DSP的方案是时间确定性的,每一帧都在固定的时钟周期内完成处理。

3. 规格表之外的实话:信号质量取决于这些细节

3.1 看懂信噪比、拾音距离和采样率

拿到AU-48的手册,我最先看的是这样一组参数:

参数项参考值我的理解
麦克风信噪比(SNR)62-65dB(A)麦克风自身的底噪水平,越高越好
采样率支持16kHz / 48kHz16k做语音唤醒/识别,48k做音质向
回声消除深度>45dB稳态回声衰减量,够多数免提场景
输出接口I2S / PCM / TDM标准化数字音频接口
工作电压1.8V-3.3V可直接对接主控IO电平
模组尺寸约18mm x 13mm面板、笔杆、摄像头都能装下

很多朋友看到“信噪比62dB”就觉得“够用”,但要知道麦克风信噪比是指在标准声压级下信号与自身底噪的比,它决定的是“下限”。一块只标62dB的模组,如果在电路布局时把数字信号和模拟信号搅在一起,实际系统信噪比可能掉到40dB以下。所以规格表只能说明麦克风这颗料的潜力,最后表现如何,还得看整机供电和结构设计,后面的实操章节我会展开讲。

采样率的选择也别拍脑袋。如果产品只做唤醒词和指令词识别,16kHz完全够用,数据处理量小,模组功耗也更低。如果是做会议记录、语音质检这类要保留音质的场景,把模组切到48kHz,取到的素材更接近原始听感,方便做后续转写和声纹分析。

3.2 接口接线最少化:I2S加I2C的控制逻辑

AU-48对外暴露的引脚非常克制,核心就两类:音频数据引脚和控制引脚。音频数据走I2S,占三条线:BCLK(位时钟)、LRCK(左右声道帧时钟)、DOUT(数据输出)。控制走I2C,占两条线:SCL、SDA。再加上电源和地,一块模组接进系统只需要七八根线,这在面板空间极度紧张的时候真的太友好了。

主控侧的典型角色分配是:主控做I2S Master,负责产生BCLK和LRCK时钟;AU-48做I2S Slave,按主控给的时钟节奏输出数据。这样设计的好处是主控能统一音频时钟域,配合DMA搬运数据,不占用CPU。实际接线时建议BCLK和LRCK尽量短、等长,避免时钟抖动影响数据稳定性。I2C部分则用来写配置:选择工作模式、调采样率、设AGC目标电平、开关波束模式等。

我第一次调通时犯过一个低级错误:以为DOUT脚会一直有数据,直接接了MCU的I2S RX,结果静音时收到一堆随机的噪声底。看了手册才知道,AU-48在AKTIVE静音状态或者未使能输出时,DOUT会拉低,需要主控侧做静音检测或者配置中关闭输出。这个细节不贵,但能省半天排查时间。

3.3 实测三类典型场景的听感变化

我在一个开源语音面板项目里用AU-48做了三轮替换测试,对比的是原来单麦直连Codec的方案。测试环境没有进消音室,就是普通办公室,有中央空调、键盘声、人走动的声音。以下是我记录的听感变化:

  • 场景一:人站在设备正前方1米,正常音量说话。单麦方案录出来的语音有比较明显的底噪,靠近气流的“嘶嘶”声清晰可闻;AU-48方案底噪降低非常明显,人声靠前且干涩度更小,直接送ASR的识别率肉眼可见地提升。

  • 场景二:设备自带扬声器正在播放音乐,人在2米外说话。单麦方案完全不能用于双工通话,远端会听到自己的音乐声+人声混合;AU-48方案里音乐声被压制得很干净,局部音量稍微有点“起伏”的感觉,但人声内容完整,双工感可以接受。

  • 场景三:房间里有另一组人在半米外开小会。单麦方案几乎无法分离,两路说话人混在一起;AU-48方案能明显把正面说话人突出,侧面的声音像退到了很远的背景层,ASR识别时主说话人的内容基本不受干扰。

这三个场景恰好对应回声、远距离、多人干扰三大语音痛点。AU-48每一项都不是“彻底消灭”,但联合起来,相当于给一个本来没法用的声学环境做了一次系统性的净化和提纯。这个提升不是靠某个单一参数能够衡量的,而是整体可用性的跃迁。

4. 把它批量放进产品之前,硬件上必须先处理好三件事

4.1 三种供电方式下,我踩到的电源噪声

第一次把AU-48放进整机后,录到的声音里持续存在一种“滋滋”的电流感,尤其安静环境下特别刺耳。查了半天,最终定位到是电源纹波。整机用一颗DC-DC从12V降到3.3V,开关频率的纹波直接耦合到音频电路,被DOUT原样带出来了。

后来我按三种供电路径分别做了测试:纯LDO供电,纹波最小,底噪几乎消失;低噪声DC-DC加后级LC滤波,底噪接近LDO水平,但布局要更小心;直接用普通DC-DC,即使加了磁珠,底噪仍然明显。最终方案是:AU-48的电源从系统3.3V主轨再串一颗小封装低噪声LDO单独供电,AVDD和IOVDD分别加0.1uF+10uF去耦电容,PCB上把LDO尽量靠近模组的电源引脚。

模拟电路的地线同样不能马虎。我的板子把数字地和模拟地直接整片分割,结果I2S数据线跨越分割带,反而引入更大的回流噪声。后来改成了单点接地策略,模拟地、数字地在底部汇合,所有音频信号线走在同一层、避开高频开关节点。这个改动之后,之前的滋滋声彻底消失。

4.2 麦克风开孔与结构密封:决定波束成败

模组上有两颗麦克风,但最终“听”到的声场,并不只是这两颗麦本身决定的,还和外壳的开孔、音腔、密封方式强相关。一个常见的翻车案例是:模组卖得很好,装进整机后正面拾音距离骤减,侧后方噪声反而压不下去。问题往往出在结构开孔上。

  • 开孔直径建议2-3mm,不要超过3mm,否则会引入风噪和高频染色;
  • 孔口建议做60度倒角或者漏斗状凹槽,正向声波能平滑进入,避免形成窄带共振;
  • 麦克风与面板孔之间要加硅胶套或者泡棉圈,形成前后音腔隔离,否则声音会从缝隙绕到麦克风背面,破坏双麦的相位关系,波束成形直接失效;
  • 防尘网选择高透气率、低声阻的网布,优先用声学网布而不是普通无纺布,后者会让高频滚降。

很多工程师不重视“声路”,觉得麦克风有孔就行。实际上双麦波束成形特别依赖两路信号的相位一致性,前后音腔一旦形成声短路,两颗麦接收到的信号相关性就会被破坏,算法再怎么算也没法从错误数据里还原出正确的空间信息。结构评审阶段就把麦克风孔和密封设计一起评审,能避免后续改模的大代价。

4.3 音量、增益和时间常数设置:和主控的分工

AU-48的AGC不是“出厂就完美”,需要和主控侧的音量策略配合。我的经验是:模组输出的目标电平设置在-12dBFS左右,留给后级算法一定余量;主控侧不再做额外的大幅增益调整,只保留音量线性控制。如果模组AGC已经拉高了,主控再去提增益,底噪会被二次放大,信噪比反而下降。

回声消除的参考信号接入也很关键。AU-48从I2S总线取参考信号时,这个参考信号最好在模组的数字域和播放通路保持同步,否则参考和实际播放之间存在延迟,AEC算法会估算出一个偏掉的回声路径,效果打折。我在一个项目里把播放通路经过了蓝牙SoC内部重采样,参考信号取的是重采样前的数据,导致回声消不干净。后来改成从DAC前一级取参考,症状立刻消失。

AGC的时间常数也可以按需调。近讲为主的设备(比如对讲面板),AGC响应可以快一点;远讲为主的设备(比如会议全向麦),则需要更长的窗口,避免偶尔的停顿导致增益猛拉,产生“呼吸感”。这些参数别看小,直接影响用户第一耳朵的体验。

5. 调试AU-48的实用方法和常见症状诊断表

5.1 可复现的音频测试流程

音频调试最怕“凭感觉”。同一段话,今天调一版觉得可以,明天换个环境又觉得不行。我自己固定了一套测试流程,可以复现:

  1. 准备一个标准语音素材,内容包含男声、女声、不同音量和停顿,时长约10秒;
  2. 使用全频扬声器放在设备正前方1米处,固定声压级约70dB SPL回放素材;
  3. 在同等位置放一只噪声源(手机播放粉红噪声)作为背景干扰;
  4. 分别记录AU-48的原始输出(禁用算法)和处理后输出,对比信噪比;
  5. 再重复一次,但这次把扬声器播放背景音乐的同时,在正面读一段话,测试AEC效果;
  6. 用录音软件查看波形和频谱,重点看100Hz以下、1kHz-4kHz人声核心频段的能量分布,以及噪声底是否明显抬升。

这个流程花不了多少时间,但能形成一批可量化的对比数据。像AU-48这类模组,算法本身已经是个黑盒,我们没法改每个系数,但我们能验证“在什么条件下它能达到什么效果”,把这些数据和产品需求对齐,验收就有标准了。

5.2 症状到根因:一张排查表

我在多个项目里收集了一些典型故障,整理成一张排查表,遇到问题先对号入座:

症状可能原因处理建议
环境安静但底噪明显电源纹波/地环路换LDO供电,检查I2S线布线
有声音但人声发闷结构开孔太小/防尘网声阻过大增大孔径,换声学网布
回声消除无效参考信号没接对/参考有延迟核对参考信号路径,取DAC前级
拾音方向感不到前后音腔密封失效/波束模式配错检查硅胶套和泡棉,重配寄存器
音量忽大忽小AGC时间常数不合适调响应窗口,或改目标电平
只有一侧近场有声音其中一颗麦克风堵塞或焊接不良产测时做单麦信号检查
高频有明显“刺刺”声PDM时钟干扰/供电不稳检查MCLK时钟和去耦电容

这些症状里有硬件问题也有配置问题。遇到问题第一反应不要怀疑“模组坏了”,先查电源、再查结构、最后查配置,按这个顺序能过滤掉80%的假故障。

5.3 量产阶段的语音产测建议

AU-48这类语音模组和普通传感器不太一样,它的麦克风有方向性,两颗麦之间的相位一致性直接影响模组效果。到了量产阶段,只测功能“有没有声音”是不够的,建议做一轮基本语音产测:

  • 用同一台校准过的扬声器,在产线上固定位置播放扫频信号;
  • 分别读取AU-48两路麦克风的RMS电平,设置上下限,筛掉焊偏、开孔堵塞、麦克风损坏的板子;
  • 再播放一小段语音素材,提取1kHz-3kHz频段能量比,判断出声路是否正常;
  • 记录每块板子的峰值电平和信噪比,形成SPC趋势图,发现一致性漂移时及时调整产线工艺。

产测的额外好处是,它能倒推结构件的一致性。比如有一批外壳的开孔毛刺比较多,产测时高频能量比值明显下降,立刻就能反馈到模具抛光工艺,避免整批货流入市场之后才被用户发现“声音闷”。

6. AU-48的边界在哪里,何时不该用

6.1 中小型远场阵列与云端后处理的分工

AU-48帮前端解决的是声学问题,但它不会替你做语义理解。ASR后端的唤醒词模型、指令解析、大模型对话,全部需要主控或云端来完成。也就是说,AU-48处理完的信号,仍然要经过VAD、唤醒引擎、识别引擎才能变成业务动作。

有些方案喜欢把降噪和识别都丢到云端处理,本地只采原始音频。这种思路在带宽充足时可行,但遇到网络抖动、隐私要求高的场景就很尴尬。把AU-48放在本地先把声音“擦干净”,再决定是本地识别还是上云,产品的实时性和隐私性都会更好。它跟云端后处理不是替代关系,而是把前端的脏活累活先干完,让云端只面对相对干净的语音。

6.2 与单麦方案、四麦阵列的取舍

如果做一个成本极其敏感的玩具级产品,单麦克风+主控内置Codec仍然能战。它的拾音距离有限,也没有空间选择性,但胜在便宜、开发快。AU-48适合的是“既要控制体积、又要明显提升拾音质量”的中间地带。

如果做的是全屋智能音箱,想在客厅角落、厨房、卧室这种360度无死角的场景下语音唤醒,双麦的固定波束就不够了,通常需要四麦甚至更多麦的环形阵列,配合驱动端的全方位波束扫描。AU-48的分工更偏向“有一个明确朝向”的设备,比如面板、门铃、摄像头、桌面终端,人在设备正前方范围内说话,效果最理想。

三类方案可以简单对比如下:

方案拾音范围处理能力开发难度适合场景
单麦+Codec0.5-1m,无方向性基本无前端算法玩具、近距离按键对讲
双麦DSP模组(AU-48)2-4m,定向波束AEC/NR/AGC/BF低到中面板、门铃、会议终端
四麦环形阵列5-8m,360度全向波束+高级降噪智能音箱、全屋语音

6.3 我自己的最终选型原则

跑了这些项目之后,我现在选语音前端基本按三条原则来判断:第一,产品是否明确有“正面朝向”;第二,拾音距离是否落在2-4米这个区间;第三,团队有没有精力去维护自研音频算法。三条都满足,就会优先考虑AU-48这类模组。这个模组最让我认可的地方,是它把“音频算法的专业壁垒”转译成了“普通硬件工程师也能hold住的模块参数”,做得足够多,又不过度承诺。

如果第一版做对讲面板时就按这个思路来,大概能少折腾两三个月。现在再遇到“要不要自己做音频算法”的讨论,我的回答都是:先算算账,你的产品核心竞争力到底在算法,还是在交互、外观、价格和生态。在多数智能硬件里,音频前端更像是地基,地基不需要你亲自烧砖,用一块好砖——比如AU-48——把它铺平,楼才能盖得又快又稳。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询