赞
踩
So-VITS-SVC声音克隆项目是一项开源离线项目,SVC Develop Team的所有成员以及本项目的开发者和维护者对本项目没有控制权。项目贡献者从未向任何组织和个人提供任何形式的帮助,包括但不限于数据集提取、数据集处理、计算支持、训练支持、推理等。此外,项目贡献者也无法得知用户使用该项目的目的是什么。因此,所有基于本项目训练的 AI 模型和合成音频与本项目贡献者无关,由此产生的任何问题均由用户自行承担。
警告:请务必解决数据集授权问题,禁止使用未经授权的数据集进行训练!任何因使用未经授权的数据集进行训练造成的问题,需自行承担全部责任和后果!与本文、本仓库、仓库维护者、SvcDevelopTeam无关!
歌声音色转换模型,基于SoftVC内容编码器提取源音频语音特征,与F0一起输入到VITS中替换原本的文本输入,实现歌声转换的效果。同时更换声码器为 NSF HiFiGAN 解决断音问题。
Python 3.8.9 版本能够稳定地运行该项目。
仅需要以下文件结构将数据集放入dataset_raw目录即可,其中speaker0,speaker1可以用人名代替。
这里强烈建议使用UVR5进行声音的提取预处理操作,如果有不会操作的请查看该文章对应的视频。
dataset_raw
├───speaker0
│ ├───xxx1-xxx1.wav
│ ├───...
│ └───Lxx-0xx8.wav
└───speaker1
├───xx2-0xxx2.wav
├───...
└───xxx7-xxx007.wav
可以自定义说话人名称
dataset_raw
└───one_person
├───1.wav
├───...
└───xxxx_(Vocals).wav
python resample.py
python preprocess_flist_config.py
python preprocess_hubert_f0.py
执行完以上步骤后 dataset 目录便是预处理完成的数据,可以删除 dataset_raw 文件夹了。
4.参数修改config.json
keep_ckpts
:训练时保留最后几个模型,0
为保留所有,默认只保留最后3
个
all_in_mem
:加载所有数据集到内存中,某些平台的硬盘IO过于低下、同时内存容量 远大于 数据集体积时可以启用
python train.py -c configs/config.json -m 44k
# 例
python inference_main.py -m "logs/44k/G_xxxxx.pth" -c "configs/config.json" -n "xxxxxx.wav" -t 0 -s "speaker0"
必填项部分
-m
| --model_path
:模型路径。-c
| --config_path
:配置文件路径。-n
| --clean_names
:wav 文件名列表,放在 raw 文件夹下。-t
| --trans
:音高调整,支持正负(半音)。-s
| --spk_list
:合成目标说话人名称。-cl
| --clip
:音频强制切片,默认0为自动切片,单位为秒/s。可选项部分:部分具体见下一节
-lg
| --linear_gradient
:两段音频切片的交叉淡入长度,如果强制切片后出现人声不连贯可调整该数值,如果连贯建议采用默认值0,单位为秒。-fmp
| --f0_mean_pooling
:是否对F0使用均值滤波器(池化),对部分哑音有改善。注意,启动该选项会导致推理速度下降,默认关闭。-a
| --auto_predict_f0
:语音转换自动预测音高,转换歌声时不要打开这个会严重跑调。-cm
| --cluster_model_path
:聚类模型路径,如果没有训练聚类则随便填。-cr
| --cluster_infer_ratio
:聚类方案占比,范围0-1,若没有训练聚类模型则默认0即可。4.0模型训练过程会训练一个f0预测器,对于语音转换可以开启自动音高预测,如果效果不好也可以使用手动的,但转换歌声时请不要启用此功能!!!会严重跑调!!
在inference_main.py中设置auto_predict_f0为true即可。
聚类方案可以减小音色泄漏,使得模型训练出来更像目标的音色,但是单纯的聚类方案会降低模型的咬字清晰度。本模型采用了一种融合的方式,可以线性控制聚类方案与非聚类方案的占比,也就是可以手动在“像目标音色”和“咬字清晰”之间调整比例,找到合适的折中点。
使用聚类前面的已有步骤不用进行任何变动,只需要额外训练一个聚类模型。虽然聚类方案的效果比较有限,但训练成本也比较低。
训练过程:
推理过程:
介绍:对F0进行均值滤波,可以有效的减少因音高推测波动造成的哑音(由于混响或和声等造成的哑音暂时不能消除)。该功能在部分歌曲上提升巨大,如果歌曲推理后出现哑音可以考虑开启。
在inference_main中设置f0_mean_pooling为true即可。
如果自己机器配置不够训练该模型可以考虑使用colab进行尝试。
具体使用方法参考视频操作。
训练更加简单,无需输入代码。
参数可视化调配。
一键断点训练模型。
模型推理更多参数可供选择。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。