当前位置: 雪花家园 >  系统资讯 >  使用 NVIDIA Triton 和 TensorRT-LLM 部署 TTS 应用的最佳实践:高效实现文本转语音技术

使用 NVIDIA Triton 和 TensorRT-LLM 部署 TTS 应用的最佳实践:高效实现文本转语音技术

更新时间:2025-06-11 11:41:49作者:xhjaty
针对基于 Diffusion 和 LLM 类别的 TTS 模型,NVIDIA Triton 和 TensorRT-LLM 方案能显著提升推理速度。在单张 NVIDIA Ada Lovelace GPU 上,F5-TTS 模型每秒可生成长达 25 秒的音频;Spark-TTS 在流式合成场景下,首包延迟可低至 200 余毫秒。


Text-to-Speech (TTS) 是智能语音技术的核心组成部分。随着大模型时代的到来,TTS 模型的参数量和计算量持续增长,如何高效利用 GPU 部署 TTS 模型,构建低延迟、高吞吐的生产级应用,已成为开发者日益关注的焦点。


本文将围绕两款 Github 社区流行的 TTS 模型——F5-TTS[1] 和 Spark-TTS[2]——详细介绍运用 NVIDIA Triton 推理服务器和 TensorRT-LLM 框架实现高效部署的实践经验,包括部署方案的实现细节、具体使用方法及最终的推理效果等。开发者可根据不同的应用场景选择合适的方案,并可利用性能分析工具调整配置,以最大化利用 GPU 资源。


方案介绍


当前主流的 TTS 大模型大致可分为两类:非自回归扩散模型和自回归 LLM 模型。非自回归扩散模型因其解码速度快,易于实现高吞吐性能;而自回归 LLM 模型则以更佳的拟人效果和对流式合成的天然支持为特点。实践中,常有方案将两者结合,先使用自回归 LLM 生成语义 Token,再利用非自回归扩散模型生成音频细节。


使用 NVIDIA Triton 和 TensorRT-LLM 部署 TTS 应用的最佳实践:高效实现文本转语音技术

图1: TTS 部署方案结构


F5-TTS


F5-TTS 是一款非自回归扩散 TTS 模型,它基于 DiT (Diffusion Transformer) 和 Flow-matching 算法,移除了传统非自回归 TTS 模型中的 Duration 模块,使模型能直接学习文本到语音特征的对齐。


其推理加速方案利用 NVIDIA TensorRT-LLM 加速计算密集的 DiT 模块,并采用 NVIDIA TensorRT 优化 Vocos 声码器,最后通过 NVIDIA Triton 进行服务部署。


方案地址:

https://github.com/SWivid/F5-TTS/tree/main/src/f5_tts/runtime/triton_trtllm


Spark-TTS


Spark-TTS 是一款自回归 LLM TTS 模型,它采用经过扩词表预训练的 Qwen2.5-0.5B LLM 来预测 Speech Token,并基于 VAE Decoder 重构最终音频。


其部署方案通过 NVIDIA TensorRT-LLM 加速基于 LLM 的语义 Token 预测模块,并借助 NVIDIA Triton 串联其余组件,支持离线合成与流式推理两种模式。


方案地址:

https://github.com/SparkAudio/Spark-TTS/tree/main/runtime/triton_trtllm


方案性能


我们从 WenetSpeech4TTS 测试集[3] 中选取了 26 组 Prompt Audio 和 Target Text 音频文本对,在 Zero-shot 音色克隆任务上测试了模型的推理性能。测试细节如下:


使用 NVIDIA Triton 和 TensorRT-LLM 部署 TTS 应用的最佳实践:高效实现文本转语音技术


F5-TTS


针对 F5-TTS,我们在 Offline 模式下(即直接在本地进行推理,不涉及服务部署和请求调度)测试了 TensorRT-LLM 推理方案的性能:


测试结果如下(Batch Size 固定为 1,因当前 F5-TTS 版本暂不支持 Batch 推理;Flow-matching 推理步数固定为 16):


使用 NVIDIA Triton 和 TensorRT-LLM 部署 TTS 应用的最佳实践:高效实现文本转语音技术


如上表所示,与原生 PyTorch 实现(默认启用 SDPA 加速)相比,NVIDIA TensorRT-LLM 方案在 Ada Lovelace GPU 上实现了约 3.6 倍的加速,每秒可生成的音频时长从 7 秒提升至 25 秒。


Spark-TTS


对于 Spark-TTS,我们在 Client-Server 模式下(即客户端向服务器发送请求)测试了端到端推理服务的性能。测试结果如下(Offline 模式不统计首包延迟,Streaming 模式首包音频长度为 1 秒):


使用 NVIDIA Triton 和 TensorRT-LLM 部署 TTS 应用的最佳实践:高效实现文本转语音技术


上表结果中,LLM 模块默认启用了 TensorRT-LLM 的 inflight batching 模式。为模拟多路并发场景,我们基于 Python asyncio 库实现了一个异步并发客户端。此部署方案在 Ada Lovelace GPU 上,每秒可生成约 15 秒音频,流式模式下的首包延迟低至 200 余毫秒。


快速上手


本节将指导您如何快速部署和测试 F5-TTS 与 Spark-TTS 模型。在此之前,建议您先克隆对应的代码仓库,并进入 runtime/triton_trtllm 目录操作。


F5-TTS


详细步骤请参考 F5-TTS/src/f5_tts/runtime/triton_trtllm/README.md 和 run.sh 脚本。


1. 最简部署 (Docker Compose):这是启动 F5-TTS 服务最快捷的方式。



总结


无论是 F5-TTS 或是 Spark-TTS,都可以看到 NVIDIA Triton 推理服务器和 TensorRT-LLM 框架可以大幅提升 TTS 模型的推理速度,也方便开发者进行模型部署。我们将持续增加对更多语音多模态模型的部署支持。


除了 TTS,NVIDIA 技术团队也为多种社区流行的多模态模型开发了最佳实践,详细方案介绍以及教程,请参阅 mair-hub[5] 项目。


近期我们还将举办一场和该主题相关的在线研讨会,欢迎大家报名参加,共同交流和探讨。


活动信息:


使用 NVIDIA Triton 和 TensorRT-LLM 部署 TTS 应用的最佳实践:高效实现文本转语音技术


活动地址:


https://scrm.nvidia.cn/mF/websiteEditorLandingPage/page/0050a3cc15a248489910cdf136d819ad?pushId=tnwrNs5X6CMJXbYNT4Fbwg1


引用链接


[1] F5-TTS:

https://github.com/SWivid/F5-TTS


[2] Spark-TTS:

https://github.com/SparkAudio/Spark-TTS


[3] WenetSpeech4TTS:

https://arxiv.org/abs/2406.05763


[4] OpenWebUI:

https://github.com/open-webui/open-webui


[5] mair-hub 项目:

https://github.com/nvidia-china-sae/mair-hub


作者


使用 NVIDIA Triton 和 TensorRT-LLM 部署 TTS 应用的最佳实践:高效实现文本转语音技术

张悦铠


张悦铠是 NVIDIA 解决方案架构师,硕士毕业于约翰霍普金斯大学,导师为 Shinji Watanabe 教授,主要研究方向为语音识别。NVIDIA 中文语音识别解决方案主要开发者,对基于 GPU 的语音识别服务部署及优化有丰富经验。

相关教程

copyright ©  2012-2025 雪花家园 m.xhjaty.com 版权声明