怎样使用AMD显卡进行so-vits-svc4的模型训练及推理
夏之云Wolken
编辑于 2023年03月28日 02:11

一、使用前准备

ubuntu22或者ubuntu20系统:https://ubuntu.com/download/desktop

A卡驱动:https://www.amd.com/zh-hans/support

Anaconda:https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-x86_64.sh

so-vits-svc:https://github.com/svc-develop-team/so-vits-svc/archive/refs/heads/4.0.zip

checkpoint_best_legacy_ 500.pt:https://ibm.box.com/s/z1wgl1stco8ffooyatzdwsqn2psd9lrr

G_0.pth/D_0.pth:https://huggingface.co/Himawari00/so-vits-svc4.0-pretrain-models/tree/main

二、Ubuntu系统安装

如果需要使用A卡做vits-svc训练的话需要安装linux系统,推荐使用ubuntu。ubuntu系统安装方法去问谷歌娘或者度娘,不过需要注意的是ubuntu系统最好安装在单独的硬盘内以免干扰到正常系统的运行,如果你能熟练安装双系统则可以跳过。

三、显卡驱动和rocm安装

1、下载自己型号的显卡驱动,比如我的型号显卡驱动文件是amdgpu-install_5.4.50403-1_all.deb,打开命令(root用户)行执行以下命令

代码块
JavaScript
自动换行
复制代码
sudo apt install -fy ./amdgpu-install_5.4.50403-1_all.deb
sudo amdgpu-install --no-dkms
sudo apt install rocm-dev

#创建一个名为render/video的新用户,并将其添加到当前用户组中
sudo usermod -a -G render $LOGNAME
sudo usermod -a -G video $LOGNAME
复制成功

2、执行完以上的命令我们就把显卡驱动和rocm安装完了,然后我们还需要配置一个环境

代码块
JavaScript
自动换行
复制代码
#RDNA显卡复制以下命令(6600、6700、6800、6900以及xt等其他RDNA架构显卡)
sudo export HSA_OVERRIDE_GFX_VERSION=10.3.0
#GCN显卡复制以下命令(RX580、RX590等其他GCN架构显卡)
sudo export HSA_OVERRIDE_GFX_VERSION=8.0.3

#然后执行下以下命令
sudo source /root/.bashrc
复制成功

3、所有步骤执行完之后执行下以下命令,确认驱动及rocm安装到位

代码块
JavaScript
自动换行
复制代码
#查看显卡状态,无异常则正常
rocm-smi
#查看ROCm系统信息
/opt/rocm/bin/rocminfo
#查看opencl相关信息
/opt/rocm/opencl/bin/clinfo
复制成功

四、Conda的安装以及环境配置

Conda是一个开源的、跨平台的包和环境管理工具,可以用于在同一个机器上安装不同版本的软件包及其依赖,并能够在不同的环境之间切换。它是 Anaconda 发行版的一部分,但也可以单独使用。

1、下载Conda并授权

代码块
Shell
自动换行
复制代码
#这里下载的是Anaconda3-2023.03版本
wget https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-x86_64.sh
复制成功

2、给Anaconda文件授权

代码块
Shell
自动换行
复制代码
#授予文件777权限
chmod -R 777 ./Anaconda3-2023.03-Linux-x86_64.sh
#授予文件可执行权限
chmod +x ./Anaconda3-2023.03-Linux-x86_64.sh
复制成功

3、执行Anaconda安装程序

代码块
Shell
自动换行
复制代码
bash ./Anaconda3-2023.03-Linux-x86_64.sh
复制成功

安装过程中让你答yes或no的地方通通答yes,然后安装时会询问安装在哪个目录,建议安装在/opt/anaconda3目录下。上面步骤安装完成后执行以下命令

代码块
Shell
自动换行
复制代码
source /root/.bashrc
复制成功

4、接下来创建一个python环境

代码块
Shell
自动换行
复制代码
#使用conda activate切换到base目录下
conda activate
#创建一个python3.8版本的环境,当然也可以换成其他版本,环境名为svc01
conda create -n svc01 python=3.8
#创建完成后切换到我们刚刚创建的环境下
conda activate svc01
复制成功

5、切换到我们刚创建的环境下后就需要安装vits-svc所需要的pip环境了,我们首先下载so-vits-svc,然后解压到任意文件夹,打开文件夹内的requirements.txt文件,将scipy==1.7.3改成scipy==1.8.1,删除torch和torchaudio的两行,然后保存。

6、安装所需pip环境

代码块
Shell
自动换行
复制代码
#修改pip源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

#安装pytorch
pip install torch==1.13.1+rocm5.2 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/rocm5.2

#安装requirements.txt内包
pip install -r requirements.txt
复制成功

五、so-vits-svc的安装以及使用

在命令行内进入[四-5]所解压的文件夹,然后进行以下操作(建议查看官方文档:https://github.com/svc-develop-team/so-vits-svc/blob/4.0/README_zh_CN.md)

1、下载G_0.pth/D_0.pth,放到logs/44k/文件夹下

2、下载checkpoint_best_legacy_ 500.pt,放到hubert文件夹下

3、把要训练的素材放到dataset_raw文件夹下(训练人的声音)

4、把受推理的素材放到raw文件夹下(模仿对象的素材)

5、根据实际情况调整configs/config.json文件

6、重采样至44100Hz单声道

代码块
Shell
自动换行
复制代码
python resample.py
复制成功

7、自动划分训练集、验证集,以及自动生成配置文件

代码块
Shell
自动换行
复制代码
python preprocess_flist_config.py
复制成功

8、生成hubert与f0

代码块
Shell
自动换行
复制代码
python preprocess_hubert_f0.py
复制成功

9、开始训练

代码块
Shell
自动换行
复制代码
python train.py -c configs/config.json -m 44k
复制成功

10、使用训练的模型进行推理

代码块
Shell
自动换行
复制代码
# 举例
python inference_main.py -m "logs/44k/G_30400.pth" -c "configs/config.json" -n "君の知らない物語-src.wav" -t 0 -s "nen"
复制成功

六、注意事项

1、A卡训练只能使用linux系统

2、强烈推荐配合conda进行使用,会避免很多环境问题

3、之后需要训练时一定要先切换到创建好的conda环境,不然会报错

4、不建议使用python3.10及以上版本,会有pyworld无法初始化的问题