Подскажите как вы тренировали и подготавливали данные?

#2
by Rootreck - opened

Я при тренировке моделей следовал руководству из репозитория "https://github.com/voicepaw/so-vits-svc-fork", но у моделей которые я обучил при использовании в начеле и в конце фразы появляются артефакты (в вашей модели "Saya" таких артефактов нету). Подскажите, что я делаю не так и как это исправить - чтобы не было артефактов.
Пример (Saya), это ваша модель без артефактов -
Пример (Анна Генриета), это моя модель с артефактами -
Это пример артефактов в конце фраз -

@Rootreck Да, звучит странно, как будто реверс в концовке. Всё делал как уже описывал в #1, никаких особенных телодвижений не предпринимал, конфиг лежит в репозитории. Тут могу только предполагать:

  1. убедиться, что в датасете нет лишних звуков и шумов, посмотреть в аудиоредакторе - плоские ли вейвформы в конце файлов;
  2. можно попробовать уменьшить датасет, если он очень большой, предварительно удалив файлы, где голос срывается на крик или шепот;
  3. уменьшить количество эпох, если проблема в переобучении (можно еще поменять сид);
  4. воспользоваться сторонними средствами для разделения датасета (всё еще важно придерживаться правил с максимальной длиной файла в 10 секунд);
  5. попробовать обучить небольшой кусок с замедлением/ускорением скорости и с уменьшением/увеличением высоты тона датасета, следить за разницей между итерациями.

Спасибо за ответ

  1. У меня датасет выложен, я не знаю насчёт правильности - это просто голосовые файлы, которые были вытащены из игры и отформатированы под формат 44Hz Mono 16bit
  2. Датасет состоит из 422 файла, по длительности это 40 минут 34 секунды. Имеется ли способ автоматически удалить не подходящие звуки (Шепот и крики)?
  3. Я пробовал начинать обучения сначала и результат точно такой-же
  4. Я не знаю инструментов для разделения датасета, но для нарезки пробовал "slicer-gui = https://github.com/flutydeer/audio-slicer". В основном датасете файлы не нарезаны, но при новом обучении я их нарезал и результат совершенно не изменился.
    Это настройки "slicer-gui ", которые я использовал для подготовки 2-ой версии датасета (у меня в профиле выложена 1-ая версия) Audio Slicer 21.10.2023 11_26_19.png

@Rootreck Похоже, что в Вашем случае проблема в неправильной настройке программы, которую Вы использовали для нарезки датасета. В папке "01. dataset (Подготовленные файлы)" явно прослушиваются скомканные окончания, чего нет в wav файлах папки “00. Исходные файлы из игры”. Скорее всего для этой программы нужно подобрать пороговое значение "Threshold (dB)" для правильного определения моментов тишины. В будущем рекомендую использовать встроенный инструментарий через svc pre-split
Если посмотреть исходные данные, то этот датасет и не нуждается в дополнительной нарезке, достаточно удалить файлы длиннее 10 секунд, которых оказалось немного:

-rw-r--r-- 1 1301676 1023_0x001249bc.wav
-rw-r--r-- 1 1696428 1134_0x0011d50f.wav
-rw-r--r-- 1 1379500 1200_0x001214ac.wav
-rw-r--r-- 1 1818540 1231_0x0011d493.wav
-rw-r--r-- 1 1071020 149_0x001249ba.wav
-rw-r--r-- 1 1228204 1543_0x0011cea3.wav
-rw-r--r-- 1 1146796 17_0x001255c9.wav
-rw-r--r-- 1 1069484 181_0x0011464c.wav
-rw-r--r-- 1 1117100 183_0x001255eb.wav
-rw-r--r-- 1 1074604 1887_0x0011c251.wav
-rw-r--r-- 1 1271980 198_0x0011b994.wav
-rw-r--r-- 1 1173676 2156_0x0011f23f.wav
-rw-r--r-- 1 1519020 217_0x0011ce8f.wav
-rw-r--r-- 1 1433004 219_0x0011ce93.wav
-rw-r--r-- 1 1085100 236_0x0011ebc8.wav
-rw-r--r-- 1 1156268 242_0x0011e18e.wav
-rw-r--r-- 1 1472172 317_0x00123b82.wav
-rw-r--r-- 1 1233836 319_0x00123b86.wav
-rw-r--r-- 1 1527468 332_0x0011cec1.wav
-rw-r--r-- 1 1169836 406_0x00124c57.wav
-rw-r--r-- 1 1240492 444_0x0011cef6.wav
-rw-r--r-- 1 1084588 560_0x0011cf0a.wav
-rw-r--r-- 1 1132204 613_0x0011cede.wav
-rw-r--r-- 1 1838508 647_0x00118a61.wav
-rw-r--r-- 1 1136300 647_0x0012550f.wav
-rw-r--r-- 1 1630892 68_0x001255f9.wav
-rw-r--r-- 1 1331116 70_0x001255fb.wav
-rw-r--r-- 1 1075116 72_0x001255fd.wav
-rw-r--r-- 1 1564332 76_0x00125601.wav
-rw-r--r-- 1 1362860 807_0x00118a40.wav
-rw-r--r-- 1 1143468 809_0x0011f0c0.wav
-rw-r--r-- 1 1092524 843_0x0011f640.wav
-rw-r--r-- 1 1126572 850_0x0011e6e3.wav
-rw-r--r-- 1 1558188 851_0x0011e6e5.wav
-rw-r--r-- 1 1416364 907_0x001238cb.wav
-rw-r--r-- 1 1105580 921_0x001238d9.wav
-rw-r--r-- 1 1211820 975_0x001249b2.wav

Далее просто действуем по инструкции:

svc pre-resample
svc pre-config
svc pre-hubert
svc train –t
config.json
{
  "train": {
    "log_interval": 100,
    "eval_interval": 200,
    "seed": 1234,
    "epochs": 1000,
    "learning_rate": 0.0001,
    "betas": [
      0.8,
      0.99
    ],
    "eps": 1e-09,
    "batch_size": 32,
    "fp16_run": false,
    "bf16_run": false,
    "lr_decay": 0.999875,
    "segment_size": 10240,
    "init_lr_ratio": 1,
    "warmup_epochs": 0,
    "c_mel": 45,
    "c_kl": 1.0,
    "use_sr": true,
    "max_speclen": 512,
    "port": "8001",
    "keep_ckpts": 3,
    "num_workers": 4,
    "log_version": 0,
    "ckpt_name_by_step": false,
    "accumulate_grad_batches": 1
  },
  "data": {
    "training_files": "filelists/44k/train.txt",
    "validation_files": "filelists/44k/val.txt",
    "max_wav_value": 32768.0,
    "sampling_rate": 44100,
    "filter_length": 2048,
    "hop_length": 512,
    "win_length": 2048,
    "n_mel_channels": 80,
    "mel_fmin": 0.0,
    "mel_fmax": 22050,
    "contentvec_final_proj": false
  },
  "model": {
    "inter_channels": 192,
    "hidden_channels": 192,
    "filter_channels": 768,
    "n_heads": 2,
    "n_layers": 6,
    "kernel_size": 3,
    "p_dropout": 0.1,
    "resblock": "1",
    "resblock_kernel_sizes": [
      3,
      7,
      11
    ],
    "resblock_dilation_sizes": [
      [
        1,
        3,
        5
      ],
      [
        1,
        3,
        5
      ],
      [
        1,
        3,
        5
      ]
    ],
    "upsample_rates": [
      8,
      8,
      2,
      2,
      2
    ],
    "upsample_initial_channel": 512,
    "upsample_kernel_sizes": [
      16,
      16,
      4,
      4,
      4
    ],
    "n_layers_q": 3,
    "use_spectral_norm": false,
    "gin_channels": 256,
    "ssl_dim": 768,
    "n_speakers": 200,
    "type_": "hifi-gan",
    "pretrained": {
      "D_0.pth": "https://huggingface.co/datasets/ms903/sovits4.0-768vec-layer12/resolve/main/sovits_768l12_pre_large_320k/clean_D_320000.pth",
      "G_0.pth": "https://huggingface.co/datasets/ms903/sovits4.0-768vec-layer12/resolve/main/sovits_768l12_pre_large_320k/clean_G_320000.pth"
    }
  },
  "spk": {
    "issue2": 0
  }
}

Вот результаты быстрого поверхностного обучения (svc 4.0 d44d01787cbdc390599b1deed865b952bfaab300, прервано на 150 эпохе) с помощью моего ттс скрипта:

diff --git a/silero_tts.py b/silero_tts.py
index cac60be..d9fe98e 100644
--- a/silero_tts.py
+++ b/silero_tts.py
@@ -49,8 +49,8 @@ def experimental_svc(stream, export_folder): # UNSTABLE
     in_path = os.path.join(svc_path, "tmp", "in")
     out_path = os.path.join(svc_path, "tmp", "out")
 
-    model_name = "ru-saya" # https://huggingface.co/fnx/so-vits-svc-4.0-ru-saya/tree/main
-    checkpoint_name = "G_10000.pth"
+    model_name = "issue2" # https://huggingface.co/fnx/so-vits-svc-4.0-ru-saya/discussions/2
+    checkpoint_name = "G_150.pth"
 
     threshold = "-25" if speaker == "xenia" else "-20"
     svc_device = "cuda" if cfg["device"] == "cuda" else "cpu"
@@ -75,7 +75,7 @@ def experimental_svc(stream, export_folder): # UNSTABLE
                   "-s " + model_name + " " \
                   "-m " + os.path.join(svc_path, "models", model_name, checkpoint_name) + " " \
                   "-c " + os.path.join(svc_path, "models", model_name, "config.json") + " " \
-                  "-t 3 " \
+                  "-t -2 " \
                   "-db " + threshold + " " \
                   "--no-auto-predict-f0 " \
                   "-d " + svc_device + " " \

Если продолжить обучение, то результат, конечно, должен быть лучше.

1000 эпох:

Спасибо за ответ.
Я решил проблему другим способом - начав использовать другой Google Colab: (Я пробовал разным способом подготавливать данные и разницы не было, а вот при переходе на другой Colab разница появилась сразу-же).

Раньше использовал - https://colab.research.google.com/drive/13GFiLqpjEWH8Ou6bovqNms8kJQHedzzu
В этом Colab легко тренировать и продолжать тренировку, но у моделей появляется дефект описанный выше и для тренировки надо много заходов (4 часа каждый день на протяжении 9-14 дней).
Так-же тут у выходной модели в имение G_99000 - это количество шагов, а не эпох.

Теперь использую - https://colab.research.google.com/github/voicepaw/so-vits-svc-fork/blob/main/notebooks/so-vits-svc-fork-4.0.ipynb
В этом Colab чуть сложнее тренировать, менее удобно. Зато нет дефектов, которые описаны выше и времени для тренировки надо значительно меньше (за 1 проход и 4 часа получился результат как за 4 прохода по 4 часа в старом Colab).
У этого Colab в названии G_1000 - это количество эпох, а не шагов.
Мне не понятно как продолжать тренировку по достижению лимита. При следующем запуске и начале тренировки, процесс просто останавливается без ошибок и прочего.
Мне бы очень хотелось тренировать на своём ПК, но у меня не выходит - думаю, что видеокарта слабая (GTX 1060 6gb).

У меня несколько вопросов:

  1. Как продолжить тренировку модели?
  2. Что вы используете для обучения?
    1. Если свой ПК, то какая конфигурация?
    2. Если Colab, то какой?
  3. Я думаю обновится на "RTX 3070 8gb", но боюсь ей не хватит видеопамяти для тренировки. (Бюджет у меня не большой).

1000 эпох:

У меня ещё вопрос, эта аудио запись была сделана методом накладывания модели поверх заранее озвученной фразы или сгенерирована каким-то инструментом методом TTS?

Rootreck changed discussion status to closed

В пакете файлов, которые у меня выложены фразы не были нарезаны вообще. В папке "01. dataset (Подготовленные файлы)" лежат файлы после конвертации из формата "WAV 48Hz Mono 16 bit" в "WAV 44Hz Mono 16bit" - Конвертация происходила в "Adobe Audition CC 2022" с помощью инструмента "Пакетная обработка". В процессе конвертации ничего не удалялось и не вырезалось (в том числе и тишина), а так-же не было никакой обработки.

Эти настройки я использовал для проверки.
Audio Slicer 21.10.2023 11_26_19.png
Датасет после нарезки этой программой я не выкладывал, так-как результат после тренировки оказался таким-же как без нарезки вообще.

Это сделано с помощью старого Colab (Который удобный) = (Тут 1092 эпох на которые было потрачено 9 дней, по 4 часа каждый день)

Это сделано с помощью нового Colab (Который не удобный, но белее быстрый)= (Тут 102 эпохи на которые было потрачено 3 часа)

Датасет в обоих случаях один и тот-же, который выложен у меня в профиле и который не нарезан.

Как продолжить тренировку модели?

Тут уже надо смотреть по .ipynb, возможно скрипт делает шаги, которые не нужны при возобновлении обучения, например ресемплирование, конфигурация и т.д. Выполняйте всё шаг за шагом, и уже смотрите где упадет. Можно еще посмотреть по структуре файлов (слева) - какие файлы хранятся в конце успешного обучения, и отсюда делать вывод, что где-то есть что-то лишнее или, наоборот, чего-то не хватает. По факту должно быть достаточно копирования промежуточно обученных данных из драйва, установки пакетов и, непосредственно, выполнения "svc train".

Что вы используете для обучения?

Локальный ПК.

Если свой ПК, то какая конфигурация?

RTX 4090, R7 7700x, 64 гб. RAM

Если Colab, то какой?

Не использую.

но боюсь ей не хватит видеопамяти для тренировки

Согласно данному issue - минимальный объем VRAM для обучения – 4 гб., возможно обучение будет медленным, но работать должно, главное подобрать batch_size.

эта аудио запись была сделана методом накладывания модели поверх заранее озвученной фразы или сгенерирована каким-то инструментом методом TTS?

Как писал выше, я использую свой скрипт. Он объединяет в себе ТТС генерацию текста/книг с помощью Silero, объединение выходных файлов, конвертацию через SVC/RVC и сжатие в opus. Ссылка на ветку с последним вариантом скрипта, который поддерживает svc. Также есть colab вариант. В основной ветке от svc отказался в пользу RVCv2 RMVPE в связи подавляющем преимуществом в качестве перед SVC, а также высокой скоростью обработки (VRAM, правда, нужно много).

В процессе конвертации ничего не удалялось и не вырезалось

Это определенно не так. Возьмем самый первый файл: "Время не ждет" 6_0x0011b74e.wav и сравним варианты из 00. Исходные файлы из игры (сверху) и 01. dataset (Подготовленные файлы) (снизу):

2023-10-26_175728.png

В первом варианте всё отлично, во втором произносится "Время не ждё". Т.е. буква "т" отсутствует. Выделенный фрагмент на скрине - и есть та самая "т". В остальных файлах похожая ситуация.

Сейчас посмотрю, но я точно сам ничего не удалял и Adobe Audition ничего не удаляет если ему не дать команду.

6_0x0011b74e 26.10.2023 19_30_07.png
У меня эти файлы почти идентичны, за исключением частоты дискретизации (Файл до обработки имеет частоту 48000Гц, а файл после обработки имеет частоту 44100Гц)

В архиве "Dataset" действительно имеются обрезанные файлы, но этот архив создаётся при работе в Colab в автоматическом режиме. Там так-же автоматически создаются файлы ".f0.npy" и ".soft.pt" для аудио файлов.

В папке "01. dataset (Подготовленные файлы)":

  1. Лежит архив "TW3_F_Anna_Henrietta_Rus.zip" это файлы, которые я подготовил методом конвертации в Adobe Audition
  2. Лежит папка "TW3_F_Anna_Henrietta_Rus" это автоматически сгенерированные в Colab данные

В папке "TW3_F_Anna_Henrietta_Rus" лежат следующие файлы:

  1. config.json
  2. dataset.zip
  3. train.txt
  4. val.txt

В архиве "dataset.zip" лежат файлы после команды "Обработка датасета" в Colab.

  1. Сам аудио файл ".wav"
  2. Файл ".wav.f0.npy" (Я не знаю для чего он)
  3. Файл ".wav.soft.pt" (Я не знаю для чего он)

Спасибо, благодаря вашей внимательности теперь я знаю, что тот Colab который я использовал брал и резал файлы.

У меня конфиг ПК следующий:

  1. GTX 1060 6gb
  2. i7 12700,
  3. 32 гб. RAM
  4. HDD 4TB

Как я понял подобрав "batch_size" в "Config.json" - можно и на моей видеокарте запустить

В архиве "Dataset" действительно имеются обрезанные файлы, но этот архив создаётся при работе в Colab в автоматическом режиме.

Только эти файлы при обучении являются самыми важными. Про файлы numpy ничего не могу сказать, в локальной версии такие файлы не создаются, похоже на капризы первого colab файла, который, кстати, использует не оригинальный репозиторий, а https://github.com/effusiveperiscope/so-vits-svc ветки eff-4.0

UPD: Скорее даже важными являются .pt, основанные на этих .wav файлах.

При следующем запуске и начале тренировки, процесс просто останавливается без ошибок и прочего.

Возможно это Ваш случай https://github.com/voicepaw/so-vits-svc-fork/issues/409

Я это уже пробовал, мне не помогло.

Я хочу попробовать запустить локальное обучение на своём ПК, что мне для этого требуется?
Что скачивать?
Куда размещать?
Как настраивать?

Я использую so-vits-svc-fork, читайте readme.

Что скачивать?

https://github.com/voicepaw/so-vits-svc-fork#option-3-manual-installation

Куда размещать?

https://github.com/voicepaw/so-vits-svc-fork#local

Как настраивать?

https://github.com/voicepaw/so-vits-svc-fork#external-links

Я запустил на локальном компьютере по инструкции и до этапа "svc train -t" всё работает, но на "svc train -t" выдаётся ошибка:

P:\SVC\so-vits-svc-fork\venv>svc train -t
[03:45:30] INFO [03:45:30] Server binary (from Python package v0.7.2): None server_ingester.py:290
Traceback (most recent call last):
File "C:\Programs-Custom\Programming\Python\Python310\lib\runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Programs-Custom\Programming\Python\Python310\lib\runpy.py", line 86, in run_code
exec(code, run_globals)
File "P:\SVC\so-vits-svc-fork\venv\Scripts\svc.exe_main
.py", line 7, in
File "P:\SVC\so-vits-svc-fork\venv\lib\site-packages\click\core.py", line 1157, in call
return self.main(*args, **kwargs)
File "P:\SVC\so-vits-svc-fork\venv\lib\site-packages\click\core.py", line 1078, in main
rv = self.invoke(ctx)
File "P:\SVC\so-vits-svc-fork\venv\lib\site-packages\click\core.py", line 1688, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "P:\SVC\so-vits-svc-fork\venv\lib\site-packages\click\core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "P:\SVC\so-vits-svc-fork\venv\lib\site-packages\click\core.py", line 783, in invoke
return _callback(*args, **kwargs)
File "P:\SVC\so-vits-svc-fork\venv\lib\site-packages\so_vits_svc_fork_main
.py", line 125, in train
url = tb.launch()
File "P:\SVC\so-vits-svc-fork\venv\lib\site-packages\tensorboard\program.py", line 316, in launch
server = self._make_server()
File "P:\SVC\so-vits-svc-fork\venv\lib\site-packages\tensorboard\program.py", line 474, in _make_server
return self.server_class(app, self.flags)
File "P:\SVC\so-vits-svc-fork\venv\lib\site-packages\tensorboard\program.py", line 654, in init
return cls(wsgi_app=wsgi_app, flags=subflags)
File "P:\SVC\so-vits-svc-fork\venv\lib\site-packages\tensorboard\program.py", line 712, in init
super().init(host, port, wsgi_app, _WSGIRequestHandler)
File "P:\SVC\so-vits-svc-fork\venv\lib\site-packages\werkzeug\serving.py", line 746, in init
self.server_bind()
File "P:\SVC\so-vits-svc-fork\venv\lib\site-packages\tensorboard\program.py", line 829, in server_bind
super().server_bind()
File "C:\Programs-Custom\Programming\Python\Python310\lib\http\server.py", line 138, in server_bind
self.server_name = socket.getfqdn(host)
File "C:\Programs-Custom\Programming\Python\Python310\lib\socket.py", line 793, in getfqdn
hostname, aliases, ipaddrs = gethostbyaddr(name)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x96 in position 10: invalid start byte

P:\SVC\so-vits-svc-fork\venv>

Что с этим делать?

Что с этим делать?

Ошибка локально не воспроизводится. Похоже что-то с несоответствием кодировок, возможно поможет другой способ установки.
Вам сюда https://github.com/voicepaw/so-vits-svc-fork/issues

P:\SVC\so-vits-svc-fork\venv>

И судя по промту - у Вас не активировано виртуальное окружение (venv)

Другой способ установки выдаёт точно такую-же ошибку, которая связана с кодировкой (чего-то):

(so-vits-svc-fork) C:\Programs-Custom\Programming\miniconda3\envs\so-vits-svc-fork>svc train -t
[10:08:39] INFO [10:08:39] Server binary (from Python package v0.7.2): None server_ingester.py:290
Traceback (most recent call last):
File "C:\Programs-Custom\Programming\miniconda3\envs\so-vits-svc-fork\lib\runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Programs-Custom\Programming\miniconda3\envs\so-vits-svc-fork\lib\runpy.py", line 86, in run_code
exec(code, run_globals)
File "C:\Programs-Custom\Programming\miniconda3\envs\so-vits-svc-fork\Scripts\svc.exe_main
.py", line 7, in
File "C:\Users\Root\AppData\Roaming\Python\Python310\site-packages\click\core.py", line 1157, in call
return self.main(*args, **kwargs)
File "C:\Users\Root\AppData\Roaming\Python\Python310\site-packages\click\core.py", line 1078, in main
rv = self.invoke(ctx)
File "C:\Users\Root\AppData\Roaming\Python\Python310\site-packages\click\core.py", line 1688, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "C:\Users\Root\AppData\Roaming\Python\Python310\site-packages\click\core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "C:\Users\Root\AppData\Roaming\Python\Python310\site-packages\click\core.py", line 783, in invoke
return _callback(*args, **kwargs)
File "C:\Programs-Custom\Programming\miniconda3\envs\so-vits-svc-fork\lib\site-packages\so_vits_svc_fork_main
.py", line 125, in train
url = tb.launch()
File "C:\Programs-Custom\Programming\miniconda3\envs\so-vits-svc-fork\lib\site-packages\tensorboard\program.py", line 316, in launch
server = self._make_server()
File "C:\Programs-Custom\Programming\miniconda3\envs\so-vits-svc-fork\lib\site-packages\tensorboard\program.py", line 474, in _make_server
return self.server_class(app, self.flags)
File "C:\Programs-Custom\Programming\miniconda3\envs\so-vits-svc-fork\lib\site-packages\tensorboard\program.py", line 654, in init
return cls(wsgi_app=wsgi_app, flags=subflags)
File "C:\Programs-Custom\Programming\miniconda3\envs\so-vits-svc-fork\lib\site-packages\tensorboard\program.py", line 712, in init
super().init(host, port, wsgi_app, _WSGIRequestHandler)
File "C:\Programs-Custom\Programming\miniconda3\envs\so-vits-svc-fork\lib\site-packages\werkzeug\serving.py", line 746, in init
self.server_bind()
File "C:\Programs-Custom\Programming\miniconda3\envs\so-vits-svc-fork\lib\site-packages\tensorboard\program.py", line 829, in server_bind
super().server_bind()
File "C:\Programs-Custom\Programming\miniconda3\envs\so-vits-svc-fork\lib\http\server.py", line 139, in server_bind
self.server_name = socket.getfqdn(host)
File "C:\Programs-Custom\Programming\miniconda3\envs\so-vits-svc-fork\lib\socket.py", line 793, in getfqdn
hostname, aliases, ipaddrs = gethostbyaddr(name)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x96 in position 10: invalid start byte

(so-vits-svc-fork) C:\Programs-Custom\Programming\miniconda3\envs\so-vits-svc-fork>

Совершенно не понятно, как это решать.

Вот тут (https://stackoverflow.com/questions/25948687/gethostbyaddr-raises-unicodedecodeerror-in-python-3) есть решение подобной проблемы, которое связана с названием ПК (hostname), там предлагается следующие:
в консоли (CMD) Windows написать команду "hostname", чтобы узнать имя компьютера (так-как если оно содержит кириллицу, то будет ошибка связанная с кодировкой) - у меня компьютер называется "Root-PC", кириллицы в названии нет.

Спасибо, за уделённое внимание - мне удалось запустить локальную тренировку на своём ПК.
Мне помогло следующие:

  1. Я перенёс "SVC" из пути "J:\Programs\Audio Editor's\SO-VITS-SVC\so-vits-svc-fork\venv",
    по пути "P:\SVC\so-vits-svc-fork\venv".
  2. Я использовал для запуска тренировки не команду "svc train -t" как в инструкции на "https://github.com/voicepaw/so-vits-svc-fork",
    а команду "svc train" как в видео "https://www.youtube.com/watch?v=tZn0lcGO5OQ"

Вы писали "И судя по промту - у Вас не активировано виртуальное окружение (venv)", я в той попытке запускал без виртуального окружения (напрямую, у меня всё работало за исключением тренировки (и сейчас работает)). Это с помощью "easy-installation\install.bat", который можно скачать тут "https://github.com/voicepaw/so-vits-svc-fork/tree/main/easy-installation"

Для работы на своей видеокарте (GTX 1060 6gb), я изменил следующие параметры в файле "config.json", который находится по пути "envs\so-vits-svc-fork\configs\44k"

  1. "epochs": 10000, - я поменял на "epochs": 100,
  2. "batch_size": 16, - я поменял на "batch_size": 4, (при таком значении у меня видеокарта использует 5.2 гигабайта видеопамяти).

Я очень рад полученному результату и благодарен вам за потраченное время, возможно когда-нибудь вся эта информация поможет ещё кому-то с такой-же проблемой.

Sign up or log in to comment