我们都知道,Python的执行效率很低。

在我的一个数字人项目中,需要用到Fish-Speech,但据测试,在不进行预编译的情况下,RTX4080上Fish-Speech甚至每2秒生成1秒音频,这无法满足实时性要求。

我们使用编译优化来解决问题啦——

Tips:本文仅针对于Windows,Linux酌情阅读,本文写时Fish Speech的Releases版本是v1.4.3,时间久了本文信息会存在时效性问题。

编译环境

使用Pytorch的编译优化需要事先安装C/C++编译环境。

Fish-Speech官方文档中介绍了编译加速需要的环境,这些环境不仅是Fish-Speech,其他东西的编译优化也需要。

所以请实现安装好哦~

需要做的的内容如下:

  • 安装LLVM

  • 将LLVM加入到PATH(LLVM安装程序可以自动完成这一步)

  • 安装Visual Studio。

  • 安装Visual Studio 的 C++桌面开发。

然后,检查系统以前是否配置过 CCCXX 环境变量,删掉,配置这些会导致之后编译失败。

Fish-Speech的编译优化

根据Fish-Speech官方文档安装好了编译环境,并且使用了官方的Python环境,理论上是能够直接编译优化启动的。

但这里我因为需要集成仅项目,并没有使用Fish-Speech的Python环境,使用了自己的环境,在踩了各种各样的坑之后,得出以下结论:

  • 为了不出莫名其妙的问题,Triton(往GPU上编译优化用的)最好使用官方的预编译版本。

  • 使用官方预编译Triton,Python版本需要是3.10.16,否则会报无法导入DLL。

  • 使用官方预编译Triton,Pytorch版本最好是2.4.1+cu121,否则据测试会报莫名其妙的编译错误。

据测试,编译优化后,6秒生成了52秒音频,速度提升相当显著。


我能想到的,最大的成功就是无愧于自己的心。