1. 引言
心血管疾病是全球范围内主要的致死与致残原因之一[1],其早期筛查与准确诊断对于降低疾病负担、改善患者预后具有重要意义。心音信号(Phonocardiogram, PCG)作为一种无创、低成本且易于采集的生理信号,能够反映心脏瓣膜及血流状态,在临床辅助诊断与可穿戴健康监测设备中展现出良好的应用前景。随着智能感知与计算能力的提升,基于心音信号的自动分析方法逐渐成为传统听诊的重要补充。
近年来,深度学习技术在医学信号处理领域取得显著进展,在心音分类任务中的表现尤为突出,性能已超越传统方法[2]-[4]。特别是自PhysioNet/CinC Challenge 2016 [5]发布后,大量基于机器学习与深度学习的心音分析方法相继提出,有力推动了该领域的快速发展。Posts等人[6]将卷积神经网络(Convolutional Neural Network, CNN)与自适应增强算法(Adaptive Boosting, AdaBoost)相结合,从心音信号中提取多维时频特征,在随机测试集上取得了较高的未加权平均召回率。Yaseen等人[7]则利用梅尔频率倒谱系数(Mel Frequency Cepstral Coefficients, MFCC)与离散小波变换(Discrete Wavelet Transform, DWT)特征,结合支持向量机(Support Vector Machine, SVM)、K近邻算法(K-Nearest Neighbors, KNN)及深度神经网络(Deep Neural Network, DNN)开展分类研究,在公开数据集上获得了较为理想的识别精度。Mubarak等人[9]基于同态包络分析与径向基函数核SVM实现心音分类;Li等人[10]则通过强化多域特征融合与引入全局平均池化结构,进一步提升了模型的泛化性能。Zhang等人[11]提出一种基于心音循环谱图与偏最小二乘回归(Partial Least Squares Regression, PLSR)的心音分类方法,从频谱结构角度对心音信号实现了有效建模。尽管上述方法在特定数据集上取得了一定效果,但由于心音信号本身具有非平稳性强、个体差异显著、噪声干扰复杂等特点,现有方法在实际应用中仍面临性能退化的问题。为此,本文提出一种基于多特征融合与注意力机制的心音异常检测模型——TTFI-CNN (Time-Time-Frequency Integrated Convolutional Neural Network)。该模型通过融合MFCC、短时傅里叶变换(Short-Time Fourier Transform, STFT)以及离散小波变换(DWT)特征,从时域、频域与时频域多个层面构建心音信号的多尺度表征,有效增强了特征表达能力。同时,在多分支特征融合阶段引入轻量化的SE (Squeeze-and-Excitation)通道注意力机制,对不同特征分支的重要性进行自适应加权,从而seelectively强化与异常心音相关的关键信息。为验证所提出方法的有效性,本文在PhysioNet/CinC Challenge 2016心音数据集上进行了系统实验,并通过消融实验分析多分支融合结构及SE注意力模块对模型性能的影响。
2. 本文算法原理
2.1. 整体框架
Figure 1. Overall framework of the abnormal heart sound detection algorithm
图1. 异常心音检测算法整体框架
本文提出的TTFI-CNN异常心音检测算法整体框架如图1所示。该算法包括预处理、特征提取,首先,对原始PCG信号以4 kHz采样率读取,并采用3 s窗长、1.5 s重叠的方式划分为若干短时片段;随后利用4阶Butterworth带通滤波器(25~1000 Hz)抑制背景噪声并进行幅值归一化处理。在此基础上,面向每个片段同时构建三类互补特征:一是基于Mel频谱的MFCC及其一、二阶差分系数,形成120 × T维的时–频倒谱特征图;二是由STFT幅值谱、谱质心与谱带宽构成的66 × 47维时–频能量与谱形特征;三是通过db4小波在4个尺度上的分解系数统计得到的10维时域纹理特征。MFCC和STFT特征分别输入两个浅层卷积子网络,经卷积、批归一化、LeakyReLU、池化和全局平均池化提取高维判别表征;DWT特征则通过两层全连接网络提取紧凑的多尺度统计描述。随后,将三分支特征在向量级进行拼接,并引入SE风格的通道注意力模块,对融合特征进行自适应重标定,以突出对异常心音敏感的分支与维度,抑制冗余或噪声信息。最后,融合后的高层表征输入两层全连接分类头,通过带标签平滑的交叉熵损失进行端到端训练,从而实现正常与异常心音的自动识别。需要说明的是,PhysioNet/CinC Challenge 2016数据集在官方评测框架下将心音信号标注为正常与异常两类,构成二分类任务。然而,从临床角度看,异常心音样本来源于不同类型的心脏病理,其声学表现具有较大的异质性。由于数据集中未提供明确的病理子类别标签,本文遵循官方任务定义,将异常心音统一建模为一类,重点关注异常心音的自动检测能力。
2.2. 预处理
由于心音分类仅需判断“正常/异常”而非定位具体病灶,本研究无需精确分割心动周期。原始心音经数字听诊器采集后时长5~120 s不等,采样率重采样至4 kHz。为消除设备启停瞬态,首先剔除每条记录首、尾各1 s;随后采用5阶Butterworth带通滤波器(20 Hz~1 kHz, zero-phase filt-filt)去除基线漂移与高频噪声,保留心音主要能量频段。滤波后执行滑动切片:窗口3 s,步长1.5 s (50%重叠),确保每段至少包含一个完整心动周期(≈0.8~1.0 s)。不足3 s的尾部自动舍去。切片过程加汉明窗抑制频谱泄漏,最终输出固定长度12,000点(3 s × 4 kHz)的浮点序列,归一化至零均值、单位方差,其公式如(1)所示:
(1)
经上述处理,数据集共生成26,410段正常样本、8080段异常样本,后续特征提取均以该等长、去噪、归一化片段为输入。
2.3. 特征提取
心音信号具有显著的非平稳性和多尺度特征,其异常模式在时域、频域及多尺度能量分布上均存在差异。为全面表征心音信号的判别信息,本文从时频分析与多尺度统计两个层面出发,分别提取梅尔频率倒谱系数(MFCC)、短时傅里叶变换(STFT)特征以及离散小波变换(DWT)特征,并将其作为多分支网络的输入。
首先,为刻画心音信号的局部时频特性,本文对每个心音片段计算梅尔频谱,并在此基础上提取40维MFCC特征。同时引入MFCC的一阶和二阶差分,以描述心音信号在时间维度上的动态变化信息。通过该方式获得的MFCC特征能够有效反映心音在不同频带上的能量分布及其随时间的变化趋势,在心音分类任务中具有较强的判别能力。
其次,为弥补MFCC在频谱细节刻画方面的不足,本文进一步引入STFT特征对心音信号进行时频分析。通过对心音信号进行短时分帧并计算其幅度谱,获得随时间变化的频谱表示。为增强特征的数值稳定性,对STFT幅度谱取对数形式,并对频率和时间维度进行统一裁剪,从而形成固定尺寸的时频特征图。该特征能够直观反映异常心音在不同时间区间内的频谱变化特征。
此外,考虑到异常心音在多尺度结构上的显著差异,本文采用离散小波变换对心音信号进行多尺度分解。选用db4小波基函数并分解至四层,分别对各尺度小波系数计算其统计特征(均值与标准差),以获取反映心音整体结构和能量分布变化的低维特征表示。DWT特征能够有效弥补时频特征在全局尺度信息建模方面的不足。
综合而言,MFCC和STFT特征侧重于刻画心音信号的局部时频结构,而DWT特征则从多尺度角度描述信号的整体统计特性。三类特征在信息表达上具有良好的互补性,为后续TTFI-CNN网络的多分支融合学习提供了更加丰富和稳定的特征基础。
2.4. 基于特征融合的通道注意力机制
在多分支特征融合场景下,不同特征分支及其内部通道对异常心音的判别贡献存在显著差异。为充分挖掘多域特征之间的互补信息,并自适应突出对异常心音更为敏感的特征通道,本文在特征拼接之后引入一种轻量化的通道注意力机制(Channel Attention Mechanism),对融合特征进行动态重标定。
2.4.1. 特征融合
设经过MFCC-CNN分支、STFT-CNN分支及DWT-MLP分支提取后的高层特征分别表示为:
,
,
(2)
三路特征在向量级进行拼接,得到融合特征表示:
(3)
其中,C = 272表示融合后的通道维度。
该融合向量同时包含了心音信号的时–频倒谱信息、时–频能量结构以及多尺度时域纹理统计特征,但不同通道中包含的信息冗余程度和判别能力并不一致,因此有必要对其进行自适应加权。
2.4.2. 通道注意力建模
本文采用SE (Squeeze-and-Excitation)风格的通道注意力结构,对融合特征f进行通道重标定。由于特征已在全局池化后呈现为一维向量形式,通道压缩(Squeeze)阶段可视为对融合特征的全局统计描述,直接以f作为通道描述向量:
(4)
在激励(Excitation)阶段,通过两层全连接网络对通道间的相关性进行建模,生成通道权重向量:
(5)
其中,
、
为可学夕参数矩阵;r为通道压缩比,本文设置为r = 4;
表示ReLU激活函数;
表示Sigmoid激活函数,用于将权重归一化至[0, 1]。最终,通过逐通道乘法对融合特征进行重标定,得到加权特征表示:
(6)
其中,
表示Hadamard逐元素乘法。
上述通道注意力机制能够在融合特征空间内自适应学习不同通道的重要性权重,从而增强与异常心音相关的判别特征响应,并抑制冗余或噪声通道的干扰。与直接拼接特征相比,该机制在保持模型参数量较低的前提下,提高了多分支特征融合的有效性与判别能力,为后续分类层提供更加紧凑且具有判别性的高层表征。
2.5. TTFI-CNN网络结构
本研究提出了一种基于多特征融合与通道注意力机制的卷积神经网络模型——TTFI-CNN (Time-Time-Frequency Integrated CNN),用于异常心音信号的自动检测。模型以心音信号为输入,通过多种时域与频域特征提取方法构建多分支特征表示。具体而言,首先从原始心音信号中分别提取MFCC特征图、STFT时频谱图以及DWT多尺度统计特征,其中MFCC特征维度为120 × 47,STFT特征维度为66 × 47,DWT特征为10维向量。三类特征分别输入对应的网络分支进行并行建模。
如图2所示,MFCC分支与STFT分支均采用基于卷积神经网络的特征提取结构。每个分支依次包含两层二维卷积操作,卷积核大小均为3 × 3,卷积通道数分别设置为64和128,卷积后均接批归一化(Batch Normalization)层与LeakyReLU激活函数,以提升网络训练稳定性与非线性表达能力。在第一层卷积后引入最大池化操作以降低特征维度,同时在池化后加入Dropout层(丢弃率为0.2)以缓解过拟合问题。第二层卷积后通过全局平均池化(Global Average Pooling, GAP)将二维特征映射压缩为定长一维特征向量,最终分别获得128维的MFCC特征表示和STFT特征表示。
针对DWT提取的低维统计特征,设计独立的多层感知机(MLP)分支进行建模。该分支首先通过一个包含32个神经元的全连接层进行非线性映射,随后引入批归一化与Dropout层以增强泛化能力,最后通过16单元的全连接层输出DWT特征表示。
在特征融合阶段,将来自MFCC、STFT和DWT三个分支的特征向量在通道维度进行拼接,形成272维融合特征。为进一步建模不同特征通道对异常心音判别的重要性差异,在融合特征后引入SE (Squeeze-and-Excitation)通道注意力机制。该模块通过两层全连接结构对融合特征进行压缩与激励,生成通道权重向量,并对原始融合特征进行自适应重标定,从而增强模型对关键异常特征的关注能力。
最后,经过通道重标定后的融合特征输入分类模块,分类模块由一个包含256个神经元的全连接层组成,激活函数为ReLU,并在其后引入Dropout层以降低过拟合风险。最终通过Softmax输出层实现对心音信号“正常”与“异常”两类的概率预测。
模型训练过程中采用Adam优化器对网络参数进行更新,初始学习率设置为8 × 10−4,损失函数采用带标签平滑的分类交叉熵损失函数。训练过程中引入EarlyStopping与ModelCheckpoint策略,根据验证集准确率动态保存最优模型权重,以进一步提升模型的泛化性能与训练稳定性。
Figure 2. TTFI-CNN network architecture diagram
图2. TTFI-CNN网络结构图
3. 实验与结果
3.1. 实验数据
实验中所使用的心音信号来自PhysioNet/CinC Challenge 2016数据库,可在Physio网站上公开获取。该数据库来自于七个研究小组贡献的九个独立数据库,包括从临床和非临床环境下健康受试者和各种心脏病患者中收集的共3240份原始心音信号记录。这些心音数据被各种电子听诊器在4个主要听诊部位所采集:主动脉瓣听诊区、肺动脉瓣听诊区、三尖瓣听诊区、二尖瓣听诊区,长度从5 s到120 s不等,采样频率为2000 Hz。其中异常的心音信号来自于心脏瓣膜缺损(包括二尖瓣脱垂、二尖瓣关闭不全、主动脉瓣反流和主动脉瓣狭窄等)和冠状动脉疾病等各类心脏疾病患者。该数据库共发布心音信号3240段,其中共有2575段心音信号被标记为正常,665段心音信号被标记为异常。实验中将其中20%作为测试集,80%作为训练集。具体数据集划分见表1。在数据划分过程中,严格按照原始心音记录级别进行训练集与测试集划分,确保来自同一原始记录的不同切片不会同时出现在训练集与测试集中,从而有效避免潜在的数据泄露问题。
Table 1. Data division
表1. 数据划分
数据集 |
正常/段 |
异常/段 |
训练集 |
2060 |
532 |
测试集 |
515 |
133 |
3.2. 实验环境
实验中所使用的编程软件为Pycharm 2021,编程语言为Python 3.8,所使用并行卷积递归神经网络均在TensorFlow 2.5框架中实现。硬件环境:中央处理器(14 vCPU Intel(R) Xeon(R) Gold 6330 CPU @ 2.00 GHz,RAM为90 GB),独立显卡NVIDIA Corporation GP104 [GeForce GTX 3090]。
本文的网络模型配置如下:采用Adam优化器对目标函数进行迭代更新,初始学习率设为8 × 10−4,并结合EarlyStopping与ModelCheckpoint保证训练稳定性;损失函数为带标签平滑(ε = 0.05)的分类交叉熵损失函数;在各特征分支与融合全连接层中引入Dropout (保持率0.4~0.6,经Optuna自动搜索)用于缓解过拟合,并在融合阶段加入SE通道注意力机制以实现特征权重自适应重标定。
3.3. 评价指标
为全面评估所提出的TTFI-CNN模型在异常心音检测任务中的分类性能,本文采用多种常用的二分类评价指标,包括准确率(Accuracy)、召回率(Recall)、精确率(Precision)、F1值(F1-score)、特异度(Specificity)和灵敏度(Sensitivity)。上述指标从不同角度反映模型在异常与正常心音识别中的综合判别能力,其定义如下:
(7)
(8)
(9)
(10)
(11)
(12)
其中,TP表示被正确分类为异常心音的样本数量,TN表示被正确分类为正常心音的样本数量,FP表示被误判为异常心音的正常样本数量,FN表示被误判为正常心音的异常样本数量。
3.4. 结果分析
3.4.1. TTFI-CNN整体性能分析
为验证所提出的TTFI-CNN模型在异常心音检测任务中的有效性,本文基于PhysioNet/CinC Challenge 2016数据集开展了系统的实验评估。图3展示了模型在测试集上的整体性能表现,分别从训练收敛过程、分类结果分布以及判别能力等方面进行分析。
如图3(a)所示,模型在训练初期准确率迅速提升、损失函数显著下降,并在中后期逐渐趋于平稳;训练集与验证集曲线变化趋势一致,未出现明显振荡或性能退化现象,表明在所采用的数据划分策略与正则化机制下,模型能够实现稳定收敛并具备良好的泛化能力。图3(b)给出了测试集上的混淆矩阵结果,可以看出绝大多数正常心音与异常心音样本均被正确识别,仅有少量样本发生误判,说明模型在复杂心音信号条件下具有较强的区分能力。进一步分析误分类样本发现,部分漏检(FN)样本对应的异常心音杂音幅度较弱,且易受背景噪声或记录质量影响,其时频结构与正常心音存在一定相似性;而少量误报(FP)样本多源于正常心音中出现的短时高频扰动或非病理性噪声成分,导致模型在多域特征空间中产生异常响应。尽管存在上述情况,得益于多域特征融合与通道注意力机制的引入,模型整体仍能够有效抑制噪声干扰并保持较低的误判比例,体现出较好的鲁棒性。
进一步地,图3(c)和图3(d)分别给出了模型的ROC曲线与PR曲线。其中,ROC曲线下面积(AUC)超过0.99,PR曲线在高召回区间内仍保持较高的精确率,表明模型在不同判决阈值下均具有稳定的异常心音识别能力,尤其在类别分布不均衡的情况下仍能取得良好的检测性能。综合以上分析结果,所提出的TTFI-CNN模型在异常心音检测任务中展现出优越的整体性能。
(a) (b)
(c) (d)
Figure 3. (a) Training process curve; (b) Confusion matrix; (c) ROC curve; (d) PR curve
图3. (a) 训练过程曲线;(b) 混淆矩阵;(c) ROC曲线;(d) PR曲线
为进一步评估所提出方法,本文将TTFI-CNN与近年来基于PhysioNet/CinC Challenge 2016数据集的代表性深度学习方法进行了对比分析,如表2所示。
Table 2. Performance comparison of different methods on the PhysioNet/CinC 2016 dataset
表2. 不同方法在PhysioNet/CinC 2016数据集上的性能对比
方法 |
特征类型 |
模型结构 |
Accuracy (%) |
Potes et al. [6] (2016) |
手工时频特征 |
CNN + AdaBoost |
86.0 |
Li et al. [8] (2017) |
多域手工特征 |
CNN + GAP |
86.8 |
Yaseen et al. [7] (2018) |
MFCC + DWT |
SVM/DNN |
97.0 |
Ren et al. [12] (2021) |
Mel/STFT |
CNN |
95.6 |
Kumar et al. [13] (2022) |
Mel-spectrogram |
CNN + Attention |
96.3 |
本文方法 |
MFCC + STFT + DWT |
TTFI-CNN + SE |
97.8 |
表2对比了本文方法与近年来基于PhysioNet/CinC Challenge 2016数据集的代表性心音分类方法。可以看出,随着特征表示和模型结构的不断改进,整体分类性能逐步提升。本文提出的TTFI-CNN通过融合MFCC、STFT与DWT多域特征,并引入通道注意力机制,在同一数据集上取得了97.8%的分类准确率,优于多数已有方法,表明所提方法在异常心音检测任务中具有较好的有效性。
3.4.2. 消融实验
为验证TTFI-CNN各组成模块对模型性能的贡献,本文设计了消融实验,对不同结构配置下的模型性能进行了对比分析。实验在相同数据集、相同训练策略与参数设置条件下进行,仅对模型结构进行调整,以保证实验结果的可比性。相关实验结果汇总如表3所示。
Table 3. Comparison table of ablation experiments
表3. 消融实验对比表
模型配置 |
MFCC |
STFT |
DWT |
SE |
Accuracy (%) |
二分支模型 |
√ |
√ |
× |
√ |
96.40 |
三分支(无SE) |
√ |
√ |
√ |
× |
97.09 |
TTFI-CNN (完整) |
√ |
√ |
√ |
√ |
97.80 |
首先,为分析多尺度统计特征的作用,本文移除了DWT分支,仅保留MFCC与STFT两个特征分支构建二分支融合模型。实验结果表明,该模型的分类准确率为96.4%,这表明仅依赖时频特征难以充分表征心音信号中的多尺度结构信息,而DWT特征能够有效弥补心音信号在不同时间尺度上的统计特性,有助于提升模型对异常心音的识别能力。在此基础上,进一步引入DWT分支构建三分支融合模型,但不使用通道注意力机制。该模型的分类准确率提升至97.09%,说明多域特征融合能够显著增强模型的特征表达能力。然而,与完整模型相比仍存在性能差距,表明简单的特征拼接难以充分刻画各分支特征之间的重要性差异。最后,在三分支融合结构上引入通道注意力机制(SE),对不同特征分支进行自适应加权,形成最终的TTFI-CNN模型。实验结果显示,模型准确率进一步提升至97.8%。这说明通道注意力机制能够有效突出对异常心音判别更为敏感的特征分量,从而进一步提升模型的整体性能。
4. 结论
本文提出了一种基于多特征融合与通道注意力机制的卷积神经网络心音异常检测方法(TTFI-CNN)。首先对原始心音信号进行重采样、滤波、归一化及固定窗口重叠切片等预处理操作,以提高信号质量并缓解样本长度不一致与数据不足问题;随后分别从时频域、频域及时域统计角度提取MFCC、STFT与DWT特征,构建多尺度、多域的心音特征表示;在此基础上,设计了由多分支卷积网络与轻量化SE通道注意力模块组成的TTFI-CNN模型,实现对不同特征分支的自适应加权融合;最后通过全连接分类器完成正常心音与异常心音的自动判别。实验结果表明,所提出的方法在PhysioNet/CinC 2016心音数据集上取得了97.8%的分类准确率,在准确率、灵敏度和综合性能方面均优于部分已有方法。消融实验进一步验证了DWT多尺度特征与SE通道注意力机制在提升模型性能方面的有效性,说明多域特征融合与特征重要性建模对于复杂心音信号分析具有重要意义。该方法无需显式心音分割,具有结构简单、鲁棒性强和泛化能力较好的优点,为心音信号的自动异常检测提供了一种有效且可行的技术方案。
NOTES
*通讯作者。