需要JoVE订阅才能观看此内容。 请登录或开始免费试用

方法文章

基于机器学习的咳嗽音调分类:慢性阻塞性肺疾病与呼吸道感染的诊断探索

1.1K 次观看

DOI:

10.3791/68222

2025年9月19日

* These authors contributed equally

本文内容

摘要

本研究通过采集慢性阻塞性肺疾病(COPD)和呼吸道感染(RTI)患者咳嗽声音数据,结合语音信号处理技术与机器学习算法,成功实现了对两种不同类别的自动分类。

摘要

本研究旨在开发并评估一种基于语音信号分析和机器学习的非侵入性方法,用于区分慢性阻塞性肺疾病(COPD)患者与呼吸道感染(RTI)患者。研究采集了25名COPD患者和25名RTI患者(作为对照/比较组)的固定模式语音信号。通过多维度语音特征分析,识别出在两组间具有显著差异的特征。筛选出具有统计学显著性的特征后,进行降维处理。随后训练并评估逻辑回归(LR)和随机森林(RF)模型在区分COPD与RTI任务中的分类性能。最初分析了超过400个语音特征,其中有18个特征在COPD与RTI患者之间表现出高度显著差异(P < 0.05)。在区分COPD患者与RTI患者的任务中,LR模型在测试集上达到曲线下面积AUC为0.95,显著优于RF模型(AUC = 0.76)。本研究证明了利用语音分析结合机器学习,尤其是LR模型,作为区分COPD与RTI的一种有前景的非侵入性工具的可行性,为该语音分析方法在需要进行呼吸系统疾病鉴别诊断的临床环境中的实际应用和进一步优化奠定了基础。

引言

慢性阻塞性肺疾病(COPD)和呼吸道感染是全球范围内导致死亡和疾病负担的重要原因。COPD 是一种主要由吸烟引起的、影响气道和肺实质的慢性炎症性疾病,其特征包括持续性咳嗽、呼吸困难以及痰液分泌增多1。世界卫生组织预计,到2030年,COPD 将成为全球第三大死因,带来巨大的经济负担2,3。相比之下,呼吸道感染(RTI)约占全球疾病负担的6%,超过了缺血性心脏病、HIV 感染、癌症、疟疾和腹泻类疾病的疾病负担4

由于这两种疾病的临床表现具有显著相似性,尤其是咳嗽这一常见症状,因此在早期对这些疾病进行准确鉴别对于有效治疗至关重要5,6。传统的诊断方法主要依赖于临床症状评估、肺功能检测以及实验室分析7。尽管慢性阻塞性肺疾病(COPD)的传统诊断方法在识别和评估病情方面是有效的,但在临床实践中仍存在若干局限性,包括诊断准确性不足、早期诊断能力有限、对疾病异质性的理解不充分以及缺乏动态监测手段8,9,10,11。与传统的COPD诊断方法相比,语音诊断技术作为一种新兴的辅助工具,在早期检测、无创诊断和动态监测方面具有诸多优势。

随着语音分析技术的进步,尤其是咳嗽声音的自动分析,快速诊断应用展现出新兴潜力。研究表明,咳嗽声音包含大量关于肺部疾病的信息,其声学特征能够反映气道健康状况的变化12。近年来,基于机器学习的语音特征分析技术已被用于慢性阻塞性肺病(COPD)及其他疾病的诊断,并取得了显著成果13,14,15。这些方法通过从咳嗽声音中提取频率、持续时间、振幅等音频特征,并结合机器学习算法进行模式识别,从而实现对疾病的高效分类。

尽管已有部分研究探讨了咳嗽声音分析在疾病诊断中的潜力,但在区分慢性阻塞性肺疾病(COPD)患者与呼吸道感染(RTI)患者方面仍存在显著挑战。这一困难源于两组患者咳嗽声音特征的重叠,加之个体间存在差异。因此,开发能够从咳嗽声音中提取更精确、更具区分度特征的方法,仍是该领域亟待解决的关键问题。

本研究旨在通过采集25名慢性阻塞性肺疾病(COPD)患者和25名呼吸道感染(RTI)患者的咳嗽音频,探索一种咳嗽声音的自动分类方法。通过结合语音特征分析与机器学习算法,我们力求提高COPD与RTI之间疾病鉴别的准确性,从而提升对这两种疾病的早期诊断能力。

访问受限。请登录或开始试用以查看此内容。

方案

本研究经北京中医药大学及其第三附属医院伦理委员会批准。所有参与者均签署书面知情同意书,自愿参加研究。2024年7月至8月期间,从北京中医药大学第三附属医院呼吸内科招募了25名慢性阻塞性肺疾病(COPD)患者组成的队列。同时,组建了一个由25名典型上呼吸道感染(RTI)患者组成的对照组。

1. 受试者选择

  1. 纳入标准
    1. 选择背景噪音较低且发音清晰的音频样本。
    2. 确保慢性阻塞性肺疾病(COPD)组的COPD诊断依据呼吸科专家制定的临床指南。
      1. 根据GOLD 2024标准,通过支气管扩张剂后肺功能测定(FEV1/FVC < 0.70)确认诊断。
      2. 确认临床稳定状态(过去≥4周内无急性加重)。
    3. 确保对照组由患有典型上呼吸道感染(RTI)的患者组成。
      1. 依据《呼吸感染性疾病诊断与治疗指南》中的诊断标准进行诊断。
      2. 确保症状起始时间≤72小时。
      3. 排除有慢性呼吸系统疾病史的个体。
    4. 年龄限制为18至85岁。
    5. 要求所有参与者提供书面知情同意书,同意参加本研究。
  2. 排除标准
    1. 排除存在言语障碍的参与者,如声带功能障碍或喉炎。
    2. 排除患有可能影响言语或认知功能的神经系统疾病的参与者。
    3. 排除有显著听力障碍的参与者。
    4. 排除未遵守研究方案或未能提供足够数量音频样本的参与者。
    5. 排除无法提供知情同意的参与者。

2. 研究设计

  1. 将受试者转移至一间安静、独立的标准临床问诊室(面积为 4 m × 5 m),并保持外界噪声水平低于 30 dB。让受试者采取自然、舒适的坐姿,并保持放松状态。
  2. 仔细记录受试者的基本信息,包括身高、体重、年龄及其他相关信息,并由医师确认其当前健康状况。
  3. 完成初始数据记录后,调节麦克风高度至合适位置,确保麦克风与受试者嘴唇之间的距离约为 20–30 cm。
  4. 使用专业的便携式手持多轨录音机进行音频采集,采样率统一设置为 44.1 kHz。
    1. 在每日录音开始前对设备进行校准。按住目标通道的 GAIN 旋钮 2 秒,直至屏幕显示 CAL 及当前电平值。
    2. 缓慢旋转 GAIN 旋钮以调节增益,使屏幕上显示的输入电平精确匹配测试音的标称值,确保误差范围在 ≤±1 dB 以内。
  5. 在采样团队的指导下,让受试者根据自身情况自然咳嗽,并使用录音设备采集咳嗽声音。
  6. 以 `.WAV` 文件格式记录音频。
  7. 采用语音活动检测(VAD)结合人工核查的方式剔除异常音频片段。信噪比(SNR)达到 >20 dB 阈值的录音被纳入研究。
    ​注意:完整的方法学可在我们的 GitHub 仓库中获取(https://github.com/Liteng811/speech-feature-index-database-construction)。

3. 声学特征库的构建

注意:语音特征指标数据库是一个用于比较分析慢性阻塞性肺疾病(COPD)与呼吸道感染(RTI)患者语音模式的声学特征集合。其方法学架构详见表1。该数据库构建所用的开源代码库已在GitHub上发布并可公开获取(https://github.com/Liteng811/speech-feature-index-database-construction)。以下步骤详细说明了代码的下载与执行过程。 

  1. 从 MathWorks 官方网站(https://www.mathworks.com/)在计算机上安装 MATLAB。确保选择与操作系统匹配的适当版本。为验证 MATLAB 是否正确安装,启动 MATLAB 软件并在命令窗口中输入 ver。若安装正确,应显示 MATLAB 的版本信息。
  2. 从 Git 官方网站(https://git-scm.com/)安装 Git。为确认安装成功,请在命令行(Windows 使用命令提示符,Mac/Linux 使用终端)中输入以下命令:git --version。若 Git 安装成功,将显示其版本信息。
  3. 获取代码仓库
    1. 使用命令行界面,执行 git clone 命令将项目文件下载到本地计算机:
      git clone https://github.com/Liteng811/voice-feature-index-database-construction.git
      注意:此操作将在当前工作目录下创建一个名为 "voice-feature-index-database-construction" 的新目录,其中包含所有项目文件。
    2. 运行以下命令进入下载的文件夹以管理其内容:
      cd voice-feature-index-database-construction.
  4. MATLAB 环境设置。
    1. 启动 MATLAB 应用程序。
    2. 将项目文件夹添加至 MATLAB 搜索路径。转到 主页 选项卡,点击 设置路径,然后选择 添加文件夹。选中克隆的 voice-feature-index-database-construction 目录并保存更改。此操作使 MATLAB 能够访问所有必要的脚本。
    3. 在 MATLAB 的 当前文件夹 面板中,通过双击打开主处理脚本(voiceH6_batch_3_stage_WAV_tt.m)。
  5. 数据准备。
    1. 分析所需的输入音频文件格式为 .wav.pcm
    2. 这些音频文件的路径已在脚本中硬编码。请更新这些路径变量,使其指向本地系统中的正确位置。
  6. 脚本执行。
    1. 打开主脚本(voiceH6_batch_3_stage_WAV_tt.m)后,可通过点击 运行 按钮,或直接在 MATLAB 命令窗口中输入脚本名称来启动处理:voiceH6_batch_3_stage_WAV_tt。
    2. 脚本需要用户交互。MATLAB 将显示一个图形界面,提示用户选择适当的音频文件或文件夹。请确保所选的音频文件或文件夹与提示内容一致。
    3. 如果在运行脚本时遇到图形界面冻结或无法显示的问题,请检查 MATLAB 版本是否存在潜在兼容性问题,或确认操作系统的图形驱动程序是否正常工作。
  7. 输出结果。处理完成后,查找生成的 .txt 输出文件,脚本会将特征提取结果写入该文件。输出文件将包含音频特征识别结果等信息。

4. 数据分析

注意:在构建语音特征指标数据库后,进行了统计分析。分析方法见表2。采用曼-惠特尼U检验评估慢性阻塞性肺疾病(COPD)组与呼吸道感染(RTI)组之间语音信号特征的差异。

  1. 曼-惠特尼 U 检验
    注意:在获得语音特征指数库后,使用 SPSS 20.0 对数据进行曼-惠特尼 U 检验。操作过程如下:
    1. 打开 SPSS 并加载数据文件。
    2. 从菜单栏中选择 分析 > 非参数检验 > 旧对话框 > 2 个独立样本
    3. 在弹出的对话框中:
      1. 检验变量列表:选择要比较的变量(观测变量)。
      2. 分组变量:选择分组变量(用于分组的变量)。
      3. 点击 定义组 按钮,在弹出窗口中输入两组的标识符(例如,若分组为 "组 1" 和 "组 2",则输入 1 和 2)。
    4. 检验类型 中,选择 曼-惠特尼 U 检验 选项。
    5. 点击 确定,SPSS 将自动生成输出结果。
  2. 主成分分析(PCA)
    注意:在识别出具有统计学显著性的特征后,采用主成分分析(PCA)进行深入的数据探索。该方法通过将原始变量压缩为少量综合成分,降低数据维度,同时保留关键信息,简化数据集的可解释性。在执行 PCA 前,统计软件会自动对数据进行标准化处理,以消除量纲差异带来的偏差。具体操作步骤如下:
    1. 确保数据已整理完毕,并以 Excel 或 CSV 格式保存,然后导入 SPSS 20.0。
    2. 选择 文件 > 打开 > 数据,然后选择要打开的文件。
    3. 确保数据中的缺失值和异常值已处理,并对变量进行标准化。
    4. 在 SPSS 中进行 PCA 分析时,点击 分析 > 降维 > 因子
    5. 在对话框中,将 PCA 使用的所有变量添加到 变量 字段中。这些变量通常为连续型数据。
    6. 设置提取方法。
      1. 在对话框中点击 提取 按钮,选择 主成分 方法。默认情况下,SPSS 会提取足够数量的主成分以解释数据中的方差。
      2. 选择特征值大于 1 作为保留标准,即仅保留特征值大于 1 的主成分,这通常可解释大部分方差。
    7. 选择旋转方法,点击 旋转,选择 Varimax(正交旋转)或 Promax(斜交旋转)。在大多数应用中,Varimax 是常用的旋转方法。
    8. 在选项中勾选 碎石图系数矩阵,以便输出主成分的碎石图及各主成分的系数矩阵,辅助判断保留的方差。
    9. 设置完所有选项后,点击 确定 按钮,SPSS 将生成输出结果。
    10. 结果解释。
      1. 解读主成分载荷矩阵,识别主成分与原始变量之间的关系。注意载荷值较高的变量对变化的贡献更大。
      2. 利用 "解释的总方差" 表解释方差。观察每个主成分的特征值和方差贡献率。选择方差贡献率较大的主成分,因其通常解释了大部分数据变异。
      3. 使用碎石图确定保留的主成分。识别图中明显的拐点,保留拐点左侧的主成分。
      4. 主成分得分:若需获取每个样本在主成分上的得分,请勾选 将得分保存为变量,SPSS 将主成分得分作为新变量添加到数据集中。

5. 构建逻辑回归(LR)和随机森林(RF)模型

注意:构建逻辑回归(LR)和随机森林(RF)模型的具体方法学框架详见表3。同时,本研究中的LR和RF模型已上传至GitHub(https://github.com/Liteng811/The-distinction-between-COPD-and-respiratory-infections)。下文将主要描述如何从GitHub下载并运行代码。RF模型以Python 3.12.3作为主要编程语言构建。

  1. 获取项目代码库。
    1. 启动终端或命令提示符,运行 git clone 命令以将仓库下载到本地:
      git clone The-distinction-between-COPD-and-respiratory-infections.git The-distinction-between-COPD-and-respiratory-infections.git
      注意,此命令会将仓库的所有内容检索到当前工作目录中,并生成一个名为 The-distinction-between-COPD-and-respiratory-infections 的新文件夹。
  2. 配置编程环境。
    1. 从 Python 官方发行网站(https://www.python.org/)下载并安装 Python。
    2. 使用以下命令安装 requirements 文件中列出的所有 Python 依赖项:pip install -r requirements.txt
    3. 如果缺少 requirements.txt 文件,请通过执行以下命令手动安装必要的库:
      pip install numpy pandas scikit-learn matplotlib
    4. 从 JetBrains 官方网站(https://www.jetbrains.com/pycharm/)下载并安装 PyCharm 集成开发环境。
  3. 浏览仓库内容。
    1. 在仓库中找到主脚本文件(LR.py, RF.py)。
    2. 使用代码编辑器或 PyCharm 打开这些文件,以查看其实现方式和结构细节。
  4. 准备输入数据。
    1. 确保所需数据集以代码所要求的 .xlsx 格式存在,并在执行前进行正确组织。
    2. 代码中包含硬编码的文件路径。请更新这些路径,使其反映文件在系统中的实际位置,有效替换代码中现有的路径(例如 C:\Users\1\Desktop\pca-result.xlsx)为实际的文件路径。
  5. 运行代码。
    1. 找到主脚本后,通过命令行执行。例如,运行 LR.py 时使用命令:python LR.py
      若目标脚本为 RF.py,则相应替换文件名。
    2. 执行前,请确保终端位于正确的当前工作目录,或指定脚本的完整路径。例如:
      python C:/path/to/your/repository/LR.py
    3. 运行过程中,脚本将加载数据集,训练相应的机器学习模型(LR 或 RF),并生成包括准确率、混淆矩阵和 ROC 曲线在内的性能指标。

访问受限。请登录或开始试用以查看此内容。

结果

数据分析结果

本研究成功采用时域分析、频域分析、梅尔频率倒谱系数(MFCC)提取等方法,结合中医诊断理论对特征指标进行调整,分离出超过400个语音特征指标。时域分析是语音信号处理中的关键环节,其重点在于直接处理信号的时间序列数据,以直观理解信号的能量、过零率、线性趋势与包络、自相关特性、幅度调制等属性16,17,18,19,20。频域分析则是通过傅里叶变换将时域信号转换为频域信号,以考察信号的频率组成。该变换可揭示频谱中信号的各个频率成分,从而加深对其特性的理解。常见的频域分析方法包括短时傅里叶变...

访问受限。请登录或开始试用以查看此内容。

讨论

本研究探讨通过语音信号分析和机器学习技术无创检测慢性阻塞性肺疾病(COPD)的方法。研究收集了25名COPD患者和25名呼吸道感染(RTI)患者的语音数据,使用逻辑回归(LR)和随机森林(RF)算法构建模型。两个模型在总体正确分类样本方面表现出相似的准确性,但AUC值的差异表明,LR模型可能在敏感性和特异性之间提供更优的平衡。后续部分将详细阐述研究结果。

研究表明,LR 模型在测试集上的准确率达到 90%,而 RF 模型为 80%;其中 LR 模型对应的 AUC 值为 0.95,RF 模型对应的 AUC 值为 0.76。这可能是因为 LR 模型固有的简洁性使其对过拟合具有更强的抵抗力,并在小样本数据场景下表现出更高的鲁棒性,从而能够高效利用 18 个关键特征实现精确分类。相反,RF 模型结构较为复杂,在数据量有限的情况下容易对训练集中的噪声过拟合,导致在测试集上的泛化性能显著下降。

最初,在采集数据时管理环境至关重要。在安静的问诊区域采集咳嗽声音,可避免任何外部干扰,确保咳嗽音频的清晰度和精确性。在采样过程中选择并调整录音设备...

访问受限。请登录或开始试用以查看此内容。

披露

作者声明,本研究的发表不存在任何利益冲突。未从任何可能影响本研究结果或解释的商业组织获得财务或非财务支持。本研究的所有方面,包括设计、数据收集、分析和稿件撰写,均独立于任何外部影响而完成。

致谢

本研究由国家自然科学基金青年科学基金项目(项目批准号:82104739)和河北省中医药管理局科研项目(项目编号:B2025032)资助。作者谨此感谢在实验过程中提供帮助的所有老师和同学。

访问受限。请登录或开始试用以查看此内容。

材料

本文使用的材料清单
姓名公司目录编号评论
数字录音机ZOOMH6ZOOM 音频商店
GitHubGit2.47.1.2官方网站
MatlabMathWorksR2024b官方网站
PyCharmJetBrains2024.1官方网站
PythonPython3.12官方网站

参考文献

  1. Roth, M. Pathogenesis of COPD. Part III. Inflammation in COPD. Int J Tuberc Lung Dis. 12 (4), 375-380 (2008).
  2. Alsayari, A., Muhsinah, A. B., Almaghaslah, D., Annadurai, S., Wahab, S. Pharmacological efficacy of ginseng against respiratory tract infections. Molecules. 26 (13), 4095(2021).
  3. Iheanacho, I., Zhang, S., King, D., Rizzo, M., Ismaila, A. S. Economic burden of chronic obstructive pulmonary disease (COPD): A systematic literature review. Int J Chron Obstruct Pulmon Dis. 15, 439-460 (2020).
  4. Al Rajeh, A. M., et al. Acute upper respiratory tract infections admissions in England and Wales. Medicine (Baltimore). 102 (21), e33616(2023).
  5. Lieberman, D., et al. Pneumonic vs nonpneumonic acute exacerbations of COPD. Chest. 122 (4), 1264-1270 (2002).
  6. Hassan Naqvi, S. Z., Choudhry, M. A. Embedded system design for classification of COPD and pneumonia patients by lung sound analysis. Biomed Tech (Berl). 67 (3), 201-218 (2022).
  7. Rennard, S., et al. Introducing the COPD Foundation Guide for Diagnosis and Management of COPD, recommendations of the COPD Foundation. COPD. 10 (3), 378-389 (2013).
  8. Spyratos, D., et al. false diagnosis and treatment of COPD in a selected population in Northern Greece. Eur J Gen Pract. 27 (1), 97-102 (2021).
  9. Azleen, A., Wilkinson, T. Early COPD: current evidence for diagnosis and management. Ther Adv Respir Dis. 14, 1753466620942128(2020).
  10. Kostikas, K., et al. Clinical impact and healthcare resource utilization associated with early versus late COPD diagnosis in patients from UK CPRD database. Int J Chron Obstruct Pulmon Dis. 15, 1729-1738 (2020).
  11. Cosio, B. G., et al. Defining the asthma-COPD overlap syndrome in a COPD cohort. Chest. 149 (1), 45-52 (2016).
  12. Kilic, M., et al. GCLP: An automated asthma detection model based on global chaotic logistic pattern using cough sounds. Eng Appl Artif Intell. 127, 107184(2024).
  13. Idrisoglu, A., et al. COPDVD: Automated classification of chronic obstructive pulmonary disease on a new collected and evaluated voice dataset. Artif Intell Med. 156, 102953(2024).
  14. Karaarslan, O., Ergen, O., Belcastro, K. D. Respiratory sound-base disease classification and characterization with deep/machine learning techniques. Biomed Signal Process Control. 87, 105570(2024).
  15. Farrús, M., et al. Speech-based support system to supervise chronic obstructive pulmonary disease patient status. Appl Sci. 11 (17), 7999(2021).
  16. Akamatsu, N. Segmentation of speech utilizing the time-domain properties of speech signals. J Acoust Soc Am. 64, S179(1978).
  17. Joy, S., Upadhya, S. Speech analysis in time and frequency domain. Int J Eng Res Technol. 3 (1), 1-4 (2018).
  18. Do, H. D. Exploiting signal linear trend in the time domain to enhance speech feature. IEEE Access. 10, 117886-117899 (2022).
  19. Schroeder, R. M. New approach to time domain analysis and synthesis of speech. J Acoust Soc Am. 31 (6), 852-853 (1959).
  20. Garreth, P., Johnson, S. R., Green, G. G. R. Extracting amplitude modulations from speech in the time domain. Speech Commun. 53 (6), 903-913 (2011).
  21. Thomas, S., Ganapathy, S., Hermansky, H. Recognition of reverberant speech using frequency domain linear prediction. IEEE Signal Processing Letters. 15, 681-684 (2008).
  22. Malah, D. Efficient implementation of a frequency-domain technique for frequency scaling of speech signals. J Acoust Soc Am. 68 (S1), (1980).
  23. Képesi, M., Weruaga, L. Adaptive chirp-based time-frequency analysis of speech signals. Speech Commun. 48 (5), 474-492 (2006).
  24. Isangula, K. G., Haule, R. J. Leveraging AI and machine learning to develop and evaluate a contextualized user-friendly cough audio classifier for detecting respiratory diseases: Protocol for a diagnostic study in rural Tanzania. JMIR Res Protoc. 13, e54388(2024).
  25. Wang, Q., et al. Towards reliable respiratory disease diagnosis based on cough sounds and vision transformers. ArXiv. , (2024).
  26. Can machine learning be used to recognize and diagnose coughs. Bales, C., et al. 2020 International Conference on e-Health and Bioengineering (EHB), , (2020).
  27. Melek, N. Responding to challenge call of machine learning model development in diagnosing respiratory disease sounds. ArXiv. , (2021).

访问受限。请登录或开始试用以查看此内容。

重印与许可

标签

机器学习诊断语音信号分析逻辑回归模型随机森林模型主成分分析语音特征提取无创诊断