TensorSpeech / TensorFlowTTS

:stuck_out_tongue_closed_eyes: TensorFlowTTS: Real-Time State-of-the-art Speech Synthesis for Tensorflow 2 (supported including English, French, Korean, Chinese, German and Easy to adapt for other languages)
https://tensorspeech.github.io/TensorFlowTTS/
Apache License 2.0
3.85k stars 815 forks source link

Fastspeech 2 Training error #778

Closed LxtteDev closed 1 year ago

LxtteDev commented 2 years ago

When training a fastspeech model with: python "examples\fastspeech2\train_fastspeech2.py" and valid arguments, the script run but then I get an error: AssertionError: Number of charactor, mel, duration, f0 and energy files are different

Ive looked at other issues but none of them have solved my problem. The dataset is on a different hardrive, but it doesnt give any "File not found" errors. Any ways to fix this? I preprocced and normalized with "ljspeech" as the config and dataset. and im training with "Fastspeech2.v1" as the config.

LxtteDev commented 2 years ago

I kind of figured out how fix_mismatch.py works but i have no clue where "dataset/durations" is or what its a placeholder for.

HawkL327 commented 2 years ago

you should generate duration files by your self. Training tactron2 and using it to extract durations

LxtteDev commented 2 years ago

you should generate duration files by your self. Training tactron2 and using it to extract durations

I'm trying to train the model now but train_tacotron2.py keeps saying that --config is not found even though I am supplying a value.

LxtteDev commented 2 years ago

I solved training error, your not supposed to have quotation marks in the arguments.

LxtteDev commented 2 years ago

I've run into another error. After about 2 steps, the training fails with no clear error. The full error log is here but I think this is the important part:

Node: 'while/TensorArrayV2Read_1/TensorListGetItem'
Trying to access element 114 in a list with 114 elements.
ghost commented 1 year ago

as far as I could see the durations files are being generated but to the wrong folder. A quick fix for that would be to copy them over to the train/validation (or to place them there to begin with). I fixed it with the following: `

fix incorrect folder for durations

import shutil,os

for fol in ['train','valid']: os.makedirs(os.path.join("./dump_libritts",fol,"durations"),exist_ok=True) for k in tqdm(os.listdir("./dump_libritts/"+fol+"/ids")): fn = k.replace("ids","durations") shutil.copy(os.path.join("./libritts/trimmed-durations", fn),os.path.join("./dump_libritts", fol, "durations", fn))`

stale[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.