帕金森病(PD)诊断:三种基于语音的深度学习方法
帕金森病(Parkinson’s disease, PD)是世界上第二大流行的神经退行性疾病,全球影响着超过1000万人,仅次于阿尔茨海默症。人们通常在65岁左右被诊断出患有此病。PD的一些症状包括震颤、肌肉僵硬和运动迟缓。这些症状往往出现在较晚的阶段,使得仅基于这些症状的早期诊断变得困难。PD可以影响语音产生的各个方面,包括发音、声音的音调和响度、韵律以及声音的质量,导致语音障碍特征表现为声音嘶哑(dysphonia)和言语障碍(dysarthria)。声音嘶哑意味着产生声音的能力降低,而言语障碍指的是产生单词的困难。这些语音障碍可能在其他症状出现前长达五年就已发生,表明早期PD诊断实际上是可能的。
在前面已经有2篇文章针对帕金森病(PD)诊断进行了阐述,有兴趣的朋友可以直接翻阅以下链接:
首次使用回声状态网络 (ESN) 和语音特征进行帕金森病 (PD) 预测
PPINtonus (深度学习音调分析)帕金森病早期检测系统
本文研究分析了三种基于语音的深度学习方法(端到端学习 (E2E) 、迁移学习 (Transfer Learning, TL) 、深度声学特征 (Deep Acoustic Features, DAF)),讲述各学习方法的性能、挑战及应用情况。
1 端到端学习(E2E)
在E2E方法中,原始语音信号可以直接映射到最终输出,与传统的基于高斯混合模型(GMMs)和隐马尔可夫模型(HMMs)的语音识别流程不同。在传统方法中,必须提取手工设计的特征(如梅尔频率倒谱系数MFCCs),然后使用语言模型将这些特征映射到文本符号,最后进行分类。E2E方法避免了手动特征提取,允许模型学习从输入到输出的直接映射。
1.1 E2E 学习的优势
- 自动特征提取:E2E 学习可以自动从语音信号中提取具有区分性的特征,无需手动设计特征工程,节省了时间和精力。
- 减少错误累积:E2E 学习避免了手动特征提取过程中可能出现的错误,例如特征选择不当或特征提取方法不适用等,从而提高了分类的准确率。
- 模型优化:E2E 学习可以端到端地优化模型参数,使得模型能够更好地学习数据中的规律,并提高分类性能。
1.2 E2E 学习的挑战
- 数据需求量大:E2E 学习需要大量的训练数据来训练模型,而 PD 语音数据集相对较小,这限制了模型的训练效果和泛化能力。
- 模型复杂度高:E2E 模型通常比较复杂,需要大量的计算资源进行训练和推理,这增加了模型的部署难度。
- 可解释性差:E2E 模型的决策过程难以解释,难以理解模型是如何进行分类的,这限制了模型的实际应用。
1.3 E2E 学习在 PD 语音分类中的应用
- CNN 架构:卷积神经网络 (CNN) 是 E2E 学习中最常用的模型架构之一,它可以有效地学习语音信号中的局部特征,例如声谱图中的频谱特征。
- LSTM 架构:长短期记忆网络 (LSTM) 可以有效地学习语音信号中的长期依赖关系,例如音节的时序特征。
- Transformer 架构:Transformer 架构在自然语言处理领域取得了突破性的成果,近年来也被应用于语音信号处理领域,并展现出强大的潜力。
2 迁移学习 (Transfer Learning, TL)
TL方法通过利用在一个大型数据库上预训练的深度神经网络(DNN),然后将这些网络应用到另一个通常数据量较小的任务上。这种方法可以解决数据可用性问题,因为它允许模型利用在源领域学到的知识来提高在目标领域的性能。特别是跨语言的TL方法,已被证明可以增强诊断系统的稳健性,并在不同语言之间提高适用性。
2.1 迁移学习的优势
- 解决数据稀缺问题:PD 语音数据集通常规模较小,难以训练大型深度学习模型。
- TL 允许我们利用在其他大规模语音数据集(如 ImageNet)上预训练的模型,并将其迁移到 PD 语音数据集上进行微调。这样可以显著减少对大量标注数据的依赖,并提高模型的泛化能力。
- 跨语言应用:不同语言之间存在差异,例如发音、语调等。TL 可以帮助我们将在一个语言上训练好的模型迁移到另一个语言上,从而实现跨语言 PD 分类。
- 这对于开发通用的 PD 诊断系统具有重要意义,可以方便不同语言人群使用。
- 提高模型性能:通过迁移学习,模型可以学习到更通用的特征,从而提高在目标语言或任务上的性能。一些研究表明,使用 TL 的模型在 PD 分类任务中取得了比仅使用目标语言数据训练的模型更好的性能。
2.2 迁移学习的挑战
- 如何选择合适的基础模型和微调策略。
- 如何处理不同语言之间的差异。
- 如何评估 TL 模型的性能。
3 深度声学特征 (Deep Acoustic Features, DAF)
DAF方法旨在通过使用深度学习模型从音频信号中自动提取特征,来提高结果的可解释性和解释性。这些特征可以在深度学习模型的最后层中使用,也可以用作更传统机器学习方法的输入。尽管DAF方法可能在性能上不如E2E和TL方法,但它们通过检查深度特征对PD分类的影响,提供了对模型决策过程的更多洞察。
3.1 DAF 的提取方式
- 从端到端 (E2E) 模型中学习: 将原始语音信号输入 E2E 模型,例如卷积神经网络 (CNN) 或 Transformer,模型会自动学习并提取特征,并在最终层进行分类。
- 使用预训练模型: 使用已经在大规模数据集上预训练的模型,例如 Wav2Vec2.0、VGGish 或 SoundNet,生成 DAF。
- 使用自编码器: 使用自编码器学习并提取音频信号的低维表示,作为 DAF。
3.2 DAF 的优势
- 无需手动特征工程: DAF 的提取过程完全自动化,无需手动设计特征,节省了时间和精力。
- 更鲁棒: DAF 能够更好地捕捉音频信号中的细微变化,对噪声和说话人差异更鲁棒。
- 更抽象: DAF 能够捕捉到更高层次的特征,例如说话人的语音风格、语调等,这些特征对 PD 诊断更有价值。
3.3 DAF 的挑战
- 解释性差: 由于 DAF 是自动学习的,其背后的原理和特征含义难以解释,这限制了 DAF 在临床应用中的推广。
- 性能不如 E2E 和 TL: 目前 DAF 的性能通常不如 E2E 和迁移学习 (TL) 方法,这可能是因为 DAF 缺乏对特定任务的针对性。
4 实际应用情况
- E2E 学习: CNN 架构通常可以达到 90% 以上的准确率,Transformer 架构也展现出与 CNN 相当的性能。
- TL: TL 方法通常可以达到 60% 到 90% 的准确率,跨语言 TL 可以进一步提高准确率。
- DAF: DAF 方法可以达到 87% 以上的准确率,并且比传统特征(如 MFCC)表现更好。
5 数据集
数据集名称(年份) | 来源 #参与者 | 语言 | 总语音时长 | 数据质量 | 语音任务 | 备注 |
Saarbruecken Voice Database (2006) | 1002参与者 | 德语 | ±300分钟 | 麦克风录音 | 1. 正常、高和低音的元音(i, a, u)。2. 音高变化的元音(i, a, u)。3. "Guten Morgen, wie geht es Ihnen?"句子。 | 851名健康对照组(HC),平均年龄9-84岁。 |
PC-GITA (2014) | 100 | 西班牙语 | ±900分钟 | 麦克风录音 | 1. 持续元音。2. 快速重复单词和音节(DDK)。3. 单词和句子的重复。4. 对话阅读。5. 强调特定单词的句子阅读。 | 50名PD患者,平均年龄33-77岁。 |
Parkinson Speech Dataset with Multiple Types of Recordings (2014) | 68 (40训练,28测试) | 土耳其语 | 未提供 | 麦克风录音 | 1. 持续元音(/a/, /o/, /u/)。2. 数字(1到10)。3. 单词。4. 短句。 | 20名PD患者,平均年龄43-79岁。 |
Italian Parkinson’s Voice and Speech (2017) | 65 | 意大利语 | ±116分钟 | 麦克风录音 | 1. 阅读语音平衡文本。2. 发音/pa/和/ta/音节。3. 元音/a/, /e/, /i/, /o/和/u/的音调。4. 阅读语音平衡单词。5. 阅读语音平衡句子。 | 28名PD患者,平均年龄40-89岁。 |
Parkinson’s Disease Classification (2018) | 252 | 土耳其语 | 未提供 | 麦克风录音 | 持续元音/a/。 | 188名PD患者,平均年龄33-87岁。 |
Synthetic Vowels of Speakers with Parkinson’s Disease and Parkinsonism (2019) | 83 | 捷克语 | ±385分钟 | 麦克风录音 | 持续元音/a/和/i/。 | 22名PD患者,21名多系统萎缩(MSA)患者,18名进行性核上性麻痹(PSP)患者,22名健康对照组。 |
NeuroVoz (2024) | 108 | 西班牙语 | ±106分钟 | 麦克风录音 | 1. 持续元音3秒。2. DDK 10秒。3. 听后重复的语句。4. 自由独白30秒。 | 53名PD患者,平均年龄71.13岁。55名健康对照组,平均年龄64.04岁。 |
相关文章:

帕金森病(PD)诊断:三种基于语音的深度学习方法
帕金森病(Parkinson’s disease, PD)是世界上第二大流行的神经退行性疾病,全球影响着超过1000万人,仅次于阿尔茨海默症。人们通常在65岁左右被诊断出患有此病。PD的一些症状包括震颤、肌肉僵硬和运动迟缓。这些症状往往出现在较晚…...

【资料分享】2024钉钉杯大数据挑战赛A题思路解析+代码演示
2024第三届钉钉杯大学生大数据挑战赛今天已经开赛,【A题】思路解析代码,资料预览:...

【优质精选】12节大模型系列教学课程之二:RAG 原理与应用
课程二:RAG 原理与应用 12节大模型系列教学课程之二:RAG 原理与应用 课程详细内容RAG 技术的基础知识RAG 的工作原理RAG 提高生成质量和准确性的原理RAG 在问答系统中的应用RAG 在文本创作中的应用RAG 在其他领域的应用探索RAG 技术的挑战与应对策略RAG …...

vue3前端开发-小兔鲜项目-产品详情基础数据渲染
vue3前端开发-小兔鲜项目-产品详情基础数据渲染!这一次内容比较多,我们分开写。第一步先完成详情页面的基础数据的渲染。然后再去做一下右侧的热门产品的列表内容。 第一步,还是老规矩,先准备好接口函数。方便我们的页面组件拿到对…...

Docker入门指南:Linux系统下的完整安装步骤与常见问题解答
本文以centos7演示。 Docker安装 可参考官方安装文档:Install Docker Engine on CentOS | Docker Docs 一图流: # 移除旧版本docker sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logro…...

Netty实现数据上下行
Netty实现数据上下行 使用LVSNGinxNetty实现数据接入 在数据上行的时候,通过使用车辆唯一标识码(vin)和连接通道绑定 Netty一些配置参数如下: #netty项目使用的端口 server.port8017 #使用启用epoll(在Linux上拥有更好的传输性…...

【React】事件绑定:深入解析高效处理用户交互的最佳实践
文章目录 一、什么是事件绑定?二、基本事件绑定三、绑定 this 上下文四、传递参数五、事件对象六、事件委托七、常见事件处理八、优化事件处理 React 是现代前端开发中最受欢迎的框架之一,其组件化和高效的状态管理能力使得构建复杂的用户界面变得更加容…...

SpringCloud:使用OpenFeign优化前面的Nacos实现高效购物车商品信息处理
在现代电商系统中,购物车的性能直接影响用户的购物体验。为了提升系统性能和用户满意度,我们可以使用Spring Cloud的OpenFeign和负载均衡器来高效地处理购物车中的商品信息。本文将详细介绍如何在Spring Cloud中集成这些组件,并实现一个高效的…...

计算机三级嵌入式笔记(二)——嵌入式处理器
目录 考点1 嵌入式处理器的结构类型 考点2 嵌入式处理器简介 考点3 ARM处理器概述 考点4 处理器和处理器核 考点5 ARM 处理器的分类 考点6 经典 ARM 处理器 考点7 ARM Cortex 嵌入式处理器 考点8 ARM Cortex实时嵌入式处理器 考点9 ARM Cortex 应用处理器 考点10 AR…...

【GoLang】Golang 快速入门(第一篇)
目录 1.简介: 2.设计初衷: 3.Go语言的 特点 4.应用领域: 5.用go语言的公司: 6. 开发工具介绍以及环境搭建 1.工具介绍: 2.VSCode的安装: 3.安装过程: 4.Windows下搭建Go开发环境--安装和配置SDK 1.搭建Go开发环境 - 安装…...

Linux中的三类读写函数
文件IO和标准IO的区别 遵循标准: 文件IO遵循POSIX标准,主要在类UNIX环境下使用。标准IO遵循ANSI标准,具有更好的可移植性,可以在不同的操作系统上重新编译后运行。可移植性: 文件IO的可移植性相对较差,因为…...

MATLAB基础应用精讲-【数模应用】二元Probit回归分析
目录 前言 知识储备 二元Logistic模型和Probit模型 Logistic模型的形式 Probit模型 优势比(OR) 准二项分布族 算法原理 数学模型 二元因变量和线性概率模型 probit和logit回归 logit和probit模型的估计和推断 稳健性检验 二元logit回归分析全流程 一、案例数…...

找工作准备刷题Day10 回溯算法 (卡尔41期训练营 7.24)
回溯算法今天这几个题目做过,晚上有面试,今天水一水。 第一题:Leetcode77. 组合 题目描述 解题思路 从题目示例来看,k个数是不能重合的,但是题目没有明确说明这一点。 使用回溯算法解决此问题,利用树形…...

如何有效的进行小程序的优化
如今小程序已经成为了许多开发者开展业务,提供服务的重要平台 。所以如何有效的优化小程序成为了开发者关注的首要问题,以下是一份详细的小程序优化方案: 一、目标设定 明确小程序优化的主要目标,例如提高用户留存率、增加用户活…...

FPGA-ROM IP核的使用(2)
前言 接着昨天的进行一个小的实验验证ROM IP核。 实验效果 读取上一期生成的IP核中的数据,并将其显示在数码管上。 具体流程 ROM IP核存放数据0~255,之后每隔0.2s,从0的地址开始读数据,并显示在数码管上;接着先后…...

Manticore Search(es轻量级替代)
概念: Manticore Search 是一个使用 C 开发的高性能搜索引擎,创建于 2017 年,其前身是 Sphinx Search 。Manticore Search 充分利用了 Sphinx,显着改进了它的功能,修复了数百个错误,几乎完全重写了代码并保…...

测试开发面试题---计算机网络
计算机网络模型 OSI模型:七层模型 物理层:定义电气特征,机械特征等功能规范,传递实际比特流数据链路层:物理地址寻址(MAC),帧的传输,错误检测和纠正网络层:…...

Wonder3D 论文学习
论文链接:https://arxiv.org/abs/2310.15008 代码链接:https://github.com/xxlong0/Wonder3D 解决了什么问题? 随着扩散模型的提出,3D 生成领域取得了长足进步。从单张图片重建出 3D 几何是计算机图形学和 3D 视觉的基础任务&am…...

【MySQL进阶之路 | 高级篇】显式事务和隐式事务
使用事务有两种方式:显式事务和隐式事务。 1. 显式事务 步骤1: START TRANSACTION或者BEGIN,作用是显式开启一个事务。 START TRANSACTION语句相较于BEGIN特别之处在于,后面能跟几个修饰符。比如: READ ONLY&…...

Ruby、Python、Java 开发者必备:Codigger之软件项目体检
在编程的广阔天地里,Ruby、Python 和 Java 开发者们各自凭借着独特的语言特性,构建着精彩纷呈的应用世界。然而,无论使用哪种语言,确保项目的高质量始终是至关重要的目标。而 Codigger 项目体检则成为了实现这一目标的得力助手&am…...

day05 Router、vuex、axios
配置 router和vuex需要在创建vue项目的时候,开始的时候选择Manually select features,于是就可以在下一个创建配置讯问中选择router和vuex。 axios则需要执行命令行: npm install axios -S 之后再在需要发送请求的view导入即可。 router…...

yolov5-7在opencv里跑自己的onnx模型
先把模型放在如下目录 运行如下代码 import cv2 import numpy as npclass Onnx_clf:def __init__(self, onnx:strdnn_model1/plane02.onnx, img_size640, classlist:list[plane]) -> None: func: 读取onnx模型,并进行目标识别para onnx:模型路径img_size:输出图片大小,和模…...

JVM 11 的优化指南:如何进行JVM调优,JVM调优参数有哪些
这篇文章将详细介绍如何进行JVM 11调优,包括JVM 11调优参数及其应用。此外,我将提供12个实用的代码示例,每个示例都会结合JVM启动参数和Java代码。 本文已收录于,我的技术网站 java-broke.site,有大厂完整面经&#x…...

nginx的配置和使用
一、nginx支持win和linux版本的下载,选择合适的版本进行安装 二、配置文件注解 重点的几个参数进行注释: 1、listen 要监听的服务的端口,符合这个端口的才会被监听 server_name要监听的服务地址,可能是ip,也可能是域名…...

mysql面试(六)
前言 本章节详细讲解了一下mysql执行计划相关的属性释义,以及不同sql所出现的不同效果 执行计划 一条查询语句经过mysql查询优化器的各种基于成本和各种规则优化之后,会生成一个所谓的 执行计划,这个执行计划展示了这条查询语句具体查询方…...

6.乳腺癌良性恶性预测(二分类、逻辑回归、PCA降维、SVD奇异值分解)
乳腺癌良性恶性预测 1. 特征工程1.1 特征筛选1.2 特征降维 PCA1.3 SVD奇异值分解 2. 代码2.1 逻辑回归、二分类问题2.2 特征降维 PCA2.3 SVD奇异值分解 1. 特征工程 专业上:30个人特征来自于临床一线专家,每个特征和都有医学内涵;数据上&…...

Vue3响应式高阶用法之markRaw()
Vue3响应式高阶用法之markRaw() 文章目录 Vue3响应式高阶用法之markRaw()一、简介二、使用场景2.1 避免性能开销2.2 防止意外修改 三、基本使用3.1 标记对象 四、功能详解4.1 markRaw与reactive的区别4.2 markRaw与ref的区别 五、最佳实践及案例5.1 使用大型第三方库对象5.2 静…...

免费SSL证书的安全性与获取指南
SSL证书是一种数字凭证,用于加密用户与网站之间的信息交换,以确保传输的数据不被第三方窃取。它像是一个数字版的密封印章,为数据的传输过程提供了一层保护膜。 免费的SSL证书通常由CA机构提供,它们同样可以提供基础数据的加密服…...

【CN】Argo 持续集成和交付(一)
1.简介 Argo 英 [ˈɑ:ɡəu] 美 [ˈɑrˌɡo] Kubernetes 原生工具,用于运行工作流程、管理集群以及正确执行 GitOps。 Argo 于 2020 年 3 月 26 日被 CNCF 接受为孵化成熟度级别,然后于 2022 年 12 月 6 日转移到毕业成熟度级别。 argoproj.github.i…...

Unity3D 自定义Debug双击溯源问题详解
前言 在Unity3D的开发过程中,经常需要处理各种交互和事件,其中双击事件是常见的需求之一。然而,由于Unity自带的双击检测机制并不完善,开发者往往需要自定义实现以满足特定需求。本文将详细介绍如何在Unity3D中自定义Debug双击溯…...