cnlinxi / style-token_tacotron2

style token with tacotron2
MIT License
61 stars 16 forks source link

无法生成正确的音频 #11

Open EmptyMoon-hub opened 4 years ago

EmptyMoon-hub commented 4 years ago

你好,我运行了你的代码,将tacotron_batch_size改成了48,outputs_per_step改为3,但是输出在80000代时仍未对齐; 同时,我在训练仍未结束时测试synthesize,得到的确是1:14时常的wav,里面几乎全是杂音,这是错误提示

Loading checkpoint: logs-Tacotron-2/taco_pretrained/tacotron_model.ckpt-80000 WARNING:tensorflow:From /home/lyj/code/style-token-chinese/tacotron/synthesizer.py:63: The name tf.ConfigProto is deprecated. Please use tf.compat.v1.ConfigProto instead. 2020-10-07 17:29:27.822125: W tensorflow/compiler/jit/mark_for_compilation_pass.cc:1412] (One-time warning): Not using XLA:CPU for cluster because envvar TF_XLA_FLAGS=--tf_xla_cpu_global_jit was not set. If you want XLA:CPU, either set that envvar, or use experimental_jit_scope to enable XLA:CPU. To confirm that XLA is active, pass --vmodule=xla_compilation_cache=1 (as a proper command-line flag, not via TF_XLA_FLAGS) or set the envvar XLA_FLAGS=--xla_hlo_profile. WARNING:tensorflow:From /home/lyj/code/style-token-chinese/tacotron/synthesizer.py:70: The name tf.train.Saver is deprecated. Please use tf.compat.v1.train.Saver instead. WARNING:tensorflow:From /home/lyj/anaconda3/envs/my_Tensorflow_1/lib/python3.7/site-packages/tensorflow/python/training/saver.py:1276: checkpoint_exists (from tensorflow.python.training.checkpoint_management) is deprecated and will be removed in a future version. Instructions for updating: Use standard file APIs to check for files with this prefix. Starting Synthesis 0%| | 0/1 [00:00<?, ?it/s]/home/lyj/anaconda3/envs/my_Tensorflow_1/lib/python3.7/site-packages/librosa/core/audio.py:162: UserWarning: PySoundFile failed. Trying audioread instead. warnings.warn("PySoundFile failed. Trying audioread instead.") /home/lyj/anaconda3/envs/my_Tensorflow_1/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:238: RuntimeWarning: Glyph 65292 missing from current font. font.set_text(s, 0.0, flags=flags) /home/lyj/anaconda3/envs/my_Tensorflow_1/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:238: RuntimeWarning: Glyph 12290 missing from current font. font.set_text(s, 0.0, flags=flags) /home/lyj/anaconda3/envs/my_Tensorflow_1/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:201: RuntimeWarning: Glyph 65292 missing from current font. font.set_text(s, 0, flags=flags) /home/lyj/anaconda3/envs/my_Tensorflow_1/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:201: RuntimeWarning: Glyph 12290 missing from current font. font.set_text(s, 0, flags=flags) 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [03:13<00:00, 193.99s/it] synthesized mel spectrograms at tacotron_output/eval Synthesizing audio from mel-spectrograms.. (This may take a while) Traceback (most recent call last): File "/home/lyj/code/style-token-chinese/wavenet_vocoder/synthesize.py", line 73, in wavenet_synthesize checkpoint_path = tf.train.get_checkpoint_state(checkpoint).model_checkpoint_path AttributeError: 'NoneType' object has no attribute 'model_checkpoint_path' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "synthesize.py", line 100, in main() File "synthesize.py", line 94, in main synthesize(args, hparams, taco_checkpoint, wave_checkpoint, sentences) File "synthesize.py", line 42, in synthesize wavenet_synthesize(args, hparams, wave_checkpoint) File "/home/lyj/code/style-token-chinese/wavenet_vocoder/synthesize.py", line 76, in wavenet_synthesize raise RuntimeError('Failed to load checkpoint at {}'.format(checkpoint)) RuntimeError: Failed to load checkpoint at logs-Tacotron-2/wave_pretrained/

推测是不是librosa这个库版本不对啊,我现在使用的是0.8.0

除此之外,我在阅读代码时并未找到哪里使用了pypinyin库处理中文数据集啊?貌似只是在utils里面存在,而在tacotron/utils里面并未使用pypinyin,请问这是怎么回事啊

cnlinxi commented 4 years ago

@EmptyMoon-hub

  1. librosa库中PySoundFile没有调用成功,但这个应该不影响结果。
  2. 需要提前利用pypinyin准备好数据集。输入到模型进行训练时,就应该是拼音形式了,而不能是汉字。
  3. 你的错误是没有找到训练的ckpt模型文件。