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

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

3天内不再提示

利用NVIDIA Volta将文本实时生成自然语音

星星科技指导员 来源:NVIDIA 作者:NVIDIA 2022-04-07 10:08 次阅读

这篇文章,旨在为具有深入学习专业水平的开发人员准备,将帮助您生成一个准备生产、人工智能、文本到语音的模型。

几十年来,将文本实时转换为高质量、自然发音的语音一直是一项具有挑战性的任务。最先进的语音合成模型是基于参数神经网络 1 。文本到语音( TTS )合成通常分两步完成。

第一步将文本转换成时间对齐的特征,如 mel-spe CTR 图或 F0 频率等语言特征;

第二步将时间对齐的功能转换为音频

优化的 Tacotron2 模型 2 和新的 WaveGlow 模型 1 利用 NVIDIA Volta 上的 张量核 和图灵 GPUs 将文本实时转换为高质量的自然发音语音。生成的音频具有清晰的人声,没有背景噪音。

下面是一个使用此模型可以实现的示例:

在遵循 Jupyter 笔记本 中的步骤之后,您将能够为模型提供英语文本,并且它将生成一个音频输出文件。所有重现结果的脚本都发布在我们的 NVIDIA 深度学习示例 存储库的 GitHub 上,其中包含几个使用张量核心的高性能培训配方。此外,我们还开发了一个 Jupyter 笔记本 ,供用户创建自己的容器映像,然后下载数据集,逐步重现训练和推理结果。

模型

我们的 TTS 系统是两个神经网络模型的组合:

从“ 基于 Mel-Spe CTR 图预测的条件波网自然合成 TTS ”改进的 Tacotron 2 (图 1 )模型;

来自“ WaveGlow :一种基于流的语音合成生成网络 ”的基于流的神经网络模型。

Tacotron 2 和 WaveGlow 模型构成了一个 TTS 系统,用户可以在没有任何附加韵律信息的情况下从原始文本合成自然发音的语音。

Tacotron 2 型号

Tacotron 2 2 是一种直接从文本合成语音的神经网络结构。该系统由一个递归的序列到序列特征预测网络组成,该网络将字符嵌入映射到 mel 尺度的 spe CTR 图,然后由一个改进的 WaveNet 模型作为声码器,从这些 spe CTR 图合成时域波形,如图 1 所示。

图 1 : Tacotron 2 系统架构框图 1

网络由一个编码器(蓝色)和一个解码器(橙色)组成。编码器将一个字符序列转换成一个隐藏的特征表示,作为解码器的输入来预测 spe CTR 图。输入文本(黄色)是使用学习的 512 维字符嵌入来呈现的,它通过三个卷积层(每个包含 512 个形状为 5 × 1 的滤波器)的堆栈,然后进行批量规范化和 ReLU 激活。编码器输出被传递到注意力网络( gray ),该网络将完整编码序列总结为每个解码器输出步骤的固定长度上下文向量。

解码器是一个自回归递归神经网络,它从编码的输入序列中一次一帧地预测 mel-spe CTR 图。前一个时间步的预测首先通过一个包含两个完全连接的 256 个隐藏 ReLU 单元的层的小 pre 网络。 prenet 输出和注意力上下文向量被连接起来,并传递到一个由两个 LSTM 层组成的堆栈,其中包含 1024 个单元。通过线性变换,将 LSTM 输出与注意上下文向量的连接进行投影,以预测目标 spe CTR 图帧。最后,将预测的 mel-spe CTR 图通过一个 5 层卷积后网络,该网络预测一个残差来加入预测,以改善整体重建。每个 post-net 层由 512 个形状为 5 × 1 的过滤器组成,并进行批量标准化处理,除最后一层外,所有过滤器均激活。

我们实现的 Tacotron 2 模型与 1 中描述的模型不同,我们使用:

退出而不是分区,以使 LSTM 层正则化;

用 WaveGlow 模型 2 代替 WaveNet 来合成波形。

WaveGlow 模型

WaveGlow 1 是一种基于流的网络,能够从 mel-spe CTR 图生成高质量的语音。 WaveGlow 结合了 Glow 5 和 WaveNet 6 的见解,以提供快速、高效和高质量的音频合成,而无需自动回归。 WaveGlow 只使用一个网络实现,只使用一个单一的成本函数进行训练:使训练过程简单而稳定。我们当前的模型以 55 * 22050 = 1212750 的速度合成样本,这比每秒 22050 个样本的“实时”要快 55 倍。平均意见得分( MOS )表明,它提供的音频质量与在同一数据集上训练的最佳公开可用 WaveNet 实现一样好。

WaveGlow 是一种生成模型,它通过从分布中采样来生成音频。为了使用神经网络作为生成模型,我们从一个简单的分布中提取样本,在我们的例子中,是一个零均值的球面高斯分布,其维数与我们期望的输出相同,然后将这些样本通过一系列层将简单分布转换为具有期望分布的分布。在这种情况下,我们根据 mel-spe CTR 图对音频样本的分布进行建模。

如图 2 所示,对于通过网络的前向传递,我们将八个音频样本组作为向量,“压缩”操作,如 Glow 5 所示。然后我们通过几个“流程步骤”处理这些向量。这里的流动步骤由可逆的 1 × 1 卷积和仿射耦合层组成。在仿射耦合层中,一半的信道作为输入,然后产生乘法和加法项,用于缩放和平移剩余的信道。

图 2 : WaveGlow 网络 2

启用自动混合精度

混合精度 通过以半精度格式执行操作,同时以单精度( FP32 )存储最少的信息,从而在网络的关键部分尽可能多地保留信息,从而显著提高了计算速度。启用混合精度利用了 Volta 和 Turing GPUs 上的 张量核 ,在训练时间上提供了显著的加速——在运算最密集的模型架构上,整体加速高达 3 倍。

使用 混合精度训练 之前需要两个步骤:

在适当的情况下移植模型以使用 FP16 数据类型;

手动添加损耗缩放以保持较小的渐变值。

通过使用 PyTorch 中的自动混合精度( AMP )库, APEX 中启用了混合精度,该库在检索时将变量强制转换为半精度,同时以单精度格式存储变量。为了在反向传播中保持较小的梯度值,应用渐变时必须包含 损耗标度 步骤。在 PyTorch 中,通过使用 AMP 提供的 scale _ loss ()方法,可以很容易地应用损耗缩放。要使用的缩放值可以是 dynamic 或 fixed 。

通过在训练脚本中添加– amp run 标志,可以启用张量核心的混合精度训练,您可以在我们的 Jupyter 笔记本 中看到示例。

培训业绩

表 1 和表 2 比较了采用 PyTorch -19 。 06-py3 NGC 容器 在带有 8-V100 16GB GPUs 的 NVIDIA DGX-1 上使用改进的 Tacotron 2 和 WaveGlow 模型的训练性能。在整个训练周期内,平均性能数( Tacotron 2 的输出 mel spe CTR 图每秒, WaveGlow 每秒输出样本数)。

表 2 : WaveGlow 模型的训练性能结果

如表 1 和表 2 所示,使用张量核进行混合精度训练可以实现显著的加速,并且可以有效地扩展到 4 / 8 GPUs 。混合精度训练也保持了与单精度训练相同的精度,并允许更大的批量。语音质量取决于模型大小和训练集大小;使用具有自动混合精度的张量核,可以在相同的时间内训练出质量更高的模型。

考虑到高质量所需的模型大小和培训量, GPUs 提供了一个最合适的硬件架构,并将吞吐量、带宽、可伸缩性和易用性进行了最佳组合。

推理性能

表 3 和表 4 分别显示了从 1-V100 和 1-T4 GPU 上的 1000 次推理运行中收集的 Tacotron2 和 WaveGlow 文本到语音系统的推理统计数据。从 Tacotron2 推断开始到 WaveGlow 推断结束,测量潜伏期。这些表包括平均延迟、标准偏差和延迟置信区间(百分比值)。吞吐量是以每秒生成的音频样本数来衡量的。 RTF 是一个实时因子,它告诉我们在 1 秒钟的壁时间内产生了多少秒的语音。

表 3 : 1-V100 GPU 上 Tacotron2 和 WaveGlow 系统的推断统计

与 FP32 相比,我们可以看到混合精度推理具有较低的平均延迟和延迟置信区间(百分比值),同时实现更高的吞吐量并生成更长的平均 RTF ( 1 秒壁时间内的语音秒数)。

表 4 : 1-T4 GPU 上 Tacotron2 和 WaveGlow 系统的推断统计

一步一步运行 Jupyter 笔记本

为了达到上述结果:

按照 GitHub 上的脚本操作或逐步运行 Jupyter 笔记本 来训练 Tacotron 2 和 WaveGlow v1 。 5 模型。在 Jupyter 笔记本 中,我们提供了完全自动化的脚本来下载和预处理 LJ 语音数据集 ;

数据准备步骤完成后,使用提供的 Dockerfile 构建修改后的 Tacotron 2 和 WaveGlow 容器,并在容器中启动一个分离的会话;

要使用带张量核心的 AMP 或使用 FP32 训练我们的模型,请使用 Tacrotron 2 的默认参数和使用单个 GPU 或多个 GPUs 的 WaveGlow 模型执行训练步骤。

Training

Tacotron2 和 WaveGlow 模型分别独立地进行训练,两个模型在训练过程中通过短时傅立叶变换( STFT )得到 mel-spe CTR 图。这些 mel-spe CTR 图用于 Tacotron 2 情况下的损耗计算,以及在波辉光的情况下作为网络的调节输入。

整个验证数据集的平均损失是训练损失的平均值。对于 Tacotron 2 模型,性能是以每秒的总输入令牌数来报告的,而对于 WaveGlow 模型,则是以每秒的总输出样本数来报告的。在输出日志中,这两个度量值都被记录为 train _ iter _ items / sec (每次迭代后)和 train _ epoch _ items / sec (在 epoch 上的平均值)。结果在整个训练周期内取平均值,并在训练中包含的所有 GPUs 上求和。

默认情况下,我们的训练脚本将使用张量 cCores 启动混合精度训练。您可以通过删除– fp16 run 标志来更改此行为。

Inference

在训练了 Tacotron 2 和 WaveGlow 模型,或者下载了各自模型的预先训练的检查点之后,您可以执行以文本为输入的推理,并生成一个音频文件。

您可以根据文本文件的长度自定义文本文件的内容,可能需要将– max decoder steps 选项增加到 2000 。 Tacotron 2 模型是在 LJ 语音数据集 上训练的,音频样本不超过 10 秒,相当于 860 个 mel spe CTR 图。因此,这种推断在生成相似长度的音频样本时可以很好地工作。我们将 mel-spe CTR 图长度限制设置为 2000 (约 23 秒),因为实际上它仍然可以生成正确的声音。如果需要,用户可以将较长的短语分成多个句子,并分别合成它们。

关于作者

Maggie Zhang 是 NVIDIA 的深度学习工程师,致力于深度学习框架和应用程序。她在澳大利亚新南威尔士大学获得计算机科学和工程博士学位,在那里她从事 GPU / CPU 异构计算和编译器优化。

Grzegorz Karch 是 NVIDIA 深度学习软件组的高级 CUDA 算法工程师,专注于语音合成的生成模型。 Grzegorz 拥有德国斯图加特大学计算机科学博士学位,在那里他的研究集中在科学可视化上。

审核编辑:郭婷

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

    关注

    14

    文章

    4862

    浏览量

    102739
  • 深度学习
    +关注

    关注

    73

    文章

    5481

    浏览量

    120918
收藏 人收藏

    评论

    相关推荐

    如何使用 Llama 3 进行文本生成

    使用LLaMA 3(Large Language Model Family of AI Alignment)进行文本生成,可以通过以下几种方式实现,取决于你是否愿意在本地运行模型或者使用现成的API
    的头像 发表于 10-27 14:21 200次阅读

    NVIDIA文本嵌入模型NV-Embed的精度基准

    NVIDIA 的最新嵌入模型 NV-Embed —— 以 69.32 的分数创下了嵌入准确率的新纪录海量文本嵌入基准测试(MTEB)涵盖 56 项嵌入任务。
    的头像 发表于 08-23 16:54 1921次阅读
    <b class='flag-5'>NVIDIA</b><b class='flag-5'>文本</b>嵌入模型NV-Embed的精度基准

    nlp自然语言处理基本概念及关键技术

    、问答系统、文本摘要等众多领域有着广泛的应用。 1. NLP的基本概念 1.1 语言模型 语言模型是NLP的基础,它用于描述一个句子在自然语言中出现的概率。语言模型通常用于文本生成、机器翻译、
    的头像 发表于 07-09 10:32 485次阅读

    语音识别和自然语言处理的区别和联系

    语音识别和自然语言处理是人工智能领域的两个重要分支,它们在很多方面有着紧密的联系,同时也存在一些明显的区别。本文详细介绍语音识别和自然语言
    的头像 发表于 07-05 10:09 1277次阅读

    Transformer模型在语音识别和语音生成中的应用优势

    自然语言处理、语音识别、语音生成等多个领域展现出强大的潜力和广泛的应用前景。本文将从Transformer模型的基本原理出发,深入探讨其在语音
    的头像 发表于 07-03 18:24 937次阅读

    自然语言处理是什么技术的一种应用

    自然语言处理(Natural Language Processing,简称NLP)是人工智能和语言学领域的一个分支,它涉及到使用计算机技术来处理、分析和生成自然语言文本
    的头像 发表于 07-03 14:18 573次阅读

    WT3000T8-TTS语音合成芯片及应用场景介绍

    TTS语音合成芯片是一种能够文本信息转化为自然语音的专用芯片。它通过内置的语音合成算法和音频处
    的头像 发表于 04-18 18:03 806次阅读

    NVIDIA生成式AI研究实现在1秒内生成3D形状

    NVIDIA 研究人员使 LATTE3D (一款最新文本转 3D 生成式 AI 模型)实现双倍加速。
    的头像 发表于 03-27 10:28 458次阅读
    <b class='flag-5'>NVIDIA</b><b class='flag-5'>生成</b>式AI研究实现在1秒内<b class='flag-5'>生成</b>3D形状

    Cadence与NVIDIA联合推出利用加速计算和生成式AI重塑设计

    中国上海,2024 年 3 月 25 日——楷登电子(美国 Cadence 公司,NASDAQ:CDNS)近日宣布,公司深化与 NVIDIA 在 EDA、系统设计与分析、数字生物学和人工智能领域的多年合作,推出两款变革性解决方案,利用
    的头像 发表于 03-25 14:36 550次阅读

    NVIDIA Isaac生成式AI应用于制造业和物流业

    NVIDIA Isaac 机器人平台利用最新的生成式 AI 和先进的仿真技术,加速 AI 机器人技术的发展。
    的头像 发表于 03-22 10:06 487次阅读
    <b class='flag-5'>NVIDIA</b> Isaac<b class='flag-5'>将</b><b class='flag-5'>生成</b>式AI应用于制造业和物流业

    SAP与NVIDIA携手加速生成式AI在企业应用中的普及

    SAP SE 和 NVIDIA 宣布深化合作,致力于加速企业客户在 SAP 云解决方案和应用组合中利用数据和生成式 AI 的变革力量。
    的头像 发表于 03-22 10:02 559次阅读

    NVIDIA ACE 中使用 AI 动画和语音功能打造逼真的虚拟形象

    NVIDIA 近日公布了 NVIDIA Avatar Cloud Engine(ACE) 的一系列技术,增强了 AI 虚拟形象和数字人的真实感和可访问性,这些新的动画和语音功能实现了更自然
    的头像 发表于 12-15 15:50 534次阅读
    在 <b class='flag-5'>NVIDIA</b> ACE 中使用 AI 动画和<b class='flag-5'>语音</b>功能打造逼真的虚拟形象

    如何在NVIDIA ACE中使用AI动画和语音功能打造逼真的虚拟形象呢?

    NVIDIA 近日公布了 NVIDIA Avatar Cloud Engine(ACE)的一系列技术,增强了 AI 虚拟形象和数字人的真实感和可访问性,这些新的动画和语音功能实现了更自然
    的头像 发表于 12-15 15:48 610次阅读
    如何在<b class='flag-5'>NVIDIA</b> ACE中使用AI动画和<b class='flag-5'>语音</b>功能打造逼真的虚拟形象呢?

    语音数据集:AI语音技术的灵魂

    提升语音识别和生成能力:语音数据集为AI模型提供了丰富的语音样本,通过训练和学习这些数据,AI可以更好地理解和模拟人类的语音特征,从而提高
    的头像 发表于 12-14 14:33 954次阅读

    离线语音识别及控制是怎样的技术?

    引言:  随着人工智能的飞速发展,离线语音识别技术成为了一项备受瞩目的创新。离线语音识别技术能够人的语音转化为可理解的文本,无需依赖网络连
    发表于 11-24 17:41