去年接了一个广东精细化工中间体工厂的项目。他们主要生产医药中间体和农药中间体,反应釜、离心泵、搅拌电机是核心设备。问题是故障率比较高——特别是离心泵的机械密封泄漏和搅拌电机轴承磨损,一年下来非计划停机累计超过300小时。每次一停,后面的精馏工序就得跟着停,损失不小。
他们试过装振动传感器——但化工设备有个特点:反应釜夹套温度高(有的在150°C以上),搅拌电机装在釜顶,振动传感器信号线要经过高温区,线缆绝缘层一年就脆化了。离心泵的安装空间又小,传感器很难找到合适的安装面。
后来我们聊到一个方向:用听声音来检测故障。老师傅凭耳朵就能听出泵有没有抽空、轴承有没有磨损。能不能用麦克风+AI来干这件事?
这篇文章记录我们是怎么把一个概念——用AI听设备的声音做故障检测——变成一套可运行的系统的。过程中踩了不少坑,分享出来供参考。
一、现场情况摸底
去了车间几趟,主要看了三类设备:
- 反应釜搅拌电机(11台):功率15-45kW,转速45-85rpm,电机装釜顶,周围有蒸汽管道和保温层环绕
- 离心泵(16台):输送各类溶剂和反应液,转速1450-2900rpm,多数安装在泵房地面,有几台在室外露天
- 空压机(3台):提供仪表气,在独立的空压机房
对每个点位我们问了三个问题:
- 老师傅平时怎么听声音判断故障?——主要是靠近设备听轴承位、泵体、电机端盖
- 有哪些故障是声音先于振动或者温度反映的?——机械密封轻微泄漏、轴承初期磨损、泵的汽蚀(气蚀)
- 环境噪声怎么样?——反应釜区域持续有蒸汽和工艺管道的水击声,离心泵房有电机低频嗡鸣,空压机房噪声最大(实测约95分贝)
环境噪声是音频方案面临的最大挑战。如果让一个普通人在车间站一小时,他能听到的是持续的机器轰鸣声,不可能分辨出哪台离心泵的轴承声音有异常。但音频分析可以——因为不同的设备发出的声音频率范围不同,可以用频域分析把目标设备的声音从背景噪声中分离出来。
不过能不能做到、做到什么程度,我们心里也没底。这个项目带有验证性质——先花比较少的预算试点,看效果再决定要不要铺开。
二、方案设计
整体方案分三层:采集层(麦克风选型部署)、边缘处理层(音频预处理+推理)、告警层。
采集层:工业麦克风+防水防尘
麦克风选型上比较纠结。普通的驻极体麦克风(几十块那种)在实验室环境下可以拾取清晰的设备声音,但在化工车间有几个致命问题:
- 耐温不够:反应釜周围环境温度在50-70°C,普通麦克风的电子元件会加速老化
- 防水防腐蚀:车间有溶剂挥发物,普通麦克风外壳很快会被腐蚀
- 频率响应范围有限:普通麦克风对低频(<100Hz)衰减明显,而搅拌电机的故障特征频率集中在50-200Hz范围
最终选了IP67防护等级的工业MEMS麦克风,频率响应20Hz-20kHz,工作温度范围-40°C到85°C。单只成本约200元。相比动辄上千元的工业振动传感器,音频方案在成本上有明显优势——可以铺更多的监测点。
安装方式:磁吸式底座+不锈钢外壳,通过4-20mA信号线供电兼数据传输(两线制,供电和数据在一对线上)。麦克风安装在距离目标设备轴承座或泵体20-30cm处,朝向声源。
边缘处理层:本地音频处理和AI推理
这是方案的核心。边缘AI网关负责:
- 音频采集:每个麦克风通道以16bit/16kHz采样率连续采集,每5秒生成一个音频片段
- 预处理:对原始音频做降噪(谱减法去除稳态背景噪声)、信号增强、归一化
- 特征提取:将时域音频信号转换为频域特征——我们主要用了Mel频谱图(mel-spectrogram)+ MFCC(梅尔频率倒谱系数),把每5秒的音频片段变成一张频谱图
- AI推理:在网关本地运行轻量级CNN模型(MobileNetV1架构,量化到int8),对频谱图做分类:正常/异常/其他声源(说话声、开关门声等)
- 本地缓存:异常音频片段自动保存到本地存储,供后续分析
选择在边缘网关本地做所有推理,而不是上传云端再做:一是音频数据量比较大(16bit/16kHz的单通道连续流≈每天1.4GB),上传带宽不够;二是工厂网络不稳定,不能依赖云端做实时检测;三是推理延迟要控制在秒级,云端往返做不到。
踩坑:最开始我们尝试在云上处理——麦克风把原始音频不断上传到服务器做FFT和推理。结果发现一条线上6个麦克风,每天要上传超过8GB的PCM原始数据。工厂的4G上行带宽根本扛不住。切换到边缘处理架构后,上传流量降到了每天几十KB(只有异常片段的标签和特征摘要)。如果一开始就设计边缘方案,能省掉不少折腾。
AI模型:分类模型+降噪前置
模型选型上走了弯路。一开始想着用端到端的音频分类模型(YAMNet预训练转微调),但YAMNet是谷歌用AudioSet训练的,涵盖的类别是\"机器嗡嗡声\"\"泵声\"这类通用类,跟具体设备故障(\"轴承保持架裂纹\"\"机械密封轻微泄漏\")差了好几个层次。
后来换成了自己训练的二阶段方案:
- 降噪阶段:先用谱减法(Spectral Subtraction)去除稳态背景噪声。这一步比较关键——工厂的背景噪声在不同时段不一样(日班有叉车、夜班安静),用固定噪声谱去除效果不稳定。改成自适应噪声谱估计——每10秒更新一次噪声谱,去除稳态成分,保留瞬态成分(设备声音变化)
- 特征提取阶段:将降噪后的音频转成Mel频谱图(128个Mel频带,每帧25ms,步长10ms),然后做降采样到224×224×3的RGB图像输入
- 分类阶段:MobileNetV1(ImageNet预训练→微调)做三分类——正常、异常、干扰(人说话、对讲机、开关门、检修敲击等)。输出层的softmax阈值设为0.7(低于阈值视为\"不确定\",不触发告警)
训练数据来源:
- 正常数据:每台设备连续采集1周的音频,筛选无明显故障的时间段
- 异常数据:历史故障记录中的音频片段(工厂的视频监控有音频,提取了6次真实故障的音频)+ 在相同型号的备用设备上做故障模拟(比如用振动台模拟轴承故障特征频率)
- 干扰数据:专门录了车间常见的人声、脚步声、叉车声、对讲机噪声、工具敲击声
三、实施过程
第一周:麦克风部署和噪声摸底
部署遇到的第一个问题是麦克风吹向——有些设备是露天安装的,麦克风装在支架上,铝合金外壳在太阳下暴晒,内部温度实测70°C+。虽然麦克风的标称温度范围是-40°C到85°C,但连续高温下信号基线会漂。解决办法:在麦克风上方加遮阳罩(一块铝板+两公分间隙),形成一个空气隔热带,温度降到了55°C以下。
第二个问题是风噪。有3台设备在室外近风口位置,风吹过麦克风产生低频风噪,混入设备音频。加了防风罩(海绵材质)后,风噪能量下降了约15dB,基本不影响特征提取。
前三天26个麦克风全部装完。然后花了两天录各个位置的背景噪声样本——记录每个点位的正常噪声谱。
第二周:数据采集和基线建立
连续采集一周的正常运行数据。这一周我们不是干等着——每天去车间听设备声音,跟AI检测的结果对照,不断调整降噪参数。
在这个过程中发现了意想不到的问题:不同班次工人的操作习惯差异会在声音上留下痕迹。白班工人操作比较积极,经常开关阀门调整流量,离心泵的工况频繁变化,噪声谱也跟着变。夜班工人一般按固定参数运行,噪声谱比较稳定。如果不分班次处理,模型会在白班频繁触发\"正常波动\"的误报。
解决办法:按班次(白班/中班/夜班)分别建立正常基线。每个班次的前30分钟作为基线校准期。
还有一个发现:空压机房噪声虽然大(约95dB),但频率分布比较稳定——主要是50Hz工频及其谐波(100Hz、150Hz…)。频谱减法可以比较干净地去除,剩下的就是各台泵和电机的声音。这个发现让我们对整个方案信心提升了不少。
教训:工厂噪声不是\"噪声大就不能做音频分析\"的问题。关键是目标设备的声音频率和背景噪声的频率分布是否重叠。离心泵轴承故障特征频率(100-800Hz)和空压机的低频段(50-150Hz)重叠区域有限,通过滤波可以分离。但对讲机信号(1-3kHz)和机械密封泄漏的高频啸叫(4-8kHz)有重叠——这个目前没法用简单滤波去除,只能靠模型学出差异。
第三周:模型训练和调优
模型训练花了不少时间。最大的问题是数据不平衡——异常数据太少。6次真实故障的音频片段加起来只有几十秒,而每台设备的正常数据动辄几十个小时。模型训练出来以后,在验证集上表现很好(准确率约95%),但一上线就暴露了问题:它把所有接近异常的边缘样本都判为正常——因为没见过足够多的\"刚好要坏但又没坏\"的样本。
解决办法:从备用设备上做故障模拟,采集了约200条\"临界状态\"样本(轴承加沙模拟磨损、人为制造轻微不平衡、泵入口加节流模拟汽蚀)。同时用数据增强——对现有的异常样本做变速(0.8x-1.2x)、加噪(SNR 10-20dB)、频率偏移(±5%)——把训练集扩大了约8倍。
另一个问题:分类的\"干扰\"类别效果不好。很多干扰(关门声、脚步声)被错误地判为异常。分析后发现干扰样本太少——我们只录了约30分钟的干扰数据,覆盖的干扰类型有限。解决办法是持续收集:部署后的第一周,工程师每天手动标注模型误报的音频片段,加入干扰类别训练集。一周后干扰识别准确率从约60%提升到了约85%。
第四周:上线试运行
模型加载到边缘网关后试运行。第一天的告警数量让电工师傅哭笑不得——28条告警,几乎都是\"持续的新设备磨合声、换班时工人们的说话声、叉车经过的引擎声\"这类非故障事件。
排查发现三个问题:
- 阈值太敏感:softmax阈值0.7偏低,稍微有些频谱变化就判为异常。调整到0.85后,告警从28条降到6条
- 连续帧确认策略没加:单帧(5秒音频片段)异常→告警,但很多干扰是瞬态的。改成3帧(15秒)连续异常才触发告警,瞬态误报基本消除
- 设备启停阶段没过滤:离心泵启停瞬间的声音和正常运行差异极大。加了设备状态信号(从PLC读取泵的运行信号)后,只在运行稳定期做检测
这轮调整后,每天的误报降到了2-3条,基本可接受。
四、实际效果
系统上线运行4个月,统计了几个关键数据:
包括:2次离心泵机械密封泄漏前兆(高频啸叫特征)、3次搅拌电机轴承磨损(频谱能量向高频偏移)、1次空压机阀片故障(排气脉冲频率异常)、2次离心泵汽蚀(特征性爆裂声频率)。这8次隐患都通过提前更换/维修避免了突发停机。
其中机械密封泄漏和轴承磨损占了约60小时。如果不提前发现,每次泄漏或轴承卡死需要停机8-16小时抢修。提前干预只需要2-4小时。
头两周每天十几条误报让人头大。经过阈值调优、连续帧策略、设备状态过滤和持续加训后,进入稳定期。误报主要来自:极端的工况变化(比如突然切换产品时流量和压力大幅波动)、对讲机的高频啸叫(频率和机械密封泄漏的频段有重叠,模型区分困难)。
还有一些预料之外的发现:
- 听到的\"异响\"不全是故障:有一台离心泵持续发出间歇性的\"咔咔"声,老师傅怀疑轴承坏了。但频谱分析和模型判断为正常——拆开后发现是管道支架松动导致的机械碰撞声,不是泵本身的问题。省了一次不必要的拆修。
- 夜班的\"寂静\"暴露了更多问题:白天背景噪声大,有些轻微异常被掩盖了。夜班车间安静后,音频检测反而发现了一些白天完全听不出来的持续异常。车间主任说\"以前只知道白天的情况,不知道设备晚上是什么样\"。
- 音频数据还可以做设备对比:两台同型号离心泵,一台的声音频谱明显偏高频。查看维修记录发现那台的叶轮比另一台磨损程度大,虽然目前还能用但在可预测范围内——可以作为下次大修的优先对象。
五、遇到的问题和解决办法
问题1:不同车间环境的噪声谱差异大,模型需要反复调整
反应釜区域以低频蒸汽水击声为主,离心泵房是电机嗡鸣,空压机房是持续的气流噪声。同一个模型在三个环境中表现差异很大。解决办法:改用按环境训练的\"子模型\"——每个区域部署对应环境的专用模型。虽然维护成本增加了(3个模型分别更新),但每个模型的准确率都比统一模型高了5-8个百分点。
问题2:麦克风信号衰减和不一致
用了3个月后,有两支麦克风的信号强度下降了约40%。拆下来发现振膜上覆盖了一层白色结晶物——是车间挥发的溶剂在振膜表面凝结后蒸发残留的。解决办法:在麦克风振膜前加了一层聚四氟乙烯(PTFE)防水透气膜,阻隔溶剂蒸汽直接接触振膜,同时不影响声音传播。用了2个月后没有再出现衰减问题。
问题3:天气变化导致噪声谱漂移
进入梅雨季之后,背景噪声谱发生了变化——降雨的雨滴声混入了室外设备的音频,部分频率和轴承故障特征频率有叠加,导致误报增加。解决办法:在预处理阶段增加\"天气状态\"输入——通过接入天气预报API,雨天时降低判定敏感度(阈值从0.85调到0.9),晴天恢复默认值。
问题4:\"沉默的故障\"——有些故障没有声音
不是所有设备故障都会产生可辨识的声音变化。比如电气故障(接触器粘连、电机绕组绝缘下降)、缓慢的化学腐蚀(泵体壁厚减薄)不会发出异常声音。这不是音频方案的短板,但必须在方案设计时就跟客户讲清楚:音频检测对机械类故障有效,对电气类和化学类故障检查力度有限。建议与振动/温度监测做互补使用。
六、我的思考
这个项目做下来,对音频AI在工厂的应用有些新的认识。
音频技术没有想象中那么\"玩具\"。去之前担心车间噪声太大做不了。实际上只要目标设备的特征频率和背景噪声的主频段不高度重叠,通过频谱减法+适当的滤波,大部分场景是可做的。这在很多工厂是成立的——因为大多数设备噪声集中在低频段(<500Hz),而很多机械故障的特征频率在1-8kHz的中高频段,两者天然可以分离。
代价低是可以换来覆盖率的。一个麦克风约200元,一台设备可以装两支(轴承位+泵体端)。对比一个工业级加速度传感器600-2000元,音频方案可以铺更多点位。对于预算有限的工厂来说,\"用5个麦克风覆盖10台设备\"比\"装2个振动传感器覆盖5台设备\"在实际效果上更实用。当然精度上音频方案比不上振动传感器——但覆盖率提升了,总能抓住一些本来抓不住的问题。
老师傅的经验是AI最好的老师,不是对手。做标注的时候,每次都要把异常音频播放给车间最有经验的电工师傅听。他能区分出\"这个声音是泵抽空了\"和\"这个是轴承快不行了\"。我们做的事情其实就是把他的听觉经验数字化、持续化——他不可能24小时在每台设备旁边听,但麦克风可以。
化工场景的特殊性比想象中大。设备耐受、腐蚀防护、防爆等级、溶剂蒸汽——这些在实验室做方案时完全不会考虑的问题,在实际部署中占了很大工作量。如果让我再选一次,会把更多时间花在麦克风的物理防护方案上,而不是模型调参上。
音频+振动融合可能是更优的路径。做完这个项目后我的直觉是:对关键设备用振动传感器(精度高),对非关键设备用麦克风(成本低、覆盖广),两者数据融合分析。这可能比只依赖任何一种方案都更有实用价值。不过这次没有机会验证——留给下一个项目去尝试。
七、给你的建议
如果你也在考虑用音频做设备检测,几点经验:
- 先做噪声审计,再做方案——拿一个手持录音设备去目标设备旁录30分钟,在电脑上用频谱分析软件看看目标设备的特征频率和背景噪声的重叠情况。如果重叠严重(比如设备本身低频噪声和背景噪声高度耦合),音频方案可能不合适
- 部署后的前两周不要开告警——只收集数据、手动验证。两周后你会有足够的数据来判断当前阈值合不合理
- 干扰数据比异常数据更难收集但更重要——只录了故障音频还不够,要专门花时间录各种\"不是故障但听起来像故障\"的声音。误报是用户放弃系统的首要原因
- 给车间一点适应期——工人刚开始听到\"AI听声音发现故障\"会觉得玄乎。让师傅参与几次验证(模型说异常→师傅去听→确认),信任会逐步建立
- 麦克风的物理防护比选型重要——别纠结于麦克风的频响精度,花更多的精力在安装位置、防风防水、防溶剂、防振上。用了一年还没坏比频率响应多2dB重要得多
- 做好预期管理——音频方案对机械类故障(轴承、密封、阀片、汽蚀)有效,对电气类、化学类、控制系统类故障无效。不要在客户面前吹过头,说清楚边界反而让对方觉得你做事实在