SoVITS声音克隆 完整使用指南

从环境搭建到模型训练,从零开始掌握SoVITS声音克隆技术,打造属于你的AI语音克隆系统

SoVITS技术概述

声音转换技术的核心原理与应用场景

AI语音转换工具

什么是SoVITS?

SoVITS(SoftVC VITS Singing Voice Conversion)是一种基于VITS架构的先进声音转换技术,能够将一个人的声音转换为另一个人的声音,同时保持语音内容的完整性和自然度。

高质量转换

基于深度学习的高质量声音转换效果

多说话人支持

支持训练和转换多个不同的声音

参数可调

可调整转换强度等多种参数

SoVITS技术架构

1

特征提取

使用Hubert模型提取语音特征

2

声码器

基于VITS的声码器合成语音

3

声音转换

将源声音特征映射到目标声音

前期准备

避坑核心前提,确保后续操作顺利进行

系统要求

Windows 10/11
NVIDIA GPU(推荐)
8GB+ RAM
10GB+ 可用磁盘空间

软件要求

Python 3.9
Miniconda
FFmpeg
Git(可选)

数据要求

WAV格式
单声道
44100Hz采样率
5-10分钟时长

详细准备步骤

1

安装Miniconda

Miniconda用于创建独立虚拟环境,避免Python版本/依赖冲突:

安装关键选项:
  • • 必须勾选"Add Miniconda3 to my PATH environment variable"
  • • 安装路径建议默认,避免中文、空格或特殊字符路径
  • • 其他选项保持默认,点击「Install」完成安装
# 下载路径:使用本地包或从官网下载
# https://docs.conda.io/en/latest/miniconda.html
2

准备SoVITS项目文件

将项目文件复制到合适的位置:

# 将Plugin目录完整复制到无中文、无空格的路径下
D:\python\Plugin\SoVITS\
确认核心文件:
  • • 主程序:train.py、inference_main.py
  • • 配置文件:configs\config.json
  • • 依赖清单:requirements.txt
  • • 数据处理脚本:resample.py、preprocess_hubert_f0.py
3

启动Anaconda Prompt

选择以下任一方式启动命令行环境:

# 方式1:开始菜单 → Anaconda (miniconda3) → Anaconda Prompt

# 方式2:Win + R → cmd → 执行
%WINDIR%\System32\cmd.exe "/K" C:\ProgramData\miniconda3\Scripts\activate.bat C:\ProgramData\miniconda3

确保命令行前缀显示 (base),表示默认环境已激活

环境搭建

版本兼容关键,按步骤执行避免依赖冲突

1

切换到SoVITS源码目录

在Anaconda Prompt中,先切换到so-vits-svc根目录:

# 1. 切换到项目所在磁盘(例如D盘)
D:

# 2. 进入源码目录(替换为你的实际路径)
cd D:\python\Plugin\SoVITS\so-vits-svc

执行后,命令行前缀应显示 (base) D:\python\Plugin\SoVITS\so-vits-svc>

2

创建并激活虚拟环境

创建指定Python版本的虚拟环境:

# 创建虚拟环境(指定Python 3.9)
conda create -n so-vits-3.9 python=3.9 -y

# 激活虚拟环境
conda activate so-vits-3.9

激活成功后,命令行前缀会从 (base) 变为 (so-vits-3.9)

3

安装核心依赖

按顺序执行以下命令,使用清华源加速:

# 1. 安装fairseq
pip install fairseq==0.12.2 -i https://pypi.tuna.tsinghua.edu.cn/simple

# 2. 安装Gradio
pip install gradio==3.41.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

# 3. 安装音频处理依赖
pip install ffmpeg-python librosa==0.10.0.post2 -i https://pypi.tuna.tsinghua.edu.cn/simple

# 4. 安装剩余依赖
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
4

安装PyTorch

根据是否有NVIDIA显卡选择对应版本:

有NVIDIA显卡(推荐)
# CUDA 11.7版本
pip install torch==2.0.1+cu117 torchvision==0.15.2+cu117 torchaudio==2.0.2
--index-url https://download.pytorch.org/whl/cu117
无NVIDIA显卡(CPU版本)
# CPU版本
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2
--index-url https://download.pytorch.org/whl/cpu
5

验证依赖安装

执行以下命令,若无报错则依赖安装成功:

# 验证PyTorch是否可用(GPU环境应输出True)
python -c "import torch; print(torch.cuda.is_available())"

# 验证fairseq是否可用
python -c "import fairseq; print('fairseq installed')"

# 验证librosa是否可用
python -c "import librosa; print('librosa installed')"

数据准备与配置

训练效果关键,数据质量直接决定克隆效果

AI克隆音色通话

数据格式要求

音频格式

  • • 格式:仅支持WAV单声道
  • • 采样率:44100Hz
  • • 时长:单个音频3-5秒,总时长5-10分钟
  • • 质量:无背景噪音、无伴奏、干净干声

文件夹结构

dataset_raw/
├── speaker1/
│ ├── audio1.wav
│ └── audio2.wav
└── speaker2/
├── audio1.wav
└── audio2.wav

详细配置步骤

1

修改配置文件

备份并修改config.json文件:

{
  "model": {
    "n_speakers": 2 // 说话人数量
  },
  "spk": { // 说话人名称与序号映射
    "speaker1": 0,
    "speaker2": 1
  }
}

确保说话人名称与数据文件夹名完全一致

2

清理旧数据

为避免旧数据干扰新训练:

  • • 删除dataset_raw/目录下的默认文件夹
  • • 删除filelists/目录下的所有文件
  • • 删除logs/目录下的所有文件
3

准备训练数据

按以下结构存放音频文件:

so-vits-svc/
└── dataset_raw/
├── gaoyuliang/
│ ├── gaoyuliang_01.wav
│ └── gaoyuliang_02.wav
└── zhengzhongji/
├── zhengzhongji_01.wav
└── zhengzhongji_02.wav

每个说话人至少3分钟音频,10个以上音频文件

模型训练

按顺序执行,避免跳过步骤

1

音频重采样

将音频统一重采样为44100Hz:

python resample.py

执行成功后,检查dataset/44k/是否包含对应说话人文件夹

2

生成训练列表

生成train.txt和val.txt文件:

python preprocess_flist_config.py

作用:记录每个音频文件的路径和对应说话人序号

3

提取音频特征

提取Hubert特征和F0音高:

GPU环境(推荐)
python preprocess_hubert_f0.py --num_processes 1 --device cuda
CPU环境
python preprocess_hubert_f0.py --num_processes 1 --device cpu
4

启动训练

执行训练命令:

python train.py -c configs/config.json -m logs/44k
训练过程监控
  • • 关注reference_loss,正常应逐步下降
  • • 每训练1000步左右保存一次模型
  • • 推荐训练到5000-8000步

训练参数

batch_size 8-32
epochs 自动停止
learning_rate 1e-4

训练时间

RTX 3090 2-4小时
RTX 3080 4-6小时
RTX 2080 6-8小时

常见问题

• 过拟合:增加数据量
• 显存不足:降低batch_size
• 音质不佳:优化训练数据

模型推理

测试声音克隆效果

推理步骤

准备测试音频

将需要克隆的"源音频"处理为WAV单声道44100Hz,放入so-vits-svc\raw\目录

执行推理命令

python inference_main.py
  -m logs/44k/G_5000.pth
  -c logs/44k/config.json
  -n raw/your_test.wav
  -t 0
  -s speaker_name

查看结果

克隆后的音频会自动保存到so-vits-svc\results\目录

实时语音转换界面

推理参数说明

-m

模型文件

训练好的模型文件路径,选择最新高步模型

-c

配置文件

训练时使用的配置文件,自动生成与模型匹配

-n

测试音频

需要克隆的源音频文件路径

-s

目标说话人

目标说话人名称,与config.json中spk字段一致

-t

转换强度

音色转换强度,0=纯目标声线,0.5=混合源声线

常见问题

避坑汇总,解决使用过程中的常见问题

常用工具与资源

提高工作效率的实用工具

音频处理工具

Audacity(免费,支持剪辑、降噪、格式转换)

下载链接

JSON校验工具

检查config.json语法是否正确

在线工具

PyTorch官网

获取最新PyTorch安装命令

访问官网

SoVITS官方文档

GitHub仓库,获取最新源码和更新

查看文档

海南仙岛

软件作者官方博客

访问博客

蟒蛇科普

软件作者的工作博客

访问博客