GPT-SoVITS
GPT-SoVITS copied to clipboard
从零训练sovits模型遇到的音质问题
尝试从开源数据集精选的5000小时数据从零训练v2ProPlus的sovits模型,遇到了比较明显的杂音/电音问题(中文的问题比英文严重),原始数据集里面是没有这类问题的
训练设置: 1、想着能够兼容历史版本的预训练GPT模型,所以没有把freeze_quantizer设置为False 2、训练数据的有效频谱大都在8k-12k左右,达到16k有效频谱的占比很小 3、用float32训练的,没开half
训练进度:
目前在4张A100上面训练了5天、过了5个epoch,mel loss降到了23左右,不清楚继续训练下去能否进一步下降
这里面的一个可疑点是鉴别器的loss始终没有明显的下降趋势
杂音问题在频谱上主要体现在谐波间的杂音过多、高频部分噪声较多、谐波不连续
目前想到的一个问题原因是预训练的encoder(ssl_proj+vq)不匹配我当前所用训练数据的特性。下面几个问题请教一下大佬 @RVC-Boss 5kh这个数据量下从零训v2ProPlus的sovits大概需要训练多少个epoch、以及mel loss要降到多少音质才会比较理想? 这个杂音问题有什么其他可能的原因吗? 感谢!
尝试从开源数据集精选的5000小时数据从零训练v2ProPlus的sovits模型,遇到了比较明显的杂音/电音问题(中文的问题比英文严重),原始数据集里面是没有这类问题的
训练设置: 1、想着能够兼容历史版本的预训练GPT模型,所以没有把freeze_quantizer设置为False 2、训练数据的有效频谱大都在8k-12k左右,达到16k有效频谱的占比很小 3、用float32训练的,没开half
训练进度: 目前在4张A100上面训练了5天、过了5个epoch,mel loss降到了23左右,不清楚继续训练下去能否进一步下降
这里面的一个可疑点是鉴别器的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加入训练了。
我的训练进度:
我的训练情况: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应该和楼主用的是同一套
其他不知道了,大家可以一起讨论
尝试从开源数据集精选的5000小时数据从零训练v2ProPlus的sovits模型,遇到了比较明显的杂音/电音问题(中文的问题比英文严重),原始数据集里面是没有这类问题的 训练设置: 1、想着能够兼容历史版本的预训练GPT模型,所以没有把freeze_quantizer设置为False 2、训练数据的有效频谱大都在8k-12k左右,达到16k有效频谱的占比很小 3、用float32训练的,没开half 训练进度: 目前在4张A100上面训练了5天、过了5个epoch,mel loss降到了23左右,不清楚继续训练下去能否进一步下降
这里面的一个可疑点是鉴别器的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加入训练了。
我的训练进度:
根据下面大佬的回复,应该是训练epoch数目还不够
我的训练情况: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?感谢!
我的训练情况: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模块的训练情况如下图所示:
进行合成几百条音频测试发现还是有部分音频中带有电音情况。
我的训练情况: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操作影响计算)
我的训练情况: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是什么型号的,看起来训练很快嘛
天啊,大佬们,你们都是几千个小时的数据啊? 想知道这个是怎么做到的。
我都是两三个小时的数据进行训练,要打标需要花很多时间,你们几千个小时的数据,有去校准打标的文字吗?
我也是中英文的,是用更多的数据进行训练效果好?还是两三个小时的数据校准打标的效果好?
(小小声说:我不信你们几千个小时的数据都会精细的去校准打标)
天啊,大佬们,你们都是几千个小时的数据啊? 想知道这个是怎么做到的。
我都是两三个小时的数据进行训练,要打标需要花很多时间,你们几千个小时的数据,有去校准打标的文字吗?
我也是中英文的,是用更多的数据进行训练效果好?还是两三个小时的数据校准打标的效果好?
(小小声说:我不信你们几千个小时的数据都会精细的去校准打标)
相信asr的力量
这里面的一个可疑点是鉴别器的loss始终没有明显的下降趋势