当前位置: 首页 > news >正文

从功能性磁共振成像(fMRI)数据重建音频

      听觉是人类最重要的感官之一,它负责接收外部的听觉刺激,并将这些信息传递给大脑进行处理和理解。研究人员正致力于从神经科学和计算机科学两个领域探索人脑的听觉感知机制。一个关键目标是从人脑中解码神经信息,并重建原始的刺激。常见的大脑到音频的重建任务可以分为三类:大脑到声音的任务,用于重建环境中的所有自然声音;大脑到音乐的任务,用于音乐;以及大脑到语音的任务,用于人声,这些任务基于不同的刺激音频

     研究表明,在人耳的耳蜗和亚皮质结构中,声音被分解成类似频谱图的频率特定时间模式。进入大脑皮层后,人类听觉系统有两条从低级到高级的信息处理通路。初级听觉皮层对浅层或中级DNN特征更敏感,这些特征代表低级声学特征,而非初级听觉皮层对深层DNN特征更敏感,这些特征代表高级语义特征

    受到声学到语义流的启发,我们模拟了听觉处理路径的每个生理结构,并提出了一种相反的从粗到细的音频重建方法。我们使用非侵入性fMRI作为神经信号。首先,进行一个从粗到细的大脑解码过程。我们将fMRI数据解码到低维CLAP空间以获得粗粒度的语义特征,然后在这些语义特征的引导下,我们将fMRI数据解码到高维AudioMAE潜在空间以获得精细的声学特征。接下来,我们使用解码的精细神经特征作为条件,通过潜在扩散模型(LDM)重建mel频谱图,然后使用声码器恢复刺激波形。

1、方法

利用无创功能性磁共振成像(fMRI)数据,模拟听觉处理的逆路径,从而实现高质量的音频重建。

1.1 粗粒度语义解码

使用预训练的多模态模型 CLAP(对比语言-音频预训练),将 fMRI 数据解码到低维语义空间,提取粗粒度的语义特征。

CLAP 模型通过对比语言-音频预训练,将音频与自然语言描述对齐,从而提供丰富的语义信息。

1.2 细粒度声学解码

在语义特征的指导下,将 fMRI 数据进一步解码到 AudioMAE 模型的潜在空间,获取细粒度的声学特征。

AudioMAE 模型是一个自监督预训练模型,专注于重建掩码块,能够保留更多低层声学细节并更好地保留高层语义信息。

选择AudioMAE 模型的理由:

  • AudioMAE保留了更多的低级声学细节。
  • 与VAE相比,AudioMAE更好地保留了高级语义信息。
  • 在包含自然声音、人类和动物声音以及音乐的AudioSet上预训练,AudioMAE可以在通用音频领域中很好地工作。

1.3 音频重建

使用潜在扩散模型(LDM)作为生成模型,在细粒度声学特征的条件 下重建刺激音频的梅尔频谱图。

LDM 是一种强大的生成模型,能够在潜在空间中建模复杂的数据分布,并已被广泛应用于音频生成任务。

1.4 声码器

使用预训练的 HiFiGAN 声码器将重建的梅尔频谱图转换为波形,最终生成高质量的音频。

2、实验

2.1 实验设置

  • 粗粒度解码: 对于 Brain2Sound 和 Brain2Speech 数据集,仅使用听觉皮层(AC)区域的体素;对于 Brain2Music 数据集,使用整个大脑的体素。
  • 细粒度解码: 使用 4 层 Transformer 编码器和解码器,并使用预训练的 AudioMAE 模型初始化。
  • 音频重建: 使用预训练的 AudioLDM2 模型作为 LDM,并使用预训练的 HiFiGAN 声码器将梅尔频谱图转换为波形。

2.2 实验对比

  • 直接解码方法: 将 fMRI 信号直接解码到梅尔频谱图,包括线性回归、多层感知机、双向 LSTM 和 Transformer 编码器。
  • 细粒度解码方法: 将 fMRI 信号直接解码到 AudioMAE 模型的潜在空间,然后使用 LDM 重建音频。
  • 粗到细解码方法: 首先将 fMRI 信号解码到 CLAP 空间获取语义特征,然后在语义特征的指导下解码到 AudioMAE 潜在空间获取声学特征,最后使用 LDM 重建音频。

2.3 评估指标

2.3.1 高层次音频表示指标

  • FD (Fréchet Distance): 计算生成样本和目标样本在音频分类器 PANNs 提取的特征空间中的距离。
  • FAD (Fréchet Audio Distance): 类似于 FD,但使用 VGGish 模型提取特征。
  • KL (Kullback–Leibler divergence): 计算分类器 PANNs 的分类 logit 的 KL 散度,使用 Softmax 激活函数。
  • KL-S (Kullback–Leibler divergence): 计算分类器 PANNs 的分类 logit 的 KL 散度,使用 Sigmoid 激活函数。

2.3.2 低层次梅尔频谱图相似度指标

  • PCC (Pearson Correlation Coefficient): 计算重建音频和刺激音频梅尔频谱图的皮尔逊相关系数。
  • SSIM (Structural Similarity Index): 计算重建音频和刺激音频梅尔频谱图的结构相似性指数。

2.4 实验结果

  • 粗到细解码方法在重建音频的细节和语义方面均优于直接解码方法和细粒度解码方法。
  • 粗到细解码方法在 FD、FAD、KL 和 KL-S 等指标上取得了最先进的性能。
  • 提供语义提示可以有效提高重建音频的语义质量,尤其是在语义特征不佳的情况下。

2.5 数据集

Brain2Sound、Brain2Music和Brain2Speech一起被广泛用于验证粗到细的解码方法在单独的细粒度方法中的优越性。

  • Brain2Sound 数据集: 包含 5 个受试者聆听自然声音的 fMRI 信号,包括人声、动物、乐器和环境声音。
  • Brain2Music 数据集: 包含 5 个受试者聆听音乐片段的 fMRI 信号,包括 10 种音乐类型。
  • Brain2Speech 数据集: 包含 7 个受试者聆听语音片段的 fMRI 信号,包括不同性别的说话人。 

相关文章:

从功能性磁共振成像(fMRI)数据重建音频

听觉是人类最重要的感官之一,它负责接收外部的听觉刺激,并将这些信息传递给大脑进行处理和理解。研究人员正致力于从神经科学和计算机科学两个领域探索人脑的听觉感知机制。一个关键目标是从人脑中解码神经信息,并重建原始的刺激。常见的大脑…...

前端Vue小兔鲜儿电商项目实战Day04

一、二级分类 - 整体认识和路由配置 1. 配置二级路由 ①准备组件模板 - src/views/SubCategory/index.vue <script setup></script><template><div class"container"><!-- 面包屑 --><div class"bread-container">…...

TypeScript的简单总结

TypeScript 深度总结 引言 TypeScript&#xff0c;作为JavaScript的一个强类型超集&#xff0c;由Microsoft在2012年推出并维护至今&#xff0c;它不仅继承了JavaScript的所有特性&#xff0c;还引入了静态类型系统和其他现代编程特性&#xff0c;为开发者提供了一个更安全、…...

I.MX6ULL UART 串口通信实验

系列文章目录 I.MX6ULL UART 串口通信实验 I.MX6ULL UART 串口通信实验 系列文章目录一、前言二、I.MX6U 串口简介2.1 UART 简介2.2 I.MX6U UART 简介 三、硬件原理分析四、实验程序编写五、编译下载验证5.1编写 Makefile 和链接脚本5.2 编译下载 一、前言 不管是单片机开发还…...

systemctlm-cosim-demo项目分析

概述 systemctlm-cosim-demo项目是Xilinx的systemc库的demo工程。 环境安装 qemu安装 cd xilinx_proj/Downloads git clone https://github.com/Xilinx/qemu.git cd qemu git checkout 74d70f8008# Configure and build # zynq7000 # ./configure --target-list"arm-s…...

SQL学习小记(四)Navicat中连接Oracle数据库的详细步骤

五分钟解决Oracle连接问题&#xff1a;DPI-1047: Cannot locate a 64-bit Oracle Client library: “The specified module could not be SQL学习小记&#xff08;四&#xff09;Navicat中连接Oracle 1. 错误信息2. 解决过程2.1.版本查询2.2. 官网下载2.3. 设置Navicat的oci环…...

mysql聚簇索引

1.聚簇索引是物理索引&#xff0c;数据在表里是按顺序存储的&#xff0c;物理上是连续的&#xff0c;一般选主键id作为聚簇索引&#xff0c;且一张表里只能有一个聚簇索引。 2.只有InnoDB支持聚簇索引。 3.非聚簇索引是逻辑索引&#xff0c;将数据的某个字段抽取出来组成独立的…...

【云原生】Kubernetes----PersistentVolume(PV)与PersistentVolumeClaim(PVC)详解

目录 引言 一、存储卷 &#xff08;一&#xff09;存储卷定义 &#xff08;二&#xff09;存储卷的作用 1.数据持久化 2.数据共享 3.解耦 4.灵活性 &#xff08;三&#xff09;存储卷的分类 1.emptyDir存储卷 1.1 定义 1.2 特点 1.3 示例 2.hostPath存储卷 2.1 …...

Adobe Premiere 专业视频编辑软件资源下载安装!pr 2024最新版软件分享

Adobe Premiere&#xff0c;作为一款非线性视频编辑软件&#xff0c;它打破了传统线性编辑的限制&#xff0c;为用户提供了更加灵活和自由的创作空间。 在电影制作领域&#xff0c;Adobe Premiere的出色表现赢得了众多导演和剪辑师的青睐。其强大的编辑功能使得影片的剪辑过程更…...

c++------类和对象(下)包含了this指针、构造函数、析构函数、拷贝构造等

文章目录 前言一、this指针1.1、this指针的引出1.2、 this指针的特性 二、类的默认的六个构造函数2.1、构造函数简述2.2构造函数 三、析构函数3.1、析构函数引出3.2、特点&#xff1a; 四、拷贝构造4.1、引入4.2、特征&#xff1a;4.3、默认拷贝构造函数 总结 前言 在本节中&a…...

git版本控制工具常用命令

一、本地仓库管理 push 向远程推送代码 pulll 拉取代码 二、远程仓库管理 三、分支操作 本地主分支master 远程主分支main head指向当前分支 查看&#xff1a;git branch 创建分支: git branch 名字 切换分支&#xff1a;git checkout 名字 合并分支&#xff1a;git…...

展示广告多模态召回模型:混合模态专家模型

✍&#x1f3fb; 本文作者&#xff1a;俊广、卓立、凌潼、青萤 1. 背景 随着在搜索、推荐、广告技术上多年的迭代积累&#xff0c;业界逐步形成了召回&#xff08;匹配&#xff09;、粗排、精排这一多阶段的系统架构。其中&#xff0c;召回作为链路的最前端&#xff0c;决定了业…...

好的一些网安资源

镜像&#xff1a;https://msdn.itellyou.cn/ 编程学习{ 菜鸟教程&#xff1a;https://www.runoob.com/ w3school&#xff1a;https://www.w3school.com.cn/ https://www.dotcpp.com/ http://zh.cppreference.com/ https://beginnersbook.com/ https://www.ai8py.com/ }…...

Linux chmod 命令

Linux chmod 命令 在 Linux 操作系统中&#xff0c;chmod 命令是非常重要的。它可以用于修改文件和目录的访问权限&#xff0c;以及控制用户对系统资源的访问。在这篇博客中&#xff0c;我们将深入探讨 chmod 命令的使用方法&#xff0c;以及如何使用它来管理文件和目录的访问…...

SDL教程(二)——Qt+SDL播放器

前言 ​ 这篇文章主要是使用SDL来打开视频&#xff0c;显示视频。后续会再继续使用SDL来结合FFmpeg。来能够直接使用网上的demo进行学习。 正文 一、环境 Qt 5.15.2 MSVC2019 64bit Win11 二、Qt搭建SDL Qt搭建&#xff0c;我觉得相比用VS2019来说&#xff0c;更为方便&…...

Java面试题:解决Redis缓存击穿问题

缓存击穿 当一个key过期时,需要对这个key进行数据重建 在重建的时间内如果有大量的并发请求进入,就会绕过缓存进入数据库,会瞬间击垮DB 重建时间可能因为数据是多个表的混合结果需要分头统计而延长,从而更容易出现缓存击穿问题 缓存击穿的解决方案 添加互斥锁 先查询缓存…...

Redis的哨兵模式

什么是哨兵模式 Redis的哨兵模式&#xff08; Sentinel mode &#xff09;是⼀个⾼可⽤解决⽅案&#xff0c;当运⾏多个 Redis 实例并且需要⾃动故障转移时&#xff0c;哨兵模式⾮常有⽤。 在⼀个典型的哨兵模式下&#xff0c;⾄少需要3 个哨兵实例来避免 “ 脑裂 ” &#xff…...

Hadoop伪分布式安装教程

Hadoop伪分布式安装教程 一、安装背景1.1 软件列表1.2 系统软件列表 二、安装Hadoop2.1 安装 Java 环境2.1.1 前期准备2.1.2 文件传输2.1.3 解压文件2.1.4 配置 jdk 的环境变量2.1.5 输入 java、javac、java -version 命令检验 jdk 是否安装成功 2.2 Hadoop 下载地址[hadoop](h…...

Day43 代码随想录打卡|二叉树篇---左叶子之和

题目&#xff08;leecode T404&#xff09;&#xff1a; 给定二叉树的根节点 root &#xff0c;返回所有左叶子之和。 方法&#xff1a; 迭代法&#xff1a;计算所有的左叶子节点&#xff0c;那我们就必然要找到所有的左叶子节点。那么怎么找呢&#xff1f;如何针对cur->l…...

微信小程序动画

微信小程序动画属性&#xff1a;提升用户体验的利器 引言 随着移动互联网技术的快速发展&#xff0c;微信小程序已经成为开发者和用户的热门选择。其轻便、快捷、即用即走的特点使得它在各种场景中都有广泛的应用。而动画作为一种重要的视觉元素&#xff0c;在增强用户体验方…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验

系列回顾&#xff1a; 在上一篇中&#xff0c;我们成功地为应用集成了数据库&#xff0c;并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了&#xff01;但是&#xff0c;如果你仔细审视那些 API&#xff0c;会发现它们还很“粗糙”&#xff1a;有…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

【生成模型】视频生成论文调研

工作清单 上游应用方向&#xff1a;控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

c++第七天 继承与派生2

这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分&#xff1a;派生类构造函数与析构函数 当创建一个派生类对象时&#xff0c;基类成员是如何初始化的&#xff1f; 1.当派生类对象创建的时候&#xff0c;基类成员的初始化顺序 …...

ui框架-文件列表展示

ui框架-文件列表展示 介绍 UI框架的文件列表展示组件&#xff0c;可以展示文件夹&#xff0c;支持列表展示和图标展示模式。组件提供了丰富的功能和可配置选项&#xff0c;适用于文件管理、文件上传等场景。 功能特性 支持列表模式和网格模式的切换展示支持文件和文件夹的层…...

DAY 45 超大力王爱学Python

来自超大力王的友情提示&#xff1a;在用tensordoard的时候一定一定要用绝对位置&#xff0c;例如&#xff1a;tensorboard --logdir"D:\代码\archive (1)\runs\cifar10_mlp_experiment_2" 不然读取不了数据 知识点回顾&#xff1a; tensorboard的发展历史和原理tens…...