-
Notifications
You must be signed in to change notification settings - Fork 8.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
I meet a error about "Exception: Can't create RandomCycler from an empty collection" #47
Comments
Can you check the audio files in your datasets and check that they are indeed there? |
I confirmed this several times and the processed Librispeech file is there. |
Can you also check that you have the numpy files in the preprocessed directory, e.g. you should have:
|
I seem to solve this problem. It turned out that my original data has an illegal speaker folder. Thank you for helping me debug. |
@CorentinJ Hello! I 've read your code and paper for some days.A problem confuses me is that I don't understand the mean of "create RandomCycler ",what does the class do in dataloader? I appretiate it if you can explain it for me,Sorry I 'm new studier. |
@sunnnnnnnny How did you manage to find this illegal speaker folder |
The same problem, I am also not getting it how did you find an illegal speaker. |
This error message is encountered when there a subfolder in SV2TTS/encoder does not contain any .npy files. This happens because in preprocessing, folders are created for each speaker, but in some cases there are no valid files to populate the folder. We should improve the preprocess code so the speaker folder is only created if it contains audio files. This is the line in question that should be moved:
|
@blue-fish thanks, |
@237sankalp Check and see if you have a hidden folder in
|
I was stuck at the same place getting the same error. So I have written this helper script to figure out where the empty folders are and save them in a .txt file. I am taking length<2 as empty folders does contain source file.
Usage:
That's it, you are good to go. |
This is an issue that affects everyone training an encoder model. Some ideas to fix it:
|
Hi @blue-fish , I am training my encoder model at the moment. But I can take a look at it next week (depending on the encoder results if I don't need to retrain it). Will let you know if I do make any changes. |
Hi @blue-fish, Just to give you an update, my encoder is still running, so couldn't make any changes so far. I have another question though. I noticed in my encoder training that the loss and EER calculated and plotted on Visdom is based on training data. Is there any way to also test the model maybe on a validation dataset or if we can provide a split in the dataloader for testing and training? I am curious if I can test my trained Speaker Verification model on an unseen or test dataset for Loss and EER. |
@rishabhjain16 Thanks for the suggestion. I opened #689 for your idea. |
No worries. It seems like a great tool. So I am happy to contribute however I can. |
This comment has been minimized.
This comment has been minimized.
@rishabhjain16 Please stay on topic. In the future, open a new issue to ask unrelated questions.
|
Hi @blue-fish , Sorry about that. I will keep that in mind for future discussions. And thank you for your help. |
❤️ |
The error message is as follows, I hope to get your reply.thanks
No model "my_run" found, starting training from scratch.
Updating the visualizations every 10 steps.
......Traceback (most recent call last):
File "encoder_train.py", line 47, in
train(**vars(args))
File "/home/zyq/speech/Real-Time-Voice-Cloning/encoder/train.py", line 71, in train
for step, speaker_batch in enumerate(loader, init_step):
File "/home/zyq/miniconda3/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 568, in next
return self._process_next_batch(batch)
File "/home/zyq/miniconda3/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 608, in _process_next_batch
raise batch.exc_type(batch.exc_msg)
Exception: Traceback (most recent call last):
File "/home/zyq/miniconda3/lib/python3.7/site-packages/torch/utils/data/_utils/worker.py", line 99, in _worker_loop
samples = collate_fn([dataset[i] for i in batch_indices])
File "/home/zyq/speech/Real-Time-Voice-Cloning/encoder/data_objects/speaker_verification_dataset.py", line 56, in collate
return SpeakerBatch(speakers, self.utterances_per_speaker, partials_n_frames)
File "/home/zyq/speech/Real-Time-Voice-Cloning/encoder/data_objects/speaker_batch.py", line 8, in init
self.partials = {s: s.random_partial(utterances_per_speaker, n_frames) for s in speakers}
File "/home/zyq/speech/Real-Time-Voice-Cloning/encoder/data_objects/speaker_batch.py", line 8, in
self.partials = {s: s.random_partial(utterances_per_speaker, n_frames) for s in speakers}
File "/home/zyq/speech/Real-Time-Voice-Cloning/encoder/data_objects/speaker.py", line 35, in random_partial
self._load_utterances()
File "/home/zyq/speech/Real-Time-Voice-Cloning/encoder/data_objects/speaker.py", line 19, in _load_utterances
self.utterance_cycler = RandomCycler(self.utterances)
File "/home/zyq/speech/Real-Time-Voice-Cloning/encoder/data_objects/random_cycler.py", line 15, in init
raise Exception("Can't create RandomCycler from an empty collection")
Exception: Can't create RandomCycler from an empty collection
The text was updated successfully, but these errors were encountered: