简介:《麦克风阵列音频检查方法与标准》面向智能音箱、会议电话、语音识别与实时翻译等音频产品的硬件研发、声学测试及质量验证人员,提供从研发设计到整机验收的检查思路与判定标准,帮助解决麦克风阵列录音功能、通道一致性与整体声学性能难以量化评估的问题。压缩包内为1个docx文档,约1.81MB,内容以测试项目表、操作说明和指标阈值为主,便于按裸板测试与整机测试两条线查阅。文档覆盖通道相位一致性、长时录音完整性、麦克风顺序、通道幅值一致性(一般不超过3dB)、音频幅度、总谐波失真、信噪比、直流偏置、回采通道电噪声、通道相对延时、结构共振/异音及麦克风气密性等项目,并结合Audacity分析与TH1520录音增益调节给出排查方向。已有793人学习,适合需要建立音频评测流程、核对验收指标或定位阵列录音问题的工程师参考。
1. 麦克风阵列音频检查:从一段扫频录音说起
做麦克风阵列硬件验收,最怕的不是指标差一点,而是录音链路已经在丢帧、通道顺序错、气密性漏声,后面算法怎么调都像玄学。一套可落地的麦克风阵列音频检查方法与标准,要能把裸板测试和整机测试拆开:裸板先确认通道相位、顺序、幅值和 40 分钟长时录音完整性,整机再卡 63dBC 校准、THD、SNR、回采、延时、结构共振和气密性。它适合声学工程师、硬件工程师、算法联调人员,也适合给样机做寄样前自检的团队。
2. 裸板阶段先把录音链路钉死:四项基础测试与判据
裸板测试的目标不是“能录到声音”,而是确认多路 MIC 的原始音频链路没有硬伤。这个阶段样机还没装进完整结构,排查成本最低,很多问题能在这里一次定位。测试音频包里的文件不是随便听听,每个文件对应一类判据:长时素材看丢帧,扫频看幅值和相位,单频电信号看同步,外部循环播放看相对延时是否漂移。
| 文件 | 主要用途 | 关键动作 |
|---|---|---|
| 40min_test.mp3 | 长时录音完整性 | 本机播放录音不少于 5 分钟,外放录音不少于 40 分钟 |
| 30min_test.mp3 | 外部声源循环 | 正对 DUT 麦克风阵列中心,DUT 和采集板同时录 |
| 76dBC_sweep.wav | 幅值一致性、THD、气密性 | 50cm 处播放,按项目阶段校准到 63dBC 或 76dBC |
| mic_amplitude.wav | MIC 通道幅度 | 50cm 处播放,调音量使 MIC 处达到 63dBC |
| ref_amplitude.wav | 回采通道幅度 | 本机最大音量播放,回路幅值大于 0.5 |
| 76dBC_85dBC_calibration.wav | 本机场景音量校准 | 调到项目定义的验收音量 dBA |
| 1~15kHz.wav | 抗混叠 | 自播自录,看 6kHz~7kHz 折痕 |
| EQ 白噪声 | 信噪比 | 人工嘴校准后播放,MIC 处 63dBC |
提示:裸板阶段不满足基本录音要求,不要急着寄样。丢帧和通道错序在整机阶段会被结构、音腔和算法放大,返工成本更高。
2.1 通道顺序与相位一致性:敲击法和 1kHz 电信号
通道顺序检查只针对 4 麦及以上阵列,2 麦阵列没有顺序要求。做法很土但有效:对着 MIC 收音孔,从任意一个 MIC 开始轻轻敲击,线性阵列要求从左到右,环形阵列要求逆时针,录完回放,看波形出现顺序是否和物理位置一致。敲击不要用力过猛,指尖轻碰即可,目的是产生短促瞬态,不是测灵敏度。顺序错通常不是软件标号错,而是结构件、FPC 走线或焊装顺序和定义不一致,越早发现越省事。
相位一致性用 1kHz 单频电信号更干净。把同一路 1kHz 信号注入各模拟 MIC 通道,录一段原始音频,放大波形看通道间相位差。通道 4 和其他通道出现明显相位偏移,基本可以判断该通道的采样时序、器件一致性或电路参数有异常。这个测试只针对模拟麦克风;数字麦克风和带结构的整机同步性,常见做法是在消声室里用声源验证,电路板级同步性则用电信号输入验证。
2.2 长时录音完整性:40 分钟素材怎么录、丢帧怎么看
长时录音完整性是裸板阶段最容易被跳过的一项,也是后面最难补的坑。测试分两段:本机播放音频同时录音不少于 5 分钟,主要看 MIC 和回采是否存在丢帧;安静环境下外部声源正对 DUT 麦克风阵列中心,循环播放 30min_test.mp3,DUT 和采集板同时录音不少于 40 分钟。采集板的作用是给一个参考时间轴,方便算 DUT 通道和采集板录音的相对延时 ∆T1,以及 DUT 通道间相对延时 ∆T2。
分析时每隔 5 分钟抽一段,看 ∆T1 和 ∆T2 是否恒定。30 分钟内这两个值如果是稳定值,说明采样晶振偏移小、缓冲没有周期性溢出;如果 ∆T1 逐渐漂移,常见原因是采样时钟不同源或晶振偏差;如果频谱里出现红框式的断口,先查录音缓冲和存储写入,再查线材和供电。录音文件就是排障黑匣子,不要只截一张频谱图就下结论,原始 raw 音频要保留。
# 常见做法:先确认录音文件完整性,再做频谱抽查 # 这里只示意目录组织,不绑定具体平台 audio_check/ ├── raw/ # 原始录音,不要二次转码 ├── ref/ # 采集板参考录音 ├── report/ # 每 5 分钟切片和截图 └── note.md # 记录样机编号、音量、环境、测试人2.3 通道幅值一致性:76dBC_sweep.wav 与 3dB 红线
幅值一致性测试先把 DUT 按实际使用场景放好,外部声源放在距离 DUT 拾音孔 0.5m 处,播放 76dBC_sweep.wav,控制 DUT 录音。用常用音频分析软件打开多路原始音频,先看包络形状是否基本一致,再选幅值相差较大的单频段。选点要选单频,不要选扫频拐点或噪声段,否则频点对不齐,读数没有意义。
在软件里看该频点的幅值差,绝对值不超过 3dB 才算该频点的一致性满足要求。所有关键频点都按这个方式看一遍,不要只测 1kHz。某个设备一致性差,先查 MIC 密封件是否压紧、松紧是否一致,再查元器件差异和焊接。密封件没压紧会导致低频漏声和高频衰减同时出现,波形上看是某一路整体偏低,不是某个频点单独塌陷。
3. 整机声学验收:幅度、THD、SNR 的参数表与操作顺序
整机测试不是把裸板项目重跑一遍,而是把扬声器、音腔、结构、回采电路和麦克风阵列放进真实声学路径里再看。顺序上我一般先做 63dBC 校准,再做 MIC 和回采幅值,然后做 THD、SNR,最后看延时和结构问题。校准没做对,后面的 THD 和 SNR 都会飘,读数看起来像设备不稳定,实际是测试音量没锁住。
3.1 63dBC 校准与 MIC/回采幅值:模拟麦和数字麦分开算
MIC 通道幅度测试把扬声器放在距离 DUT 50cm 处,播放 mic_amplitude.wav,调节音量使 MIC 处达到 63dBC。有 AEC 时录取的音频幅值约 0.004~0.005;如果是 -26dBFS 灵敏度的数字 MIC,音频幅度约 0.0014,其他灵敏度按比例换算。无 AEC 时,模拟麦和数字麦常见参考标准是 0.03。幅值大小要结合 MIC 灵敏度和模拟增益调,数字增益始终为 0,不要用数字放大去“凑”读数。
用音频软件看幅值前,先做高通滤波去直流和底噪,再看峰值或 RMS。模拟麦调模拟增益,数字麦调对应芯片的录音增益寄存器,具体寄存器看芯片手册里的录音增益部分。回采通道分硬件模拟回采和数字回采:硬件模拟回采把本机音量开到最大,如果音量过大,要求 MIC 处达到 105dBC,再播放 ref_amplitude.wav,调节回采电路分压网络,让回采信号幅值大于 0.5,PGA 增益原则上设 0dB;数字回采在本机最大音量下播放 ref_amplitude.wav,靠驱动适配把幅值做到大于 0.5。
注意:回采幅值上不去时,不要第一反应加数字增益。先看分压网络、PGA 和最大音量是否真的到位,数字增益会把噪声一起抬起来。
3.2 THD 用频谱差值算:远场与近场门槛
总谐波失真看的是自播自录路径里 MIC 录到的非线性失真。本机播放 76dBC_85dBC_calibration.wav,调音量键使距离 DUT 麦克风处声压级达到项目定义的验收音量 dBA,保持音量不变,再播放 76dBC_sweep.wav 并录音。频谱里最大峰值通常是基频,二次、三次谐波看第二、第三峰值。基频幅值减谐波幅值得到 ∆,再按 THD(%) = 10^(∆/20) × 100 计算。
| 应用距离 | 100~200Hz | 200~400Hz | 400~8kHz |
|---|---|---|---|
| 远场 ≥3m | THD ≤8%,∆≤-22.0dB | THD ≤5%,∆≤-26.0dB | THD ≤3%,∆≤-30.5dB |
| 近场 ≤1m | THD ≤20%,∆≤-14.0dB | THD ≤14%,∆≤-17.0dB | THD ≤8%,∆≤-22.0dB |
举例,270Hz 基频幅值 -16dB,三次谐波 810Hz 幅值 -50dB,∆=-34dB,THD 约 2.0%,满足远场 400~8kHz 门槛。另一个点 265Hz 基频 -27.6dB,第二峰值 795Hz 三次谐波 -36dB,∆=-8.4dB,明显超标。这里容易翻车的地方是基频能量本身很弱,软件算出来 THD 超标,实际是基频被环境噪声或 EQ 压下去了。遇到这种情况,找相邻达标频点对比谐波能量,再判断是真实失真还是基频太弱。
MIC 音频出现较多谐波,先查 SPK THD 是否超标,再查 SPK 腔体是否引起结构振动。回采通道谐波多,如果回采信号接在功放后端,先排查功放失真。参考信号里 THD ≤3% 对算法影响通常不大,但主观音效可能听得出毛躁。
3.3 信噪比分频段看:200Hz 到 8kHz 的阶梯线
信噪比测试在全/半消声室内做,人工嘴先做 100~8000Hz 频响校准,再播放 100~8000Hz EQ 白噪声,调节 MIC 处达到 63dBC,设备录 10s;外部声源停止,设备空录 10s。分析时重采样到 16kHz,频谱分析采样点大小 256。不要只报一个总 SNR,要按频段看阶梯线。
| 频段 | 目标 SNR |
|---|---|
| 200~300Hz | 大于 15dB |
| 300~1000Hz | 大于 20dB |
| 1000~3000Hz | 大于 25dB |
| 3000Hz 以上 | 大于 35dB,越高越好 |
每个频段最多允许 1 个频点低于标准线,且偏离量不能超过该频段门槛的 10%。低频不达标,常见原因是结构漏声、密封件没压紧或环境底噪;高频不达标,先查 MIC 收音孔是否有遮挡、泡棉是否开孔率过高,再查电路底噪。
4. 回采、延时与结构问题:把算法最怕的边界条件测出来
算法联调最怕的不是“声音小”,而是回采和 MIC 的因果性错了、通道不同步、结构在某些频段共振。这些问题在普通录音里不一定明显,但 AEC、唤醒和打断会直接翻车。整机阶段要把回采电噪声、直流偏置、恒频干扰、相对延时、抗混叠、结构共振和气密性一起看,不要等算法同事反馈“效果不稳定”再回头查。
4.1 回采通道电噪声、直流偏置与恒频干扰
回采通道电噪声有两条硬标准:最大音量下回路信号要大于回路电噪声 66dB;本机无播放条件下,回路不能有异常噪声。测试时先抓最大音量播放白噪声的回路音频,记录幅度;再抓不播音时的回路音频,记录幅度;两段都去偏置后再比较。回采直流偏置要求小于 0.5%,MIC 通道直流偏置用 1Hz 低通滤波后看,模拟麦通道直流能量不大于 MIC 幅值的 1/3,数字麦通道按 0.0015 的 1/3 量级控制。
恒频干扰看安静环境下的通道频谱,箭头状的单根谱线就是典型表现。信号幅度满足要求时,谐波恒频在 -90dB 以下可以接受;外部噪声导致的恒频单独评估。排查从电源入手,看供电是否稳定、干净,常见做法是给 MIC 阵列单独上 LDO;再查 MIC 信号走线是否和 LED、触控 IC 等电信号串扰。
4.2 相对延时 0~20ms:因果性和 AEC 的边界
麦克风相对回采通道的音频延时要在 0~20ms,MIC 信号不能早于回采信号,否则不满足因果性。测试音频可以直接用 THD 和回采幅值那两段,录完后在音频软件里对齐波形,看 MIC 和回采的起始沿。20ms 以内属于算法允许误差;25ms 左右时,AEC 做完后的效果通常达不到最优,远处噪声和回声路径会对不齐。
麦克风通道同步性用 1kHz 单频电信号测,相位差很容易看出来。电路板级同步性用电信号输入验证,数字麦和带结构的整机同步性在消声室内完成。某个通道相位明显偏后,先查采样时序和通道配置,再查器件焊接和 FPC 长度差异。
4.3 抗混叠与结构共振:频谱里的折痕和高阶谐波
抗混叠要求 MIC 通道和回采通道都做低通滤波,滤掉高于 8kHz 的信号。自播自录 1~15kHz.wav,外部播放 50cm 处 63dBC,频谱采样点 1024,看 6kHz~7kHz 的对照能量。7kHz 折痕处减去对照能量要小于 -40dB,6kHz 折痕处要小于 -70dB。没有低通滤波时,高频折叠会出现在中频段,听感上不一定明显,但会影响算法特征。
结构共振的典型现象是某个频段通道幅度远大于没有共振的通道。缺乏减震措施的结构容易在特定频率被激发,解决方向是增加硅胶/泡棉、加强 MIC 采集板和 SPK 音腔的减震,必要时做窄带 EQ。震动/异音要看高阶谐波:器件松动、碰撞、摩擦会引起明显的 4 阶及以上谐波,异音常呈宽频噪声。达标判断在 MIC 幅度达标前提下做,模拟麦不放大,数字麦放大 11.5dB,2/3 阶谐波能量不超过 -60dB,4 阶以上不超过 -75dB。
注意:EQ 只压超标频段。宽频下拉会逼你把总音量推高,原来达标的频段又超标,最后看起来像“怎么调都不对”。
4.4 气密性:密封前后每个频点差 15dB 以上
麦克风通道气密性对音箱、电视、油烟机、扫地机这类强自噪产品很关键。扬声器距离 DUT 50cm,使 MIC 处达到 63dBC,循环播放 76dBC_sweep.wav,录多个扫频周期;然后用阻尼、橡皮泥类材料把 DUT 麦克风收音孔密封,继续录多个扫频周期。每个频点密封前后能量差要达到 15dB 以上。密封后幅度降到接近底噪,说明气密性达标;密封后幅度没明显下降,说明收音通道还有漏声路径。
如果 MIC 离扬声器、自噪声源很远,0.5 米以上,或者 MIC 模组和扬声器模组处于完全独立的不同腔体,气密性可以不作要求。整改时先看收音通道有没有密封层,不建议只靠打胶;再看密封层侧向厚度是否偏薄,材质优先选硅胶、橡胶,不建议用开孔率高的泡棉。
5. 常见问题排查:五类翻车现场与定位顺序
音频验收的血泪经验是:同一个“不达标”,根因可能完全不在一个模块。幅值差可能来自密封件,THD 超标可能来自 SPK,丢帧可能来自晶振,气密性不过可能是结构漏声。下面五类现场按“现象 → 原因 → 解决”写,方便对着样机逐条排。
5.1 通道幅值差超过 3dB:先看密封件压紧,再怀疑焊接
现象:76dBC_sweep.wav 录完,某一路 MIC 在多个频点整体偏低,包络形状和其他通道明显不一致,差值超过 3dB。
原因:最常见是 MIC 密封件没有压紧或松紧不一致,低频漏声、高频衰减会同时出现;其次是元器件差异、焊接虚焊或 FPC 装配应力。
解决:先重新装配密封件,确认压紧力和压缩量一致;再交换 MIC 器件复测,看差值是否跟着器件走;最后查焊点和走线。不要一上来改 EQ,幅值一致性差是硬件路径问题,EQ 补不平。
5.2 THD 超标但基频很弱:先看 SPK 失真和结构振动
现象:软件分析某频点 THD 超标,频谱里基频能量很低,二次或三次谐波反而明显,换一个相近频点又达标。
原因:基频被环境噪声、EQ 或结构衰减压下去,软件把弱基频当成分母,THD 自然变大;也可能是 SPK 本身失真或音腔结构振动。
解决:找相邻达标频点对比谐波能量,判断是基频弱还是真实失真;再查 SPK THD 和腔体减震。真实失真就改 SPK 选型、增加减震、做窄带 EQ,不要用宽频 EQ 硬压。
5.3 长时录音丢帧:先看采样晶振和缓冲,再看线材
现象:40 分钟录音频谱里出现断口,∆T1 或 ∆T2 每隔一段时间漂移,短录正常,长录才暴露。
原因:采样晶振偏差、录音缓冲周期性溢出、存储写入卡顿、线材接触不良或供电波动。
解决:先看采样时钟是否同源,再查缓冲深度和写入策略;换线材和供电复测;DUT 和采集板同时录,保留原始 raw 音频,按 5 分钟切片定位丢帧起点。
5.4 回采幅值上不去:分压网络、PGA 和数字增益分开查
现象:本机最大音量播放 ref_amplitude.wav,回采幅值仍小于 0.5,或者波形顶部已经削顶。
原因:回采分压网络阻值不对、PGA 增益设置不对、最大音量没有真正生效,或者有人用数字增益去补。
解决:先确认最大音量和播放文件正确,再查分压网络和 PGA,PGA 原则上 0dB;数字增益保持 0。削顶时先降模拟链路增益,不要靠软件压限。
5.5 气密性密封后没掉 15dB:收音通道漏声和材料选错
现象:用橡皮泥封住 MIC 收音孔后,扫频幅度只掉了几 dB,没有达到每个频点 15dB 以上的差值。
原因:收音通道还有侧向漏声路径,密封层侧向厚度偏薄,材料用了开孔率高的泡棉,或者只靠打胶没有形成连续密封。
解决:先查密封层是否连续、侧向厚度是否足够,换硅胶或橡胶密封;结构上分开 MIC 腔和 SPK 腔;不建议只靠打胶补漏。整改后再按 50cm、MIC 处 63dBC 复测密封前后扫频。
6. 用 Python 批量复核延时与丢帧:一条可复用的验收脚本
长时录音和延时测试最容易堆积大量文件,手工点波形很慢。我一般用一段小脚本先做批量初筛:互相关算 MIC 相对回采的延时,20ms 窗口 RMS 找疑似丢帧段。脚本只做初筛,最终判据仍按前面的标准表复核。参数上,ref_path给回采或采集板参考,mic_path给待测 MIC;互相关峰值位置换算成毫秒,正值表示 MIC 晚于参考,负值要警惕因果性问题;floor_db按安静环境底噪调,通常先设 -60dB 看趋势。
import numpy as np from scipy.io import wavfile from scipy.signal import correlate def load_mono(path): sr, x = wavfile.read(path) if x.ndim > 1: x = x[:, 0] # 多通道先取第一路做初筛 x = x.astype(np.float32) x /= max(1.0, np.max(np.abs(x))) # 归一化,避免幅值影响互相关 return sr, x def delay_ms(ref_path, mic_path): sr, ref = load_mono(ref_path) _, mic = load_mono(mic_path) n = min(len(ref), len(mic)) ref, mic = ref[:n], mic[:n] c = correlate(mic, ref, mode="full", method="fft") lag = np.argmax(np.abs(c)) - (len(ref) - 1) return lag / sr * 1000.0 # 正值为 MIC 晚于参考 def dropout_ratio(path, win_ms=20, floor_db=-60): sr, x = load_mono(path) win = int(sr * win_ms / 1000) rms = np.array([ np.sqrt(np.mean(x[i:i + win] ** 2)) for i in range(0, len(x) - win, win) ]) db = 20 * np.log10(np.maximum(rms, 1e-12)) return np.mean(db < floor_db), db.min()这段脚本不替代标准里的频谱判读,只帮你快速找异常文件。延时结果在 0~20ms 内继续看波形细节,超过 20ms 或出现负值就回头查通道配置和回采路径;丢帧比例高时,再看频谱断口和 ∆T 漂移。拿到这套标准配套的测试音频包后,先按第 2 章裸板四项跑通,再进整机,比直接上算法联调省时间。从那以后我每次收样机都先跑一遍长时录音和延时初筛,确认没有丢帧和因果性错误,再安排消声室测试。希望帮到你。
本文还有配套的精品资源,点击获取