Training with custom dataset #3
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Hello,
First of all, thank you for the great job so far!
We are trying to train a model with our custom dataset, in our language, but so far we did not have great success!
Firstly we changed the qnt.py file and at the line 34 of the qnt.py, we added a new env:
bandwidth_id - 6.0
, because we were unable to start the quantising process, since it was failing.Secondly we edited the g2p file to add our language instead of english.
Thirdly we tried to start training but we encountered in some errors:
distributed
env, since we were unable to start the training.use_hdf5
to Falsetraining
with full path to dataset dirFile "/home/Desktop/tts/src/TTS-VALL-E/.mrqvalle/lib/python3.10/site-packages/torch/utils/data/dataloader.py", line 328, in __init__ raise ValueError('sampler option is mutually exclusive with ' ValueError: sampler option is mutually exclusive with shuffle
Any ideas on what are we doing wrong, or how to proceed further!
Thanks in advance.
Ah right, I don't think I got around to validating the dataset preparation post-"rewrite" (moreso after overhauling the config class(es)). If you're using mrq/ai-voice-cloning, I think you also need to pass in
yaml="./path/to/your/config.yaml"
, and if you're using thepython3 -m vall_e.emb.qnt
method, I imagine you also need to pass inyaml="./path/to/your/config.yaml"
as well in the command, since it's deriving the EnCodec level to use from the training YAML.Right, I keep forgetting touch
vall_e.emb.g2p
to allow a user-specified language. If anything there's a bit of an issue I remember with Japanese causing problems, or at least, in the very early infancy of the implementation.Right, I immediately made that pointless by having it turn into a property that will derive whether or not distributed training is set based on the
WORLD_SIZE
environment variable. Should be removed from the example YAML.I suppose I didn't get a chance to actually check how it runs without distributed training after having it set up to use it. I think it should be fixed in commit
5fa86182b5
.When I get a chance I'll validate training both with distributed and without again, since I might have fudged something up with un-hardcoding things.
I did the changes in your commit and got rid of the problem, but now I think I made a mistake on the dataset preparation part.
File "/home/vall_e/utils/trainer.py", line 213, in train for batch in _make_infinite_epochs(train_dl): File "/home/vall_e/utils/trainer.py", line 163, in _make_infinite_epochs yield from tqdm(dl, "Epoch progress", dynamic_ncols=True)
I followed the guide which was implemented on enhuiz original repo, basically inside the data/custom I put the wav files, transcripted txt, and did execute the qnt and g2p. Am I missing something in the dataset preparation part?
Thanks a lot!
Can you post the whole console log, from start to end?
I suppose I should also document what exactly you should add under the YAML's
dataset.training
anddataset.validation
arrays, but for now it should be something like:where, for example, the contents of
./some/path/to/dataset/LibriTTS/1310/
looks like:If you're having your speakers by one folder, rather than two, make sure to also set
dataset.speaker_name_getter
in the YAML to"lambda p: f'{p.parts[-2]}'"
instead.You should have a printout after the dataloader loads about the size of the training, evaluation (subtrain), and validation datasets.
And to double check you aren't loading a cached dataloader, set
dataset.cache
toFalse
.Outside of that, those are the only things I can think of validating without a full log.
Ah, I incidentally just so happened to run into what the issue is. It seems that technically I shouldn't be trying to pass in the sampler created in the dataset into the Dataloader constructor, as that causes problems:
I'm going to see if I can fix it and then push another commit. Whoops.
Seems to work fine. Fixed in commit
277c759ab1
.