3、异常声音检测原理:声音信号特征、常见异常类型与检测算法概述

异常声音检测(Anomaly Sound Detection, ASD)是工业预测性维护与设备状态监测中的关键技术。其核心目标是从连续的声学信号中识别出偏离正常工况模式的声音事件,从而在设备发生严重故障前发出预警。本章将系统阐述声音信号的本质特征、工业场景中常见的异常声音类型,以及从传统频谱分析到现代机器学习分类的算法演进路径,为后续在STM32Cube平台上部署模型奠定理论基础。

异常声音检测原理与工程链路 声音信号特征 • 时域:幅值、过零率、RMS • 频域:FFT频谱、功率谱密度 • 时频域:STFT、Mel频谱、MFCC • 感知特征:响度、音调、粗糙度 • 统计特征:均值、方差、峰度、偏度 采样率决定频率分辨率上限 常见异常类型 • 敲击/冲击:瞬态、宽频带 • 摩擦/刮擦:高频连续噪声 • 泄漏/喷射:窄带湍流声 • 松动/共振:特定频率放大 • 润滑不良:周期性冲击串 异常类型决定特征选择策略 检测算法 • 频谱分析:FFT、包络谱、倒谱 • 阈值法:能量、峰值、带宽判断 • 传统ML:SVM、随机森林、GMM • 深度学习:CNN、LSTM、Autoencoder • 迁移学习:预训练模型微调 嵌入式部署需考虑算力约束 嵌入式部署工程链路(STM32Cube.AI) 麦克风采集 预处理/分帧 特征提取 模型推理 决策输出 STM32Cube.AI将训练好的模型转换为C代码,部署于Cortex-M内核 关键设计参数 采样率:16kHz(语音级)~ 48kHz(超声检测) 帧长:20-50ms,帧移:10-25ms(50%重叠) 特征维度:MFCC 13-40维,或Mel频谱 64-128维

3.1 声音信号的核心特征与工程化表示

声音本质上是介质中的机械振动波,在数字信号处理中表现为随时间变化的压力信号。对于工业异常声音检测,我们关注的不是声音的“语义”内容,而是其物理特征模式。从工程角度看,声音信号特征可分为四个层次:时域特征、频域特征、时频域特征和感知统计特征。

时域特征是最直观的表示,包括信号的均方根值(RMS)、峰值因数、过零率等。RMS反映了声音的能量水平,对于检测设备突然启动或停止产生的能量突变非常有效;过零率则能粗略区分低频振动与高频噪声。然而,时域特征对噪声干扰敏感,且无法区分不同频率成分的贡献,因此在实际系统中通常作为辅助特征使用。

频域特征通过傅里叶变换(FFT)将时域信号转换到频率域,得到频谱或功率谱密度(PSD)。工业设备的正常运转往往具有稳定的频谱特征,例如电机轴承的旋转频率及其谐波。当异常发生时,频谱中会出现新的频率分量或原有分量的幅值发生显著变化。例如,轴承磨损初期会在特征频率处出现边带,而齿轮断齿则会产生啮合频率的幅值调制。频域分析的关键参数包括频率分辨率(由采样率和FFT点数决定)和窗函数选择(汉宁窗、汉明窗等)。

时频域特征解决了非平稳信号的分析难题。短时傅里叶变换(STFT)将信号分段加窗后分别做FFT,得到时间-频率二维图谱。Mel频谱和梅尔频率倒谱系数(MFCC)则模拟人耳对频率的非线性感知特性,在工业异常检测中同样表现出色。MFCC的维度通常取13~40维,其计算流程包括:预加重→分帧→加窗→FFT→Mel滤波器组→对数运算→离散余弦变换(DCT)。

工程提示:在STM32嵌入式平台上,特征提取的计算量直接决定了系统的实时性。建议优先选择计算复杂度较低的MFCC(13维)或Mel频谱(64维),避免使用高分辨率的STFT图谱作为直接输入,因为这会显著增加内存占用和推理延迟。对于Cortex-M4或M7内核,16kHz采样率、25ms帧长、10ms帧移是经过验证的合理配置。

3.2 工业场景中的常见异常声音类型

不同类型的设备故障会产生具有独特声学特征的异常声音。理解这些特征模式是设计检测算法的前提。下表总结了工业场景中五类最常见的异常声音及其声学特征:

异常类型典型设备声学特征敏感特征检测难度
敲击/冲击轴承、齿轮箱、活塞瞬态脉冲、宽频带、能量集中时域峰值、包络谱低
摩擦/刮擦旋转轴、导轨、电刷高频连续噪声、白噪声成分高频段能量、频谱平坦度中
泄漏/喷射阀门、管道、气缸窄带湍流声、特定频率峰值特定频带能量、谱峰检测中
松动/共振螺栓连接、外壳、罩体特定频率放大、谐波丰富共振频率幅值、谐波比中高
润滑不良滑动轴承、链条周期性冲击串、调制现象包络谱边带、周期检测高

敲击类异常是最容易检测的类型,因为其瞬态能量远高于背景噪声。但需要注意的是,敲击信号在传播过程中会因结构共振而产生“振铃”现象,导致时域波形出现多个衰减振荡,这可能会被误判为多次敲击。摩擦类异常则表现为持续的高频噪声,其频率范围通常在5kHz以上,与正常运转的低频振动有明显区分。泄漏检测在石化、燃气行业尤为重要,其声学特征为窄带湍流噪声,频率范围与泄漏孔径和压力有关。

对于松动和共振类异常,其核心特征是特定频率分量的异常放大。例如,设备外壳的固有频率通常在200Hz~2kHz之间,当螺栓松动导致结构刚度下降时,该频率处的振动幅值会显著增加。润滑不良则表现为周期性冲击,其周期与旋转频率相关,包络分析(Envelope Analysis)是检测此类异常的有效手段。

3.3 检测算法概述:从频谱分析到机器学习

异常声音检测算法的选择取决于应用场景的约束条件:数据量、计算资源、实时性要求和误报容忍度。以下从传统信号处理到现代机器学习分类进行系统梳理。

频谱分析方法是基础。最简单的检测策略是设定能量阈值——当信号的总能量或特定频带能量超过预设阈值时判定为异常。这种方法计算量极小,适合STM32等嵌入式平台,但误报率较高,无法适应工况变化。更精细的方法是频谱比较法:在设备正常运行时建立基准频谱模板,实时计算当前频谱与模板之间的差异(如欧氏距离、谱散度),当差异超过阈值时触发报警。包络谱分析则针对调制类故障,通过希尔伯特变换提取包络信号,再对包络做FFT,从而在低频段识别调制频率。

传统机器学习方法引入统计建模能力。支持向量机(SVM)是工业异常检测中最常用的分类器之一,其核心思想是在特征空间中寻找最大间隔超平面。对于异常检测任务,通常采用一类SVM(One-Class SVM),仅使用正常样本进行训练,将偏离正常分布的数据点判定为异常。高斯混合模型(GMM)则通过多个高斯分布的加权组合来拟合正常数据的概率分布,当新样本的概率密度低于阈值时判定为异常。随机森林通过集成多棵决策树,能够处理高维特征和非线性关系,且对特征缩放不敏感。

深度学习方法在复杂场景中表现优异。卷积神经网络(CNN)可以直接以Mel频谱图或STFT图谱作为输入,自动学习时频特征。对于时间序列建模,长短期记忆网络(LSTM)能够捕捉声音事件的时间依赖关系。自编码器(Autoencoder)是一种无监督异常检测方法,其思想是训练网络重建正常样本,当输入异常样本时重建误差会显著增大。在STM32Cube.AI平台上,经过量化和剪枝的CNN模型可以在Cortex-M7内核上以数十毫秒的延迟完成推理。

选型建议:对于STM32嵌入式部署,推荐采用“轻量级特征+传统ML”或“小型CNN”的组合方案。具体而言:若特征维度较低(如13维MFCC),优先选择一类SVM或随机森林;若使用Mel频谱图作为输入,则选择参数量小于100K的紧凑型CNN(如MobileNetV1的简化版)。避免使用LSTM或Transformer等参数量大、计算密集的模型。

3.4 案例拆解:电机轴承敲击声检测的完整流程

为将上述原理串联起来,我们以一个典型的工业场景——电机轴承敲击声检测为例,展示从信号采集到模型部署的完整闭环。

背景与约束:某工厂的传送带驱动电机(额定功率7.5kW,转速1450rpm)频繁出现轴承故障,导致非计划停机。工厂要求部署一套基于声音的在线监测系统,检测准确率不低于95%,误报率低于5%,且系统需运行在基于STM32H743(Cortex-M7,480MHz)的自研采集板上,内存限制为1MB。

初始现象与目标:人工巡检发现轴承异响,但无法确定故障程度。目标是通过声音信号自动识别轴承敲击异常,并在故障恶化前发出预警。

关键参数与数据:采样率设为32kHz(满足轴承故障特征频率分析需求),帧长50ms(1600个采样点),帧移25ms。采集正常运转声音200段(每段10秒),人工标注敲击异常声音50段。通过FFT分析发现,正常频谱在1kHz以下有稳定的旋转频率及其谐波;异常信号在2kHz~8kHz频段出现明显的瞬态能量峰值,且包络谱中出现了与旋转频率(24.2Hz)相关的调制边带。

分析判断过程:首先尝试纯阈值法——计算2kHz~8kHz频带能量,设定固定阈值。测试发现误报率高达15%,原因是负载变化导致背景噪声波动。随后引入包络谱分析,提取包络信号后做FFT,在24.2Hz处检测到明显峰值,但该方法对早期微弱敲击不敏感。最终决定采用机器学习方案:提取13维MFCC特征,使用一类SVM(RBF核,nu=0.1)进行训练。

实际操作步骤:①在STM32上实现MFCC特征提取,使用CMSIS-DSP库的FFT函数,单帧特征提取耗时约3.2ms;②将训练好的一类SVM模型通过STM32Cube.AI转换为C代码,模型参数量为2.3KB,RAM占用约4KB;③部署后实测单次推理耗时0.8ms,满足实时性要求;④设置滑动窗口(连续5帧中3帧判定为异常才触发报警),有效抑制偶发噪声。

结果对比与复盘:部署后运行30天,共检测到7次敲击异常,其中6次经停机检查确认存在轴承点蚀,1次为外部工具掉落误触发。准确率98.3%,误报率1.2%。相比纯阈值法,误报率降低了92%。复盘发现,模型对低速重载工况的适应性不足,后续计划采集更多工况数据并引入域自适应方法。

风险提示:在嵌入式平台部署机器学习模型时,需特别注意数值精度问题。STM32Cube.AI默认使用float32推理,若内存紧张可尝试int8量化,但需验证量化后的精度损失。此外,模型训练时的数据分布必须覆盖实际运行工况,否则会出现“训练时准确率高、现场误报频发”的问题。

3.5 常见误区与设计要点总结

在异常声音检测系统的设计与部署中,工程师常陷入以下误区,需要特别警惕:

  • 误区一:采样率越高越好。过高的采样率(如192kHz)虽然能捕捉更多高频信息,但会成倍增加计算量和存储需求。应根据目标异常声音的频率范围合理选择采样率,一般工业设备异常声音集中在20kHz以下,32kHz采样率已足够。
  • 误区二:特征越多越好。高维特征不仅增加计算负担,还可能导致“维度灾难”,使模型过拟合。建议从MFCC、Mel频谱、频带能量等基础特征出发,通过交叉验证选择最优特征子集。
  • 误区三:忽略环境噪声的影响。工业现场存在大量背景噪声(如风扇、压缩机、叉车),这些噪声会掩盖异常声音。建议在特征提取前加入高通滤波(截止频率100Hz)去除低频干扰,或使用谱减法进行简单降噪。
  • 误区四:模型部署后不做持续优化。设备磨损、工况变化会导致声音特征漂移,模型性能随时间下降。应设计定期更新机制,利用边缘设备采集的新数据重新训练或微调模型。