so-vits 将默认的声音特征输入更换为了 ContentVec 第 12 层 Transformer 输出(简称 vec768l12),而 版本默认使用的是 ContentVec 第 9 层 Transformer 输出(简称 vec256l9)。因此, 版本的模型结构也与 版本产生了区别。但 so-vits 版本仍然支持 版本模型的推理与训练,只是需要更改一些参数。总结归纳如下:
(资料图片)
1. 在 config 文件中,如果需要适配 so-vits 的 vec256l9 模型,则将以下选项设为指定的值:
"filter_channels": 768,
"gin_channels": 256,
"ssl_dim": 256,
"speech_encoder":"vec256l9",
同时,也顺便给出 so-vits 的 vec768l12 模型的配置选项值:
"filter_channels": 768,
"gin_channels": 768,
"ssl_dim": 768,
"speech_encoder":"vec768l12",
需要注意的是,这两种模型的 filter_channels 均为 768;
2. 也存在直接生成对应的 config 文件的方法,在调用 preprocess_flist_ 时指定 --speech_encoder 命令行参数 为 vec256l9 即可。但需要注意的是,需要将生成的 config 文件中的 filter_channels 项改为 768,否则模型结构还是与 版本不兼容;
3. 在进行数据集预处理,即调用 preprocess_hubert_ 时,指定 F0 预测器(--f0_predictor 命令行参数)为 dio。因为 so-vits 在数据集预处理时使用的就是 dio 预测器(但在推理时使用的是 pm 预测器)。不同 F0 预测器具有不同的效果,可以自行测试一下。
关键词: