lturing / tacotronv2_wavernn_chinese

tacotronV2 + wavernn 实现中文语音合成(Tensorflow + pytorch)
https://lturing.github.io/tacotronv2_wavernn_chinese/
521 stars 133 forks source link

ValueError: None values not supported. #42

Closed kongziyue1234 closed 3 years ago

kongziyue1234 commented 3 years ago

作者大大,我在将attention换成GMMattention的时候总是会出现ValueError: None values not supported.的错误,我在报错的位置附近添加if hp.predict_linear:或if not hp.predict_linear:错误就莫名其妙消失了,但最后又出现了 Exiting due to exception: Restoring from checkpoint failed. This is most likely due to a Variable name or other graph key that is missing from the checkpoint. Please ensure that you have not altered 2 root error(s) found. (0) Not found: Key Tacotron_model/optimizer/Tacotron_model/inference/CBHG_postnet/CBHG_postnet_highwaynet_1/H/kernel/Adam not found in checkpoint [[node save/RestoreV2 (defined at \tacotronv2_wavernn_muke_nan_gmm\tacotron\train.py:128) ]] [[save/RestoreV2/_519]] (1) Not found: Key Tacotron_model/optimizer/Tacotron_model/inference/CBHG_postnet/CBHG_postnet_highwaynet_1/H/kernel/Adam not found in checkpoint [[node save/RestoreV2 (defined at \tacotronv2_wavernn_muke_nan_gmm\tacotron\train.py:128) ]] 0 successful operations. 0 derived errors ignored. 我想问下,是我之前的改动导致这个错误么?而且ValueError: None values not supported.这个报错是在计算loss和optimizer中的gradients时候出现的,为啥添加if hp.predict_linear:错误就会消失呢?

不好意思,向您问了这么多问题,刚开始学习语音合成,不是很懂

lturing commented 3 years ago

我这里提供的预训练tacotron模型默认用的是forward attention,如果要用gmm attention,需要修改部分代码,然后需要重新训练。

CBHG_postnet 是用来预测线性频谱,我这里没有用cbhg_postnet(hp.predict_linear 为 false),checkpoint中不存在对应的参数,所以报错。

kongziyue1234 commented 3 years ago

谢谢您的解答,我在GMMattention训练的过程中,第39000步和第63000步出现了注意力图一片空白这样的情况 image image 我查看了一下这两步的输入和合成的音频,是完全不一样的,请问您知道是什么原因吗?

lturing commented 3 years ago

训练的过程中,出现注意力空白是由wav中静音片段造成的。静音片段代表停顿。 就你发的这个图中,step-62500-mel-spectrogram (这个图的alignment也不正常)这个子图中,mel谱图中间有静音片段。 一般而言,在wav的结尾处,也会有静音片段,对应到alignment图上的右上部分的一条横线,这条横线是模型在训练过程中学到的,这条横线代表gmm中的均值mu 几乎没变化(delta mu 很小),静音对应的mel的值为0,然后很可能就stuck了。 你可以观察你手头上其余的mel频谱图和alignment图。 推荐你看看这篇论文,里面提出了一种新的attention机制DCA,有大佬复现了