Обучение китайской модели VITS с использованием речи Genshin Impact
Обучение китайской модели VITS с использованием речи Genshin Impact

После большой подготовительной работы в этой статье описывается Обучение. китайской модели VITS с использованием речи Genshin Процесс воздействия.

Рабочий процесс

  1. в соответствии с Genshin Impact - Классификация и распознавание речи на континенте Тейват Получить результаты распознавания голоса персонажа Аудиои
  2. делатьиспользоватьпроект vits_chinese тренироваться VITSМодель

Позвольте мне рассказать вам, почему vits_chinese , большинство из тех, которые используются в Интернете, ВИТС (версия VitchCengh),Но я думаю этот склад уже больше полугода не обслуживается,Torch Версия старая, модель относительно большая, и vits_chinese Для сравнения, техническое обслуживание является более тщательным и способствует дистилляции знаний, что снижает infer По цене я тоже хочу попробовать другой маршрут, чем все остальные.

Спецификация маркировки TTS

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

Всего четыреиндивидуальныйвыноска:#1、#2、#3、#4

  1. #1 Без пауз, нормальная сегментация слов.
  2. #2 Издайте длинный звук или короткую паузу, смысл не закончен.
  3. #3 Четкая пауза с полной семантикой и понижением интонации может использоваться как завершающий звук предложения.
  4. #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

Композиция «Глядя на звездное небо» Сидишь один на холме в сельской местности, наблюдаешь, как солнце постепенно тускнеет, слушаешь постепенно стихающее пение птиц и чувствуешь, как ветер постепенно становится холоднее. Время всегда медленно крадет нашу внешность, и постепенно некоторые люди в конечном итоге покидают нас. Белая вишня чиста и благородна, красная вишня страстна и безудержна, зеленая вишня ясна и элегантна, красота и счастье распускающихся цветов, великолепие и безудержность падающих цветов — все это содержит в себе жизненную мудрость цветущей вишни.

Язык кода:txt
копировать
Your browser does not support the audio element. 
Язык кода:txt
копировать
Your browser does not support the audio element. 
Язык кода:txt
копировать
Your browser does not support the audio element. 

Все еще немного похож на Юн Джина~

Ошибка заполнения

Следующие ошибки в основном являются проблемами в системе Win 10. В Ubuntu этот процесс проходит очень гладко. Рекомендуется делать это непосредственно в Linux, а не возиться в Windows.

Original error was: DLL load failed while importing _multiarray_umath

После настройки среды Python для нового хранилища установочный пакет pip сообщил об ошибке:

1

Исходная ошибка: не удалось загрузить DLL при импорте _multiarray_umath: указанный модуль не найден.

Это вызвано неполной настройкой пути при изменении среды Python Anaconda.

  • решение

Нужно изменить правильный .anaconda\Library\bin Путь добавляется к системному пути

ValueError: check_hostname requires server_hostname

После изменения среды установочный пакет pip сообщает об ошибке

1

ValueError: check_hostname requires server_hostname

Обычно это происходит из-за конфликтов версий и других причин. После проверки опыта, обобщенного многими экспертами в Интернете, наконец было обнаружено, что проблема была вызвана сетевыми прокси, что мы обычно называем проблемами VPN.

Проблема решилась после отключения VPN.

AttributeError: module ‘distutils‘ has no attribute ‘version‘

Управляйте складом train.py Ошибка файла

1

AttributeError: module ‘distutils‘ has no attribute ‘version‘

Чтобы увидеть это индивидуальное приглашение, необходимо использовать tensorboard;

  • Причина проблемы

setuptoolsПроблема с версией,setuptoolsПроблемы, вызванные слишком высокой версией

  • решение
  • удалить setuptools

1

pip uninstall setuptools

  1. Установить более низкую версию setuptools

1

pip install setuptools==58.0.4

No module named ‘monotonic_align.monotonic_align’

Это не введено monotonic_align папка и выполнение команды установки приводит к:

1

python setup.py build_ext --inplace

error: command ‘cl.exe‘ failed

в исполнении 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

Неустранимая ошибка C1356: mspdbcore.dll не найден

в исполнении python setup.py build_ext --inplace В процессе установки может быть сообщено об ошибке.

1

Неустранимая ошибка C1356: mspdbcore.dll не найден

ссылка:https://blog.csdn.net/jacke121/article/details/90614060

  • решение

Vs2015иvs2017 можно решить следующими методами:

  • Решение Vs2017: C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE Поставил: msobj140.d, mspdb140.dl, mspdbcore.dl, mspdbsrv.exe четыре отдельных файла копировать в: C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\bin\Hostx86\x64 Есть два отдельных файла, которые предложат вам перезаписать их. Выберите их перезапись.
  • Решение Vs2015: 1. Найдите каталог установки VS2015IDE, в качестве примера возьмите каталог на моем компьютере: C.Program. Files(x86)Microsoft Visual Studio14.0 Common7NDE 2. Переместите файлы nsobj140.d, mspdb140.d, mspdbcore.d, mspdbsrv.exe из каталога DE в каталог bin VC, чтобы перезаписать исходные файлы. На примере моего компьютера каталог VC/bin выглядит так: C :\Программа Files (x86)\Microsoft Visual Studio 14.0\VC\bin 3. Откройте новую консольную программу Win32 в VS2015 и попробуйте проверить, возникает ли ошибка Link1171. 4.Если это все еще произойдетиндивидуальныйошибка,Добавьте каталог VC/bin в переменную среды системы Pathuse, разделенную точкой с запятой.,Перезагрузите компьютер.
python setup.py build_ext --inplace Не хватает того или этого

Он постоянно сообщает, что отсутствуют различные заголовочные файлы, 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

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose