写点什么

Facebook 发布部署在 CPU 上的高效、实时文本转语音系统,速度提高 160 倍

  • 2020-05-21
  • 本文字数:2593 字

    阅读完需:约 9 分钟

Facebook发布部署在CPU上的高效、实时文本转语音系统,速度提高160倍

实时文本语音转换通常要在 GPU 或其他专用硬件上实现,但现在,在 CPU 上也可以实现。


近日,Facebook AI 宣布已经在 CPU 服务器是上创建和部署了一款实时神经网络文本转语音系统,音频质量能达到人类水平。以前的系统通常依赖于 GPU 或其他专用硬件来实时生成高质量的语音,但通过将模型进行广泛地优化,该系统可以将合成速度比基准速度提高 160 倍,且能够在 500 毫秒内在 CPU 上生成一秒钟的音频。据介绍,该系统已经部署在了 Facebook 的视频通话设备 Portal 上,并可以在 Facebook 多个应用程序上使用,包括支持视障人士阅读和 VR 体验。


当前的文本语音转换系统(TTS)在利用神经网络模拟人类语音方面已经做过很多尝试,为了生成类人音频,一秒钟的音频需要 TTS 系统输出 2.4 万个样本,有时甚至更多。高质量模型的体量和复杂性要求系统进行大量计算,而这些计算通常需要在 GPU 或其他专用硬件上运行。


接下来,Facebook AI 对该系统如何解决核心效率挑战来实现大规模部署的问题进行了详细介绍。

基于神经网络的 TTS 管道


FacebookAI 设计了一个管道,该管道将四个组件(每个组件专注于语音的不同方面)有效地组合成一个强大而灵活的系统,四个组件包括:


  • 一个将输入文本转换为一系列语言学特征的语言前端,例如音素和句子类型。

  • 一个韵律模型,可预测节奏和旋律以创建自然语音的表现力。

  • 一个生成语音频谱表示的声学模型。

  • 一个神经声码器,可根据韵律和频谱特征生成 24 kHz 语音波形。

音律模型

在管道中构建单独的音律模型尤为重要,因为它可以在语音合成时更容易地控制语音风格。音律模型根据一系列语言学特征以及语音风格、说话者和语言嵌入,来预测句子的通话级时长(即速度)和帧级基本频率(即旋律)。它的模型架构由具有基于内容的 global attention 的循环神经网络组成,其上下文向量包含整个句子的语义信息。这样可以使模型生成更真实、自然的音律。


研究人员使用了风格嵌入,可以用现有数据集中的少量额外数据来创建新的语音风格,包括助手型、柔声型、快速型、投射型和正式型。由于不需要为每个风格创建一个单独的模型,所以只需要为每个语音风格提供 30 到 60 分钟的训练数据。

声学模型

为了实现更高的计算效率和高质量的语音,研究者采用了条件神经语音编码器架构,因为它是基于频谱输入进行预测而不是直接从文本或语言特征(例如,像 WaveNet 这样的自回归模型或相当复杂的并行合成网络 Parallel WaveNet)生成音频。他们利用声学模型将语言学和音律信息转化为帧速率频谱特征,并将其作为神经声码器的输入。这种方法使神经声学编码器能够集中处理几个相邻帧中的频谱信息,让研究者能够训练出更轻量级、体量更小的神经声码器。


权衡之下,Facebook 选择了依靠声学模型来生成光谱特征。虽然通常使用的是 80D 高保真 MFCC 或 Log-Mel 特征,但实际上,要预测出逼真的高保真声学特征本身就是一个具有挑战性的任务。为了解决这个频谱特征预测问题,研究人员采用的方法是使用 13D MFCC 特征与基频和 5D 周期性特征相连接,这样能更容易地生成声学模型。

神经声码器

条件神经声码器由两部分组成:


  • 一个卷积神经网络,将输入的特征向量从帧率(大约每秒 200 个预测值)向上采样(或扩展)到采样率(每秒 24000 个预测值)。

  • 一个类似于 WaveRNNN 的递归神经网络,以每秒 2.4 万个采样率自回归合成音频样本(或一次一个样本)。

  • 为了减少量化噪声的影响,神经声码器对 delta-mu-modulated mu-law 音频进行采样预测。


神经声码器的自回归特性要求按顺序生成样本,这对于实时合成来说是个重大挑战。当研究人员开始进行实验时,baseline 实现只能在单 CPU 内核上以约 80 个实时因子(RTF)的合成速度运行,在 80 秒内生成一秒的音频。这样的合成速度对于实时系统来说,实在是太慢了。对于像 Portal 这样的系统的实时功能,必须将其降到 1 RTF 以下。


研究人员在一个 TTS 系统中结合并实现了以下优化技术,最终使合成速度提高了 160 倍,实现了 0.5 RTF。


张量级优化和自定义运算器

在 PyTorch JIT 的帮助下,研究人员从面向训练的 PyTorch 设置迁移到推理优化的环境中。使用编译的算子和各种张量级优化获得了额外的速度提升。

非结构化模型稀疏化

研究人员通过训练,使非结构化模型稀疏化,以此来降低推理计算复杂度。在不降低音频质量的情况下,可以实现 96%的非结构化模型稀疏度——其中 4%的模型参数为非零参数。通过在推理网上使用优化的稀疏矩阵运算符,我们能够将速度提高 5 倍。

分块稀疏化

研究人员通过应用分块稀疏化技术,将非零参数限制在 16x1 的块中,并存储在连续的内存块中,从而进一步简化了参数数据布局。这使得参数数据在内存中布局紧凑,间接寻址量最小化,从而使内存带宽利用率和缓存利用率得到了显著提高。


研究人员在分块稀疏结构上操作了自定义运算符,实现了矩阵的高效存储和计算,使计算量与矩阵中的非零块数成正比。为了在不降低音频质量的前提下,对高块状稀疏度进行优化,通过模型提炼训练稀疏模型,将密集模型作为 teacher 模型。


最后,通过将重运算器分布在同一个 socket 上的多个核心上实现了进一步的加速。通过在训练过程中迫使非零参数分块均匀地分布在参数矩阵上,并在推理过程中将矩阵乘法在多个 CPU 内核之间进行分割和分配来实现。



为了改进收集训练数据的方式,Facebook 研究人员采取了这种依赖于手工生成的语料库的方法,并对该方法进行了调整以便能从大规模、非结构化数据集中选择行。通过语言模型,根据可读性标准对大数据集进行筛选。这种新颖的调整方法使我们能够最大限度地提高语料库中的语音和语序的多样性,同时仍然确保语言是自然的、可读的。这就减少了音频中的注释和录音室的编辑工作,同时提高了 TTS 的质量。通过从更多样化的语料库中自动识别脚本台词,使我们能够快速扩展到新的语言,而无需依赖手工生成的数据集。


新的数据采集方法和神经系统 TTS 系统的结合,帮助我们将语音开发周期(从脚本生成、数据采集到最终的语音交付)从一年多的时间缩短到六个月以内。最近,Facebook 成功地应用新的方法制作出了一款英伦口音的语音,这也是未来即将做出的多种尝试的第一步。


Facebook AI 表示,“很高兴能够提供更高质量的音频,提供比以前扩展性更强的数据采集方式,这样就可以更有效地为社区中的每个人带来更好的语音交互体验。


原文链接:


https://ai.facebook.com/blog/a-highly-efficient-real-time-text-to-speech-system-deployed-on-cpus/


2020-05-21 14:231838
用户头像
李冬梅 加V:busulishang4668

发布了 1063 篇内容, 共 680.4 次阅读, 收获喜欢 1223 次。

关注

评论 1 条评论

发布
用户头像
Facebook在改进语音交互系统方面不断地进行着尝试。
2020-05-21 14:29
回复
没有更多了
发现更多内容

虚拟化解决方案 virtio 的技术趋势与 DPU 实践解读 | 龙蜥技术

OpenAnolis小助手

虚拟化 技术分享 DPU 龙蜥大讲堂 云豹智能

如何实现24/7客户服务自动化?建设智能客服知识库

小炮

怎么用netty开发一个同时提供http和websocket的服务?

风斩断晚霞

Java spring Netty springboot websocket

MDM结合ESB数据集成说明

agileai

数据治理 数据集成 企业服务总线 主数据平台 基础数据方案

揭秘亚马逊云科技软件开发工程师团队

亚马逊云科技 (Amazon Web Services)

软件开发 工程师

元宇宙的十大经济规则

CECBC

图解|高性能服务器设计之缓存系统一致性

C++后台开发

redis 后端开发 Linux服务器开发 高性能服务器 系统缓存

MASA Auth - SSO与Identity设计

MASA技术团队

C# .net 设计 构架 Auth

融云漫话:通信中台

融云 RongCloud

技术分享 | Javaer 如何做单元测试?

LigaAI

Java 单元测试 LigaAI

谁需要实验室内部管理系统?

低代码小观

实验室管理系统 数据管理系统 LIMS实验室信息管理系统 企业管理工具 检查系统服务

ETH合并在即,这次升级将带来哪些机遇?

区块链前沿News

以太坊 eth Hoo

密码学系列之:ASN.1接口描述语言详解

程序那些事

密码学 程序那些事 5月月更 ASN.1

React Echarts 使用教程 - 如何在 React 中加入图表(内附数据看板实战搭建案例)

蒋川

react.js 可视化 eCharts 组件库 图表库

周六晚8点,如何基于 eBPF 技术构建应用可观测平台?

OpenAnolis小助手

Linux 直播 内核 龙蜥社区 sig

打造会“找”主人的麦克风,腾讯个性化语音增强技术荣获2022数博会领先科技成果奖

科技热闻

Hadoop3.0时代,怎么能不懂EC纠删码技术?

个推

大数据 hadoop hadoop3 大数据 开源

AI简报-增强版GAN图像超分:ESRGAN

AIWeker

人工智能 深度学习 5月月更 AI简报

元宇宙用户已准备就绪,但技术瓶颈仍制约其真正“落地”

CECBC

浪潮云应用质效管理系统(AOM)荣获2022数博会领先科技成果“优秀项目”奖

云计算

面向服务的架构

力软低代码开发平台

大数据ETL自动化调度运维专家-TASKCTL

敏捷调度TASKCTL

Docker 大数据 程序员 DevOps 数据仓库

HashSet源码分析-基础结构

zarmnosaj

5月月更

从Oracle日志解析学习数据库内核原理

沃趣科技

oracle 数据库内核

免费领 CRMEB 移动社交电商系统源码与授权

CRMEB

什么是区块哈希?哈希游戏开发技术原理方案(源码搭建)

开发微hkkf5566

直播预告|来啦!「DevOps+MLOps Meetup」火热报名中!

第四范式开发者社区

人工智能 DevOps 极狐GitLab 特征平台 MLOps

【技术干货】代码示例:使用 Apache Flink 连接 TDengine

TDengine

数据库 tdengine

加码布局版式文档垂直赛道,福昕船舶图纸管理系统重磅发布

联营汇聚

【智人智语】史赛克全球数字化、机器人及赋能技术总裁柯若博:世界智能大会是一个非常重要的盛会

InfoQ 天津

【LeetCode】单词距离Java题解

Albert

LeetCode 5月月更

Facebook发布部署在CPU上的高效、实时文本转语音系统,速度提高160倍_数据库_Chetan Gupta_InfoQ精选文章