当前位置: 首页 > 编程日记 > 正文

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

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核心技术及应用峰会

相关文章:

[转载] 别人的心得感悟

原文: https://www.cnblogs.com/double-K/p/6926367.html#commentform ---------------------------------------- 不可说的感悟-——十年老技术转型(一) 佛曰:“不可说,说既是错”,所以本篇也是错&#xf…

Windows Phone 7、XNA的旋转的背景

在游戏表现的过程中需要一些比较酷的动作,我们需要通过图型与XNA中的一些代码来实现,比如我们要说到的一个360度转动的圆。 在手机上的效果如下: 当然在这里我们看不到转动的效果,下边提供的有源码,大家可以下载运行测试一下。 操…

【Qt】报错error: undefined reference to `vtable for的解决方法

1、问题描述 编译Qt程序时,在某个类构造函数定义处报错: error: undefined reference to vtable for2、原因分析 导致错误信息的原因是:子类没有实现父类的纯虚函数; 在Qt中,首先要想到的是在一个类中添加了新的继承…

110万开发者的福音,百度Easy DL商品检测专业版上线

继首场百度大脑开放日上一口气开放24项全新AI技术后,4 月 25 日下午,第二期百度大脑开放日如约举行,本次共发布了13款AI通用新能力、5项技术升级,并推出了EasyDL商品检测专业版和语音识别自训练平台两大全新的可定制训练平台。 实…

简单爬虫学习记录

实现思路解析:爬虫调度器:启动/停止爬虫,规定爬虫的范围;URL管理器:管理2个URL:新的没有爬过的urls;旧的爬过的urls;URL下载器:下载url对应的html数据;HTML解…

开启笔记本win7的虚拟热点,让你的本本变成wifi

写在前面:相信很多人都跟我一样有困扰,在学校用校园网不能wifi,所以在此提供一个教程,希望能给机友们一些帮助。帖子转自网络,自己也测试过了。分享给大家,希望能给大家带来一些方便。开启windows 7的隐藏功…

检测到包降级: Microsoft.Extensions.Configuration.Abstractions 从 2.1.1 降 2.1.0

解决方法:工具-nuget管理包-程序管理控制台-选择 项目- 执行 -Install-Package Microsoft.Extensions.Configuration.Abstractions -Version 2.1.1命令即可。 转载于:https://www.cnblogs.com/dashanboke/p/9229826.html

【FFmpeg】如何通过url的格式找到对应的协议,以rtmp为例

1、简述 在使用 avio_open 接口时,只要给形参 filename 传入 url 格式的字符串就能找到对应的协议。这篇博客就是追踪 avio_open 的调用关系,探明如何根据一个url字符串就能找到对应的协议。下面以rtmp协议为例。 2、FFmpeg对rtmp协议的支持 rtmp协议的实现源码在 libavfo…

李开复口中的“联邦学习” 到底是什么?| 技术头条

近日,在百大人物峰会上,创新工场创始人李开复谈及数据隐私保护和监管问题时,表示:“人们不应该只将人工智能带来的隐私问题视为一个监管问题,可尝试用‘以子之矛攻己之盾’——用更好的技术解决技术带来的挑战&#xf…

业务逻辑应该在哪里实现更为合理呢?

请大牛们讨论下业务逻辑应该在哪实现较为合理 1、java业务逻辑层。 2、后台存储过程。 因为本人一直都在业务逻辑层实现。但新项目中领导要求将业务写到后台存储过程,java业务逻辑层不承载业务逻辑的实现功能。 先说本人的观点: 本人偏向写在java业务逻辑…

前端不哭!最新优化性能经验分享来啦 | 技术头条

作者 | Dimitris Kiriakakis译者 | 风车云马编辑 | Jane出品 | Python大本营(id:pythonnews)【导语】Angular、React、VueJS 是现在一些主流的 JS 框架,那它们在构建网站或前端程序时,是如何保证性能,减少大…

【FFmpeg】如何通过字符串到对应的封装器,以flv为例

1、简述 使用avformat_alloc_output_context2创建封装器上下文AVFormatContext时,只需将封装器的名字传递给形参format_name,就可以获取对应的封装器。这篇博客就是追寻avformat_alloc_output_context2的调用关系,探明原因。 函数原型如下: int avformat_alloc_output_co…

坚持使用Override 注解(36)

2019独角兽企业重金招聘Python工程师标准>>> 1、覆盖超类时千万小心,一不小心就变成重载了 2、现代的IDE 会在覆盖父类方法而没有使用Override 时给出一个警告 在具体类中不必标注你确信覆盖了的抽象方法声明的方法(虽然这样做没什么不好&…

sql语句动态创建连接服务器

--建立连接服务器 EXEC sp_addlinkedserver --要创建的链接服务器名称 DMZLINK,--产品名称 MS,--OLE DB 字符 SQLOLEDB,--数据源 192.168.0.68 EXEC sp_addlinkedsrvlogin DMZLINK, false, NULL, --远程服务器的登陆用户名 sa, --远程服务器的登陆密码 sa go 转载于:h…

【FFmpeg】FFmpeg中操作目录、文件的接口

1、简述 在学习FFmpeg源码中的例子时,发现FFmpeg封装了操作目录和文件的接口。这篇博客把这些接口罗列出来,作为笔记简单记录下。 2、接口列表 打开目录,准备读取目录信息 int avio_open_dir(AVIODirContext **s, const char *url, AVDictionary **options); 参数说明: u…

Scrapy爬取IT之家

创建项目 scrapy startproject ithome 创建CrawSpider scrapy genspider -t crawl IT ithome.com items.py 1 import scrapy 2 3 4 class IthomeItem(scrapy.Item): 5 # define the fields for your item here like: 6 # name scrapy.Field() 7 title scrapy.F…

高效读CV论文法则:先在GitHub上立Flag!| 资源

整理 | 琥珀出品 | AI科技大本营(id:rgznai100)今天介绍一份在 GitHub 上发现的最新干货资源——计算机视觉论文笔记,该项目是由一位名叫 ahong007007 的网友贡献的。该项目上线仅 20 天,尚未获得太多人的关注&#xf…

JS+CSS控制左右切换鼠标可控的无缝图片滚动代码

代码简介: 以前见过这种效果,但是是基于FLASH技术,现在是纯用JS实现的,代码有点多,不过效果还不错,实际上它也是一个图片滚动,只不过它完全是用鼠标点击控制的,也就是说鼠标不点击的…

【FFmpeg】自定义回调函数处理AVIOContext中的数据

1、简述 AVIOContext是FFmpeg管理输入输出数据的结构体,它的成员变量有指向数据的指针、大小以及处理数据的回调函数指针等等。如果使用avio_open或avio_open2来创建,它会根据指定的url协议,将协议处理数据的回调函数指针赋值给AVIOContext的相应成员变量。 我们也可以自己…

ZooKeeper系列(4):ZooKeeper的配置文件详解

ZooKeeper系列文章:https://www.cnblogs.com/f-ck-need-u/p/7576137.html#zk zkServer.sh读取的默认配置文件是$ZOOKEEPER_HOME/conf/zoo.cfg。如果要用其它配置文件。如下传递配置文件参数: zkServer.sh start your_config zkServer.sh stop your_co…

明星企业内推+BAT面经,长三角的开发者联合起来!

“为什么公司宁愿花20K招新人,也不愿给老员工加到20K?”这个热门的微博话题戳起了很多人的痛处,但根据 CSDN &《程序员》杂志发布的「中国软件开发者薪资调查报告」,有32.98%的开发者在过去曾换过工作,其中有72.5%…

《一江春水向东流》之随笔

这篇文章,更像是为后任正非时代的华为,进行的定调。开篇任总提到小时候的教育和意识养成的个人英雄主义,这种性格让自己四十岁之前遭遇坎坷。四十不惑之后,领悟了团结就是力量的政治内涵,开始妥协、包容。全篇浓墨重彩…

程序员拯救乐坛?OpenAI用“逆天”GPT2.0搞了个AI音乐生成器

作者 | 琥珀出品 | AI科技大本营(id:rgznai100)基于深度神经网络进行语音合成、音乐风格迁移,正成为不少致力于“让人人成为音乐家”的研究人员所追求的事情。像此前我们报道的微软小冰作词又作曲,AI帮清华博士写说唱歌…

centos7 JDK1.8

安装之前先检查一下系统有没有自带open-jdk rpm -qa |grep java rpm -qa |grep jdk 卸载找出的已安装Java相关rpm文件:rpm -e --nodeps 重新输入rpm -qa |grep java ,卸载完成 下载jdk1.8 for linux的安装包 jdk-8u11-linux-x64.tar.gz,下载…

【FFmpeg】详解FFmpeg解封装、解码流程

目录 1、获取媒体信息头2、获取媒体流信息3、准备解码器3.1 获取视频、音频、字幕流在解封装上下文 AVFormatContext 的流列表 AVStream **streams 中的索引3.2 使用已经获取的流信息创建对应的解码器及其上下文,以视频解码器为例3.3 初始化解码器上下文4、准备用于保存解码前…

Win2008远程多用户登陆的配置方法

核心提示:在使用Windows 2008远程登录功能时,如果需要进行多用户登录,可以采用以下配置方法 在使用Windows 2008远程登录功能时,如果需要进行多用户登录,可以采用以下配置方法: 首先要启用远程桌面这一功能…

策略梯度搜索:不使用搜索树的在线规划和专家迭代 | 技术头条

作者 | Thomas Anthony、Robert Nishihara、Philipp Moritz、Tim Salimans、John Schulman译者 | 李倩编辑 | Rachel、Jane出品 | AI科技大本营(ID:rgznai100)蒙特卡罗树搜索(MCTS)算法执行基于模拟的搜索以改进在线策…

【FFmpeg】解码时refcounted_frames标志的使用

1、refcounted_frames说明 在接口 avcodec_decode_video2 的注释中,有关于 refcounted_frames 的详细说明: (1)当 AVCodecContext.refcounted_frames 被设置为1,该 AVFrame 被引用计数,返回的引用属于调用者。当不再需要 AVFrame 时,调用者必须使用 av_frame_unref() 来…

python-selenum3 第五天定位——不常用定位与css定位详

使用tag来定位tag定位的是标签,不常用例如:百度的输入框标签是input最终会报错,因为百度首页input标签太多了 driver webdriver.Firefox(executable_path"d:\\geckodriver") driver.get("https://www.baidu.com")driver…

nagios监控三部曲之——为什么nagios不能发送报警邮件(2)

最近我写了关于naigos监控的安装与配置的技术文档,公司运维按照我的文档部署naigos,发现不能发送报警邮件,经过我的检查,发现问题如下: 1、hosts里的配置 [rootnagios ~]# cat /etc/hosts # Do not remove the follow…