so-vits-svc配置环境与训练的基本概述

环境配置

CUDA

首先查看显卡驱动版本和对应的cuda版本
在命令行中执行 nvidia-smi

我这里是RTX 2060 6G CUDA 12.0
但是Pytorch最高支持11.7 所以我们装下CUDA11.7
CUDA 11.7
装完后在命令行nvcc -V一下(注意是-V 大写)

Python

我这里选择的是3.8(>=3.6, <=3.9均可)
配置python的镜像源(有国外网络条件的可以跳过) 控制台执行 pip config set global.index-url http://pypi.tuna.tsinghua.edu.cn/simple pip config set global.trusted-host pypi.tuna.tsinghua.edu.cn 设置为清华大学的镜像源 pip config set global.cache-dir "D:\Python\pipcache" 设置缓存目录(可以跳过)

Pytorch

pytorch的版本需要python和cuda的版本对应。

我这里用的是python3.8.10和cuda 11.7

pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117

在安装FFmpeg之前 我们先检验下之前的安装是否成功

import torch a = torch.cuda.is_available() print(a) ngpu= 1 device = torch.device("cuda:0" if (torch.cuda.is_available() and ngpu > 0) else "cpu") print(device) print(torch.cuda.get_device_name(0)) print(torch.rand(3,3).cuda())

若输出Ture 您的GPU型号 等 则代表成功

FFmpeg

ffmpeg-5.0.1-full_build.7z

解压 然后复制bin文件夹的目录 比如D:\ffmpeg\bin
然后打开环境变量
给Path变量添加上上面复制的路径
ffmpeg -version查看版本信息
若成功显示 则代表配置成功

安装依赖

pip install Flask==2.1.2 pip install Flask_Cors==3.0.10 pip install gradio==3.4.1 pip install numpy==1.23.0 pip install playsound==1.3.0 pip install PyAudio==0.2.12 pip install pydub==0.25.1 pip install pyworld==0.3.0 pip install requests==2.28.1 pip install scipy==1.7.3 pip install sounddevice==0.4.5 pip install SoundFile==0.10.3.post1 pip install starlette==0.19.1 pip install tqdm==4.63.0 pip install scikit-maad pip install praat-parselmouth==0.4.3 pip install tensorboard

下载项目

我这里以32K分支作为示例

innnky/so-vits-svc: 基于vits与softvc的歌声音色转换模型 (github.com)

点击Code-Download Zip

  • soft vc hubert:hubert-soft-0d54a1f4.pt

    • 放在hubert目录下
  • 预训练底模文件 G_0.pthD_0.pth

    • 放在logs/32k 目录下

    • 预训练底模为必选项,因为据测试从零开始训练有概率不收敛,同时底模也能加快训练速度

    • 预训练底模训练数据集包含云灏 即霜 辉宇·星AI 派蒙 绫地宁宁,覆盖男女生常见音域,可以认为是相对通用的底模

    • 底模删除了optimizer speaker_embedding 等无关权重, 只可以用于初始化训练,无法用于推理

    • 该底模和48khz底模通用

开始训练

准备数据

在项目文件夹下新建文件夹 随意命名 把您的语音数据(.wav)放进去

数据预处理

重采样

python resample.py

(若遇到 No module named 'librosa'的报错 请pip install librosa)

如果resample成功,在dataset\32k文件夹中会有说话人的语音数据

自动划分训练集 验证集 测试集 以及自动生成配置文件

python preprocess_flist_config.py

结束后会重新生产配置文件,最开始配置文件是空的

生成hubert和f0

python preprocess_hubert_f0.py

训练正式开始

控制台执行命令:python train.py -c config/config.json -m 32k

如果报NCCL错误,那么需要修改train.py 将nccl 改为 gloo

显存不够可以调小batch_size参数

日志log

日志保存在so-vits-svc\logs\32k\train.log

这里需要关注两个参数:epoch和global_step

Epoch表示迭代批次,每一批次可以看作一个迭代分组

Global_step表示总体迭代次。

两者的关系是global_step = 最多语音说话人的语音数 / batch_size * epoch

batch_size是配置文件中的参数

暂停和继续训练

想要停止训练可以直接在控制台按 Ctrl + C或者直接关掉控制台就行了。

在控制台中运行

python train.py -c config/config.json -m 32k

即可继续训练

点赞

发表回复

电子邮件地址不会被公开。必填项已用 * 标注