После большой подготовительной работы в этой статье описывается Обучение. китайской модели VITS с использованием речи Genshin Процесс воздействия.
Позвольте мне рассказать вам, почему vits_chinese , большинство из тех, которые используются в Интернете, ВИТС (версия VitchCengh),Но я думаю этот склад уже больше полугода не обслуживается,Torch Версия старая, модель относительно большая, и vits_chinese Для сравнения, техническое обслуживание является более тщательным и способствует дистилляции знаний, что снижает infer По цене я тоже хочу попробовать другой маршрут, чем все остальные.
При комментировании слушайте аудио и комментируйте ритм паузы аудио, исходя из чувства языка говорящего.
Всего четыреиндивидуальныйвыноска:#1、#2、#3、#4
1 | git@github.com:PlayVoice/vits_chinese.git |
---|
BaiduYun: https://pan.baidu.com/s/1Cj4MnwFyZ0XZmTR6EpygbQ?pwd=yn60
Google: https://drive.google.com/drive/folders/1sioiNpebOLyCmHURgOgJ7ppWI7b-7Rb5?usp=sharing
Скачанная модель vits_bert_model.pth
и prosody_model.pt
вставить bert
папка
12345 | pip install -r requirements.txtcd monotonic_alignpython setup.py build_ext --inplace |
---|
в соответствии с Genshin Impact - Классификация и распознавание речи на континенте Тейват Отфильтрованный звук с использованием Распознавание речи iFlytek результат, применение Python Распознавайте китайский язык и генерируйте пиньинь с помощью тонов метод, согласно vits_chinese Склад Аудио Характеристики маркировки,Создание речевых аннотаций,Я опубликовал свой пример кода,Только для справки:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 | import mtutils as mtimport pypinyindef make_chinese_label(xf_res): chinese_label = '' pure_chinese_str_list = list() chinese_char_num = 0 for sub_sentence in xf_res:-1: pure_chinese_str = '' for sub_data in sub_sentence: cw = sub_data'cw' assert len(cw) == 1 cw = cw0 if len(cw'w') > 1: chinese_label += cw'w' chinese_label += '#2' pure_chinese_str += cw'w' else: single_char = cw'w' if single_char in ',', ',', '、', ':', '?','?', '!', '!': chinese_label = chinese_label:-1 + '3' chinese_label += single_char else: chinese_label += single_char chinese_label += '#1' pure_chinese_str += single_char pure_chinese_str_list.append(pure_chinese_str) chinese_char_num += len(pure_chinese_str) chinese_label = chinese_label:-1 + '4' chinese_label += xf_res-1'cw''w' return chinese_label, pure_chinese_str_list, chinese_char_numdef make_pinyin_label(pure_chinese_str_list): sub_res_str_list = list() for pure_chinese_str in pure_chinese_str_list: pinyin_sub_res = pypinyin.lazy_pinyin(pure_chinese_str, style=pypinyin.STYLE_TONE3, neutral_tone_with_five=True) sub_res_str = mt.str_connection(*pinyin_sub_res, connect_char=' ') sub_res_str_list.append(sub_res_str) result_str = mt.str_connection(*sub_res_str_list, connect_char=' ') return result_strif __name__ == '__main__': role_name = 'Виола' dir_list, file_list = mt.get_dir_file_list('fea/classified_data_plus/') match_num = 0 match_dir_path = None for dir_path in dir_list: if role_name in dir_path: match_num += 1 match_dir_path = dir_path assert match_num == 1 print(match_dir_path) xf_match_res = mt.json_load('xf_rec_results.json') role_wav_path_list = mt.glob_recursively(match_dir_path, 'wav') match_pair = list() loss_pair = list() for role_wav_path in mt.tqdm(role_wav_path_list): key = mt.OS_basename(role_wav_path) if key in xf_match_res: match_pair.append([key, xf_match_reskey]) else: loss_pair.append(key) label_result_str_list = list() for match_item in mt.tqdm(match_pair, desc="Создать метку: "): key = mt.get_path_stem(match_item0).replace(' ', '_') data = match_item1 chinese_label, pure_chinese_str_list, chinese_char_num = make_chinese_label(data) first_line = key + '\t' + chinese_label second_line = '\t' + make_pinyin_label(pure_chinese_str_list) if chinese_char_num > 2: label_result_str_list.append(first_line) label_result_str_list.append(second_line) mt.file_write_lines(label_result_str_list, 'gt_label/' + role_name + '_gt_1.0.txt', overwrite=True) pass |
---|
Уведомление: В результатах распознавания речи будут арабские цифры, и нам нужно найти способ преобразовать их в китайские.
Если бы у меня было 10 баллов за мои способности --> Если ты очень способен
Организованные аннотации должны быть в следующем формате:
123456 | 3011_00035 В противном случае №2 сможет №1 догнать №1, но не сможет №1 выполнить ежедневное домашнее задание №1 №1 №4 №1. bu4 ran2 ke3 gan3 bu4 wan2 mei3 ri4 de5 gong1 ke41013_00252 Когда я был ребенком №3, я №1 однажды пришел №2 со своим отцом №1 №2 №2 дня №1 постоянно №1 гора №3, я помню №2 эту гору №1 №1 хорошо №1 высоко №1 хорошо № 1 высота № 3, когда мы поднялись на вершину горы № 2 № 2, ноги № 1 № 1 уже болели № 2 № 1 и № 1 больше не могли № 2 № 4. Сяо3 Ши2 Хоу4 Во3 Суй2 Фу4 Цинь1 Лай2 Го4 Йи1 Ци4 Тянь1 Хэн2 Шань1 Цзи4 Дэ5 Чжэ4 Цзо4 Шань1 Хао3 Гао1 Хао3 Гао1 Па2 Дао4 Шань1 Дин3 Ши2 Туй3 И3 Цзин1 Суань1 Дэ5 Бу4 Син2 le53011_00085 А, №3, ты №2 - №3 из №1, из какой №1 газеты №2? Почему №1 не видел №1 №4 раньше №2? а5 ни3 мэн5 ши4 на3 цзя1 бао4 ше4 дэ5 вэй4 шен2 мэ5 чжи1 цянь2 доу1 мэй2 цзянь4 го4 |
---|
Будет соответствовать аудиофайлу вставить data/waves
папкасередина (необходимо конвертировать в 16k частота дискретизации)
1 | python vits_prepare.py -c ./configs/bert_vits.json |
---|
Основной файл train.py
,У меня всегда проблемы с многопоточностью,Рекомендуется main()
Метод изменен на:
12345678910111213141516171819 | def main(): """Assume Single Node Multi GPUs Training Only""" assert torch.cuda.is_available(), "CPU training is not allowed." n_gpus = torch.cuda.device_count() os.environ"MASTER_ADDR" = "localhost" os.environ"MASTER_PORT" = "40000" hps = utils.get_hparams() run(0, 1, hps) # mp.spawn( # run, # nprocs=n_gpus, # args=( # n_gpus, # hps, # ), # ) |
---|
основнойтренироваться Заказ
1 | python train.py -c configs/bert_vits.json -m bert_vits |
---|
Необходимо настроить такую информацию, как аннотации и файлы конфигурации.
Вы можете использовать официальные рекомендуемые данные use для непосредственной практики и создания готовых данных:
12 | download baker data: https://www.data-baker.com/data/index/TNtts/change sample rate of waves to 16kHz, and put waves to ./data/waves |
---|
яиспользоватьанютины глазки Аудиодокументтренироваться Понятно VITS Модель,тренироваться можно попробовать вывести после того, как она будет готова, 10000 индивидуальный Iter Наконец, я вывел индивидуальную Модель и мне не терпелось ее попробовать.
Основной файл vits_infer.py
,Для файла требуется конфигурация. Файл конфигурации и путь к модели.,Будет позже соответствии cКонфигурация загрузки модели генерации голоса, общая vits_infer_item.txt
Преобразуйте китайский язык в речь, вот несколько примеров:
123 | Композиция «Глядя на звездное небо» Сидишь один на холме в сельской местности, наблюдаешь, как солнце постепенно тускнеет, слушаешь постепенно стихающее пение птиц и чувствуешь, как ветер постепенно становится холоднее. Время всегда медленно крадет нашу внешность, и постепенно некоторые люди в конечном итоге покидают нас. Белая вишня чиста и благородна, красная вишня страстна и безудержна, зеленая вишня ясна и элегантна, красота и счастье распускающихся цветов, великолепие и безудержность падающих цветов — все это содержит в себе жизненную мудрость цветущей вишни. |
---|
Your browser does not support the audio element.
Your browser does not support the audio element.
Your browser does not support the audio element.
Все еще немного похож на Юн Джина~
Следующие ошибки в основном являются проблемами в системе Win 10. В Ubuntu этот процесс проходит очень гладко. Рекомендуется делать это непосредственно в Linux, а не возиться в Windows.
После настройки среды Python для нового хранилища установочный пакет pip сообщил об ошибке:
1 | Исходная ошибка: не удалось загрузить DLL при импорте _multiarray_umath: указанный модуль не найден. |
---|
Это вызвано неполной настройкой пути при изменении среды Python Anaconda.
Нужно изменить правильный .anaconda\Library\bin
Путь добавляется к системному пути
После изменения среды установочный пакет pip сообщает об ошибке
1 | ValueError: check_hostname requires server_hostname |
---|
Обычно это происходит из-за конфликтов версий и других причин. После проверки опыта, обобщенного многими экспертами в Интернете, наконец было обнаружено, что проблема была вызвана сетевыми прокси, что мы обычно называем проблемами VPN.
Проблема решилась после отключения VPN.
Управляйте складом train.py
Ошибка файла
1 | AttributeError: module ‘distutils‘ has no attribute ‘version‘ |
---|
Чтобы увидеть это индивидуальное приглашение, необходимо использовать tensorboard;
setuptools
Проблема с версией,setuptools
Проблемы, вызванные слишком высокой версией
setuptools
1 | pip uninstall setuptools |
---|
setuptools
1 | pip install setuptools==58.0.4 |
---|
Это не введено monotonic_align
папка и выполнение команды установки приводит к:
1 | python setup.py build_ext --inplace |
---|
в исполнении python setup.py build_ext --inplace
Есть ли какие-либо ошибки, о которых можно сообщить в процессе установки? cl.exe
Это требует дополнительной установки C++ скомпилировать среду и cl.exe
где папка добавляется в систему пути
Например, мой путь:
1 | D:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\bin\Hostx86\x64 |
---|
в исполнении python setup.py build_ext --inplace
В процессе установки может быть сообщено об ошибке.
1 | Неустранимая ошибка C1356: mspdbcore.dll не найден |
---|
ссылка:https://blog.csdn.net/jacke121/article/details/90614060
Vs2015иvs2017 можно решить следующими методами:
Он постоянно сообщает, что отсутствуют различные заголовочные файлы, dll, exe и т. д.
Я не нашел лучшего способа. Найдите файл на этом компьютере и добавьте в него каталог заголовочного файла. --include-dirs
Здесь все пути есть ""
Внутри использовать ;
отдельный; отдельный;
Отсутствующие каталоги библиотеки добавляются в --library-dirs
в параметрах
Отсутствующий exe-файл добавляется в системный путь.
1 | python setup.py build_ext --inplace --include-dirs="F:\Windows Kits\10\Include\10.0.17763.0\ucrt;D:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\include;F:\Windows Kits\10\Include\10.0.17763.0\shared" --library-dirs="D:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\lib\x64;F:\Windows Kits\10\Lib\10.0.17763.0\um\x64;F:\Windows Kits\10\Lib\10.0.17763.0\ucrt\x64;F:\Windows Kits\10\bin\10.0.17763.0\x64" |
---|
cl.exe
делатьиспользоватьпуть C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\bin\Hostx86\x64
файлы под
Ссылка на статью: https://cloud.tencent.com/developer/article/2303815