GPT-SoVITS icon indicating copy to clipboard operation
GPT-SoVITS copied to clipboard

从零训练sovits模型遇到的音质问题

Open wzy3650 opened this issue 5 months ago • 10 comments

尝试从开源数据集精选的5000小时数据从零训练v2ProPlus的sovits模型,遇到了比较明显的杂音/电音问题(中文的问题比英文严重),原始数据集里面是没有这类问题的

训练设置: 1、想着能够兼容历史版本的预训练GPT模型,所以没有把freeze_quantizer设置为False 2、训练数据的有效频谱大都在8k-12k左右,达到16k有效频谱的占比很小 3、用float32训练的,没开half

训练进度: 目前在4张A100上面训练了5天、过了5个epoch,mel loss降到了23左右,不清楚继续训练下去能否进一步下降 Image 这里面的一个可疑点是鉴别器的loss始终没有明显的下降趋势

杂音问题在频谱上主要体现在谐波间的杂音过多、高频部分噪声较多、谐波不连续

目前想到的一个问题原因是预训练的encoder(ssl_proj+vq)不匹配我当前所用训练数据的特性。下面几个问题请教一下大佬 @RVC-Boss 5kh这个数据量下从零训v2ProPlus的sovits大概需要训练多少个epoch、以及mel loss要降到多少音质才会比较理想? 这个杂音问题有什么其他可能的原因吗? 感谢!

wzy3650 avatar Jun 15 '25 14:06 wzy3650

附一下预训练模型和当前最新训练模型的中英文推理sample

对比sample.zip

wzy3650 avatar Jun 15 '25 14:06 wzy3650

尝试从开源数据集精选的5000小时数据从零训练v2ProPlus的sovits模型,遇到了比较明显的杂音/电音问题(中文的问题比英文严重),原始数据集里面是没有这类问题的

训练设置: 1、想着能够兼容历史版本的预训练GPT模型,所以没有把freeze_quantizer设置为False 2、训练数据的有效频谱大都在8k-12k左右,达到16k有效频谱的占比很小 3、用float32训练的,没开half

训练进度: 目前在4张A100上面训练了5天、过了5个epoch,mel loss降到了23左右,不清楚继续训练下去能否进一步下降 Image 这里面的一个可疑点是鉴别器的loss始终没有明显的下降趋势

杂音问题在频谱上主要体现在谐波间的杂音过多、高频部分噪声较多、谐波不连续

目前想到的一个问题原因是预训练的encoder(ssl_proj+vq)不匹配我当前所用训练数据的特性。下面几个问题请教一下大佬 @RVC-Boss 5kh这个数据量下从零训v2ProPlus的sovits大概需要训练多少个epoch、以及mel loss要降到多少音质才会比较理想? 这个杂音问题有什么其他可能的原因吗? 感谢!

朋友,我也是从零开始训练v2ProPlus的sovits模型,我目前使用了大约100w条英语数据,在4张A100上训练了两天,今天测试效果发现,合成的英语音频也有一些电音。我没有使用GPT模块进行semantic的预测,而是使用了目标文本对应音频的ssl特征,经过量化得到的code,代替GPT模块预测的semantic。

我的训练设置是:冻结了quantizer,fp16_run设置为了true。同时也将commit loss加入训练了。

我的训练进度:

Image

zazachao avatar Jun 16 '25 02:06 zazachao

我的训练情况:7000小时,训了50多epoch 频谱,到8k的,和到16k的,都有 fp32 训到了mel loss低于19 3.5485267639160156, 2.641707181930542, 13.519742965698242, 18.6091365814209, 0.0, 2.0045416355133057, 6695100, 0.0001(偏后的loss,供参考,量级差不多) ssl_proj+vq应该和楼主用的是同一套

其他不知道了,大家可以一起讨论

RVC-Boss avatar Jun 16 '25 11:06 RVC-Boss

尝试从开源数据集精选的5000小时数据从零训练v2ProPlus的sovits模型,遇到了比较明显的杂音/电音问题(中文的问题比英文严重),原始数据集里面是没有这类问题的 训练设置: 1、想着能够兼容历史版本的预训练GPT模型,所以没有把freeze_quantizer设置为False 2、训练数据的有效频谱大都在8k-12k左右,达到16k有效频谱的占比很小 3、用float32训练的,没开half 训练进度: 目前在4张A100上面训练了5天、过了5个epoch,mel loss降到了23左右,不清楚继续训练下去能否进一步下降 Image 这里面的一个可疑点是鉴别器的loss始终没有明显的下降趋势 杂音问题在频谱上主要体现在谐波间的杂音过多、高频部分噪声较多、谐波不连续 目前想到的一个问题原因是预训练的encoder(ssl_proj+vq)不匹配我当前所用训练数据的特性。下面几个问题请教一下大佬 @RVC-Boss 5kh这个数据量下从零训v2ProPlus的sovits大概需要训练多少个epoch、以及mel loss要降到多少音质才会比较理想? 这个杂音问题有什么其他可能的原因吗? 感谢!

朋友,我也是从零开始训练v2ProPlus的sovits模型,我目前使用了大约100w条英语数据,在4张A100上训练了两天,今天测试效果发现,合成的英语音频也有一些电音。我没有使用GPT模块进行semantic的预测,而是使用了目标文本对应音频的ssl特征,经过量化得到的code,代替GPT模块预测的semantic。

我的训练设置是:冻结了quantizer,fp16_run设置为了true。同时也将commit loss加入训练了。

我的训练进度:

Image

根据下面大佬的回复,应该是训练epoch数目还不够

wzy3650 avatar Jun 20 '25 12:06 wzy3650

我的训练情况:7000小时,训了50多epoch 频谱,到8k的,和到16k的,都有 fp32 训到了mel loss低于19 3.5485267639160156, 2.641707181930542, 13.519742965698242, 18.6091365814209, 0.0, 2.0045416355133057, 6695100, 0.0001(偏后的loss,供参考,量级差不多) ssl_proj+vq应该和楼主用的是同一套

其他不知道了,大家可以一起讨论

感谢回复!由于怀疑是freeze_quantizer为True导致的问题,我用这周时间做了个对比实验:freeze_quantizer设置为False让vq自由更新,其他条件相同。从今天的对比结果来看,是否freeze_quantizer没有造成明显的音质差异,那可能确实是训练epoch数不够导致decoder的重建能力还不太行。 请教一下,从你训练这个模型的经验来看,要想有比较好的音质是必须训练到50多个epoch吗,还是说在中间的某个epoch音质已经不错、训练到50个epoch只是为了更好一些?可否share一下你训练过程的loss metric?感谢!

wzy3650 avatar Jun 20 '25 12:06 wzy3650

我的训练情况:7000小时,训了50多epoch 频谱,到8k的,和到16k的,都有 fp32 训到了mel loss低于19 3.5485267639160156, 2.641707181930542, 13.519742965698242, 18.6091365814209, 0.0, 2.0045416355133057, 6695100, 0.0001(偏后的loss,供参考,量级差不多) ssl_proj+vq应该和楼主用的是同一套 其他不知道了,大家可以一起讨论

感谢回复!由于怀疑是freeze_quantizer为True导致的问题,我用这周时间做了个对比实验:freeze_quantizer设置为False让vq自由更新,其他条件相同。从今天的对比结果来看,是否freeze_quantizer没有造成明显的音质差异,那可能确实是训练epoch数不够导致decoder的重建能力还不太行。 请教一下,从你训练这个模型的经验来看,要想有比较好的音质是必须训练到50多个epoch吗,还是说在中间的某个epoch音质已经不错、训练到50个epoch只是为了更好一些?可否share一下你训练过程的loss metric?感谢!

加1,我的情况是sovits训练了35个epoch,指标分别为:3.7121055126190186, 2.6883585453033447, 7.688042163848877, 21.004135131835938, 0.3187059760093689, 2.9420411586761475 140000 9.916595e-05。单纯靠sovits模块合成出来的音频有一些电音。暂停sovits训练,进行提取GPT模块的semantic token训练GPT模块,GPT模块训练了24个epoch,GPT模块的训练情况如下图所示:

Image

Image 进行合成几百条音频测试发现还是有部分音频中带有电音情况。

zazachao avatar Jun 23 '25 02:06 zazachao

我的训练情况:7000小时,训了50多epoch 频谱,到8k的,和到16k的,都有 fp32 训到了mel loss低于19 3.5485267639160156, 2.641707181930542, 13.519742965698242, 18.6091365814209, 0.0, 2.0045416355133057, 6695100, 0.0001(偏后的loss,供参考,量级差不多) ssl_proj+vq应该和楼主用的是同一套 其他不知道了,大家可以一起讨论

感谢回复!由于怀疑是freeze_quantizer为True导致的问题,我用这周时间做了个对比实验:freeze_quantizer设置为False让vq自由更新,其他条件相同。从今天的对比结果来看,是否freeze_quantizer没有造成明显的音质差异,那可能确实是训练epoch数不够导致decoder的重建能力还不太行。 请教一下,从你训练这个模型的经验来看,要想有比较好的音质是必须训练到50多个epoch吗,还是说在中间的某个epoch音质已经不错、训练到50个epoch只是为了更好一些?可否share一下你训练过程的loss metric?感谢!

我训到50epoch是因为每过一天我会跑一次seedtts eval测sim,直到差不多没提升了,也就是40多~50epoch,我就没训了, 曲线图木有啊,中间掐了很多次,乱七八糟的, 找到了个最后一次训的train.log(50epoch后半)可以看看loss趋势

train.log (ps:log里初始epoch不是实际的,因为中途有各种finetune和改bs操作影响计算)

RVC-Boss avatar Jun 23 '25 10:06 RVC-Boss

我的训练情况:7000小时,训了50多epoch 频谱,到8k的,和到16k的,都有 fp32 训到了mel loss低于19 3.5485267639160156, 2.641707181930542, 13.519742965698242, 18.6091365814209, 0.0, 2.0045416355133057, 6695100, 0.0001(偏后的loss,供参考,量级差不多) ssl_proj+vq应该和楼主用的是同一套 其他不知道了,大家可以一起讨论

感谢回复!由于怀疑是freeze_quantizer为True导致的问题,我用这周时间做了个对比实验:freeze_quantizer设置为False让vq自由更新,其他条件相同。从今天的对比结果来看,是否freeze_quantizer没有造成明显的音质差异,那可能确实是训练epoch数不够导致decoder的重建能力还不太行。 请教一下,从你训练这个模型的经验来看,要想有比较好的音质是必须训练到50多个epoch吗,还是说在中间的某个epoch音质已经不错、训练到50个epoch只是为了更好一些?可否share一下你训练过程的loss metric?感谢!

我训到50epoch是因为每过一天我会跑一次seedtts eval测sim,直到差不多没提升了,也就是40多~50epoch,我就没训了, 曲线图木有啊,中间掐了很多次,乱七八糟的, 找到了个最后一次训的train.log(50epoch后半)可以看看loss趋势

train.log (ps:log里初始epoch不是实际的,因为中途有各种finetune和改bs操作影响计算)

大佬,看这个log是4张卡同时训的吧?用的GPU是什么型号的,看起来训练很快嘛

wzy3650 avatar Jun 23 '25 11:06 wzy3650

天啊,大佬们,你们都是几千个小时的数据啊? 想知道这个是怎么做到的。

我都是两三个小时的数据进行训练,要打标需要花很多时间,你们几千个小时的数据,有去校准打标的文字吗?

我也是中英文的,是用更多的数据进行训练效果好?还是两三个小时的数据校准打标的效果好?

(小小声说:我不信你们几千个小时的数据都会精细的去校准打标)

Dylan-Ccc avatar Jul 08 '25 04:07 Dylan-Ccc

天啊,大佬们,你们都是几千个小时的数据啊? 想知道这个是怎么做到的。

我都是两三个小时的数据进行训练,要打标需要花很多时间,你们几千个小时的数据,有去校准打标的文字吗?

我也是中英文的,是用更多的数据进行训练效果好?还是两三个小时的数据校准打标的效果好?

(小小声说:我不信你们几千个小时的数据都会精细的去校准打标)

相信asr的力量

yitenghao avatar Aug 27 '25 13:08 yitenghao