Open ainokiseki opened 2 years ago
你报错信息显示你用的模型是gst fastspeech2,这个模型需要输入参考音频,但是报错显示参考音频为NoneType,加载音频是否正确加载,格式需要是wav格式?按照报错信息来看应该是在加载音频这一步出错了,可能是没有正确读取fastspeech2_config这个文件(yaml文件),你需要检查一下模型路径里是否有这个文件。另外你训练的speedyspeech模型是否可用?另外main2.py应该不支持单人的合成,原因是单人预测的时候不需要输入spk_id。
应该是我加载的参考音频不正确导致的,如您所说选择正确的参考音频后成功听到了合成后的声音。 至于单人多人的问题,我虽然只有一个人的数据,但训练的时候一直使用的是多人的代码,因为用单人的话命令参数没有给--speaker-dict,会报错,索性就直接用多人的了。最后合成的时候我把main2.py中阿梓对应的spk_id改成了我的speaker_dict中对应的值(0),就可以正常合成了。效果不太好,我推测是因为我数据太少,训练时间太短。 最后和您确认一个事情。main2.py的代码中会加载诸如exp/<模型名称>/speech_stats.npy等若干npy后缀的文件,但我在以上位置找不到这些文件,只在dump/train文件夹下找到了类似的文件,训练结束后我是否应手动将dump/train下的npy文件手动拷贝至对应的exp/<模型名称>/下呢?我之前是这么做的。
是这样的,暂时需要手动拷贝,我到时候会在脚本文件里加入这些。目前如果要获得好的效果,单人语音数量最好在10000条左右,但是也可以用多人模型,在openssr上下载开源的aishell3数据集,然后把单人的数据集放进去一起训练,可以减少数据集的大小,500条左右就可以了。但是经过我的实验,目前发现gst模型的效果并不好,也就是说加入参考音频反而效果不如普通的fastspeech2。speedyspeech目前的语气模仿的最像,但是音质很差,我也在找解决办法。并且vocoder占了很大的作用,你可以自己训练一个vocoder或者使用pwg,我提供的hifigan是百度预训练的模型,但是这个hifigan是只有一个人训练出来的,所以效果不如pwg。
训练完成后使用gui/main2.py合成声音失败,我的训练数据仅包含一位名为speaker_id的vup,代码为0,第四步中仅完成了fastspeech + hifigan + single及speedyspeech + pwg的静态模型。gui加载正常,但当我加载参考音频、输入需要合成的语句后,程序崩溃退出了。提示信息如下: