Windows 10/11下用Python 3.10和CUDA 11.7搞定so-vits-svc 3.0:从环境配置到第一个AI歌声模型
Windows 10/11下用Python 3.10和CUDA 11.7搭建so-vits-svc 3.0全流程指南
对于想要尝试AI歌声合成技术的开发者来说,环境配置往往是第一个拦路虎。本文将手把手带你完成从零开始的环境搭建,直到生成第一个AI歌声模型的全过程。不同于简单的教程罗列,我们会深入每个环节的技术细节和常见陷阱,确保你能一次性成功运行so-vits-svc 3.0。
1. 环境准备:避开版本兼容性陷阱
在开始之前,我们需要确保系统满足基本要求。Windows 10/11 64位系统、NVIDIA显卡(建议GTX 1060 6G以上)是必备条件。最关键的是处理好CUDA、PyTorch和Python版本的兼容性问题。
1.1 显卡驱动与CUDA版本匹配
首先检查你的显卡驱动支持的CUDA版本:
nvidia-smi
输出示例:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 512.95 Driver Version: 512.95 CUDA Version: 11.6 |
|-------------------------------+----------------------+----------------------+
重要提示 :即使驱动显示支持更高版本CUDA,也建议安装CUDA 11.7,因为PyTorch对其支持最稳定。从 NVIDIA官网 下载CUDA 11.7本地安装包:
- 操作系统:Windows
- 架构:x86_64
- 版本:10/11
- 安装类型:exe(local)
安装完成后验证:
nvcc -V
应显示类似输出:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Tue_May__3_19:00:59_Pacific_Daylight_Time_2022
Cuda compilation tools, release 11.7, V11.7.64
1.2 Python环境配置
推荐使用Python 3.10.6(最新补丁版本),可通过Miniconda创建独立环境:
conda create -n sovits python=3.10.6
conda activate sovits
配置国内镜像加速(可选):
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip config set global.trusted-host pypi.tuna.tsinghua.edu.cn
1.3 PyTorch精准安装
避免直接使用官网推荐命令,而是手动下载whl文件安装。前往 PyTorch官方whl仓库 下载:
- torch-1.13.0+cu117-cp310-cp310-win_amd64.whl
- torchaudio-0.13.0+cu117-cp310-cp310-win_amd64.whl
- torchvision-0.14.0+cu117-cp310-cp310-win_amd64.whl
安装命令:
pip install torch-1.13.0+cu117-cp310-cp310-win_amd64.whl
pip install torchaudio-0.13.0+cu117-cp310-cp310-win_amd64.whl
pip install torchvision-0.14.0+cu117-cp310-cp310-win_amd64.whl
验证安装:
import torch
print(torch.__version__) # 应输出1.13.0+cu117
print(torch.cuda.is_available()) # 必须返回True
2. 项目部署与依赖安装
2.1 获取so-vits-svc源码
推荐从GitHub克隆32k分支:
git clone -b 32k https://github.com/svc-develop-team/so-vits-svc.git
cd so-vits-svc
2.2 安装额外依赖
创建requirements.txt文件:
Flask==2.1.2
Flask_Cors==3.0.10
gradio==3.4.1
numpy==1.23.5
pyworld==0.3.2
scipy==1.10.0
tqdm==4.63.0
praat-parselmouth
librosa==0.9.2
安装依赖:
pip install -r requirements.txt
常见问题解决 :
- 如果pyworld安装失败,尝试先安装Microsoft C++ Build Tools
- librosa可能需要的额外依赖:
conda install -c conda-forge ffmpeg
2.3 预训练模型准备
下载必备模型文件:
-
Hubert模型:
https://github.com/bshall/hubert/releases/download/v0.1/hubert-soft-0d54a1f4.pt放置路径:
./hubert/ -
预训练G/D模型:
https://huggingface.co/innnky/sovits_pretrained/resolve/main/G_0.pth https://huggingface.co/innnky/sovits_pretrained/resolve/main/D_0.pth放置路径:
./logs/32k/
3. 数据准备与预处理
3.1 训练数据规范
- 音频格式:必须为单声道WAV,采样率不限(会自动重采样)
- 每条音频时长:4-8秒为佳
- 数据量:每个说话人建议60-100条
- 目录结构:
dataset_raw/ ├───speaker1 │ ├───audio1.wav │ └───audio2.wav └───speaker2 ├───audio1.wav └───audio2.wav
3.2 配置文件设置
创建 dataset_raw/config.json :
{
"n_speakers": 2,
"spk": {
"speaker1": 0,
"speaker2": 1
}
}
3.3 执行预处理流程
-
重采样(自动转为32kHz):
python resample.py -
划分训练集/验证集:
python preprocess_flist_config.py -
提取Hubert特征和F0:
python preprocess_hubert_f0.py
关键参数调整 :
- 修改
configs/config.json中的batch_size:- 6G显存:设置为2-3
- 8G显存:设置为4-6
- 12G+显存:可尝试8-12
4. 模型训练与优化
4.1 启动训练
基础训练命令:
python train.py -c configs/config.json -m 32k
训练优化技巧 :
-
修改
train.py提高稳定性:# 修改第60行 dist.init_process_group(backend='gloo') # 替代原来的nccl # 添加环境变量 os.environ["CUDA_VISIBLE_DEVICES"] = "0" os.environ["PYTORCH_CUDA_ALLOC_CONF"] = "max_split_size_mb:32" -
监控训练状态:
- 查看
logs/32k/train.log - 关键指标:
- Epoch:当前迭代轮次
- Global_step:总训练步数
- Loss值:应逐渐下降
- 查看
4.2 训练策略
| 训练阶段 | 建议迭代次数 | 预期效果 |
|---|---|---|
| 初期 | 1k-5k | 声音轮廓形成 |
| 中期 | 5k-15k | 音色细节丰富 |
| 后期 | 15k-30k | 稳定性提升 |
中断与恢复 :
- 按Ctrl+C停止训练
- 重新执行相同命令即可继续训练
- 模型自动保存在
logs/32k/目录下
5. 推理与效果优化
5.1 基础推理流程
-
准备干声音频(建议使用Ultimate Vocal Remover提取)
-
分割为不超过40秒的片段
-
修改
inference_main.py:model_path = "logs/32k/G_30000.pth" # 替换为你的最新模型 clean_names = ["vocal_part1", "vocal_part2"] # 输入音频文件名 trans = [0] # 音高调整(半音) spk_list = ['speaker1'] # 训练时的说话人名称 -
执行推理:
python inference_main.py
5.2 高级调参技巧
-
音色控制参数:
slice_db:切片阈值(-50~-30)noice_scale:噪声比例(0.1-0.3)
-
音高修正建议:
- 男转女:+5到+7半音
- 女转男:-5到-7半音
-
后处理建议:
- 使用Melodyne微调音高曲线
- 用EQ平衡频率响应(通常需要削减3kHz附近)
6. 常见问题解决方案
6.1 环境问题排查表
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| CUDA不可用 | 驱动不匹配 | 重装对应版本驱动 |
| 显存不足 | batch_size过大 | 减小batch_size |
| 训练中断 | 内存泄漏 | 添加PYTORCH_CUDA_ALLOC_CONF |
| 音色异常 | 数据质量差 | 检查音频是否干净 |
6.2 性能优化建议
-
开启FP16训练(修改config.json):
"fp16_run": true -
使用更小的
segment_size(如8960)减少显存占用 -
冻结编码器部分层(需修改模型代码)
对于想要进一步优化效果的用户,建议关注特征提取质量。在实际项目中,我们发现Hubert特征的质量对最终效果影响极大。可以尝试用更专业的音频编辑软件预处理训练数据,确保没有背景噪音和失真。
更多推荐
所有评论(0)