Программирование на языке пролог для искусственного интеллекта 3: аватар космонавта (цифровой собеседник на нейронках)

  1. Суть программы
    Эта программа предназначена для девушек, которые бы хотели иметь любимого человека, даже если он находится далеко. Однако, это не просто виртуальный персонаж, а полноценный цифровой аватар, способный вести диалоги и поддерживать эмоциональную связь с пользователем. Думаю она будет интересна и для другой части аудитории желающие попробовать программу написанную на прологе[ссылка вконце] в действии.
    Итак, программа представляет из себя функционирование цифрового аватара в реальном времени, который может беседовать с тобой при помощи звонков в консоли, по аналогии с обычными приложениями для видеосвязи. Это делает общение более живым и естественным. Так же, аватар может сам звонить вам, напоминая о важных событиях.
  2. Как работает программа
    Изначально, идея заключалась в том, чтобы генерировать видео аватара, в реальном времени, на основе описания сцены, ключевых фото и текста речи. Однако, на текущий момент это невозможно реализовать. Поэтому, я записал короткие видео с различными действиями аватара, и когда языковая модель пишет, что нужно совершить то или иное действие - эти видео подключаются анимируя аватара. В обычном состоянии аватар тоже анимирован зациклинным видео. Липсинк, пока невозможен. Также, сначала я хотел, чтобы аватар не только слышал, но и видел, но оказалось что распознавание одной очень маленькой селфи-фотографии в течении пол-минуты с частотой 1 фото в 5-6 секунд составляет где-то 50 тысяч токенов, что очень дорого. Поэтому, пришлось от этого, пока, отказаться.
    Для генерации речи аватара, поначалу, использовал GigaChat 2, но оказалось, что он, вплане анализа диалогов аватара, глуповат. Тогда я перешёл на YandexGPT 5, который более менее справляется. Для сегодняшнего дня - это, пожалуй, хорошо.
    Внимание: при каждом новом диалоге используется информация всех прошлых диалогов, что значит, что каждый новый диалог будет стоит всё дороже и дороже.
    Для озвучивания текста ипользовал SberSaluteSpeech, т.к. в Яндексе голоса все звучат как повествование, тогда как голоса от Сбера звучат более разговорно.
    Видео для анимации аватара я создал в нейросетях Kling 2.1 и Kling 1.6.
    Биография аватара коротенькая: «Он находится в командировке на орбите земли. Ему 22 года. (А пользователю, как бы, 20 лет) И он очень влюблён в свою девушку. Готов говорить с ней часами.».
    Лицо аватара выбрано азиатского типа, что придает ему особую привлекательность и индивидуальность.
  3. Как пользоваться видеосвязью
    а) После запуска программы её не нужно завершать. Она должна всегда работать. И только когда вы решите прекратить общение с аватаром, тогда программу нужно завершать. Однако помните, что если вдруг, передумаете о прекращении общения, всегда можно программу снова запустить, и аватар почти всё будет помнить (ваши прежние диалоги). Для завершения программы вам понадобится на уведомлении приложения нажать на кнопку Прервать. Если вдруг, мало ли, возникнет ситуация, что приложение некорректно работает и завершить нельзя: нажмите на иконку приложения и удерживайте, затем нажмите на значёк информации, а после внизу на кнопку Закрыть.
    б) Перед запуском программы, обязательно проверьте, чтобы все разрешения, которые требует приложение, были предоставлены, а также, вручную предоставитьте в настройках в разделе «Другие разрешения»: «Открывать новые окна, когда запущено в фоновом режиме» и «Экран блокировки».
    в) При первом запуске, вы должны написать имя аватара и своё, программа это запомнит, после чего изменить их уже нельзя будет, разве что удалив системный файл программы с историей диалогов.
    г) В консоли часто появляются две кнопки: зелёная трубка и красная трубка. Думаю, объяснять не нужно для чего они.
    д) При появлении аватара на экране, чтобы с ним общаться имются две кнопки: микрофон и клавиатура. Первый позволяет общаться устно, второй, соответственно, при помощи клавиатуры (на тот случай, если вокруг очень шумно). Если вы общаетесь устно, тогда следите за тем, чтобы во время вашей речи не было посторонних голосов, ИИ пока не умеет отличить ваш голос от других.
    е) На каждую вашу речь аватар отвечает своей. Я пользуюсь YandexGPT 5, и скажу, что последнее время нейросеть стала часто долго отвечать (10-15 сек), учтите это и не торопитесь делать вывод, что приложение зависло. Тоже самое и при дозвоне к аватару.

Внимание: в начале пользования программой аватар является чистым листом: он не знает ни о себе ни о вас ничего. Вы должны по мере ведения бесед по-немногу рассказываеть о себе и о нём. По мере накопления таких знаний беседы будут становиться всё более естественными.
4. Как запустить программу
Прежде чем запустить программу нажав на кнопку «Пуск», нужно зарегистрироваться к API нейросетей, которые испульзуются в программе. Это нейросети:

  • Suno от сайта KieAi;

  • SaluteSpeech от Сбера;

  • YandexGPT от Яндекса;

  • SileroSTT от сайта GenApi.

Каждый предикат использующий ту или иную нейросеть предшествуется предикатом connection/2, где мы указываем полученные после регистрации Api-key, Client Secret (RqUID) и т.д. Для нейросетей от сайта KieAi, теперь нужно ещё, чтобы работал VPN.
Для работы программы нужно ещё создать в корневой папке андроида папку «chat_data».

Версия 1.1:
Аватар научился петь.

Версия 2.0:
Программа теперь работает в полноэкранном режиме.

Обратная связь elevferii_pechori@mail.ru.

Программу с данными можно получить здесь (скачивать программу нужно вместе с папкой).
Приложение скачать можно здесь: https://disk.yandex.ru/d/5ED-43Uveub1ew или в NashStore: https://store.nashstore.ru/store/651cf1c60a39b23f221fc121 (нужна версия приложения не меньше 4.5).
Документацию к приложению можно получить здесь.

Продолжение темы: аватар маленькой девочки.

Если статья понравилась или стало интересно, ставьте :heart: и оцените приложение в RuStore :star:.

Версия приложения 1.1:

В новой версии, программа, благодаря новым предикатам позволяющим генерировать песни и вокал отдельно, аватар, теперь, может петь.

Версия приложения 2.0:

Программа, теперь, работает в полноэкранном режиме.