So-vits-svc(Softvc Singing Voice Conversion)
git clone地址GitHub
下载预训练模型地址:checkpoint_best_legacy_500.pt | Powered by Box
将checkpoint_best_legacy_500.pt放在 pretrain文件夹下
准备训练数据
将纯人声的wav音频切分为15秒左右的短音频,将整理好的wav文件放在在 .\so-vits-svc\dataset_raw 文件夹中新建一个文件夹,命名为该音色的名字。(音频总时长控制在1-2h)
下面是我写的切分wav音频的Python脚本
import soundfile as sf
import os
def split_audio(input_file, output_folder):
# 读取音频文件
data, sample_rate = sf.read(input_file)
# 计算每个15秒段的样本数
segment_duration = 15 * sample_rate
# 创建目标文件夹(如果不存在)
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# 当前片段的索引
segment_index = 0
# 分割音频文件
for start_sample in range(0, len(data), segment_duration):
end_sample = start_sample + segment_duration
segment = data[start_sample:end_sample]
# 创建输出文件名
output_file = os.path.join(output_folder, f'{segment_index}.wav')
# 写入新的.wav文件
sf.write(output_file, segment, sample_rate)
segment_index += 1
# 示例用法
input_file = '' # 输入文件的路径
output_folder = '' # 输出文件夹的路径
split_audio(input_file, output_folder)
预处理
1.重新采样至44100Hz和单声道
python resample.py
2.自动将数据集拆分为训练集和验证集,并生成配置文件。
python preprocess_flist_config.py --speech_encoder vec768l12
3.生成休伯特和f0
python preprocess_hubert_f0.py --f0_predictor dio
训练
python train.py -c configs/config.json -m 44k
- 在训练期间,模型文件将保存到 ,扩散模型将保存到logs/44k
推理
1.可使用 python webUI.py程序启服务进行推理
在选择模型文件的选择框中上传自己训练的模型,在选择配置文件中上传相应的config.json
2.使用命令行推理
# Example
python inference_main.py -m "logs/44k/G_980090.pth" -c "configs/config.json" -n "凤凰传奇.wav" -t 0 -s "nen"