首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

打开阿兹海默之门:华裔张复伦利用RNN成功解码脑电波,合成语音 | Nature

  • 24-03-05 03:04
  • 3399
  • 14002
blog.csdn.net

640?wx_fmt=jpeg


作者 | 琥珀

出品 | AI科技大本营(ID:rgznai100)


2019 年 4 月 24 日,来自加州大学旧金山分校(UCSF)神经外科学系 Gopala K. Anumanchipalli,Josh Chartier,Edward F. Chang 团队在 Nature 杂志上发表了题为 “Speech synthesis from neural decoding of spoken sentences” 的论文,引起了不少人士的关注。


据悉,研究人员设计一种神经解码器,采用循环神经网络(Recurrent Neural Network,RNN)的方式将记录的皮质神经信号,然后编码咬合关节运动的表征,以合成可听语音。


也就是说,严重瘫痪的病患可以使用基于该技术的产品通过大脑皮层活动更有效地向任何人发送文字信息。可以想象,像此前受肌萎缩侧索硬化ALS病症多年折磨的著名物理学家史蒂芬 · 霍金(Stephen Hawking)一定也非常乐意看到深度学习技术能够应用于临床医学上的突破。


640?wx_fmt=png


随后,谷歌大脑 Jeff Dean 通过 Twitter 转发了这条消息,并赞叹该项研究成果,“非常酷!可以直接从神经活动中快速产生语音。”


实际上,他们在 2018 年 11 月 29 日以名为 “Intelligible speech synthesis from neural decoding of spoken sentences” 的论文就已经得到了公开。只不过,那时还是预印本,还未经过同级评审。


我们先来回顾下最新论文的主要内容。


640?wx_fmt=png

摘要:将大脑神经活动转换成语音的技术,对于因神经损伤而无法正常沟通的人类来说将具有变革意义。从技术上来讲,从神经活动中解码语音是非常具有挑战性的,因为说话需要对声道的咬合结构进行非常精确和快速的多维控制。通过设计一种神经解码器,明确地利用人类皮层活动中编码的运动和声音表征来合成可听语音。


循环神经网络(RNN)将记录的皮质神经信号直接解码为咬合关节运动的表征,然后将这些表征再转换为语音。在封闭的词汇测试中,听众可以很容易地识别和转录皮层活动从而合成语音。即便数据有限,中间关节运动(Intermediate articulatory dynamics )也能提高性能。


经过解码的语音表征非常保守,使得解码器的一个组件可跨不同受试者进行转换。此外,当受试者静默地模仿句子时,解码器可以合成语音。


以上这些发现提高了使用语音神经假体技术以恢复人类口语交流的临床可行性。


▌研究过程


许多患者是依靠通信设备来转录头部、眼睛或者直接的大脑皮层活动中的信息,然后再控制光标逐个选择字幕来拼写单词。例如,患者此前使用的语音合成系统基本就是这样的原理。虽然该系统显著提高了患者的生活质量,但多数用户很难在一分钟内传递超过 10 个单词,这一速度远低于自然语言中 150 词 / 分钟的平均速度。一个主要障碍就是如何克服当前基于拼写的方法限制,以实现更高效的沟通效率。


基于拼写的方法最好的替代方式就直接进行语音合成。因为拼写是离散字母的连续串联,而语音是由重叠的、多发声器的声道运动的流体产生的。为此,基于声道运动及其产生的声音模仿方法可能是实现自然语言的唯一高效沟通手段,并且还是可以保证用户学习的最直观手段。例如,患有麻痹症(ALS 或脑干中风)的患者,高保真语音控制信号可仅通过使用大脑 - 计算机接口直接记录完整皮质网络进行访问。


为了证明神经语言假体的可行性,研究人员试图将大脑信号转换成可理解的正常说话人语速的合成语音。研究人员采用了一种叫做高密度脑皮层电图(ECoG)的技术,让 5 名患有癫痫病的患者大声说出几百个句子,直接记录下受试者大脑皮层的神经活动,并跟踪控制语音和发生部位运动的大脑区域活动。


640?wx_fmt=jpeg


如图所示,研究人员采用的解码器方法可分为两个阶段:第一阶段,双向长期短期记忆(bLSTM)循环神经网络解码来自联系神经活动的关节运动特征;第二阶段,单独的 bLSTM 解码来自第一阶段解码出的关节特征的声音特征,然后从解码的声音特征合成音频信号。


训练解码器有三种数据来源:ECoG 记录、声音以及关节运动。


  • ECoG,从每个电级的原始信号中提取高伽马振幅包络(70-200Hz)和低频分量(1-30Hz)。如果它们位于关键皮质区域,则选择电极:腹侧感觉运动皮层(ventral sensorimotor cortex,vSMC)、颞上回(superiortemporal gyrus,STG)或下额回(inferior frontal gyrus,IFG)。


  • 声音,由于不是典型的频谱图,研究人员使用了 25 个梅尔频率倒频谱系数(MFCC),5 个子带声音强度用于声门激励建模、音调和发声(总共 32 个特征)。这些声学参数是用于感知电管的声音特征,同时最大化音频重建的质量。


  • 关节运动表征,即存在于神经活动和声音之间的解码器的一个关键组成部分。由于无法同步记录神经活动,研究人员采用了一种基于说话人的声音 - 发声(Acoustic-to-Articulatory)转换统计方法,来测出受试者产生的语音信号对应的声道运动轨迹。研究人员还添加了额外的生理特征(如关节运动),并在语音自动解码器中对值进行了优化,进而推断在语音产生期间声道生理的完整中间关节运动表征。


根据这些特征,可以精确地重建语音频谱图。


▌张复伦本人


640?wx_fmt=jpeg


值得一提的是,该项研究成果之一的 Edward Chang(中文名:张复伦)还是名华裔神经外科医生,擅长治疗成人癫痫、脑肿瘤等疾病,研究主要集中于语言、运动和情感的大脑机制。


最早在 2017 年,张复伦等人在 Science 杂志发表论文,阐述大脑皮层颞上回神经元在语言中的重要性。


在 2011 年 5 月的美国新闻与世界报导对他的采访中,张复伦就表示:“医学界长期忽视神经修复学,直到最近科技发展迅速才获得重视。相信在未来的 5 到 10 年间,电脑科技对神经性疾病患者,如柏金森氏症和阿兹海默症、癫痫等,将会有更多治疗方式。”


据了解,张复伦来自典型的中国台湾移民家庭。他曾表示:“生命中有很多选择的机会,成为神经外科医师是一连串的机遇,但父母的支持,让他可以全神贯注钻研神经科学,达到今天的成就。”


附上张复伦个人简介:https://profiles.ucsf.edu/edward.chang


参考链接:

https://www.biorxiv.org/content/10.1101/481267v1.full

https://www.technologyreview.com/s/613421/scientists-have-found-a-way-to-decode-brain-signals-into-speech/


(本文为 AI科技大本营原创文章,转载请微信联系 1092722531)

长三角开发者联盟

代码就是力量,长三角的开发者联合起来!

加入「长三角开发者联盟」将获得以下权益

长三角地区明星企业内推岗位
CSDN独家技术与行业报告
CSDN线下活动优先参与权
CSDN线上分享活动优先参与权


扫码添加联盟小助手,回复关键词“长三角2”,加入「长三角开发者联盟」。

640?wx_fmt=jpeg

推荐阅读:

  • 机器学习萌新必备的三种优化算法 | 选型指南

  • A* 算法之父、人工智能先驱Nils Nilsson逝世 | 缅怀

  • Python程序员Debug的利器,和Print说再见 | 技术头条

  • 入门AI第一步,从安装环境Ubuntu+Anaconda开始教!

  • 小程序的侵权“生死局”

  • @996 程序员,ICU 你真的去不起!

  • Elastic Jeff Yoshimura:开源正在开启新一轮的创新 | 人物志

  • 19岁当老板, 20岁ICO失败, 21岁将项目挂到了eBay, 为何初创公司如此艰难?

  • 她说:为啥程序员都特想要机械键盘?这答案我服!

640?wx_fmt=png


点击阅读原文,了解「CTA核心技术及应用峰会」。

更多内容请见: python3案例和总结-专栏介绍和目录

文章目录

    • 1. `global` 关键字
      • 语法
      • 示例
        • 示例 1:修改全局变量
        • 示例 2:未使用 `global` 的情况
    • 2. `nonlocal` 关键字
      • 语法
      • 示例
        • 示例 1:修改外层函数的变量
        • 示例 2:未使用 `nonlocal` 的情况
    • 3. `global` 和 `nonlocal` 的区别
    • 4. 实际应用场景
      • 4.1 使用 `global` 修改全局变量
      • 4.2 使用 `nonlocal` 修改外层函数的变量
    • 5. 注意事项
    • 6. 综合示例

在 Python 中,nonlocal 和 global 是用于在函数中修改外部作用域变量的关键字。它们的作用分别是:

  1. global:用于在函数内部修改全局作用域的变量。
  2. nonlocal:用于在嵌套函数中修改外层(非全局)作用域的变量。

下面将详细介绍这两个关键字的用法和区别。


1. global 关键字

global 用于在函数内部声明一个变量是全局作用域的变量。如果函数内部需要修改全局变量,必须使用 global 关键字。

语法

global 变量名
  • 1
数据知道的成长之路
微信公众号
成长进阶、技术分享、资源获取
注:本文转载自blog.csdn.net的AI科技大本营的文章"https://blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/89530211"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top