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

执行开启ssl提取的时候,np.isnan(ssl.detach().numpy()).sum()不为0导致后续无法训练了

Open wickedvalley opened this issue 1 year ago • 7 comments

切分的音频都是5s内,但是在执行开启ssl的时候,对应的4-cnhubert下无法生成目标文件。原因是代码执行到了: if np.isnan(ssl.detach().numpy()).sum()!= 0:return,跳出了。请问什么样的数据会导致这样的跳出,我该准备满足什么样的音频才可执行成功。

wickedvalley avatar Jan 19 '24 02:01 wickedvalley

你的显卡是16系的吗?

RVC-Boss avatar Jan 19 '24 06:01 RVC-Boss

把半精度关了就可以了

Mrchen116 avatar Jan 19 '24 07:01 Mrchen116

存在同样问题,3060T显卡,关闭半精度无效。

sipeter avatar Jan 19 '24 15:01 sipeter

我的是4090也有同样问题 关了半精度就好了

CloudTronUSA avatar Jan 20 '24 00:01 CloudTronUSA

@CloudTronUSA @sipeter @Mrchen116 调研一下你们非16系的卡,半精度跑2步骤的推理,跑出nan的概率高吗?

RVC-Boss avatar Jan 20 '24 02:01 RVC-Boss

@RVC-Boss NAN经常出现,80%的语言都被过滤了 However,开了全精度就没事了,但是在 wav32k 下的语言有破音的问题

GPT-SoVITS/GPT_SoVITS/prepare_datasets/my_utils.py 里的 load_audio(file, sr) 改为

def load_audio_safe(file, sr):
    data, sampling_rate = librosa.load(file, sr=sr)
    return np.frombuffer(data, np.float32).flatten()

可以解决这个问题,而且(目前来说)对训练没影响。

CloudTronUSA avatar Jan 20 '24 07:01 CloudTronUSA

@CloudTronUSA @sipeter @Mrchen116 调研一下你们非16系的卡,半精度跑2步骤的推理,跑出nan的概率高吗?

3060T显卡,音频质量好,语速较快,GPT-SoVITS自带的切割音频后,全部NaN,audacity切片放入output\slicer_opt,有1、2个能通过,修改全精度无效。 重新测试发现,原音频素材有爆音存在,前期将素材的爆音问题处理后,能提高SSL的成功率。 又测试发现,关掉半精度可以解决nan问题,之前可能没有操作有误。

sipeter avatar Jan 20 '24 13:01 sipeter

该问题已解决,更新代码即可。

RVC-Boss avatar Jan 23 '24 13:01 RVC-Boss