Кто знает, с чем связана такая ситуация. Дан датасет: набор .wav файлов и соответствующий .csv файл. Перед обучением модели исходное множество данных разбивается на train и validate. В ходе обучения для каждого задействованного .wav файла создается файл со спектрограммой .spec.pt. А теперь вопрос: почему в обучении (валидации) модели участвуют не все .wav файлы? Почему для существенной доли .wav файлов не появляются соответствующие .spec.pt файлы? Независимо от размера датасета, примерно треть всех .wav файлов не участвует в обучении модели. Почему так?
А, спасибо! Но в целом это не решает мою задачу. Всё равно есть такие .wav файлы, которые явно перечислены в train.csv, но для которых нет .spec.pt. И самое главное, таких файлов довольно много — грубо говоря треть всего датасета... А я под валидацию отдаю 20% всех файлов...
Надо смотреть, почему они пропали. Может быть формат был не тот, и поэтому пропустили файлы при извлечении признаков. В нормальной базе должны быть все файлы.
Я тоже так думал, но нигде не могу найти сообщений об ошибках. В коде Vits при неверном samplerate выбрасывается исключение... Но ни в логе, ни в консольном выводе исключений я не нашел... Я сделаю по-другому. Когда закончится мое текущее обучение, я удалю из датасета все "хорошие" файлы и оставлю только "плохие". Наверно Vits либо должен-таки их обработать, либо явно напишет, почему он не может этого сделать...
Если это репа с VITS отдельная, а не та, что в Nemo, то там есть ограничители по времени сэмплов. Причём какие-то хитрые, там список вида [200, 400, … 1000] и т.д. и проверяется, кажется, и максимальная, и минимальная длина (в кадрах спектрограммы). В общем, то, что в эти границы не влезает, выбрасывается. Может быть, поэтому не для всех файлов спектрограммы есть.
Это я про эту репу говорю: https://github.com/jaywalnut310/vits
Кстати, да, про длину текста я забыла. Я помню, что сталкивалась с этими ограничениями и, кажется, что-то правила (наверное, ограничение по длине текста). В общем-то всё это можно настраивать по себя, хотя оно максимально странно сделано, прямо захардкожено. Там где-то был пулл реквест, где предлагалось настройки boundaries перенести в конфиг, наверное, можно так и сделать для удобства. Подозреваю, что большинство здесь присутствующих используют для VITS какую-то другую репу.
Огромное спасибо! В общем, во-первых, wav-файлы для тренировки модели должны быть длительностью не больше 10 секунд, а во-вторых, я разобрался, как подкрутить параметры vits, чтобы мой текущий датасет обрабатывался полностью! Впредь так лучше не делать, буду готовить корректный датасет, но в целом полезно знать, где и какие есть ограничения и как их можно обойти! Еще раз спасибо!
А с чего именно 10 секунд? Просто интересно... Я и на 30 обучал.
См. выше мои сообщения. В чистом виде Vits отсекает тексты длиннее 190 символов и звуковые файлы длиннее 10 секунд. Ну точнее там проверяется не длительность в секундах, а вот такая формула: wav_length = file_size / (wav_channels * Bytes per dim) spec_length = wav_length // (2 * self.hop_length) И вот spec_length должно попадать в интервал от 32 до 1000. Не знаю, почему именно такие константы, но по умолчанию в исходниках vits именно так. Чтобы обработать мой текущий датасет, я сам увеличил максимальную длину текста до 250 символов, а длительность спектрограмм увеличил до 1200. Еще раз говорю, я использую чистый Vits. А вы из какого репозитория взяли исходники?
А можешь скинуть код, где менял? То же хочу проверить, в моей версии как это реализовано
Файл data_utils.py class TextAudioLoader(torch.utils.data.Dataset): def init(self, audiopaths_and_text, hparams): .......... .......... #self.max_text_len = getattr(hparams, "max_text_len", 190) self.max_text_len = getattr(hparams, "max_text_len", 250) Файл train.py train_sampler = DistributedBucketSampler( train_dataset, hps.train.batch_size, #[32,300,400,500,600,700,800,900,1000], [32,300,400,500,600,700,800,900,1000, 1100, 1200], .......... ..........
Какая у тебя версия? Где брал?
https://github.com/FENRlR/MB-iSTFT-VITS2
да, то же самое. спасибо
А какой результат учебы при таких параметрах отбора? Синтез и время обучения? Какие характеристики gpu?
Обсуждают сегодня