xcmyz / FastSpeech

The Implementation of FastSpeech based on pytorch.
MIT License
858 stars 213 forks source link

alignment mel frames does not math mel_target frame number #70

Closed superhg2012 closed 4 years ago

superhg2012 commented 4 years ago

遇到一个问题,T2生成的alignment数据中mel的维度与mel_target实际mel帧数不一致,这个是怎么处理呢?以mel_target的mel帧数为准么?

xcmyz commented 4 years ago

遇到一个问题,T2生成的alignment数据中mel的维度与mel_target实际mel帧数不一致,这个是怎么处理呢?以mel_target的mel帧数为准么?

需要统一维度的吧

superhg2012 commented 4 years ago

根据实际mel帧数,对alignment做了截断处理,可以了。但是遇到另外一个问题,duration里面出现重复此为0的时候会导致length_regulartor的处理出现bug,一直没有解决这个问题。 这里面是允许出现0的吧,我看你提供的alignment.zip里面有的alignment数据也是存在0的

xcmyz commented 4 years ago

根据实际mel帧数,对alignment做了截断处理,可以了。但是遇到另外一个问题,duration里面出现重复此为0的时候会导致length_regulartor的处理出现bug,一直没有解决这个问题。 这里面是允许出现0的吧,我看你提供的alignment.zip里面有的alignment数据也是存在0的

是的

superhg2012 commented 4 years ago

mel_target 是ground_truth, 还是用teacher model(T2)预测出来的?有一些alignment的帧数是要少于mel_target的,这种是做padding处理吧

superhg2012 commented 4 years ago

发现你这边在预测alignment的时候把ground_truth的mel特征给过去了

xcmyz commented 4 years ago

发现你这边在预测alignment的时候把ground_truth的mel特征给过去了

没错,这样做tacotron2预测出来的alignment才和gt一样,且这样也更精准

superhg2012 commented 4 years ago

嗯嗯,是的,卡在这个alignment数据上有一段时间,总是跟实际的mel_target维度对不上。还有个问题,为什么没有eval模式?只有训练模式?

xcmyz commented 4 years ago

嗯嗯,是的,卡在这个alignment数据上有一段时间,总是跟实际的mel_target维度对不上。还有个问题,为什么没有eval模式?只有训练模式?

python3 synthesis.py

superhg2012 commented 4 years ago

是训练的时候,边训练边验证这种模式,不是训练好了再拿来做eval合成

xcmyz commented 4 years ago

是训练的时候,边训练边验证这种模式,不是训练好了再拿来做eval合成

哦哦,没有做这种方式,TTS也不太需要这种方法吧,你可以用synthesis.py对每个生成的checkpoint进行测试

superhg2012 commented 4 years ago

嗯,我是按照T2的训练思路实现的fastspeech,遇到了这个问题,正在想方法解决,tensorflow实现的坑太多了

xcmyz commented 4 years ago

嗯,我是按照T2的训练思路实现的fastspeech,遇到了这个问题,正在想方法解决,tensorflow实现的坑太多了

加油(ง •_•)ง