Привет, мир!

Я бы хотел рассказать о своем open-source проекте Wunjo AI с открытым исходным кодом, который позволит вам создавать дипфейк видео и синтезировать речь из текста у себя на компьютере. В этом посте я постараюсь познакомить вас с возможностями Wunjo AI и пригласить вас в поддержать проект на GitHub.

Привет Хабр!
Привет Хабр!

Возможности

  1. Синтез текста в речь: с помощью Wunjo AI вы можете легко преобразовывать письменный текст в реалистичную речь. Независимо от того, являетесь ли вы рассказчиком, создателем контента или работаете над решениями для специальных возможностей, передовые методы обработки естественного языка (NLP) позволят вам создавать реалистичное аудио из текста. У меня доступно три модели, женский, мужской и робо- голоса на русском. Вы также можете добавить свои модели Tacatron2 для голоса и использовать формат фонемы для английского языка. Вы также можете создать диалог между большим количеством людей.

Панель создания диалога
Панель создания диалога
  1. Создание дипфейковых видео: Преобразуйте существующие изображение в видео, плавно накладывая мимику и жесты на разных персонажей. Вы также можете управлять движением и вращением головы. Если вы добавите расширение, то сможете генерировать изображения для дипфейк видео с помощью Dall-e 2. На изображении должны быть отчетливо видны глаза и рот, тогда вы сможете оживить его.

Панель создания дипфейк видео. Необходимо выбрать лицо и нажать синтез видео
Панель создания дипфейк видео. Необходимо выбрать лицо и нажать синтез видео
  1. Расширения: Вы можете создавать свои расширения для использования в Wunjo AI для повышения функциональности. Например, есть расширения, которая позволяет взаимодействовать с консолью, использовать GPU, обучать модель на вашем голосе или работать с ChatGPT. Список расширений доступен в приложении. При создании возможности расширений я был вдохновлен AUTOMATIC1111

Как начать?

В репозитории GitHub, доступен код проекта и документация. Проект создан на Flask UI + BeeWare. Независимо от того, являетесь ли вы опытным разработчиком или просто интересуетесь нейронных сетей, вы найдете благоприятную среду для экспериментов и внесения своего вклада. Также вы можете установить готовый проект на Linux, MacOS или Windows.

Следите за обновлениями

Это только начало! В следующих статьях я хочу рассказать вам о том, как все устроено изнутри, как работает синтез текста в речь Wunjo AI и создание дипфейковых видео. Независимо от того, интересуетесь ли вы магией синтеза речи или мастерством дипфейковых видео, Wunjo AI — ваш холст. Вместе мы сформируем будущее этого проекта с открытым исходным кодом и откроем новые возможности.

Также я публикую несколько видео результатов работы Wunjo AI и различных экспериментов с нейросетями и проектами с открытым исходным кодом у себя на канале YouTube.

P.S. Веб-сайт и интерфейс проекта сгенерировал через Stable Diffusion.

Комментарии (27)


  1. Wladradchenko Автор
    08.08.2023 14:07
    +1

    Видео как установить Wunjo AI на Windows и настроить deepfake https://www.youtube.com/watch?v=2qIpJYhOL2U


  1. dimars08
    08.08.2023 14:07
    +1

    Класс, затестим на выходных. И собственно вопрос: а как же этичная сторона проекта? Или есть какие то ограничения?! На канале +1 подписчик)


    1. Wladradchenko Автор
      08.08.2023 14:07
      +1

      Привет. Спасибо за подписку. Ограничений нет, пользователи сами выбирают для себя ограничения (в том числе и этические, никаких цензур и водных знаков), т.к. приложение ставится на компьютер. Если с дипфейк на виндовс будет проблемы (там бывает нет прав на чтение модели нейронной сети из созданной папки cache, и результат создания видео будет, что лицо не найдено, но на самом деле если ставить расширение консоли, то видно, что нет прав на чтение модели нейронной сети, что я пока не знаю как решить), то лучше запускать проект из код через briefcase run. С другими ОС из установщика проблем не будет.

      В будущем там появится замена лиц в видео (как расширение) и синхронизация губ человека из любого видео (где есть лицо), со звуком. Пример опубликовал на ютюб https://youtube.com/shorts/-LPxeuGBerI?feature=share


      1. dimars08
        08.08.2023 14:07

        Благодарю вас


    1. vassabi
      08.08.2023 14:07
      +1

      интересно, что у нейронки такие же этические вопросы, почти как в простоквашино:

      "а чей теленок? - он как холод у холодильника или нет?" (с) вольная цитата


  1. Monogi
    08.08.2023 14:07
    +1

    Круто, глянул ютуб - выглядит жизнеспособно. На выходных попробую. Можно ли использовать модель со своим голосом? Как их обучать?


    1. Wladradchenko Автор
      08.08.2023 14:07
      +1

      Да. Можно использовать модель со своим голосом и даже на другом языке. В yaml файле модели, необходимо только указать, что пути до модели и какой язык. Образец можно увидеть в default моделях. Для TTS используется Tacotron2, следовательно подходят все модели, котоыре были обучены в Tacotron2.

      Если установить https://github.com/wladradchenko/advanced.wunjo.wladradchenko.ru, тогда можно будет обучать модель на своем голосе прямо из приложения, нужны только данные разметки (текст аудиофайлов) + сами аудиофайлы.


  1. Astus
    08.08.2023 14:07
    +2

    За оффлайн-версию жирнейший такой плюс и огромный респект. И в целом интересный проект, буду пробовать и следить, спасибо.


    1. Wladradchenko Автор
      08.08.2023 14:07
      +2

      В скором времени напишу ещё об одном оpen source проекте связанного с lofi музыкой, который делал для себя и он доступен


      1. Astus
        08.08.2023 14:07

        Замечательно, будем ждать!


  1. anonym0use
    08.08.2023 14:07
    +1

    Афигеть, как раз такое искал) Вселенная что ты делаешь... продолжай !


    1. Wladradchenko Автор
      08.08.2023 14:07
      +1

      В скором времени, напишу статьи, как использовать параметры для дипфейк (повороты головы в разные оси, улучшение картинки лица) и как обучать модель на своём голосе или датасете полученного из нарезки видео с ютюба. Следите за статьями!


      1. anonym0use
        08.08.2023 14:07

        Спасибо, попробую на выходных)


  1. nikdbn
    08.08.2023 14:07

    Сделайте видео с подробной установкой на windows 11. Лицо не находит, CUDA не видет. Только голос получилось запустить. Устанавливал на не системный диск


    1. Wladradchenko Автор
      08.08.2023 14:07

      Позже добавлю на страничку гитхаб проекта. На сборке виндос встречается проблема связанная с тем, что почему-то нет доступа к чтению модели из созданной папки .wunjo. Почему она появляется на модели только на виндос и только для дипфейка для меня загадка, самой винды у меня нет, а на эмуляторе ВМ не появляется проблемы, чтобы нормально отладить сборку для виндос.

      Такой проблемы нет, например если запускать проект из Гитхаба в консоли. Так права почему-то есть на чтение модели.

      Из-за того, что нет прав на чтение модели, программа выдаёт лицо не видно. Если ставить расширение https://github.com/wladradchenko/advanced.wunjo.wladradchenko.ru, в проект добавится консоль и сразу будет понятно, что проблема с чтением модели.

      Попробуйте для виндос 11, сначало сделать pip install - requirements.txt, а потом briefcase dev. Подробнее по install в редми проекта.


      1. Wladradchenko Автор
        08.08.2023 14:07

        Точнее по ошибки в билдах для виндос:

        1. Нет доступа для чтения моделей. Чтобы разрешить доступ icacls "%USERPROFILE%/.wunjo/deepfake/gfpgan/weights/*.pth" /grant:r "Users":(R,W)

        2. Однако, в билдах под виндос дальше возникает проблема not module aifc, который должен входить в пакет python3.

        3. Разбираем дальше, оказывается проблема not module aifc возникает, при чтение аудио файла библиотекой librosa==0.8.0 по строчке librosa.core.load.

          Данная проблема ещё не решена для билдов на виндос, поэтому для виндос лучше запускать приложение через briefcase dev, чтобы использовать deepfake, для синтеза речи достаточно будет билда.


        1. shadrap
          08.08.2023 14:07
          +1

          Спасибо, пробую на винде10,но даже звук не запускается. Пробовал 1.2 Через брифкейс то же не идёт. Можете краткий faq с путями через брифкейс?


          1. 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, это уже чтобы билды делать.


    1. Wladradchenko Автор
      08.08.2023 14:07

      Туториал прикрепил.

      Насчет CUDA. Для того, чтобы проект видел CUDA и генерация могла работать на GPU, нужно ставить расширение https://github.com/wladradchenko/advanced.wunjo.wladradchenko.ru . Без расширения проект работает на CPU.


  1. Wladradchenko Автор
    08.08.2023 14:07
    +1

    Видео как установить Wunjo AI на Windows и настроить deepfake https://www.youtube.com/watch?v=2qIpJYhOL2U


    1. shadrap
      08.08.2023 14:07

      спасибо, а можно просто каталог для моделей делать по умолчанию текущим к установленному msi? У меня нет столько места в %user% Точнее каталог установки задать ?


      1. Wladradchenko Автор
        08.08.2023 14:07

        Можно. В приложении изначально не предусматривался выбор каталога, но можно сделать это самостоятельно:

        1. Проходим в директорию, где установлено приложение, если используется проект из Гитхаба, тогда в директорию проекта.

        2. Далее я буду писать про установленное приложение, так как по ссылкам на Гитхаб, если используется проект оттуда, будет понятно, где и что лежит. Открываем файл app/backend/folders.py и заменяем HOME_FOLDER на свою директорию. Например HOME_FOLDER="абсолютный_путь_в_нужную_директорию"

        Дополнительно:

        Вчерашний билд с фиксом для винды я правил на коленках, поэтому не надо удалять папку .wunjo/video в директории пользователя (пусть будет пустой), туда будут помещаться временные файлы для генерации дипфейка, а потом сами оттуда удаляться, размер их небольшой (остальные папки можно удалить, либо перенести в новую директорию, что бы не скачивать модели заново).


        1. shadrap
          08.08.2023 14:07

          Спасибо ,наверное не абсолютный а до home директории wunjo ? т.к остальные пути к медиа и тп он создает сам относительно userfolder . Сначала я подумал , что HOME_FOLDER это путь к exe файлу


          1. Wladradchenko Автор
            08.08.2023 14:07
            +1

            Нет. Это путь не самого приложения и вы можете задать его абсолютным, HOME_FOLDER путь где вы хотите создать папку .wunjo куда будут скачиваться модели (они весят больше чем само приложение), и будут результаты генерации. На видео я как раз рассказываю об этой папке .wunjo.

            Само приложения, попробуйте перенести обычным копированием (если требуется), не думаю, что при установки через BeeWare билд, создаются абсолютными пути до исполняемых файлов и файлов библиотек.


            1. shadrap
              08.08.2023 14:07
              +1

              Спасибо, это понятно , теперь скажите конкретно какие файлы должны быть , например в voice/female ? - Не видит файлов . Лежит waveglow и распакованный checkpointfemail


              1. Wladradchenko Автор
                08.08.2023 14:07

                Такие и должны быть. Еще есть строчка data_dir = os.path.join(os.path.expanduser('~'), '.wunjo') в файле по пути app/speech/tts/synthesizer.py. Там нужно поменять os.path.expanduser('~') на нужную вам директорию. Эта строчка как раз отвечает за то, где хранятся модели голосов


                1. shadrap
                  08.08.2023 14:07

                  Наверное лучше подождать ...) если меняю os.path.expanduser('~') , валится по ошибке


                  1. 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)