0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何让神经声码器高效地用于序列到序列声学模型

ss 来源:IT创事记 作者:IT创事记 2021-01-07 16:01 次阅读

往往在放下手机之后你才会意识到,电话那头的客服其实是个机器人;或者准确地说,是“一位”智能客服。

没错,今天越来越多的工作正在被交给人工智能技术去完成,文本转语音(TTS,Text To Speech)就是其中非常成熟的一部分。它的发展,决定了今天我们听到的许多“人声”,是如此地逼真,以至于和真人发声无异。

除了我们接触最多的智能客服,智能家居中的语音助手、可以服务听障人士的无障碍播报,甚至是新闻播报和有声朗读等服务,事实上都基于TTS这项技术。它是人机对话的一部分——简单地说,就是让机器说人话。

它被称为同时运用语言学和心理学的杰出之作。不过在今天,当我们称赞它的杰出时,更多的是因为它在在线语音生成中表现出的高效。

要提升语音合成效率当然不是一件容易的事。这里的关键是如何让神经声码器高效地用于序列到序列声学模型,来提高TTS质量。

科学家已经开发出了很多这样的神经网络声码器,例如WaveNet、Parallel WaveNet、WaveRNN、LPCNet 和 Multiband WaveRNN等,它们各有千秋。

WaveNet声码器可以生成高保真音频,但在计算上它那巨大的复杂性,限制了它在实时服务中的部署;

LPCNet声码器利用WaveRNN架构中语音信号处理的线性预测特性,可在单个处理器内核上生成超实时的高质量语音;但可惜,这对在线语音生成任务而言仍不够高效。

科学家们希望TTS能够在和人的“交流”中,达到让人无感的顺畅——不仅是语调上的热情、亲切,或冷静;更要“毫无”延迟。

新的突破出现在腾讯。腾讯 AI Lab(人工智能实验室)和云小微目前已经率先开发出了一款基于WaveRNN多频带线性预测的全新神经声码器FeatherWave。经过测试,这款高效高保真神经声码器可以帮助用户显著提高语音合成效率。

英特尔的工程团队也参与到了这项开发工作中。他们把面向第三代英特尔至强可扩展处理器所做的优化进行了全面整合,并采用了英特尔深度学习加速技术(英特尔 DL Boost)中全新集成的 16 位 Brain Floating Point (bfloat16) 功能。

bfloat16是一个精简的数据格式,与如今的32位浮点数(FP32)相比,bfloat16只通过一半的比特数且仅需对软件做出很小程度的修改,就可达到与FP32同等水平的模型精度;与半浮点精度 (FP16) 相比,它可为深度学习工作负载提供更大的动态范围;与此同时,它无需使用校准数据进行量化/去量化操作,因此比 INT8 更方便。这些优势不仅让它进一步提升了模型推理能力,还让它能为模型训练提供支持。

事实上,英特尔至强可扩展处理器本就是专为运行复杂的人工智能工作负载而设计的。借助英特尔深度学习加速技术,英特尔志强可扩展处理器将嵌入式 AI 性能提升至新的高度。目前,此种处理器现已支持英特尔高级矢量扩展 512 技术(英特尔AVX-512 技术)和矢量神经网络指令 (VNNI)。

在腾讯推出的全新神经声码器FeatherWave 声码器中,就应用了这些优化技术。

FeatherWave 声码器框图

利用英特尔AVX-512技术和bfloat16指令,腾讯的科学家们确保了GRU模块和Dense运算符中粗略部分/精细部分的所有SGEMV计算都使用512位矢量进行矢量化,并采用bfloat16点积指令;对于按元素逐个加/乘等运算以及其他非线性激活,都使用最新的英特尔AVX-512 指令运行。

在最终都性能测试中,通过优化,相同质量水平(MOS4.5)的文本转语音速度比FP32提升了高达1.54倍。

此外,腾讯还以 GAN 和 Parallel WaveNet (PWaveNet)为基础,推出了一种改进后的模型,并基于第三代英特尔至强可扩展处理器对模型性能进行了优化,最终使性能与采用FP32相比提升了高达1.89倍,同时质量水平仍保持不变 (MOS4.4)。

腾讯在TTS领域的进展显示出了人工智能领域的一个趋势,那就是科学家们越来越多开始利用英特尔深度学习加速技术在CPU平台上开展工作。

就像腾讯在针对TTS的探索中获得了性能提升那样,第二代和第三代英特尔至强可扩展处理器在集成了加速技术后,已经显著提升了人工智能工作负载的性能。

在更广泛的领域内,我们已经能够清楚地看到这种变化——在效率表现上,由于针对常见人工智能软件框架,如TensorFlow和PyTorch、库和工具所做的优化,CPU平台可以帮助保持较高的性能功耗比和性价比。

尤其是扩展性上,用户在设计系统时可以利用如英特尔以太网700系列,和英特尔傲腾内存存储技术,来优化网络和内存配置。这样一来,他们就可以在充分利用现有硬件投资的情况下,轻松扩展人工智能训练的工作负载,获得更高的吞吐量,甚至处理巨大的数据集。

不止于处理器平台本身,英特尔目前在面向人工智能优化的软件,以及市场就绪型人工智能解决方案两个维度,都建立起了差异化的市场优势。

例如在软件方面,英特尔2019年2月进行的 OpenVINO/ResNet50 INT8 性能测试显示,使用 OpenVINO或TensorFlow和英特尔深度学习加速技术时,人工智能推理性能可提高多达 3.75 倍。

今天,英特尔已经携手解决方案提供商,构建了一系列的精选解决方案。这些方案预先进行了配置,并对工作负载进行了优化。这就包括了如基于人工智能推理的英特尔精选解决方案,以及面向在面向在Apache Spark上运行的BigDL的英特尔精选解决方案等。

这些变化和方案的出现对于那些希望能从整体业务视角,去观察人工智能进展的机构或企业的管理层显然也很有意义——如果只通过优化,就能在一个通用平台上完成所有人工智能的探索和落地,那么投资的价值就能够实现最大化。

许多企业做出了这样的选择,GE医疗就是其中一家。作为GE集团旗下的医疗健康业务部门,它构建了一个人工智能医学影像部署架构。

通过采用英特尔至强可扩展处理器,和英特尔固态盘,以及多项英特尔关键技术——例如英特尔深度学习开发工具包,和面向深度神经网络的英特尔数学核心函数库等;GE医疗收获了未曾预料到的成果:

这一解决方案最终比基础解决方案的推理速度提升了多达14倍,且超过了GE原定推理目标5.9倍。

责任编辑:xj

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器人
    +关注

    关注

    206

    文章

    26964

    浏览量

    201281
  • 神经网络
    +关注

    关注

    42

    文章

    4562

    浏览量

    98643
  • 智能化
    +关注

    关注

    15

    文章

    4423

    浏览量

    54071
收藏 人收藏

    评论

    相关推荐

    TSMaster 序列发送模块在汽车开发测试中的应用

    众所周知,序列发送模块可以不需要脚本代码实现测试中特定控制报文序列的发送,该模块多用于循环顺序控制的测试案例中。序列发送模块的常用场景,主要是针对一些新开发的产品需要通过该模块来验证产
    的头像 发表于 02-19 14:00 163次阅读
    TSMaster <b class='flag-5'>序列</b>发送模块在汽车开发测试中的应用

    ICLR 2024高分投稿:用于一般时间序列分析的现代纯卷积结构

    这篇是 ICLR 上用 TCN 来做一般的时间序列分析的论文,在 Rebuttal 之后的分数为 888,算得上是时间序列领域相关的论文中最高分那一档了。本文提出了一个 ModernTCN 的模型
    的头像 发表于 12-18 16:05 421次阅读
    ICLR 2024高分投稿:<b class='flag-5'>用于</b>一般时间<b class='flag-5'>序列</b>分析的现代纯卷积结构

    序列的z变换为什么会出现一对相互共轭的复数零点?

    序列的z变换为什么会出现一对相互共轭的复数零点? 实序列的Z变换是一种离散时间傅里叶变换,用于将离散时间域中的信号转换为复平面的频率域表示。实序列是指其值只能是实数的
    的头像 发表于 11-08 17:46 1821次阅读

    FPGA电路实现:m序列及应用

    m序列简介 m序列是一种常用的伪随机序列,由具有反馈函数的移位寄存电路产生,具有周期性,一旦反馈表达式及移位寄存的初值(又称为种子)给定
    发表于 11-06 17:03

    时间序列的基础模型像自然语言处理那样存在吗

    时间序列预测领域在最近的几年有着快速的发展,比如N-BEATS、N-HiTS、PatchTST和TimesNet。 大型语言模型(LLM)最近在ChatGPT等应用程序中变得非常流行,因为它们可以
    的头像 发表于 11-03 10:15 310次阅读
    时间<b class='flag-5'>序列</b>的基础<b class='flag-5'>模型</b>像自然语言处理那样存在吗

    如何用C语言进行json的序列化和反序列

    json是目前最为流行的文本数据传输格式,特别是在网络通信上广泛应用,随着物联网的兴起,在嵌入式设备上,也需要开始使用json进行数据传输,那么,如何快速简洁地用C语言进行json的序列化和反序列
    的头像 发表于 10-07 11:05 814次阅读

    顺序功能图中常见序列

    在顺序功能图中除了前面使用过的单序列和循环序列外,还有并行序列、选择序列、跳转序列和混合序列,本
    的头像 发表于 10-01 10:53 1071次阅读
    顺序功能图中常见<b class='flag-5'>序列</b>

    如何使用Serde进行序列化和反序列

    Serde 是一个用于序列化和反序列化 Rust 数据结构的库。它支持 JSON、BSON、YAML 等多种格式,并且可以自定义序列化和反序列
    的头像 发表于 09-30 17:09 830次阅读

    什么是序列化 为什么要序列

    什么是序列化? “序列化”(Serialization )的意思是将一个对象转化为字节流。 这里说的对象可以理解为“面向对象”里的那个对象,具体的就是存储在内存中的对象数据。 与之相反的过程是“反序列
    的头像 发表于 09-14 17:22 1478次阅读
    什么是<b class='flag-5'>序列</b>化 为什么要<b class='flag-5'>序列</b>化

    FPGA学习-序列检测器

    点击上方 蓝字 关注我们 一、前言 在数字电路中,序列检测器(Sequence Detector)是指一种特殊类型的电路,用于寻找输入信号中一定模式的子序列。该模式可以是任意模式,包括重复模式、连续
    的头像 发表于 08-29 10:20 579次阅读
    FPGA学习-<b class='flag-5'>序列</b>检测器

    用于配置两个QSPI将序列数据比特传输到其它设备

    应用程序:M480系列微控制(MCU)同时发送 QSPI 4 序列数据比特时使用此示例代码。 BSP 版本: M480 BSP CMSIS V3.05.001 硬件
    发表于 08-29 06:38

    神经网络模型用于解决什么样的问题 神经网络模型有哪些

    下一个单词或者下一句话的概率,从而建立起一个能够捕捉序列数据中语言模式的模型,从而用于自然语言生成、机器翻译、文本分类等任务。 序列标注任务:神经
    的头像 发表于 08-03 16:37 4027次阅读

    UVM中的可重用序列

    众所周知,序列由几个数据项组成,它们共同构成了一个有趣的场景。序列可以是分层的,从而创建更复杂的方案。在最简单的形式中,序列应该是 uvm_sequence 基类的派生,方法是指定请求和响应项类型参数,并使用要执行的特定方案实现
    的头像 发表于 05-29 09:50 401次阅读

    UVM中的虚拟序列:为什么,如何?

    测试将使用此序列器来处理序列(如上一篇博客文章中所述)。在这里,我们可能不需要虚拟序列(或虚拟序列器)。
    的头像 发表于 05-29 09:46 466次阅读

    在哪里可以找到qspiflash_config.memConfig.lookupTable中序列到FLEXSPI中LUT的映射?

    - 0x56010100,但 SDK 使用的是 0x56010400。 LUT 序列在不同的 LUT 位置结束,与我从表 9-15 中期望的位置不同。是因为版本不同吗?在哪里可以找到 qspiflash_config.memConfig.lookupTable 中序列到
    发表于 05-17 06:40