APP下载

基于ARM 的呼吸暂停综合征检测系统*

2023-11-10甘智高岳克强李文钧潘成铭

电子技术应用 2023年10期
关键词:鼾声端点限值

甘智高,岳克强,李文钧,潘成铭

(杭州电子科技大学 电子信息学院,浙江 杭州 310018)

0 引言

OSAHS 临床表现为患者在睡眠时打鼾并且伴随着连续出现长时间的呼吸暂停事件,以及出现白天嗜睡疲乏症状。研究指出由于呼吸暂停而导致的反复呼吸不畅、氧气不足,可导致多种疾病的发生,最严重会夜间猝死[1]。目前多导睡眠仪(Polysomnograph,PSG)是评估OSAHS 严重程度的最常见方法,也是金标准[2],但是PSG 仪器价格高昂,患者只有在意识到问题后才会去医院等专业机构就诊,这往往会导致OSAHS 发现时机的延误。

鼾声与语音有很相似之处,可以使用语音信号的特征作为鼾声分析的特征,常见的端点检测主要有基于时频特征的方法[3]以及基于机器学习[4]、神经网络[5]的方法。时频域的算法一般较简单易实现,但抗噪干扰是个问题,丁荔等[6]提出OM-LSA 和维纳滤波结合的睡眠鼾声降噪的方法,实现低信噪比环境下算法的高准确率;而机器学习、神经网络的方法操作复杂,计算量大。在区别是否患有OSAHS 的早期研究中,偏向于鼾声的声音强度的研究,用在一段时间内鼾声信号的声级LAeq来区别OSAHS 患者和单纯打鼾人[7]。Azadeh Yadollahi通过共振峰和短时平均过零率,实现鼾声和呼吸声二分类达到90%的准确率[8]。彭好等发现OSAHS 患者的共振峰频率其F1 值的大小与OSAHS 的严重程度呈现出相关性[9]。还有研究用鼾声基频作为区分特征[10],以及用K 均值对鼾声片段按照时间间隔的二分类,以此为基础实现OSAHS 的自动诊断[11]。

目前重要的是要发现在出现OSAHS 症状临床早期进行准备和治疗,尤其是如何尽快发现,当前的部分研究算法在应用上还有一定距离,如何能将算法部署成功应用是一个关键[12]。本文研究设计的一种OSAHS 检测系统,起到了一个帮助用户自查初筛的作用,及时提醒用户,能够大大降低病情加重风险。

1 系统整体框架

对于OSAHS 检测系统来说,需要以下几个功能:(1)完整录制一整晚鼾声音频,并能临时存储在本地的SD卡中;(2)在本地完成对录制的鼾声的处理,实现边缘计算的作用;(3)通信模块传输本地分析结果和原始音频数据至云平台,方便用户在手机或者Web 端查看检查报告。为此,本设计中提出的OSAHS 检测系统主要可以划分为采集模块、处理模块、传输模块。其中采集模块主要完成原始鼾声音频的录制,确保用户的隐私安全的同时也要保证录制下来的质量;处理模块主要完成特征提取、端点检测、输入模型进行分类、结果分析功能;传输模块主要功能是将本地原始数据和本地分析结果上传至云平台,为建立一个完整的鼾声数据库提供标准数据集。

本系统总体结构如图1 所示。麦克风录制整夜鼾声原始音频[13],基于短时能量自适应阈值对一整晚的鼾声原始音频端点检测,提取出一段一段的鼾声片段数据集,再将鼾声数据在特征提取方面使用梅尔频率倒谱系数(Mel-Frequency Cepstral Coefficients,MFCC)、短时能量两种特征参数作为模型输入,实现正常鼾声、阻塞暂停后鼾声的分类,通过一段时间内阻塞暂停后鼾声的数量来判断呼吸暂停的严重程度,从而实现初步筛查诊断。

图1 系统整体设计图

2 系统硬件设计

系统硬件设计如图2 所示,采用NXP 的Cortex-A7架构i.MX6ULL 作为核心主控模块,运行主频800 MHz,能流畅运行嵌入式Linux 系统,外围模块包括录音模块、电源模块、传输模块、USB 接口、SD 卡等。鼾声录音模块主要用麦克风录制鼾声音频,它直接接到WM8960 的输入引脚上,而WM8960 作为一款高性能音频解码芯片能够保证录制的鼾声质量;无线传输模块采用4G 通信传输的方式,使用ME3630 模块和物联网SIM卡,在保证传输速率和稳定性的前提下,会定时将本地分析结果和原始音频传输至云平台的鼾声数据库;电源电路主要是将输入12 V 电压转化成5 V 和3.3 V 稳定供压芯片,电源开始供电后就可选择开始录制鼾声;SD 卡本地存储鼾声;USB 接口可以接外部设备。系统硬件实物如图3所示。

图2 系统硬件设计图

图3 系统硬件实物图

3 系统软件设计

3.1 原始数据采集

在原始数据获取上与杭州市某医院合作,在患者知情并同意的情况下,配合PSG 标准诊断设备,利用采集终端以16 kHz 的采样频率、16 位采样位数、单声道录制了患者睡眠一整晚的声音。首先利用端点检测技术对鼾声原始音频进行预处理,提取有鼾声段音频,标注时间后对比PSG 导出的诊断结果,人工筛选出各个呼吸暂停结束后2 s 内的第一个暂停相关鼾声作为呼吸暂停后鼾声,此外再经过人工统计与排选,选取出远离呼吸暂停段6 s 以上时间的鼾声作为患者的正常鼾声,总计共采集患者人数10 人(其中4 人作为算法测试例,6 人作为终端测试例),实际对比如图4 所示。图片上方白色部分为PSG 标准诊断设备得到的数据,下方黑色部分为自研设备得到的数据。两台设备的时间是同步的,从图中可以看到自研设备监测到的鼾声基本能够与PSG 标准设备对应上,在OSAHS 事件发生时监测鼾声的波几乎为一条水平线,代表呼吸暂停。同时通过自研设备得到的鼾声音频波形可以看到在发生呼吸暂停阻塞后的鼾声明显比普通鼾声强度更大。

图4 同一时间段患者PSG 诊断结果以及录音段对比图

3.2 鼾声声学特征提取

在语音信号的处理范畴中,语音信号存在很多的特征,由于鼾声信号与语音信号存在很多的相似之处,因此可以通过借鉴语音信号中的特征将其运用到鼾声信号中[14]。本文主要使用了MFCC、短时平均能量这两种音频特征。

3.2.1 MFCC

MFCC 是一种基于人的听觉的非线性特征,在Mel频域内,人对音调的感知度为线性关系[15]。

具体提取MFCC 的步骤如图5 所示。

图5 MFCC 特征参数提取框图

(1)预处理:首先选取20 Hz~20 kHz 的人声频段,剔除非人声频段减少冗余计算。由于语音信号具有短时平稳特性,因此将其以帧为单位进行处理,实验中选取的语音帧长为32 ms,帧叠为16 ms。最后为了减少吉布斯效应,用汉明窗对鼾声信号进行加窗。

(2)FFT:对每一帧进行短时傅里叶变换求频谱,将时域的鼾声信号转变为频域信号。

(3)能量谱:对鼾声信号的幅度谱的模求平方得到其能量谱。

(4)Mel 滤波:将能量谱通过一组Mel 尺度的三角形滤波器组得到Mel 频谱,通过梅尔频谱变换,将频率转换成人耳能感知的线性关系。其中普通频率转化到Mel频率的公式为:

(5)倒谱分析:首先对三角形滤波器组的输出Mel 频谱取对数,然后通过DCT 离散余弦变换去除各维信号之间的相关性,将信号映射到低维空间,取DCT 后的第2个到第13 个系数作为MFCC 系数。

3.2.2 短时平均能量

由于语音信号的能量随时间而变化,因此对短时平均能量进行分析,可以作为辅助的特征参数用于语音识别中。

首先将音频信号进行分帧,以512 个采样点为一帧,按帧来计算每一帧的能量。其中第n帧语音信号的短时平均能量En为:

截取一段音频信号计算其短时平均能量,并绘制对应波形。从图6 可以看出声音波形与能量波形基本可以对齐,短时能量可以作为区分有声和无声的依据。

图6 声音波形与能量波形对比图

3.3 自适应阈值的短时能量端点检测

在本系统中以短时能量作为端点检测的特征参数,由于夜晚安静的背景情况下打鼾与不打鼾的音频段上能量有比较大的区别,因此采用此参数作为判决的特征参数,具体步骤如下:

(1)预处理,采用中值滤波平滑处理,消除噪声中的阶跃点,提高检测的准确率。

(2)加窗分帧,窗函数具有低通特性,选择汉明窗,汉明窗的主瓣宽度1.3Δω,第一旁瓣衰减43,帧长20 ms,帧移10 ms,重叠率为1/2。

(3)双门限判决,在得到鼾声段短时平均能量后,首先选取一个较高阈值T2进行一次粗判,再选择一个较低的阈值T1,这样找到波形较低门限值的两个相交点B和E,即为端点检测出的目标鼾声段的起始点和结束点,如图7 所示。

图7 双门限端点检测示意图

3.4 SVM 的鼾声分类

本文将SVM用于鼾声识别分类模型的训练,步骤如下:

(1)提取录制一整晚鼾声录音,在MATLAB 平台用端点检测算法提取鼾声段。

(2)在PyCharm 平台提取截取鼾声段的MFCC 和短时能量特征数据。

(3)将鼾声段按照呼吸暂停后鼾声和普通鼾声二分类标记,然后将标记好的数据集随机分组用于对模型进行训练和测试。

4 系统功能验证测试

OSAHS 检测系统需要完成鼾声采集处理、检测分类、传输等功能,在对系统的测试需要对比PSG 设备,首先在PC 上进行端点检测和机器学习算法的选择,在完成算法的测试和验证后,再转化可部署的模型移植到ARM 嵌入式终端上。

4.1 鼾声检测算法验证测试

首先选取一段鼾声原始音频,如图8 所示。在端点检测算法测试时,首先计算出前20 帧静音段数据的平均短时能量,记为EL0;寻找接下去连续20 帧短时能量超过1.5EL0的鼾声片段,计算平均短时能量,记为EH0。设置上门限TH=(EH0+EL0)/2 和下门限TL=1.3EL0。

图8 鼾声原始波形图

如果一段鼾声数据的第一帧短时能量超过上门限TH,且接下来20 帧数据的短时平均能量不小于下门限TL,则认为该段鼾声数据为潜在鼾声段,但由于在采集刚开始的时候不是无声状态,因此会造成门限的设置上放大,前期的一些鼾声段被剔除。

因此除了首次设置门限值外,还应该自适应重新选择无声段并且更新门限值。如果在一段时间内没有发现有声段,则有可能是设置的门限值有误,应重新选取无声段并计算门限值,当连续有5 次计算的门限值小于原门限值,则将原门限值更新为这5 次门限值的平均值。此时自适应阈值的短时能量端点检测波形如图9 所示,可以看出经过自适应重新更新阈值后能明显提高检出率。

图9 短时能量和自适应阈值端点检测的鼾声波形对比图

4.2 鼾声分类算法验证测试

在机器学习算法测试中,为了实现对患者与正常人的区分,采用了鼾声差异性最大的非患病者的正常鼾声与患病者的阻塞暂停后鼾声二分类,而选择阻塞暂停后鼾声是因为患有呼吸暂停综合征患者中相较于中枢型和混合型数量是最多的,采集得到的原始数据60%作为训练集,验证集和测试集都使用原始数据的20%。验证集用于对模型的性能进行预先评估,该模型是通过训练集和评估来学习的,以调整参数以提高评估性能。通过验证集获得的最佳参数,并使用测试集来验证分类器的性能。

在对不同机器学习算法的选择上进行了实验,分别有决策树学习算法、K-近邻算法、SVM 算法,输入特征为12 维度MFCC+短时能量,实验结果如表1 所示,SVM算法在鼾声二分类上明显优于其他算法。选择SVM 作为鼾声分类算法后,分别采用了5 种核函数进行测试,特征采用一样,实验结果如表2 所示,高斯核函数的识别准确率高于其他核函数。

表1 不同模型识别准确率 (%)

表2 不同核函数识别准确率 (%)

因此最终基于以上实验,在模型部署到采集终端上时采用基于高斯核的支持SVM 算法。并且对算法端到端即音频到给出结果的耗时在PC 端和ARM 端进行了测试,分别测试PC 端和ARM 端算法处理10 个10 MB、10 个50 MB、10 个100 MB 的鼾声音频 平均耗时,录制分别需要6 min、25 min、50 min 左右,结果如表3 所示,能满足快速检测要求。

表3 端点检测算法移植耗时对比

在系统功能的测试验证时,需要与PSG 设备对比,分别对比6 名病患(3 男A,3 女B)的结果,检测准确率定义为一整晚时间检测出阻塞暂停后鼾声的数量/PSG 检测的阻塞暂停数量,结果如表4 所示,平均准确率为83.9%。

表4 受试者检测准确率 (%)

同时类比AHI 指数,即人在睡眠的状态下平均每小时发生呼吸暂停和低通气的次数和,在本系统尚且不能有效分类识别低通气时,选择人在睡眠的状态下平均每小时发生阻塞暂停次数作为判断用户的呼吸暂停状况的程度,5~15 次为较为轻微,此时建议用户调整作息,减轻睡眠疲劳的情况,并做进一步观察;15~30 次则建议用户对比注意醒来是否有呼吸暂停的不良反应,例如疲劳、口干、头晕的状况;超过30 次时高度建议用户尽快去医院进行全方位PSG 检测。

5 结论

在本次工作中,设计了一种基于ARM 的OSAHS 检测系统,能够录制整晚睡眠声音,并实现自动鼾声段检测,分类为普通鼾声和阻塞暂停后鼾声;降低了检测成本,提高了检测效率,作为一种初步筛查辅助诊断有较强的应用价值。同时基于i.MX6ULL 处理器强大的性能,后续计划辅助增加心率和血氧的检测功能,进一步增强系统对呼吸暂停综合征的检测能力。并且以后在采集鼾声数据时在患者知情并同意的情况下一并记录其年龄和体重等可能与呼吸暂停综合征的产生有关的数据,增加多年龄区间和多体重区间的测试数据与对照组,探索其与OSAHS 的相关性。

猜你喜欢

鼾声端点限值
非特征端点条件下PM函数的迭代根
爸爸的鼾声
不等式求解过程中端点的确定
关于废水排放特别限值的思考
参数型Marcinkiewicz积分算子及其交换子的加权端点估计
辽宁省辽河流域石油炼制排放限值的制定
基丁能虽匹配延拓法LMD端点效应处理
如雷鼾声惊醒“名校梦”,15岁少年不堪重负卧轨自杀
蓄电池SOC限值下的微电网协调控制策略研究
爸爸的鼾声