工程经验分享 Incremental FastPitch

分享 NVIDIA 基于 GPU 的 TTS 解决方案介绍。

1. 基于 FastPitch+Hifi-GAN 的 Streaming TTS 效果优化

NVIDIA 在 TTS 领域也做了一些供大家参考的工作,例如提供了高效的流式 TTS 部署方案,利用 TensorRT 加速模型推理速度,并通过 Triton Inference Server 实现了高效的流水线。今年,我们对流式 TTS 的效果进行了提升,主要集中在两个方面。

  • 首先 我们发现许多 TTS 模型采用并行模型,其结构通常是非自回归的,并使用卷积等网络层一次性生成所有音频帧。然而,这种并行模型并不适合流式 TTS 合成。尤其在 chunk 之间的接缝处可能存在抖动瑕疵。因此,我们引入了一种 Incremental FastPitch 的方法,将完全并行的 FastPitch 转换为基于 chunk 的 FastPitch。通过使用 casual 卷积替代常规普通卷积,并采用基于 chunk 的 mask MultiHeadAttention,可以控制 chunk size 和 history size。这种 Mask 使得每个 chunk 内的帧不仅可以看到 chunk 内的其他帧,还能够看到之前 chunk 的帧,通过这种方式实现了基于 chunk 的 FastPitch 并且使得 chunk 之间的信息可以互相关联提升流式 TTS 的质量。Incremental FastPitch 的训练过程仍然可以利用带 mask 的注意力机制来实现并行运算。在推理过程中,可以逐个 chunk 地生成,实现类似迭代的自回归生成过程,从而在流式生成中考虑到历史信息,提升生成效果。

  • 其次 我们采用了 stream GAN 逻辑,即在 Hifi GAN 的训练中,利用 discriminator 强制学习如何让 Generator 生成两个能够良好拼接的连续音频 chunk。

基于先前提到的两种流式 TTS 优化方案,我们开发了相应的推理服务框架,同样基于 Triton Inference Server 加上 TensorRT。

在这个框架中,使用 Triton 的 C++ custom backend 实现了高性能的 TTS 调度器。该调度器负责组织整个 TTS 管线的各个模块,并在这个过程中实现了“Inflight batching”,即连续批处理。新进来的请求可以随时加入到正在执行的 batch 中。新合成的音频 chunk 会以流式方式返回给 Triton Client。已完成的请求会立即终止,为新到达的请求腾出 slot。

此外,我们使用 Triton 的 Ensemble Model 功能以零代码的方式组合了需要同时运行的多个模块,如 Front End、声学模型的编码器总是要对输入的文本共同做一次处理。我们使用 Triton Ensemble 将它们无缝组合在一起,而无需编写任何串联代码,实现了零代码的模型串联功能。对于声学模型的解码器、vocoder 以及最后的 Chunk 拼接的 Blender,同样使用 Triton ensemble 功能以零代码的方式将它们组合在一起。最后,对于每个模型,包括声学模型的 encoder 和 vocoder,都使用 TensorRT 来加速推理。

2. 关于声音克隆的参考工作

首先,我们开发了一个 Multi-speaker FastPitch 的训练方案,并在开源项目中提供了这个解决方案。在我们的实验中,混合了三个开源数据集(AIShell 3、CSS 10 Chinese、LJSpeech),共计 220 个 Speaker,进行了训练。

获得了多说话人的 FastPitch 模型后,则可进入声音克隆的 Finetuning 阶段。用户首先录制 20 句话。接着,根据用户的声音在训练集中找到一个与之最相似的 Speaker,用其声音的 embedding 初始化用户的 Speaker Embedding。然后,使用用户上传的 20 句话进 finetuning,保持 FastPitch 不变,对 finetuning Speaker 的 Embedding 进行微调。最终,该模型使用 Multi-speaker FastPitch 生成与用户声音相似的音频效果。

为了实现这一思路的工程化,我们同样采用 Triton Inference Server 进行部署。在此我们配置了两个 Triton Server,一个用于声音克隆,另一个用于 TTS 生成。用户录制的 20 句话可以通过 Triton 的客户端上传到声音克隆 Triton Server。在声音克隆 Triton Server 上,运行声音克隆的 finetuning 过程,使用 Triton 的 Python backend,在其中引用 PyTorch 包来实现 finetuning 流程。在这个管线中,能够同时处理多个用户的请求,以 batch 的方式进行 finetuning 提高 GPU 利用率和并发效率。

最后,将每个 Speaker 的 Embedding 返回给客户端,并将 finetuning 完成的 Speaker Embedding 存储在 Embedding Pool 中。用户想要生成自己的声音只需获取返回的 Speaker Embedding,并访问我们的 Triton TTS Server,即我们部署的 Multi-speaker TTS 模型。该模型使用 fine-tuning 完成的 Speaker Embedding 生成与用户声音相似的音频。这就是我们的声音克隆工作的流程。

原文地址:一文搞懂 NVIDIA 在 GPU 上高效部署语音 AI 模型的最新应用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/656223.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【软考- 系统集成项目管理工程师2】

第一章-信息化知识-信息与信息化 今日座右铭:最好的偷懒方式,就是一次做好。 文章目录 第一章-信息化知识-信息与信息化前言一、信息1、信息的基本概念2、信息的传输模型3、信息的质量属性 二、信息系统1、系统的基本概念2、信息系统的生命周期 三、信息…

IDEA 安装阿里Java编码规范插件

1.File>Settings 2.安装之后重启 开发过程中如果有不符合规范的地方,会自动出现提示

【C语言/数据结构】排序(归并排序|计数排序|排序算法复杂度)

🌈个人主页:秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343🔥 系列专栏:《数据结构》https://blog.csdn.net/qinjh_/category_12536791.html?spm1001.2014.3001.5482 ​​​​ 目录 归并排序 代码实现&#xf…

pin to pin替代TI DRV8872的GLOBALCHIP直流电机驱动芯片GC8872,低成本、宽电压,内置电荷泵,短地短电源保护,限流

在现如今电机驱动芯片处于持续涨价的状态下,并且供货期货期长,偶尔缺货的状态下。为了降低设计成本,第一时间设计出优秀的产品占据市场高位。我这边推荐使用浙江GLOBALCHIP国产电机驱动芯片进行替换设计。供货稳定、价格低廉。GC8872是GLOBAL…

Flink实战三_TableAPISQL

接上文:Flink实战二_DataStream API 1、Table API和SQL是什么? 接下来理解下Flink的整个客户端API体系,Flink为流式/批量处理应用程序提供了不同级别的抽象: 这四层API是一个依次向上支撑的关系。 Flink API 最底层的抽象就是有…

CSS之webkit内核中的属性text-stroke

让我为大家介绍一下text-stroke 大家是否想过要弄一个描边过的文字&#xff0c;接下来&#xff0c;text-stroke就可以为你解决 text-stroke是一个复合属性&#xff0c;里面有两个参数&#xff1a;描边的尺寸 描边的颜色 <!DOCTYPE html> <html lang"en">…

[AI]文心一言爆火的同时,ChatGPT带来了这么多的开源项目你了解吗

前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家&#xff1a;https://www.captainbed.cn/z ChatGPT体验地址 文章目录 前言4.5key价格泄漏ChatGPT4.0使用地址ChatGPT正确打开方式最新功能语音助手存档…

蓝桥杯备战——10.超声波模块

1.分析原理图 蓝桥杯单片机板子的原理图做的简直是依托答辩&#xff0c;乱糟糟的不说还弄成黑白的&#xff0c;明明很简单的东西&#xff0c;弄成一大堆。 可以看到&#xff0c;J2跳线帽如果P10接N_A1,P11接N_B1就是用作超声波功能。N_A1用作发生超声波功能&#xff0c;而N_B1…

Android开发之UI控件

TextView 实现阴影效果的textview android:shadowColor"#ffff0000" 设置阴影颜色为红色android:shadowRadius"3" 设置阴影的模糊程度为3android:shadowDx"10" 设置阴影在水平方向的偏移android:shadowDy"10" 设置阴影在竖直方向的偏…

PyFlink使用教程,Flink,Python,Java

环境准备 环境要求 Java 11 Python 3.7, 3.8, 3.9 or 3.10文档&#xff1a;https://nightlies.apache.org/flink/flink-docs-release-1.17/zh/docs/dev/python/installation/ 打开 Anaconda3 Prompt > java -version java version "11.0.22" 2024-01-16 LTS J…

Nginx 1.25配置QUIC和HTTP3

Nginx 1.25配置QUIC和HTTP/3 Nginx在编译时需要配置相应的SSL库&#xff0c;以确保能够支持HTTP3.0和HTTP2.0等基于HTTPS的协议。这些加密算法主要由OpenSSL提供。另外&#xff0c;BoringSSL是谷歌创建的OpenSSL分支&#xff0c;专门用于支持TLS 1.3的UDP协议的0-RTT数据传输加…

2024 年人工智能(AI)会有哪些新趋势和新突破?无际Ai分享

随着科技的不断发展&#xff0c;人工智能领域正在以惊人的速度迈向前所未有的高度。在 2024 年&#xff0c;我们可以期待看到多个领域的重大突破&#xff0c;这将为人工智能技术带来新的应用和可能性。 以下是一些可能出现的新领域和突破性进展&#xff1a; 强化学习应用拓展&…

MySQL前百分之N问题--percent_rank()函数

PERCENT_RANK()函数 PERCENT_RANK()函数用于将每行按照(rank - 1) / (rows - 1)进行计算,用以求MySQL中前百分之N问题。其中&#xff0c;rank为RANK()函数产生的序号&#xff0c;rows为当前窗口的记录总行数 PERCENT_RANK()函数返回介于 0 和 1 之间的小数值 selectstudent_…

MicrosoftEdge浏览器打开网页出现“此网站被人举报不安全”问题时解决办法

1&#xff1a;有时候不知怎么回事用电脑自带的微软浏览器进行搜索会出现以下的问题 这可能是由于我们的浏览器安全审查过于严格引起的 Windows10正式版系统下&#xff0c;使用Edge浏览器浏览网页时候&#xff0c;发现整个页面突然变成了红色&#xff0c;显示“已有人举报此网站…

【高效开发工具系列】markdown转HTML

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

打击者H5小游戏

欢迎来到程序小院 打击者 玩法&#xff1a;点击飞机上下左右移动躲过子弹射击&#xff0c;打掉上方敌人飞机&#xff0c; 遇到药包会增加能量&#xff0c;弹药包会升级武器&#xff0c;快去射击吧^^。开始游戏https://www.ormcc.com/play/gameStart/262 html <div id"…

java8 Duration类学习

Duration类 官网地址 基于时间的时间量&#xff0c;例如“34.5秒”。 此类以秒和纳秒为单位对时间的量或量进行建模。它可以使用其他基于持续时间的单位访问&#xff0c;如分钟和小时。此外&#xff0c;可以使用DAYS单位&#xff0c;并将其视为完全等于24小时&#xff0c;从…

C语言第十三弹---VS使用调试技巧

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】 VS调试技巧 1、什么是bug 2、什么是调试&#xff08;debug&#xff09;&#xff1f; 3、Debug和Release​编辑​ 4、VS调试快捷键 4.1、环境准备 4.2、调试…

计算机毕业设计 | SpringBoot+vue学生成绩管理系统教务管理系统

1&#xff0c;项目背景 随着我国高等教育的发展&#xff0c;数字化校园将成为一种必然的趋势&#xff0c;国内高校迫切需要提高教育工作的质量与效率&#xff0c;学生成绩管理工作是高校信息管理工作的重要组成部分&#xff0c;与国外高校不同&#xff0c;他们一般具有较大规模…

快来建服组队一起捕捉帕鲁

2024年初最火的steam游戏《幻兽帕鲁》&#xff0c;大家都已经玩上了吧&#xff1f; 如何跟朋友组队一起在广阔的世界中捕捉神奇的生物“帕鲁”&#xff0c;快来金山云解锁吧~ 第一步&#xff1a;创建游戏服务器 部署一台幻兽帕鲁云服务器&#xff1a;在控制台上选择离您更近…