利用深度学习模型进行语音障碍自动评估
语音的产生涉及器官的复杂协调,因此,语音包含了有关身体各个方面的信息,从认知状态和心理状态到呼吸条件。近十年来,研究者致力于发现和利用语音生物标志物——即与特定疾病相关的语音特征,用于诊断。随着人工智能(AI)的进步,这些生物标志物的学习关联和临床预测变得更加可行。自动语音评估利用语音生物标志物、AI和移动技术进行远程患者健康评估,预期将为早期识别和远程监测带来许多好处。
研究人员对将深度学习应用于自动语音评估,主要有两种方法:
- 端到端训练: 模型直接从音频中做出临床预测,但需要大量手动标注数据。
- 预训练模型微调: 使用在大型语音语料库上预训练的深度学习模型作为特征提取器,并用少量标注数据进行微调。这种模型学习了一组特征,即表示,以捕获语音的属性,并可用于各种语音识别任务。
语音表示捕获了人类感知理解,并在语音中保持了一致的属性,如说话者、语言、情感和年龄。由于语音包含了有关几个重要器官状况的丰富信息,随着这些模型的兴起,已有几项工作探索并评估了它们在识别疾病方面的潜力。然而,深度学习模型缺乏可解释性,这限制了它们在医疗领域的应用。为了解决这个问题,研究人员开发了工具来理解模型的工作原理,这些工具通常分为两大类:白盒方法和黑盒方法。
- 白盒方法:这类方法通过分析数学关系来提供模型如何在特定情况下从输入推断输出的局部解释。通常需要特定的模型架构和属性,例如激活函数的存在。在神经网络中,有基于梯度的方法,如Grad-CAM和Integrated Gradient以及基于注意力的方法,如注意力流和注意力展开。
- 黑盒方法:这些方法系统地使用各种任务和数据探测模型,以估计其在一般情况中的行为,这被称为全局解释。虽然黑盒方法与模型无关,但也有一些方法如LIME和SHAP允许提供局部解释。
1 方法论
1.1 数据选择
本研究使用Saarbrücken语音数据库,该数据库包含来自1002名说话者的录音,其中454名男性,548名女性,以及851名对照组(423名男性,428名女性)。
- 说话者的年龄从6岁到94岁不等(病理组),以及9岁到84岁(对照组)。
- 每个录音会话包含/i/、/a/和/u/元音的中性、高、低、上升和下降音调的录音,以及简短短语“Guten Morgen, wie geht es Ihnen?”的录音。
- 音频以16位50kHz的采样率使用专业录音设备录制。
- 将参与者按性别和病理状态分组,病理状态分为三类:有机、无机和健康。
- 仅选择简短短语的录音,并将所有样本下采样到16kHz供模型使用。
1.2 模型训练
使用Audio Spectrogram Transformer (AST),一种无卷积、纯基于注意力机制的音频分类模型。它通过将音频转换为频谱图来处理音频数据,并使用视觉变换器(Vision Transformer,ViT)的架构来进行音频分类任务。
- 模型输入是t秒的音频波形,将其填充到模型的最大尺寸T秒,并转换为128维的log Mel滤波器组(fbank)特征序列,然后将其分割成16x16的块,并使用线性投影层将其展平,生成768维的嵌入序列。
- 每个嵌入都添加了可训练的位置嵌入(大小为768),以提供语谱图的空间结构,并在序列的开头添加了类别标记[CLS]嵌入(大小为768),并将其输入到Transformer编码器中。
- 编码器在类别标记[CLS]处的输出被提取为语音表示。
- 使用的模型在AudioSet上进行预训练,并在HuggingFace Transformers中实现和提供。
- 训练模型进行二元分类:病理(有机和无机)或健康受试者。
- 数据集按分层方式划分为训练集、开发集和测试集,比例为80%、10%和10%。
- 本研究比较了两种模型配置:
ast_freeze: AST模型设置为不可训练,并在模型顶部添加一个线性层,将嵌入投影到分类输出。
ast_finetuned: 与ast_freeze的构建相同,但AST模型设置为可训练,并对整个模型进行微调。
1.3 模型决策解释
本研究使用注意力回放方法可视化模型的决策过程。
- 该方法使用模型的注意力层生成相关图,以可视化语谱图区域的相关性分数。
- 通过将相关图与语谱图拼接成一个图像,并用色调表示相关性分数,用亮度表示频谱功率,从而可视化模型的注意力分布。
- 为了更好地理解语谱图区域,本研究使用Montreal Force Aligner生成与音频对应的语音音素标注,并将其添加到图像中。
- 根据两个模型的预测结果手动选择样本,分为四种情况:
O:ast_freeze和ast_finetuned都预测正确。
X:ast_freeze和ast_finetuned都预测错误。
A:ast_finetuned预测错误,ast_freeze预测正确。
B:ast_finetuned预测正确,ast_freeze预测错误。
2 结果
2.1 模型性能
下表显示了模型的性能指标,包括:

- 加权平均召回率 (UAR):不考虑类别样本大小的情况下,所有类别的平均召回率。
- ROC曲线下面积 (AUC):曲线衡量模型在不同分类阈值下的真正例率和假正例率。
与基础AST模型相比,ast_finetuned模型具有更好的性能,表明微调对模型预测的改善作用。
2.2 分析

当基础AST模型未完全训练(A, ast_freeze)时,表示显示出性别之间的分离而不是病理状态(病理性与健康),换句话说,语音表示包含更多关于说话者性别而不是潜在声音病理状态的信息。另一方面,当基础AST模型完全训练(B, ast_finetuned)时,显示出相反的趋势。两个模型都无法清晰地分离有机和无机病理。

上图展示了两个女性语音样本的频谱图(左)和ast_freeze(中)与ast_finetuned(右)的相关性图(顶部:健康,底部:病理性):这两个样本的预测结果被标记为B,即ast_finetuned预测正确,而ast_freeze预测错误。
从可用的可视化中,我们可以看到最高相关性分数并不一定分配给最高强度区域,如基频和谐波。在两种模型中都出现的更常见模式是,它们给音素“/ɔ/”和音段“/e/ /s/ /i/ /n/”更高的分数。当模型微调后,我们发现更多的集中度,位置经常改变/移动,然而,没有得出明显一致的模式。
本研究训练和比较了两种Audio Spectrogram Transformer (AST) 配置,用于语音障碍检测,并使用注意力回放方法生成了模型的相关图。
通过分析相关图,发现模型无法完全识别有机和无机语音障碍之间的差异,并且模型对音素“/ɔ/”和片段“/e/ /s/ /i/ /n/”给予更高的分数。
当模型进行微调时,发现注意力范围往往会减少,这表明模型更加关注特定的音素区域。
3 模型配置
3.1 ast_freeze
- 模型类: ASTForAudioClassification
- 模型路径: MIT/ast-finetuned-audioset-10-10-0.4593
- 类别数量: 2
- 冻结: TRUE
- 评估策略: epoch
- 保存策略: epoch
- 学习率: 0.001
- 每个设备训练批次大小: 8
- 梯度累积步骤: 4
- 每个设备评估批次大小: 8
- 训练周期数量: 10
- 预热比率: 0.1
- 日志记录步骤: 50
- 评估步骤: 50
- 推送到Hub: FALSE
- 移除未使用的列: FALSE
- 早停耐心: 5
- 早停阈值: 0
3.2 ast_finetuned
- 模型类: ASTForAudioClassification
- 模型路径: MIT/ast-finetuned-audioset-10-10-0.4593
- 类别数量: 2
- 冻结: FALSE
- 评估策略: epoch
- 保存策略: epoch
- 学习率: 0.00025
- 每个设备训练批次大小: 8
- 梯度累积步骤: 4
- 每个设备评估批次大小: 8
- 训练周期数量: 40
- 预热比率: 0.1
- 日志记录步骤: 50
- 评估步骤: 50
- 推送到Hub: FALSE
- 移除未使用的列: FALSE
- 早停耐心: 8
- 早停阈值: 0
相关文章:
利用深度学习模型进行语音障碍自动评估
语音的产生涉及器官的复杂协调,因此,语音包含了有关身体各个方面的信息,从认知状态和心理状态到呼吸条件。近十年来,研究者致力于发现和利用语音生物标志物——即与特定疾病相关的语音特征,用于诊断。随着人工智能&…...
TP8 JS(html2canvas) 把DIV内容生成二维码并与背景图、文字组合生成分享海报
方法一:前端JS生成(推荐) 注意: 1.这个网页只能截图图片效果代码,其它任何html效果都不能有,不然截图就不准确 2.如果要生成的图片DIV内容中引用了第三个方的图片,就是不使用同一个域名下的图片,需要把后…...
计算机科学中的接口(Interface)介绍
计算机科学中的接口(Interface)介绍 计算机科学中,接口是一个广泛的概念,在不同上下文中有不同含义: 1.任何两电路或设备间的连接电路,用于连接CPU与内存、CPU与外设之间。这是一个重要的硬件层面的接口概…...
大创项目推荐 题目:基于深度学习卷积神经网络的花卉识别 - 深度学习 机器视觉
文章目录 0 前言1 项目背景2 花卉识别的基本原理3 算法实现3.1 预处理3.2 特征提取和选择3.3 分类器设计和决策3.4 卷积神经网络基本原理 4 算法实现4.1 花卉图像数据4.2 模块组成 5 项目执行结果6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 基…...
黑芝麻科技A1000简介
文章目录 1. A1000 简介2. 感知能力评估3. 竞品对比4. 系统软件1. A1000 简介...
详解C语言分支与循环语句
分支语句 if elseswitch 循环语句 whilefordo while goto语句 文章目录 1.什么是语句2.分支语句(选择结构)2.1 if语句2.1.1 悬空else2.1.3 练习 2.2 switch语句2.2.1 在switch语句中的break2.2.2 default子句 3.循环语句3.1 while循环3.1.1 while语句中…...
Python商务数据分析知识专栏(五)——Python数据分析的应用③使用Pandas进行数据预处理
Python商务数据分析知识专栏(五)——Python数据分析的应用③使用Pandas进行数据预处理 使用Pandas进行数据预处理1.合并数据2.清洗数据3.标准化数据4.转换数据 使用Pandas进行数据预处理 1.合并数据 2.清洗数据 3.标准化数据 4.转换数据...
Nosql期末复习
mongodb基本常用命令(只要掌握所有实验内容就没问题) 上机必考,笔试试卷可能考: 1.1 数据库的操作 1.1.1 选择和创建数据库 (1)use dbname 如果数据库不存在则自动创建,例如,以下…...
Pytest+Allure+Yaml+PyMsql+Jenkins+Gitlab接口自动化(四)Jenkins配置
一、背景 Jenkins(本地宿主机搭建) 拉取GitLab(服务器)代码到在Jenkins工作空间本地运行并生成Allure测试报告 二、框架改动点 框架主运行程序需要先注释掉运行代码(可不改,如果运行报allure找不到就直接注释掉) …...
SQL面试题练习 —— 查询前2大和前2小用户并有序拼接
目录 1 题目2 建表语句3 题解 1 题目 有用户账户表,包含年份,用户id和值,请按照年份分组,取出值前两小和前两大对应的用户id,需要保持值最小和最大的用户id排首位。 样例数据 ------------------------- | year | user_id | v…...
Arthas常见使用姿势
文章目录 Arthas常见使用姿势官网基本命令通用参数解释表达式核心变量说明常用命令一些常用特殊案例举例其他技巧关于OGNLOGNL的常见使用OGNL的一些特殊用法与说明OGNL内置的虚拟属性OGNL的个人思考OGNL的杂碎,收集未做验证 Arthas常见使用姿势 官网 https://arth…...
Apache Kylin的入门学习
Apache Kylin的入门学习可以从以下几个方面进行: 1. 了解Kylin的基本概念 定义:Apache Kylin是一个开源的分布式分析引擎,它基于Hadoop和HBase构建,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能…...
React@16.x(46)路由v5.x(11)源码(3)- 实现 Router
目录 1,Router 的结构2,实现2.1,react-router1,matchPath.js2,Router.js3,RouterContext.jsx4,index.jsx 2.2,react-router-domBrowserRouter.jsxindex.jsx 1,Router 的结…...
openGauss真的比PostgreSQL差了10年?
前不久写了MogDB针对PostgreSQL的兼容性文章,我在文中提到针对PostgreSQL而言,MogDB兼容性还是不错的,其中也给出了其中一个能源客户之前POC的迁移报告数据。 But很快我发现总有人回留言喷我,而且我发现每次喷的这帮人是根本不看文…...
【国产开源可视化引擎Meta2d.js】快速上手
提示 初始化引擎后,会生成一个 meta2d 全局对象,可直接使用。 调用meta2d前,需要确保meta2d所在的父容器element元素位置大小已经渲染完成。如果样式或css(特别是css动画)没有初始化完成,可能会报错&…...
c#与倍福Plc通信
bcdedit /set hypervisorlaunchtype off...
【OceanBase诊断调优】—— 如何通过trace_id找到对应的执行节点IP
1. 前言 OceanBase作为分布式数据库,查问题找对节点很关键。好在OceanBase执行的每一条SQL都能通过trace_id来关联起来,知道trace_id怎么知道是在哪个节点发起的呢,请看本文。 2. trace_id生成规则 ob内部trace_id的生成函数如下࿰…...
鸿蒙开发Ability Kit(程序访问控制):【使用粘贴控件】
使用粘贴控件 粘贴控件是一种特殊的系统安全控件,它允许应用在用户的授权下无提示地读取剪贴板数据。 在应用集成粘贴控件后,用户点击该控件,应用读取剪贴板数据时不会弹窗提示。可以用于任何应用需要读取剪贴板的场景,避免弹窗…...
PL/SQL入门到实践
一、什么是PL/SQL PL/SQL是Procedural Language/Structured Query Language的缩写。PL/SQL是一种过程化编程语言,运行于服务器端的编程语言。PL/SQL是对SQL语言的扩展。PL/SQL结合了SQL语句和过程性编程语言的特性,可以用于编写存储过程、触发器、函数等…...
双非本 985 硕,我马上要入职上海AI实验室大模型算法岗
暑期实习基本结束了,校招即将开启。 不同以往的是,当前职场环境已不再是那个双向奔赴时代了。求职者在变多,HC 在变少,岗位要求还更高了。 最近,我们又陆续整理了很多大厂的面试题,帮助一些球友解惑答疑&…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...
Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
