-
Notifications
You must be signed in to change notification settings - Fork 4.5k
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
[Bug] in XTTSv1 and XTTSv2 i get error ❗ len(DataLoader) returns 0 in not-english #3229
Comments
How many samples do you have? |
I would guess the problem is that the tokenizer does not support greek which causes error in loading your data, resulting in an empty data loader. |
thank for your quick reply first test like use in notebook
second test 2
this data i use with vits model and working fine with not any problem the problem it's when i use with in xttsv1,xttsv2 i test both same problem i try also to phonemizer or unidecode in the metadata.csv like say
and also i try unidecode from Greek to English so like this i have only English character and same problem again
thank you for your time let me know if you want to test something else |
same as my issue |
i just reproduced your error by changing the language code on my working dataset to "grc" (as set in you notebook). So, try to change the language code together with the english characters, it should work. |
@stlohrey thank you ! look like this the problem with language code and characters Greek like you say @erogol can you please check this problem if possible to fix the problem it's here like you say
it's possible some how use phonemizer for better train like i do with vits ? if use like this don't working again same problem
method with unidecode working pass
method with phonemizer error len
thank you |
i think for adding a new language, you would have to work on the tokenizer script to introduce text cleaners for the new language, but also on the vocab, because the language code is tokenized together with the text, and that means that you would need to train the gpt model on the new tokens. i also dont think ipa phonemes represented i the vocab.json file provided. |
how i can train gpt model with the new tokens ? can please give me more info about this |
you would need to change the tokenizer vocab and model config, maybe add a text cleaner for your language, and then run the trainer. I don't know if transfer learning from the pretrained checkpoint with new or modified input tokens works or makes sense. I also dont know if you would have to finetune the quantizer and the hifidecoder with the new language audio. maybe @erogol can give some hints on that topic. |
@stlohrey thank you very much for all your the help :) @erogol know you're working hard, and I really appreciate it. Any hints would be great how add new language or finetune in Greek with the power of new model xtts . i know there is already support in vits i just need to know , any chance Greek in xtts could be supported in the next release? Thanks again for your amazing work. |
config_dataset = BaseDatasetConfig( formatter="ljspeech", dataset_name="ljspeech", path="/home/lpc/appPython/ttsNew/lora", meta_file_train="metadata_fix.csv", language="en", # <<< if i use grc code or el dont working problem ) I assign meta_file_val can run with Chinese dataset, maybe you can try. |
@AIFSH thank you , i test like you say and does not working same problem again . |
You can train over any other that has the closest to your over time it mostly clear accents. |
@brambox hi thank you for the info and your help, 1 . i go to [TTS/tts/configs/xtts_config.py] i add the language here in dictionary now this i found and try to do i just use already symbols in register inside in vocab.json
and i make simple dictionary map for replace the character i need for the text i use
i wonder how you change the vocab.json because when i try add or change i get error let me know and yes be great if someone of developers give more help , |
Try just adding the language without anything more put some random id and start training see the result that way. |
@brambox you mean to go inside to vocab.json ? and add the language ?
|
It seems we are kind of doing work around to use new lang but it will still need to train over an existing one. |
ok this working you can replace the lang like you say and train start. but also need to replace in metadata.csv the character with already in register vocab.json , other get error len(DataLoader) returns 0 this because there is not Greek characters in vocab.json and if you try add,or replace already symbols like "a": 14 with "α": 14 you get error, so i guest no need to change anything in script in my case don't working so the only i can do it's just replace in metadata.csv only with English character and the train start with lang "en" like in my preview messages like i say with unidecode i wonders with this method you try i guest with need wait someone help for this like you say . |
Overall its pretty decent. The accents mostly clear over time just little bit. |
yes same here more hours make worst the stuff i try with 4 hours and then 12 hours also i have a lot time repeat same stuff some time listen with English accents sometime, very slow and fast and noise , so like i see this no working for my Languase and look like also like you say in yours , and yes sometime when it's working it's listen natural better for the model vits this i dont know if possible somehow to make work in this version xtts or need wait next release , i have some question to know i do correct the stuff
thank you for your time |
Actually ran into this issue with an english dataset. Always filters down to 0. |
I ran into the same problem aswell. Tried the upwards manually fixings, with no luck. |
Hi @lpscr, Hi @arbianqx, This message "> Total eval samples after filtering: 0" indicates that you don't have any eval samples that meet the training requeriments. It can be caused by three reasons:
In all these scenarios, you need to change (or create) your eval CSV to meet the requirements for training. In your case looks like the issue is 3. You didn't provide a eval CSV and all the samples automatically selected are too long. In that way, all the evaluation samples will be filtered. I would recommend you create an eval CSV file using part of your data (like 15%), making sure that the samples respect the Alternatively, the PR #3296 implements a gradio demo for data processing plus training and inference for XTTS model. On the PR, have also have a Google Colab and soon we will do a video showing how to use the demo. |
Feel free to reopen if the comment above doesn't help. |
@erogol @Edresson Hi , I intended to finetune xtts_v2 for Persian language and for this according to above comment they mentioned 2-4 hours of dataset is ok to fine tune the model but you didn't answer whether it is fine or not .can you advise me asap this is very Urgent for me ##3229 (comment) |
Describe the bug
hi first i want to thank you for all your amazing work !
please if you have little time please check this , i have also notebook easy to debug the problem
i follow the steps for recipes in xttsv1,xttsv2
https://github.com/coqui-ai/TTS/tree/dev/recipes/ljspeech/xtts_v1
https://github.com/coqui-ai/TTS/tree/dev/recipes/ljspeech/xtts_v2
AssertionError: ❗ len(DataLoader) returns 0. Make sure your dataset is not empty or len(dataset) > 0.
if i test on vits,glow working just fine with not any problem and i can complete the train
https://github.com/coqui-ai/TTS/tree/dev/recipes/ljspeech/vits_tts
To Reproduce
i have create simple notebook for easy to see the problem ,
i have also fix the dataset i use from kaggle
testTTSV1_2.zip
Expected behavior
No response
Logs
Environment
Additional context
No response
The text was updated successfully, but these errors were encountered: