Введение
- Цель этого проекта состоит в том, чтобы расширить границы использования Bert-Vits2, такие как синхронные данные TTS, генерируя данные выражения лица.
- Смотрите эффект
- Демо -билибили YouTube
- TTS с Audio2photoreal -> Metahuman
- Генерировать тесты на смайлику от пения; Сравнение смайликов при разговоре с Azure TTS
- TTS сгенерировал первую версию Emoji, оснащенная MotionGPT
Распространяться на Cosyvoice
Распространяется на GPT-Sovits
- GPT-Sovits Test Expression Test
- Переподготовка непосредственно на GPT-Sovits, фактические результаты теста относительно плохие
- Временный метод состоит в том, чтобы напрямую копировать заднюю часть и модель детали генерации выражения от Bert-Vits2-Ext в GPT-Sovits для тестирования.
- Это приводит к повторному расчету и большему количеству прогнозов
ТТС
Код TTS возник из окончательного выпуска Bert-Vits2 v2.3 [20 декабря 2023 года]
- https://github.com/fishaudio/bert-vits2/commit/7ebc1aa28a055608f7e31da93928cf295fdffeba
После тестирования я лично чувствую, что тренировочный эффект чистых китайских материалов 2.1-2,3 немного хуже, чем в 1,0. Вы можете рассмотреть вопрос о сокращении версии или смешивании ее с чистым китайцем.
Метод обучения самого TTS показан в исходном тексте (каждая версия отличается)
- Рекомендуемая версия 1.0 https://github.com/yyux-1145/bert-vits2-integration-package
TTS Синхронное выходное эмодзи
Идеи
- Обратитесь к диаграмме структуры сети бумаги VITS (не Bert-Vits2, но общая структура такая же), получить скрытую переменную Z после кодирования текста и преобразования и перед декодированием, и вывод значения выражения из обхода (значение лица живой ссылки)
- Заморозить параметры исходной сети, добавить обработку LSTM и MLP отдельно, а также полное генерацию SEQ2SEQ и отображение z-expression
- Конечно, если есть высококачественные данные об экспрессии, выражение также может быть добавлено в оригинальную сеть TTS, что должно улучшить качество звука

Сбор данных
- Установите целевые показатели Live Link для нативного IP, а порт по умолчанию на 11111
- Синхронно собирать голос и соответствующие значения выражения, выводимые по живой ссылке, и храните их в папке Records соответственно
- Выполнять коллекцию скриптов в течение 20 секунд каждый раз
- Аудио по умолчанию до 44100 Гц
- Сбор аудио и выражения может быть смещен
- Сравнение потери набора проверки, чтобы найти оптимальную позицию смещения для того же источника данных
python ./motion/record.py
python ./motion/tts2ue.py --bs_npy_file ./records/2023-12-23-17-19-54.npy --wav_file ./records/2023-12-23-17-19-54.wav --fps 60
Предварительная обработка данных
- Прочитайте все аудиофайлы в записях, используйте задний энкодер для хранения скрытой переменной z, кодируемой аудио в *.z.npy
- Записать в список файлов для обучения и проверки
- Fileslists/val_visemes.list
- Fileslists/train_visemes.list
python ./motion/prepare_visemes.py
тренироваться
- Добавить -Висема после Train_ms.py, чтобы различать обучение от Mainnet
python train_ms.py -m OUTPUT_MODEL --config ./configs/config.json --visemes
рассуждение
- Когда выполняется webui.py, выходной аудио, скрытые переменные и данные анимации записываются в текущий каталог. Вы можете использовать tts2ue.py для просмотра сгенерированного эффекта
- По умолчанию FPS сгенерированной анимации такие же, как у скрытой переменной 86.1328125
- 44100/86.1328125 = 512, просто делится, это определяется частотой отбора проб Bert-Vits2, структурой сети и Hidden_Channels
python ./motion/tts2ue.py --bs_npy_file ./tmp.npy --wav_file ./tmp.wav --delay_ms 700
Голос к выражению
- Используйте задний энкодер, чтобы преобразовать звук в z, а затем преобразовать z в выражение
- Аудио необходимо преобразовать в файл WAV 44100 Гц, и сохраняется только один канал (FFMPEG)
# 音频截取转换
ffmpeg -i input_file -ss 00:00:00 -t 00:00:10 -ar 44100 -f wav test.wav
# 保留通道1
ffmpeg -i test.wav -map_channel 0.0.0 output.wav
python ./motion/wav_to_visemes.py output.wav
Анимация тела
MotionGpt
- С голосом и выражениями вы также можете генерировать соответствующее описание действия в разделе LLM Drive, а затем использовать текст для модели движения для генерации анимации тела, которые соответствуют речевому содержанию, и даже взаимодействуют со сценой и другими.
- Проект, используемый для тестирования текста для движения, является MotionGPT
- Пока не было сделано, что анимация не была сделана. Промежуточное движение поддерживается моделью введения.
- Flan-T5-база, используемая MotionGPT, не может понять китайский, поэтому она не может генерировать анимацию с высокой синхронизацией с речью (порядок слов несколько изменяется после перевода на английский)
- Независимо от того, можно использовать текст говорящего или скрытую переменную z для руководства генерацией действия еще не известна
- MotionGPT выводит позицию кости, которая не может быть напрямую связана с анимацией скелета UE.
- В настоящее время упрощенные методы используются для оценки стоимости движения, и будут значительные потери позиции
- Рассчитайте количество изменений вращения кости относительно родительского узла (кватернион)
- Отправьте его в программу VMCTOMOP через протокол OSC и предварительно просмотрите анимацию и выполните преобразование протокола
- MOP MOP Данные в Metahuman с помощью плагина MOP
Audio2photoreal
- Изменить на основе исходного проекта, данных об экспорте анимации в локальные файлы во время вывода веб -интерфейса
- Экспортный процесс
- Код https://github.com/see2023/audio2photoreal
Bert-Vits2 Оригинальное утверждение
Сэверная цепочка Vits2 с многоязычным бертом
Для быстрого руководства, пожалуйста, обратитесь к webui_preprocess.py .
Для простого учебника см. webui_preprocess.py .
Обратите внимание, что основная идея этого проекта исходит от Anyvoiceai/Masstts, очень хороший проект TTS
Демонстрационная демонстрация Masstts для AI -версии Feng Ge и восстановил его потерянную талию в Золотом треугольнике
Зрелый путешественник/Трейл Блэйзерс/Капитан/Доктор/Сэнсэй/Wormurhunter/Meowloon/V должен обратиться к коду, чтобы узнать, как тренироваться.
Строго запрещено использовать этот проект для всех целей, которые нарушают конституцию Китайской Народной Республики, уголовное право Китайской Народной Республики, Закон о наказании Китайской Народной Республики и Гражданский кодекс Китайской Народной Республики.
Это строго запрещено для любой политически связанной цели.
Видео: https: //www.bilibili.com/video/bv1hp4y1k78e
Демо: https://www.bilibili.com/video/bv1tf411k78w
Ссылки
- Anyvoiceai/Masstts
- jaywalnut310/vits
- P0p4k/vits2_pytorch
- SVC-Develop-Team/SO-Vits-SVC
- PaddlePaddle/Paddlespeech
- эмоциональные виды
- Рыба-речь
- Bert-Vits2-UI
Спасибо всем участникам за их усилия