CPU部署GPT-SoVITS详细教程
在Windows环境下使用CPU部署运行GPT-SoVITS TTS大模型;详细介绍使用Anaconda配置虚拟环境、安装依赖项、代码修改、常见问题解决方案
环境:
- Windows 11 24H2 Pro
- Python 3.10.12
- Intel Core i5-9400F
- RAM: 16GB
GPT-SoVITS是一款强大的语言合成模型,你可以利用它训练出五花八门的声音并用文字合成声音;但是有人又要说了:我没有显卡可不可以跑这个模型呢?存在解决方案,用CPU就可以运行GPT-SoVITS
1.部署模型
1.1.安装Git
首先你需要下载Git,当然,你也可以在GPT-SoVITS的GitHub仓库下载项目的压缩包解压
1.2.拉取模型
如果你选择下载压缩包则跳过这步
安装完成后,找到你剩余空间较多的盘,因为部署模型可能需要十几G空间,比如到D盘,打开PowerShell或CMD(Windows)/终端(macOS、Linux),依次输入
cd D: #替换为你的实际目录
git clone https://github.com/RVC-Boss/GPT-SoVITS.git
获取源码
1.3.安装依赖
1.3.1.安装Anaconda
要使用Anaconda管理Python虚拟环境,首先访问Anaconda官网下载并安装。安装完成后,通过开始菜单搜索并打开"环境变量",检查Anaconda是否已自动添加到系统Path中。若未添加,需手动将以下路径加入系统变量的Path中:
- Anaconda安装根目录
- Anaconda根目录下的Scripts目录
- .\Library\bin目录
- .\Library\mingw-w64\bin目录
例如,若Anaconda安装在D盘,则需添加如下路径:
D:\Anaconda
D:\Anaconda\Scripts
D:\Anaconda\Library\bin
D:\Anaconda\Library\mingw-w64\bin
然后重启电脑
1.3.2.安装FFmpeg
来到FFmpeg下载ffmpeg-git-essentials.7z,解压文件,将bin目录下的ffmpeg.exe和ffprobe.exe复制到GPT-SoVITS的根目录
1.3.3.创建虚拟环境
1.3.3.1.初始化Anaconda
首先你需要初始化你的Anaconda,在终端输入conda init --help查看初始化方式,比如;如果你是在Windows里,你就用PowerShell,就输
conda init powershell
完事后它会生成一个脚本,重启PowerShell就会启用脚本,如果提示说不能运行脚本,就用管理员身份运行PowerShell,然后输入:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
再次重新运行PowerShell就可以运行脚本了
1.3.3.2.创建虚拟环境
打开PowerShell(初始化时用什么初始化的就用什么打开),看看在PowerShell前是否带有base字样:
(base) PS C:\Users\Administrator>
没有的话就说明上一步的初始化有问题
有的话依次输入:
conda create -n GPTSoVits python=3.10 #替换为你实际的Python版本
conda activate GPTSoVits
记住之后都需要进入GPTSoVits这个虚拟环境操作
1.3.4.安装依赖
打开PowerShell并进入虚拟环境,输入:
pip install torchaudio --index-url https://download.pytorch.org/whl/cpu
pip install -r requirements.txt
为了保险起见,我们可以在虚拟环境中也安装一份FFmpeg
conda install -c conda-forge 'ffmpeg<7'
下载预训练模型,并把它们放在项目根目录的GPT_SoVITS\pretrained_models中
因为我之前下载了GPT-SoVITS的整合包(虽然运行不起来),所以我是直接把整合包里的模型复制过去的
1.4.源码适配性修改
为了在CPU下运行,我们需要修改一些源代码
下面的源代码我只能保证在现在(2025.5.10)是正确的,无法保证为来是否有改动
打开根目录下的GPT_SoVITS目录下的s1_train.py,修改:
#第113行
#accelerator="gpu",改为
accelerator="cpu"
#第117行
#devices=-1,改为
devices=1
打开s2_train.py,修改:
#第54~57行:
#if torch.cuda.is_available():
# n_gpus = torch.cuda.device_count()
#else:
# n_gpus = 1
#改为:
if torch.cuda.is_available():
n_gpus = torch.cuda.device_count()
if n_gpus == 0:
n_gpus = 1
else:
n_gpus = 1
#第80~85行(上次更改前,上次更改后为82~87行)
#dist.init_process_group(
# backend="gloo" if os.name == "nt" or not torch.cuda.is_available() else "nccl",
# init_method="env://?use_libuv=False",
# world_size=n_gpus,
# rank=rank,
#)
#改为:
dist.init_process_group(
backend = "gloo" if os.name == "nt" or torch.cuda.is_available() == False or torch.backends.mps.is_available() else "nccl",
init_method="env://",
world_size=n_gpus,
rank=rank,
)
2.运行WebUI
接下来的所有PowerShell都需要在管理员身份下运行
以管理员身份打开PowerShell,cd到GPT-SoVITS的根目录,依次输入:
conda activate GPTSoVits
python webui.py
接下来会自动安装一些依赖并打开浏览器进入WebUI,至于GPT-SoVITS训练模型的教程网上很多,我这里就不过多赘述
3.常见问题
有些人(比如说我)会遇到无法合成英语的情况;这时,我们依然是打开PowerShell,输入:
conda activate GPTSoVits
python
进入Python环境,输入:
import nltk
nltk.download('averaged_perceptron_tagger_eng')
如果报错了(没有nltk库),就再次打开PowerShell,输入:
conda activate GPTSoVits
pip install nltk
再次像上面一样进入Python环境,输入:
import nltk
nltk.download('averaged_perceptron_tagger')
nltk.download('punkt')
nltk.download('averaged_perceptron_tagger_eng')
重启WebUI,这样应该就没有问题啦
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)