多窗口时频重排有助于提升对心音进行巴克频谱系数(BFSC)分析的时频分辨率。为此,本文提出一种基于多窗口时频重排的BFSC特征提取与深度学习结合的心音分类新算法。首先,对随机截取的心音片段进行幅值归一化等预处理,然后分别用多个正交窗口对心音做分帧处理,及计算基于短时傅里叶变换的时频重排,将得到的各独立频谱通过算术平均计算出平稳的频谱估计。最后,通过巴克滤波器组提取该重排频谱的BFSC作为特征。本文采用卷积网络与循环神经网络作为分类器,对提取的特征进行模型比较与性能评估。最终,多窗口时频重排改进BFSC的方法提取了更具有辨别力的特征,二分类准确率达到0.936,灵敏度为0.946,特异度为0.922。研究结果表明,本文所提算法无需分割心音,随机截取心音片段,大大简化了计算流程,有望用于先天性心脏病筛查。
引用本文: 夏军, 孙静, 杨宏波, 潘家华, 郭涛, 王威廉. 基于多窗口时频重排的巴克频谱系数心音分类算法研究. 生物医学工程学杂志, 2024, 41(1): 51-59. doi: 10.7507/1001-5515.202212037 复制
0 引言
全球因心血管疾病死亡的人数占总死亡人数的31%,而在中国这一比例更高,因心血管疾病死亡的人数约占总死亡人数的40%[1]。先天性心脏病(congenital heart diseases,CHD)是一种严重影响青少年儿童身体健康的心血管疾病,若未得到及时治疗,还会对患者的生命构成威胁,因此对婴幼儿进行CHD早期筛查就显得极为重要。然而,传统对CHD进行早期筛查的人工听诊方式很容易忽略心音中的隐藏信息,所以近年来随着计算机技术的发展,心音自动分析在识别先天性心脏结构缺失及心血管疾病医疗保健方面的应用越来越广泛而深入。
心音自动分析的流程,包括:预处理、特征提取、分类识别。其中,特征提取一直是心音分类的重要研究内容。异常心音在时域或频域上表现出与正常心音显著不同的特征,而这种差异是影响异常心音识别的关键因素。因此,为了准确识别异常心音,必须选择合适的特征表示方法进行特征提取。传统的心音分类研究关注于从单个域(如时域、频域、小波域等)提取特征[2-6],但文献[7]的研究表明,单独的时域或频域特征并不能很好地表征心脏的病理信息,所以近年来国内外的研究多采用时频域特征进行分析。
Chen等[8]计算心音的短时傅里叶变换(short-time Fourier transform,STFT)并送入卷积神经网络(convolutional neural networks,CNN)进行分类研究,在测试样本上达到了0.954的准确率。Markaki等[9]采用了基于STFT的时频重排频谱作为特征,改善了频谱时频表示的分辨率,准确率达到了0.958。Lubis等[10]则是提取了巴克频率倒谱系数(Bark-frequency cepstrum coefficient,BFCC)作为特征,分类准确率为0.791。Rubin等[11]对心音进行分割,提取梅尔频率倒谱系数(Mel-frequency cepstrum coefficient,MFCC)并送入CNN进行分类,二分类准确率为0.848。Kui等[12]对分割的心音提取梅尔频谱系数(Mel-frequency spectral coefficient,MFSC),然后用CNN对所提特征进行分类,最后采用多数投票算法得到最优分类结果,二分类准确率达到 0.938。上述算法仍有进一步改善分类性能的空间,比如:文献[8]取得较好的分类性能但使用的数据量较少,且正负样本比例不均衡,缺乏大量验证,不利于推广。文献[9]使用时频重排锐化了STFT频谱,却忽略了频谱泄露引起的高方差问题。文献[10]没有改进BFCC对噪声敏感的问题。文献[10]和文献[11]选择了公开数据集,而公开数据集缺乏专门针对CHD儿童患者的相关数据。文献[12]分割心音信号需要同步心电数据作为对照,过程较为繁琐,且分割错误对分类准确率影响较大。
另一方面,分类器的选择同样是受到研究人员强烈关注的问题。深度神经网络(deep neural network,DNN)是由机器学习发展而来的,通过堆叠更加复杂的网络结构,从输入中自动学习深度特征。文献[11]和文献[12]采用了CNN,而文献[13]则采用了门控循环单元(gated recurrent unit,GRU),这些研究表明DNN在心音研究领域得到了广泛的运用。
综上考虑,本文提出了一种新的心音分类算法。该算法采用多窗口时频重排(multiple window reassigned spectrogram,MWRS)与巴克频谱系数(Bark-frequency spectral coefficient,BFSC)相结合的方式(MWRS-BFSC)提升特征的表达能力,并运用深度学习对算法的分类性能进行验证评估。本文将MWRS与非均匀滤波器组相结合的方法运用到心音分析领域,由于无需分割心音,该算法的复杂度得到了简化,有望提升性能并应用于CHD早期筛查。
1 方法
1.1 算法框架
本文的分类算法流程如图1所示,具体步骤为:① 对原始心音数据进行幅值归一化、预加重处理。② 对预处理后的心音分别采用多个正交窗口(正交窗1~正交窗k)计算STFT。③ 对子频谱计算时频重排,得到各自的重排频谱。④ 将得到的各重排频谱进行算术平均。⑤ 使平均后的频谱通过巴克(Bark)滤波器组,并且进行对数运算得到BFSC特征,再融合动态差分向量。⑥ 输入分类网络得到分类结果,并对结果进行评估。

1.2 数据来源
研究数据源于课题组在云南阜外心血管病医院以及云南省各地州开展CHD免费筛查救治活动中采集的心音数据所构建的数据库。心音数据由课题组自主研发心音采集装置与The ONE电子听诊器(Thinklabs Medical LLC,美国)进行采集。在安静、温暖的环境下,CHD患者保持仰卧位且保持胸部裸露,保证电子听诊器与患者胸壁直接接触,完整记录每位患者的五个心脏听诊区信息。每一例数据时长为20 s,采样频率为5 000 Hz。
本次实验采用心音样本共5 000例。心音样本来自1 000名心音志愿者,志愿者年龄均在8个月至18岁,正常、异常样本比例1∶1。正常数据是从健康人群所采集的心音,异常数据包括房间隔缺损、室间隔缺损、动脉导管未闭、卵圆孔未闭。实验数据按照7∶2∶1的比例划分为训练集、验证集和测试集。整个采集试验的全过程通过了伦理审查,且全体志愿者均签署知情同意书自愿提供心音样本。研究所使用的心音数据已获得云南大学人体研究材料伦理委员会(批文编号:CHSRE2021008)以及云南省阜外心血管病医院伦理委员会(批文编号:IRB2020-BG-028)的授权使用。
1.3 预处理
传统的心音预处理需要对心音的各成分进行准确分割,该步骤通常是基于同步心电信号来实现的。由于目前精准分割心音仍是尚未攻克的难题,且分割不准确会严重影响分类准确率。因此,本研究预处理采取随机截取心音片段,并对信号进行幅值归一化、预加重、分帧加窗操作。正常人群的心率为60~100 次/min,频率范围在20~500 Hz[14],考虑到高频成分与心脏异常产生的杂音有关,采用预加重突出高频杂音成分信息。心音是非平稳信号,STFT的窗函数长度应该与心音的短时平稳时长相匹配。为了改善窗函数在边界处产生的问题,需要在各帧之间设置重叠,保证帧与帧之间的关联性。本文选择帧长为256个采样点(51.2 ms),帧移为128个采样点,既保证窗内信号片段的平稳性,又可以获得良好的时频分辨率。
1.4 特征提取
MFCC能够模拟人类听觉感知,因此在语音信号处理领域被广泛应用于提取声学信号的特征。近年来,MFCC也被应用于心音分类领域,以识别异常心音。但心音相较于语音频率偏低,其能量主要集中在低频段,低频信息相对重要。BFCC与MFCC相比,不仅同样具有低频排列密集、高频排列稀疏的特点,而且在低频段具有更强的频率感知能力[15]。而BFSC作为BFCC的一种特殊形式,省略了离散余弦变换(discrete cosines transform,DCT),保留了更多相关信息。
1.4.1 BFSC
人耳对声音频率的感知是非线性的,Bark滤波器组模拟人耳听觉感知特性,低频排列密集、高频排列稀疏,可以从心音信号中捕捉更具辨识度的特征,得到良好而紧凑的时频表示。线性频率转换为Bark频率(以符号B表示)的计算方法如式(1)所示:
![]() |
其中,f代表频率,sinh(·)代表双曲正弦函数。
BFSC的提取步骤:首先对心音信号做预加重处理,再计算出信号的STFT,最后通过预先设定好的Bark滤波器组从频谱中提取BFSC,具体流程如图2所示。

然而,BFSC存在一些问题,如对噪声敏感、高方差的频谱泄漏以及无法包含心音的动态细节等。针对上述问题,本研究对BFSC的提取过程进行了改进。
1.4.2 时频重排
心音是一种非平稳信号,STFT作为传统的时频分析方法,被广泛应用于心音信号的分析和特征提取。STFT(以符号S表示)的计算公式,如式(2)所示:
![]() |
其中,x(τ)代表心音信号,h(t)代表窗函数,j代表虚数单位,f代表频率,π代表圆周率。相应的能量谱图(以符号E表示)计算方法如式(3)所示:
![]() |
其中,t代表时间,w代表频率,S代表STFT时频谱图,x代表心音信号,h代表窗函数。
然而,传统时频分析在时域和频域受到限制,导致在第一心音、第二心音处的频谱表现出能量弥散现象[16]。时频重排是改善时频能量弥散的重要方法[17],其目的在于锐化时频表示,提高时频谱图的分辨率。因此,本文采用时频重排的方法来改善传统时频分析时频域上的能量弥散问题,重点刻画心音的病理信息。
首先,根据能量谱图计算出每个点在时域、频域上的偏移量,并将谱图中每个点的能量值,按照其计算好的重排位置,分配到时频重排后的谱图中。时频重排谱图(以符号RS表示),计算方法如式(4)所示:
![]() |
其中,δ(·)代表冲激函数, 代表时间移位向量,
代表频率移位向量,α、β为积分变量,表示能量谱图在时频域上的坐标。
时频重排的时间、频率向量计算公式如式(5)~式(6)所示:
![]() |
![]() |
其中,ζ(·)和Ψ(·)分别表示取实部与虚部,ct与cw分别代表时间移位向量与频率移位向量的伸缩因子。
由式(4)~式(6)可以知道,时频重排不以(t,w)作为时频域的几何中心进行分布,而是计算心音时频谱图中任意点附近的能量中心作为分布[18]。时频重排频谱如图3所示。

由图3可以知道,时频重排提高了频谱图的分辨率,同时由于该方法保留了时间平移不变性以及能量守恒特性,可以更精确地表示信号的时频特性,进而提高自动分类的准确率。
1.4.3 多窗谱分析
心音的时频重排提高了频谱的分辨率,却仍存在一些问题,如频谱泄露引起的高方差以及心音信号临床采集过程中存在的噪声干扰等。考虑到以上存在的问题,本文采用多窗谱分析改进时频重排,提高频谱估计的精度和可靠性。与单独窗口的时频重排相比,MWRS具有更强的噪声鲁棒性,并且能够进一步改善频谱的能量定位。
(1)正交窗函数
多窗谱分析最初使用的窗函数是长椭球函数,但是该窗函数对瞬态信号表现不好且在时频域内并不是最佳能量集中,而在Daubechies[19]的研究中表明,埃米特(Hermite)函数作为时频窗口能表现出更好的时频集中效果。k次Hermite窗函数(以符号hk表示)定义如式(7)所示:
![]() |
可以证明Hermite窗函数具有正交性[20],其正交性保证了各子频谱之间较小相关性,算术平均后可减小频谱方差。Hermite窗函数的正交性如式(8)所示:
![]() |
其中,m代表第一个窗函数的阶数,n代表第二个窗函数的阶数。
(2)计算流程
采用多个正交窗口对心音信号进行频谱分析,对于每个窗函数得到的频谱估计结果计算算术平均来减小频谱估计方差,得到心音信号的平稳频谱估计。这种方法在提高精度和减少震荡方面有较好的改善。多窗谱(以符号M表示)计算公式如式(9)所示:
![]() |
其中,k代表窗口的个数,dk代表加权因子。
综上所述,本文选择正交Hermite窗函数,窗口数目k为4,加权因子dk采用平均加权的方式[21]。MWRS-BFSC以及其一阶、二阶差分向量进行融合,提高了特征对心音的表征能力,改善了分类性能。
1.5 分类识别
近年来,深度学习作为人工智能的主要发展方向,主要应用于图像处理、多媒体学习、生物医学、自然语言处理等方面。常见的传统网络结构有CNN与循环神经网络(recurrent neural networks,RNN);其中,二维(two-dimention,2D)CNN(CNN2D)被运用在图像处理、目标检测等领域,RNN与一维(one-dimention,1D)CNN(CNN1D)等则在处理时间序列领域取得良好的成果,三维CNN则被运用于视频处理。
1.5.1 网络搭建
本文在评估上文所提取特征的分类性能时,考虑到不同的神经网络对输入特征的不同侧重,搭建了四种不同的网络结构:CNN2D、CNN1D、GRU、长短时记忆网络(long short-term memory,LSTM)。四种网络的结构如图4所示。图4的网络结构中课题组已证实,每一个网络结构经过验证更多的层数不会带来更好的分类效果,反而会增大过拟合风险。四种网络结构中,CNN2D采用了四层卷积、池化结构,四层卷积层的卷积核的数量分别是32、64、64、128,卷积核大小为3 × 3,步长为1 × 1,激活函数为线性整流函数(rectified linear unit,ReLU)。CNN1D则采用三层卷积、池化结构,每一层卷积层的卷积核的数量为34,卷积核大小为3 × 1,步长为1 × 1,池化核大小为2。LSTM、GRU是RNN的常见结构,采用的RNN均选择三层结构,每一层神经元个数为46,激活函数为双曲正切函数(hyperbolic tangent,tanh)。图4中四种网络结构优化器均选择自适应矩估计(adaptive moment estimation,Adam)来加快模型的拟合速度,提高模型性能,学习率为0.000 43。池化层均使用最大池化(maxpooling)。展平层(flatten)前都加入随机失活层(dropout),数值均为0.5,并在最后连接了密集连接(dense)层。分类器均选择S型生长曲线(sigmoid)函数。

2 实验与分析
2.1 实验环境
本实验所用硬件配置为:中央处理器(Ryzen 7 5800H @ 3.20 GHz,AMD,美国),独立显卡(NVIDIA GeForce RTX3060 6GB,Nvidia,美国)。深度学习框架为TensorFlow 2.4(Google,美国),编程语言为Python 3.7(Python Software Foundation,美国)。
2.2 评价指标
本文采用四种评价指标评估模型性能,其中包括准确率(accuracy,Acc)、特异度(specificity,Sp)、灵敏度(sensitivity,Se)、F1分数。灵敏度是指具有金标准标签的患病人群中,检测出阳性的概率。特异度是指具有金标准标签无病人群中,检测出阴性的概率。理想情况下需要精准率与召回率数值都高,但实际上两者存在制约关系,F1分数是精准率和召回率的调和平均数,可以更好地均衡精准率与召回率两者的关系。
各项指标的具体计算公式如式(10)~式(15)所示,其中真阳性(true positive,TP)表示被模型预测为正类中正确分类样本的数量;真阴性(true negative,TN)表示被模型预测为负类中正确分类样本的数量;假阳性(false positive,FP)表示被模型预测为正类中错误分类样本数量;假阴性(false negative,FN)是被模型预测为负类中错误分类样本的数量;精准率(precision,Pre)表示正确预测为正的样本数占所有被预测为正的样本数的比例;召回率(recall,Rec)表示正确预测为正的样本数占所有实际为正的样本数的比例。
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
2.3 实验设定
将数据集划分为3 500例训练集,1 000例验证集,500例测试集,正常心音与异常心音比例为1∶1。采用本文所提出的MWRS-BFSC作为分类特征,提出四种网络结构来进行性能分析与模型比较,选择分类性能最好的神经网络进行模型训练,并与多种基于时频分析的分类算法进行对比实验,分析其优越性。
本文为对比随机截取心音片段的长度对分类效果的影响,设置2、3、4、5 s四组时间变量,验证心音持续时间对分类效果的影响。心音是准周期信号,一个心动周期平均为0.8 s且随机截取2 s至少包含一个心动周期。为保证每个心音片段包含完整心动周期,随机心音片段长度从2 s开始设置,而文献[22]中表明识别异常心音所需心音片段的长度至少需要5 s。综合考虑计算机的计算能力,设置了四组时间变量。由于深度学习随机初始化的特性,每一次训练模型存在一定的随机波动问题现象,故在每一组时间变量上选择10次实验的平均值作为分析标准。
2.4 结果分析
如图5所示,表明在无需心音分割的情况下,增加心音片段长度能够提升分类性能。对于CNN而言,增加心音片段长度的提升效果比RNN更为显著,且在RNN上更容易出现过拟合现象。当心音片段长度为5 s,CNN2D表现出最佳的分类性能。CNN是深度学习最具代表性的算法之一,既做到权值共享、减少网络参数,同时又能有效提取局部特征。MWRS-BFSC特征具有较好的2D表征能力,输入到CNN网络中,可以得到可靠的分类性能。

对比实验中采用了多种时频分析算法进行对比,而提取频谱系数特征的滤波器个数是影响分类性能的重要因素。为比较滤波器组中滤波器的个数对分类效果的影响,本文采用固定心音片段长度、相同的网络结构以及不同数量的滤波器组对不同时频分析算法进行对比实验。滤波器组个数分别选用16、24、32、40、64进行对比分析,具体分类效果如图6所示。

图6结果表明,随着滤波器数量的增加,特征的表达能力呈现出先增加后下降的趋势。具体来说,当滤波器数量为40个时,MWRS-BFSC的分类性能最佳。滤波器数量增加到64个时,整体性能反而下降。原因可能是当滤波器数量逐渐增大时,捕获频率信息增多,对分类性能有提升作用,而当相同频段内的滤波器组中滤波器的数量过多,会导致滤波器组中心频率过于接近产生干扰,导致模型整体性能下降。
文献[23]中表明,多窗谱分析的最佳窗口个数在2~8之间,增加窗口可以减低频谱泄露引起的高方差问题,但随着窗口个数的增加同样会影响时频表示的分辨率。故本文设置不同的窗口个数的对比实验进行分析。如表1所示,正交窗口的个数为4时,既可以有效降低频谱估计的方差,又可以保证较好的时频分辨率。

综上分析,本文选择性能最好的CNN2D作为分类模型。为对比所提出MWRS-BFSC特征的CHD分类效果,对比实验所使用的网络结构为文中所提出的CNN2D,具体网络结构如图7所示。

本文选择的对比算法为文献[8-12]。文献[8]与文献[9]中分别使用了STFT和基于STFT的时频重排方法,STFT是传统时频分析方法,而时频重排使得STFT的能量表示更加聚集。文献[10]采用了BFCC特征,该特征模拟人类心理听觉,在情感识别领域广泛运用。文献[11]和文献[12]分别选用了MFCC与MFSC的特征提取方法,MFSC省略了MFCC中DCT步骤,保留了更多相关信息。文献[12]中对心音进行了分割,再提取特征,鉴于本文不依赖于心动周期的分割,故在对比实验中选择不分割的MFSC进行对比。
如表2、表3所示,分别是消融实验与对比实验,结果表明:① 从表2中可知,采用时频重排之后,分类结果的灵敏度均高于特异度,证明锐化时频表示对正常心音与异常心音的区分带来优势。② 从表2中可知,多个正交窗口取平均的方式有效降低了频谱估计的方差,对分类性能有提升作用。③ 从表3中可知,MWRS与BFSC相结合可以提升特征的判别能力,MWRS-BFSC在准确率、灵敏度、特异度各方面都要优于其他模型。④ 在CNN网络中,MFSC与BFSC的分类性能都要高于MFCC与BFCC。综合以上显示,最后一行的MWRS-BFSC要优于其他模型。


3 结论
本文提出了一种MWRS-BFSC特征提取与深度学习结合的心音分类新算法,将MWRS与非均匀滤波器组相结合,提取更具判别能力的特征。将MWRS-BFSC特征输入到四种分类模型中对比性能,筛选出性能最好的模型,并且提出了四种评价指标对算法进行评估。与其他基于时频分析的算法相比,MWRS与非均匀滤波器组相结合的特征提取方式在各方面都具备优异的性能,增强了时频分析对心音的细节表达能力,从而有利于更好地筛查出异常心音。本论文所提出的方法无需分割心音,大大简化了计算流程,有望用于CHD大规模筛查,让基层尤其是边远地区的CHD患儿得到及早的医疗救治。
重要声明
利益冲突声明:本文全体作者均声明不存在利益冲突。
作者贡献声明:夏军负责实验设计与实践、数据采集、数据分析和论文写作;孙静负责心音分析指导、论文写作指导和数据收集;杨宏波负责医学指导和数据收集;郭涛负责医学指导和处理数据;潘家华负责医学指导和数据审查;王威廉负责心音理论研究、论文整体审查润色和论文写作指导。
伦理声明:本文所使用的心音数据库得到云南大学人体研究材料伦理委员会(批文编号:CHSRE2021008)以及云南省阜外心血管病医院伦理委员会(批文编号:IRB2020-BG-028)的授权使用。
0 引言
全球因心血管疾病死亡的人数占总死亡人数的31%,而在中国这一比例更高,因心血管疾病死亡的人数约占总死亡人数的40%[1]。先天性心脏病(congenital heart diseases,CHD)是一种严重影响青少年儿童身体健康的心血管疾病,若未得到及时治疗,还会对患者的生命构成威胁,因此对婴幼儿进行CHD早期筛查就显得极为重要。然而,传统对CHD进行早期筛查的人工听诊方式很容易忽略心音中的隐藏信息,所以近年来随着计算机技术的发展,心音自动分析在识别先天性心脏结构缺失及心血管疾病医疗保健方面的应用越来越广泛而深入。
心音自动分析的流程,包括:预处理、特征提取、分类识别。其中,特征提取一直是心音分类的重要研究内容。异常心音在时域或频域上表现出与正常心音显著不同的特征,而这种差异是影响异常心音识别的关键因素。因此,为了准确识别异常心音,必须选择合适的特征表示方法进行特征提取。传统的心音分类研究关注于从单个域(如时域、频域、小波域等)提取特征[2-6],但文献[7]的研究表明,单独的时域或频域特征并不能很好地表征心脏的病理信息,所以近年来国内外的研究多采用时频域特征进行分析。
Chen等[8]计算心音的短时傅里叶变换(short-time Fourier transform,STFT)并送入卷积神经网络(convolutional neural networks,CNN)进行分类研究,在测试样本上达到了0.954的准确率。Markaki等[9]采用了基于STFT的时频重排频谱作为特征,改善了频谱时频表示的分辨率,准确率达到了0.958。Lubis等[10]则是提取了巴克频率倒谱系数(Bark-frequency cepstrum coefficient,BFCC)作为特征,分类准确率为0.791。Rubin等[11]对心音进行分割,提取梅尔频率倒谱系数(Mel-frequency cepstrum coefficient,MFCC)并送入CNN进行分类,二分类准确率为0.848。Kui等[12]对分割的心音提取梅尔频谱系数(Mel-frequency spectral coefficient,MFSC),然后用CNN对所提特征进行分类,最后采用多数投票算法得到最优分类结果,二分类准确率达到 0.938。上述算法仍有进一步改善分类性能的空间,比如:文献[8]取得较好的分类性能但使用的数据量较少,且正负样本比例不均衡,缺乏大量验证,不利于推广。文献[9]使用时频重排锐化了STFT频谱,却忽略了频谱泄露引起的高方差问题。文献[10]没有改进BFCC对噪声敏感的问题。文献[10]和文献[11]选择了公开数据集,而公开数据集缺乏专门针对CHD儿童患者的相关数据。文献[12]分割心音信号需要同步心电数据作为对照,过程较为繁琐,且分割错误对分类准确率影响较大。
另一方面,分类器的选择同样是受到研究人员强烈关注的问题。深度神经网络(deep neural network,DNN)是由机器学习发展而来的,通过堆叠更加复杂的网络结构,从输入中自动学习深度特征。文献[11]和文献[12]采用了CNN,而文献[13]则采用了门控循环单元(gated recurrent unit,GRU),这些研究表明DNN在心音研究领域得到了广泛的运用。
综上考虑,本文提出了一种新的心音分类算法。该算法采用多窗口时频重排(multiple window reassigned spectrogram,MWRS)与巴克频谱系数(Bark-frequency spectral coefficient,BFSC)相结合的方式(MWRS-BFSC)提升特征的表达能力,并运用深度学习对算法的分类性能进行验证评估。本文将MWRS与非均匀滤波器组相结合的方法运用到心音分析领域,由于无需分割心音,该算法的复杂度得到了简化,有望提升性能并应用于CHD早期筛查。
1 方法
1.1 算法框架
本文的分类算法流程如图1所示,具体步骤为:① 对原始心音数据进行幅值归一化、预加重处理。② 对预处理后的心音分别采用多个正交窗口(正交窗1~正交窗k)计算STFT。③ 对子频谱计算时频重排,得到各自的重排频谱。④ 将得到的各重排频谱进行算术平均。⑤ 使平均后的频谱通过巴克(Bark)滤波器组,并且进行对数运算得到BFSC特征,再融合动态差分向量。⑥ 输入分类网络得到分类结果,并对结果进行评估。

1.2 数据来源
研究数据源于课题组在云南阜外心血管病医院以及云南省各地州开展CHD免费筛查救治活动中采集的心音数据所构建的数据库。心音数据由课题组自主研发心音采集装置与The ONE电子听诊器(Thinklabs Medical LLC,美国)进行采集。在安静、温暖的环境下,CHD患者保持仰卧位且保持胸部裸露,保证电子听诊器与患者胸壁直接接触,完整记录每位患者的五个心脏听诊区信息。每一例数据时长为20 s,采样频率为5 000 Hz。
本次实验采用心音样本共5 000例。心音样本来自1 000名心音志愿者,志愿者年龄均在8个月至18岁,正常、异常样本比例1∶1。正常数据是从健康人群所采集的心音,异常数据包括房间隔缺损、室间隔缺损、动脉导管未闭、卵圆孔未闭。实验数据按照7∶2∶1的比例划分为训练集、验证集和测试集。整个采集试验的全过程通过了伦理审查,且全体志愿者均签署知情同意书自愿提供心音样本。研究所使用的心音数据已获得云南大学人体研究材料伦理委员会(批文编号:CHSRE2021008)以及云南省阜外心血管病医院伦理委员会(批文编号:IRB2020-BG-028)的授权使用。
1.3 预处理
传统的心音预处理需要对心音的各成分进行准确分割,该步骤通常是基于同步心电信号来实现的。由于目前精准分割心音仍是尚未攻克的难题,且分割不准确会严重影响分类准确率。因此,本研究预处理采取随机截取心音片段,并对信号进行幅值归一化、预加重、分帧加窗操作。正常人群的心率为60~100 次/min,频率范围在20~500 Hz[14],考虑到高频成分与心脏异常产生的杂音有关,采用预加重突出高频杂音成分信息。心音是非平稳信号,STFT的窗函数长度应该与心音的短时平稳时长相匹配。为了改善窗函数在边界处产生的问题,需要在各帧之间设置重叠,保证帧与帧之间的关联性。本文选择帧长为256个采样点(51.2 ms),帧移为128个采样点,既保证窗内信号片段的平稳性,又可以获得良好的时频分辨率。
1.4 特征提取
MFCC能够模拟人类听觉感知,因此在语音信号处理领域被广泛应用于提取声学信号的特征。近年来,MFCC也被应用于心音分类领域,以识别异常心音。但心音相较于语音频率偏低,其能量主要集中在低频段,低频信息相对重要。BFCC与MFCC相比,不仅同样具有低频排列密集、高频排列稀疏的特点,而且在低频段具有更强的频率感知能力[15]。而BFSC作为BFCC的一种特殊形式,省略了离散余弦变换(discrete cosines transform,DCT),保留了更多相关信息。
1.4.1 BFSC
人耳对声音频率的感知是非线性的,Bark滤波器组模拟人耳听觉感知特性,低频排列密集、高频排列稀疏,可以从心音信号中捕捉更具辨识度的特征,得到良好而紧凑的时频表示。线性频率转换为Bark频率(以符号B表示)的计算方法如式(1)所示:
![]() |
其中,f代表频率,sinh(·)代表双曲正弦函数。
BFSC的提取步骤:首先对心音信号做预加重处理,再计算出信号的STFT,最后通过预先设定好的Bark滤波器组从频谱中提取BFSC,具体流程如图2所示。

然而,BFSC存在一些问题,如对噪声敏感、高方差的频谱泄漏以及无法包含心音的动态细节等。针对上述问题,本研究对BFSC的提取过程进行了改进。
1.4.2 时频重排
心音是一种非平稳信号,STFT作为传统的时频分析方法,被广泛应用于心音信号的分析和特征提取。STFT(以符号S表示)的计算公式,如式(2)所示:
![]() |
其中,x(τ)代表心音信号,h(t)代表窗函数,j代表虚数单位,f代表频率,π代表圆周率。相应的能量谱图(以符号E表示)计算方法如式(3)所示:
![]() |
其中,t代表时间,w代表频率,S代表STFT时频谱图,x代表心音信号,h代表窗函数。
然而,传统时频分析在时域和频域受到限制,导致在第一心音、第二心音处的频谱表现出能量弥散现象[16]。时频重排是改善时频能量弥散的重要方法[17],其目的在于锐化时频表示,提高时频谱图的分辨率。因此,本文采用时频重排的方法来改善传统时频分析时频域上的能量弥散问题,重点刻画心音的病理信息。
首先,根据能量谱图计算出每个点在时域、频域上的偏移量,并将谱图中每个点的能量值,按照其计算好的重排位置,分配到时频重排后的谱图中。时频重排谱图(以符号RS表示),计算方法如式(4)所示:
![]() |
其中,δ(·)代表冲激函数, 代表时间移位向量,
代表频率移位向量,α、β为积分变量,表示能量谱图在时频域上的坐标。
时频重排的时间、频率向量计算公式如式(5)~式(6)所示:
![]() |
![]() |
其中,ζ(·)和Ψ(·)分别表示取实部与虚部,ct与cw分别代表时间移位向量与频率移位向量的伸缩因子。
由式(4)~式(6)可以知道,时频重排不以(t,w)作为时频域的几何中心进行分布,而是计算心音时频谱图中任意点附近的能量中心作为分布[18]。时频重排频谱如图3所示。

由图3可以知道,时频重排提高了频谱图的分辨率,同时由于该方法保留了时间平移不变性以及能量守恒特性,可以更精确地表示信号的时频特性,进而提高自动分类的准确率。
1.4.3 多窗谱分析
心音的时频重排提高了频谱的分辨率,却仍存在一些问题,如频谱泄露引起的高方差以及心音信号临床采集过程中存在的噪声干扰等。考虑到以上存在的问题,本文采用多窗谱分析改进时频重排,提高频谱估计的精度和可靠性。与单独窗口的时频重排相比,MWRS具有更强的噪声鲁棒性,并且能够进一步改善频谱的能量定位。
(1)正交窗函数
多窗谱分析最初使用的窗函数是长椭球函数,但是该窗函数对瞬态信号表现不好且在时频域内并不是最佳能量集中,而在Daubechies[19]的研究中表明,埃米特(Hermite)函数作为时频窗口能表现出更好的时频集中效果。k次Hermite窗函数(以符号hk表示)定义如式(7)所示:
![]() |
可以证明Hermite窗函数具有正交性[20],其正交性保证了各子频谱之间较小相关性,算术平均后可减小频谱方差。Hermite窗函数的正交性如式(8)所示:
![]() |
其中,m代表第一个窗函数的阶数,n代表第二个窗函数的阶数。
(2)计算流程
采用多个正交窗口对心音信号进行频谱分析,对于每个窗函数得到的频谱估计结果计算算术平均来减小频谱估计方差,得到心音信号的平稳频谱估计。这种方法在提高精度和减少震荡方面有较好的改善。多窗谱(以符号M表示)计算公式如式(9)所示:
![]() |
其中,k代表窗口的个数,dk代表加权因子。
综上所述,本文选择正交Hermite窗函数,窗口数目k为4,加权因子dk采用平均加权的方式[21]。MWRS-BFSC以及其一阶、二阶差分向量进行融合,提高了特征对心音的表征能力,改善了分类性能。
1.5 分类识别
近年来,深度学习作为人工智能的主要发展方向,主要应用于图像处理、多媒体学习、生物医学、自然语言处理等方面。常见的传统网络结构有CNN与循环神经网络(recurrent neural networks,RNN);其中,二维(two-dimention,2D)CNN(CNN2D)被运用在图像处理、目标检测等领域,RNN与一维(one-dimention,1D)CNN(CNN1D)等则在处理时间序列领域取得良好的成果,三维CNN则被运用于视频处理。
1.5.1 网络搭建
本文在评估上文所提取特征的分类性能时,考虑到不同的神经网络对输入特征的不同侧重,搭建了四种不同的网络结构:CNN2D、CNN1D、GRU、长短时记忆网络(long short-term memory,LSTM)。四种网络的结构如图4所示。图4的网络结构中课题组已证实,每一个网络结构经过验证更多的层数不会带来更好的分类效果,反而会增大过拟合风险。四种网络结构中,CNN2D采用了四层卷积、池化结构,四层卷积层的卷积核的数量分别是32、64、64、128,卷积核大小为3 × 3,步长为1 × 1,激活函数为线性整流函数(rectified linear unit,ReLU)。CNN1D则采用三层卷积、池化结构,每一层卷积层的卷积核的数量为34,卷积核大小为3 × 1,步长为1 × 1,池化核大小为2。LSTM、GRU是RNN的常见结构,采用的RNN均选择三层结构,每一层神经元个数为46,激活函数为双曲正切函数(hyperbolic tangent,tanh)。图4中四种网络结构优化器均选择自适应矩估计(adaptive moment estimation,Adam)来加快模型的拟合速度,提高模型性能,学习率为0.000 43。池化层均使用最大池化(maxpooling)。展平层(flatten)前都加入随机失活层(dropout),数值均为0.5,并在最后连接了密集连接(dense)层。分类器均选择S型生长曲线(sigmoid)函数。

2 实验与分析
2.1 实验环境
本实验所用硬件配置为:中央处理器(Ryzen 7 5800H @ 3.20 GHz,AMD,美国),独立显卡(NVIDIA GeForce RTX3060 6GB,Nvidia,美国)。深度学习框架为TensorFlow 2.4(Google,美国),编程语言为Python 3.7(Python Software Foundation,美国)。
2.2 评价指标
本文采用四种评价指标评估模型性能,其中包括准确率(accuracy,Acc)、特异度(specificity,Sp)、灵敏度(sensitivity,Se)、F1分数。灵敏度是指具有金标准标签的患病人群中,检测出阳性的概率。特异度是指具有金标准标签无病人群中,检测出阴性的概率。理想情况下需要精准率与召回率数值都高,但实际上两者存在制约关系,F1分数是精准率和召回率的调和平均数,可以更好地均衡精准率与召回率两者的关系。
各项指标的具体计算公式如式(10)~式(15)所示,其中真阳性(true positive,TP)表示被模型预测为正类中正确分类样本的数量;真阴性(true negative,TN)表示被模型预测为负类中正确分类样本的数量;假阳性(false positive,FP)表示被模型预测为正类中错误分类样本数量;假阴性(false negative,FN)是被模型预测为负类中错误分类样本的数量;精准率(precision,Pre)表示正确预测为正的样本数占所有被预测为正的样本数的比例;召回率(recall,Rec)表示正确预测为正的样本数占所有实际为正的样本数的比例。
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
2.3 实验设定
将数据集划分为3 500例训练集,1 000例验证集,500例测试集,正常心音与异常心音比例为1∶1。采用本文所提出的MWRS-BFSC作为分类特征,提出四种网络结构来进行性能分析与模型比较,选择分类性能最好的神经网络进行模型训练,并与多种基于时频分析的分类算法进行对比实验,分析其优越性。
本文为对比随机截取心音片段的长度对分类效果的影响,设置2、3、4、5 s四组时间变量,验证心音持续时间对分类效果的影响。心音是准周期信号,一个心动周期平均为0.8 s且随机截取2 s至少包含一个心动周期。为保证每个心音片段包含完整心动周期,随机心音片段长度从2 s开始设置,而文献[22]中表明识别异常心音所需心音片段的长度至少需要5 s。综合考虑计算机的计算能力,设置了四组时间变量。由于深度学习随机初始化的特性,每一次训练模型存在一定的随机波动问题现象,故在每一组时间变量上选择10次实验的平均值作为分析标准。
2.4 结果分析
如图5所示,表明在无需心音分割的情况下,增加心音片段长度能够提升分类性能。对于CNN而言,增加心音片段长度的提升效果比RNN更为显著,且在RNN上更容易出现过拟合现象。当心音片段长度为5 s,CNN2D表现出最佳的分类性能。CNN是深度学习最具代表性的算法之一,既做到权值共享、减少网络参数,同时又能有效提取局部特征。MWRS-BFSC特征具有较好的2D表征能力,输入到CNN网络中,可以得到可靠的分类性能。

对比实验中采用了多种时频分析算法进行对比,而提取频谱系数特征的滤波器个数是影响分类性能的重要因素。为比较滤波器组中滤波器的个数对分类效果的影响,本文采用固定心音片段长度、相同的网络结构以及不同数量的滤波器组对不同时频分析算法进行对比实验。滤波器组个数分别选用16、24、32、40、64进行对比分析,具体分类效果如图6所示。

图6结果表明,随着滤波器数量的增加,特征的表达能力呈现出先增加后下降的趋势。具体来说,当滤波器数量为40个时,MWRS-BFSC的分类性能最佳。滤波器数量增加到64个时,整体性能反而下降。原因可能是当滤波器数量逐渐增大时,捕获频率信息增多,对分类性能有提升作用,而当相同频段内的滤波器组中滤波器的数量过多,会导致滤波器组中心频率过于接近产生干扰,导致模型整体性能下降。
文献[23]中表明,多窗谱分析的最佳窗口个数在2~8之间,增加窗口可以减低频谱泄露引起的高方差问题,但随着窗口个数的增加同样会影响时频表示的分辨率。故本文设置不同的窗口个数的对比实验进行分析。如表1所示,正交窗口的个数为4时,既可以有效降低频谱估计的方差,又可以保证较好的时频分辨率。

综上分析,本文选择性能最好的CNN2D作为分类模型。为对比所提出MWRS-BFSC特征的CHD分类效果,对比实验所使用的网络结构为文中所提出的CNN2D,具体网络结构如图7所示。

本文选择的对比算法为文献[8-12]。文献[8]与文献[9]中分别使用了STFT和基于STFT的时频重排方法,STFT是传统时频分析方法,而时频重排使得STFT的能量表示更加聚集。文献[10]采用了BFCC特征,该特征模拟人类心理听觉,在情感识别领域广泛运用。文献[11]和文献[12]分别选用了MFCC与MFSC的特征提取方法,MFSC省略了MFCC中DCT步骤,保留了更多相关信息。文献[12]中对心音进行了分割,再提取特征,鉴于本文不依赖于心动周期的分割,故在对比实验中选择不分割的MFSC进行对比。
如表2、表3所示,分别是消融实验与对比实验,结果表明:① 从表2中可知,采用时频重排之后,分类结果的灵敏度均高于特异度,证明锐化时频表示对正常心音与异常心音的区分带来优势。② 从表2中可知,多个正交窗口取平均的方式有效降低了频谱估计的方差,对分类性能有提升作用。③ 从表3中可知,MWRS与BFSC相结合可以提升特征的判别能力,MWRS-BFSC在准确率、灵敏度、特异度各方面都要优于其他模型。④ 在CNN网络中,MFSC与BFSC的分类性能都要高于MFCC与BFCC。综合以上显示,最后一行的MWRS-BFSC要优于其他模型。


3 结论
本文提出了一种MWRS-BFSC特征提取与深度学习结合的心音分类新算法,将MWRS与非均匀滤波器组相结合,提取更具判别能力的特征。将MWRS-BFSC特征输入到四种分类模型中对比性能,筛选出性能最好的模型,并且提出了四种评价指标对算法进行评估。与其他基于时频分析的算法相比,MWRS与非均匀滤波器组相结合的特征提取方式在各方面都具备优异的性能,增强了时频分析对心音的细节表达能力,从而有利于更好地筛查出异常心音。本论文所提出的方法无需分割心音,大大简化了计算流程,有望用于CHD大规模筛查,让基层尤其是边远地区的CHD患儿得到及早的医疗救治。
重要声明
利益冲突声明:本文全体作者均声明不存在利益冲突。
作者贡献声明:夏军负责实验设计与实践、数据采集、数据分析和论文写作;孙静负责心音分析指导、论文写作指导和数据收集;杨宏波负责医学指导和数据收集;郭涛负责医学指导和处理数据;潘家华负责医学指导和数据审查;王威廉负责心音理论研究、论文整体审查润色和论文写作指导。
伦理声明:本文所使用的心音数据库得到云南大学人体研究材料伦理委员会(批文编号:CHSRE2021008)以及云南省阜外心血管病医院伦理委员会(批文编号:IRB2020-BG-028)的授权使用。