Привет, мир!
Я бы хотел рассказать о своем open-source проекте Wunjo AI с открытым исходным кодом, который позволит вам создавать дипфейк видео и синтезировать речь из текста у себя на компьютере. В этом посте я постараюсь познакомить вас с возможностями Wunjo AI и пригласить вас в поддержать проект на GitHub.
Возможности
Синтез текста в речь: с помощью Wunjo AI вы можете легко преобразовывать письменный текст в реалистичную речь. Независимо от того, являетесь ли вы рассказчиком, создателем контента или работаете над решениями для специальных возможностей, передовые методы обработки естественного языка (NLP) позволят вам создавать реалистичное аудио из текста. У меня доступно три модели, женский, мужской и робо- голоса на русском. Вы также можете добавить свои модели Tacatron2 для голоса и использовать формат фонемы для английского языка. Вы также можете создать диалог между большим количеством людей.
Создание дипфейковых видео: Преобразуйте существующие изображение в видео, плавно накладывая мимику и жесты на разных персонажей. Вы также можете управлять движением и вращением головы. Если вы добавите расширение, то сможете генерировать изображения для дипфейк видео с помощью Dall-e 2. На изображении должны быть отчетливо видны глаза и рот, тогда вы сможете оживить его.
Расширения: Вы можете создавать свои расширения для использования в Wunjo AI для повышения функциональности. Например, есть расширения, которая позволяет взаимодействовать с консолью, использовать GPU, обучать модель на вашем голосе или работать с ChatGPT. Список расширений доступен в приложении. При создании возможности расширений я был вдохновлен AUTOMATIC1111
Как начать?
В репозитории GitHub, доступен код проекта и документация. Проект создан на Flask UI + BeeWare. Независимо от того, являетесь ли вы опытным разработчиком или просто интересуетесь нейронных сетей, вы найдете благоприятную среду для экспериментов и внесения своего вклада. Также вы можете установить готовый проект на Linux, MacOS или Windows.
Следите за обновлениями
Это только начало! В следующих статьях я хочу рассказать вам о том, как все устроено изнутри, как работает синтез текста в речь Wunjo AI и создание дипфейковых видео. Независимо от того, интересуетесь ли вы магией синтеза речи или мастерством дипфейковых видео, Wunjo AI — ваш холст. Вместе мы сформируем будущее этого проекта с открытым исходным кодом и откроем новые возможности.
Также я публикую несколько видео результатов работы Wunjo AI и различных экспериментов с нейросетями и проектами с открытым исходным кодом у себя на канале YouTube.
P.S. Веб-сайт и интерфейс проекта сгенерировал через Stable Diffusion.
Комментарии (27)
dimars08
08.08.2023 14:07+1Класс, затестим на выходных. И собственно вопрос: а как же этичная сторона проекта? Или есть какие то ограничения?! На канале +1 подписчик)
Wladradchenko Автор
08.08.2023 14:07+1Привет. Спасибо за подписку. Ограничений нет, пользователи сами выбирают для себя ограничения (в том числе и этические, никаких цензур и водных знаков), т.к. приложение ставится на компьютер. Если с дипфейк на виндовс будет проблемы (там бывает нет прав на чтение модели нейронной сети из созданной папки cache, и результат создания видео будет, что лицо не найдено, но на самом деле если ставить расширение консоли, то видно, что нет прав на чтение модели нейронной сети, что я пока не знаю как решить), то лучше запускать проект из код через briefcase run. С другими ОС из установщика проблем не будет.
В будущем там появится замена лиц в видео (как расширение) и синхронизация губ человека из любого видео (где есть лицо), со звуком. Пример опубликовал на ютюб https://youtube.com/shorts/-LPxeuGBerI?feature=share
vassabi
08.08.2023 14:07+1интересно, что у нейронки такие же этические вопросы, почти как в простоквашино:
"а чей теленок? - он как холод у холодильника или нет?" (с) вольная цитата
Monogi
08.08.2023 14:07+1Круто, глянул ютуб - выглядит жизнеспособно. На выходных попробую. Можно ли использовать модель со своим голосом? Как их обучать?
Wladradchenko Автор
08.08.2023 14:07+1Да. Можно использовать модель со своим голосом и даже на другом языке. В yaml файле модели, необходимо только указать, что пути до модели и какой язык. Образец можно увидеть в default моделях. Для TTS используется Tacotron2, следовательно подходят все модели, котоыре были обучены в Tacotron2.
Если установить https://github.com/wladradchenko/advanced.wunjo.wladradchenko.ru, тогда можно будет обучать модель на своем голосе прямо из приложения, нужны только данные разметки (текст аудиофайлов) + сами аудиофайлы.
Astus
08.08.2023 14:07+2За оффлайн-версию жирнейший такой плюс и огромный респект. И в целом интересный проект, буду пробовать и следить, спасибо.
Wladradchenko Автор
08.08.2023 14:07+2В скором времени напишу ещё об одном оpen source проекте связанного с lofi музыкой, который делал для себя и он доступен
anonym0use
08.08.2023 14:07+1Афигеть, как раз такое искал) Вселенная что ты делаешь... продолжай !
Wladradchenko Автор
08.08.2023 14:07+1В скором времени, напишу статьи, как использовать параметры для дипфейк (повороты головы в разные оси, улучшение картинки лица) и как обучать модель на своём голосе или датасете полученного из нарезки видео с ютюба. Следите за статьями!
nikdbn
08.08.2023 14:07Сделайте видео с подробной установкой на windows 11. Лицо не находит, CUDA не видет. Только голос получилось запустить. Устанавливал на не системный диск
Wladradchenko Автор
08.08.2023 14:07Позже добавлю на страничку гитхаб проекта. На сборке виндос встречается проблема связанная с тем, что почему-то нет доступа к чтению модели из созданной папки .wunjo. Почему она появляется на модели только на виндос и только для дипфейка для меня загадка, самой винды у меня нет, а на эмуляторе ВМ не появляется проблемы, чтобы нормально отладить сборку для виндос.
Такой проблемы нет, например если запускать проект из Гитхаба в консоли. Так права почему-то есть на чтение модели.
Из-за того, что нет прав на чтение модели, программа выдаёт лицо не видно. Если ставить расширение https://github.com/wladradchenko/advanced.wunjo.wladradchenko.ru, в проект добавится консоль и сразу будет понятно, что проблема с чтением модели.
Попробуйте для виндос 11, сначало сделать pip install - requirements.txt, а потом briefcase dev. Подробнее по install в редми проекта.
Wladradchenko Автор
08.08.2023 14:07Точнее по ошибки в билдах для виндос:
Нет доступа для чтения моделей. Чтобы разрешить доступ icacls "%USERPROFILE%/.wunjo/deepfake/gfpgan/weights/*.pth" /grant:r "Users":(R,W)
Однако, в билдах под виндос дальше возникает проблема not module aifc, который должен входить в пакет python3.
-
Разбираем дальше, оказывается проблема not module aifc возникает, при чтение аудио файла библиотекой librosa==0.8.0 по строчке librosa.core.load.
Данная проблема ещё не решена для билдов на виндос, поэтому для виндос лучше запускать приложение через briefcase dev, чтобы использовать deepfake, для синтеза речи достаточно будет билда.
shadrap
08.08.2023 14:07+1Спасибо, пробую на винде10,но даже звук не запускается. Пробовал 1.2 Через брифкейс то же не идёт. Можете краткий faq с путями через брифкейс?
Wladradchenko Автор
08.08.2023 14:07По виндовс, сейчас тестируется билд на эмуляторе вроде получилось повторить ошибку. Залил не достающие Python3 файлы, если получится, билд на виндос заработает и запишу видео.
Пробовали билд 1.3.1 или 1.3.2? Я залил изменения с фиксом face_alignment, там в библиотеке зачем то поменяли название переменной с 2_D на TWO_D в init, из-за этого может на брифкейс не пошло. Но с 1.3.2 необходимо перейти в директорию portable 'cd portable' и запустить 'briefcase dev'. Этого будет достаточно. briefcase build -> briefcase package, это уже чтобы билды делать.
Wladradchenko Автор
08.08.2023 14:07Туториал прикрепил.
Насчет CUDA. Для того, чтобы проект видел CUDA и генерация могла работать на GPU, нужно ставить расширение https://github.com/wladradchenko/advanced.wunjo.wladradchenko.ru . Без расширения проект работает на CPU.
Wladradchenko Автор
08.08.2023 14:07+1Видео как установить Wunjo AI на Windows и настроить deepfake https://www.youtube.com/watch?v=2qIpJYhOL2U
shadrap
08.08.2023 14:07спасибо, а можно просто каталог для моделей делать по умолчанию текущим к установленному msi? У меня нет столько места в %user% Точнее каталог установки задать ?
Wladradchenko Автор
08.08.2023 14:07Можно. В приложении изначально не предусматривался выбор каталога, но можно сделать это самостоятельно:
Проходим в директорию, где установлено приложение, если используется проект из Гитхаба, тогда в директорию проекта.
Далее я буду писать про установленное приложение, так как по ссылкам на Гитхаб, если используется проект оттуда, будет понятно, где и что лежит. Открываем файл app/backend/folders.py и заменяем HOME_FOLDER на свою директорию. Например HOME_FOLDER="абсолютный_путь_в_нужную_директорию"
Дополнительно:
Вчерашний билд с фиксом для винды я правил на коленках, поэтому не надо удалять папку .wunjo/video в директории пользователя (пусть будет пустой), туда будут помещаться временные файлы для генерации дипфейка, а потом сами оттуда удаляться, размер их небольшой (остальные папки можно удалить, либо перенести в новую директорию, что бы не скачивать модели заново).
shadrap
08.08.2023 14:07Спасибо ,наверное не абсолютный а до home директории wunjo ? т.к остальные пути к медиа и тп он создает сам относительно userfolder . Сначала я подумал , что HOME_FOLDER это путь к exe файлу
Wladradchenko Автор
08.08.2023 14:07+1Нет. Это путь не самого приложения и вы можете задать его абсолютным, HOME_FOLDER путь где вы хотите создать папку .wunjo куда будут скачиваться модели (они весят больше чем само приложение), и будут результаты генерации. На видео я как раз рассказываю об этой папке .wunjo.
Само приложения, попробуйте перенести обычным копированием (если требуется), не думаю, что при установки через BeeWare билд, создаются абсолютными пути до исполняемых файлов и файлов библиотек.
shadrap
08.08.2023 14:07+1Спасибо, это понятно , теперь скажите конкретно какие файлы должны быть , например в voice/female ? - Не видит файлов . Лежит waveglow и распакованный checkpointfemail
Wladradchenko Автор
08.08.2023 14:07Такие и должны быть. Еще есть строчка data_dir = os.path.join(os.path.expanduser('~'), '.wunjo') в файле по пути app/speech/tts/synthesizer.py. Там нужно поменять os.path.expanduser('~') на нужную вам директорию. Эта строчка как раз отвечает за то, где хранятся модели голосов
shadrap
08.08.2023 14:07Наверное лучше подождать ...) если меняю os.path.expanduser('~') , валится по ошибке
Wladradchenko Автор
08.08.2023 14:07Попробуйте вернуть назад os.path.expanduser('~') в app/speech/tts/synthesizer.py и app/backend/folders.py. В app/backend/folders.py добавить строчку с os.environ["HOME"] как в примере https://docs-python.ru/standart-library/modul-os-path-python/funktsija-expanduser-modulja-os-path/ (если понадобится и в app/speech/tts/synthesizer.py)
Wladradchenko Автор
Видео как установить Wunjo AI на Windows и настроить deepfake https://www.youtube.com/watch?v=2qIpJYhOL2U