Skip to content

Discord-бот для распознавания речи и эмоций

License

Notifications You must be signed in to change notification settings

KELONMYOSA/SoulSense

Repository files navigation

SoulSense - Discord-бот для распознавания речи и эмоций

[Презентация]

📃 Содержание

Сервисы

Технологический стек

Запуск приложения

Пример отчета

🌐 Сервисы

  • Обнаружение эмоций: бот Discord использует методы обработки естественного языка для анализа речи участников и обнаруживает основные эмоции, такие как счастье, печаль, гнев и т. д.
  • Анализ тональности: бот выполняет анализ тональности сообщений, чтобы определить общую тональность, выраженную в беседе. Это помогает отслеживать, является ли разговор в основном положительным, отрицательным или нейтральным.
  • Анализ эмоциональных реакций: бот оценивает эмоциональные реакции участников на определенные события или сообщения. Он выявляет закономерности в эмоциональных реакциях и дает представление о том, как участники реагируют на различные темы или обсуждения.
  • Отслеживание эмоциональных тенденций: бот отслеживает эмоциональные тенденции во время разговора. Он выявляет любые сдвиги в эмоциях и предоставляет отчет, чтобы помочь понять эмоциональную динамику обсуждения.
  • Персонализированная эмоциональная информация: Бот может предоставить участникам персонализированную эмоциональную информацию, помогая им лучше понять свои собственные эмоции и то, как они влияют на общий эмоциональный климат беседы.
  • Декодирование речи: Веб-служба на основе Whisper использует усовершенствованные алгоритмы для декодирования и интерпретации речи, точно преобразовывая ее в письменный текст.
  • Возможность масштабтрования: Веб-служба может использовать CPU или GPU гарантируя, что речь будет декодирована и преобразована в текст на любом оборудовании, а использование мощного железа предоставит возможность обработки в режиме реального времени.
  • Интеграция и доступность: Сервис предоставляет API, что позволяет легко встраивать его в различные приложения и платформы. Это обеспечивает доступность и совместимость на разных устройствах и операционных системах, что делает его широко доступным для пользователей.
  • Анализ текста: Веб-служба выполняет анализ тональности текстовых данных, чтобы распознавать эмоции, выраженные в письменной форме. Он может идентифицировать определенные эмоции, такие как счастье, печаль, гнев и т. д.
  • Анализ речи: Служба способна анализировать речевые данные для распознавания эмоций, выраженных в тоне и интонации голоса говорящего. Он может распознавать эмоции, анализируя акустические особенности и речевые паттерны.
  • Мультимодальное распознавание эмоций: Сервис объединяет анализ текста и речи, чтобы обеспечить более полное понимание эмоций. Он может одновременно анализировать как письменный контент, так и аудиоданные, чтобы идентифицировать и анализировать эмоции, выраженные через оба носителя.
  • Распознавание эмоций в режиме реального времени: Веб-служба способна выполнять распознавание эмоций в режиме реального времени, обеспечивая мгновенный анализ и реагирование. Эта функция может быть полезна в таких приложениях, как обслуживание клиентов, исследования рынка или мониторинг социальных сетей, где требуется немедленное обнаружение эмоций.

💻 Технологический стек

Discord-бот

В качестве библиотеки для взаимодействия с Discord API используется Pycord.

Записанная речь обрабатывается c помощью pydub.

pyecharts визуализирует данные для отчета в HTML.

Распознавание речи

FastAPI используется для создания API-сервера со встроенной валидацией, сериализацией и асинхронностью.

Для преобразования речи в текст используется модель OpenAI Whisper.

Для лучшей работы на CPU используется библиотека pywhispercpp.

Распознавание эмоций

FastAPI используется для создания API-сервера.

Модели для распознавания эмоций запускаются с помощью HuggingFace Transformers и PyTorch.

Для анализа речи используется модель wav2vec2-xls-r-300m-emotion-ru.

Для анализа текста используется модель rubert-tiny2-cedr-emotion-detection.

🧑‍💻 Запуск приложения

Переменные окружения

Discord-бот

BOT_TOKEN - Токен вашего Discord бота
BOT_PREFIX - Префикс для команд бота
RECOGNITION_URL - Адрес сервера и порт для распознавания речи 
EMOTION_URL - Адрес сервера и порт для распознавания эмоций 

Распознавание речи

WHISPER_MODEL - Используемая модель Whisper, для whisper.cpp модели доступны в репозитории
WHISPER_THREADS - Количество потоков, по умолчанию равно min(4, доступно)
WHISPER_LANGUAGE - Язык распознаваемой речи, для автоматического определения "" или "auto"
WHISPER_DEVICE - Используемое устройство "cpu" или "cuda"

Запуск в Docker

Discord-бот

Сборка образа из Dockerfile - docker build --no-cache -t soulsense_discord_bot .

Запуск контейнера - docker run -d --net=host --name soulsense_discord_bot soulsense_discord_bot

Распознавание речи

Сборка образа из Dockerfile - docker build --no-cache -t soulsense_speech2text .

Запуск контейнера - docker run -d -p 8000:8000 --name soulsense_speech2text soulsense_speech2text

Распознавание эмоций

Сборка образа из Dockerfile - docker build --no-cache -t soulsense_emotion_recognition .

Запуск контейнера - docker run -d -p 7000:7000 --name soulsense_emotion_recognition soulsense_emotion_recognition

📊 Пример отчета

После завершения анализа бот отправляет отчет в формате HTML по всем участникам разговора и по каждому отдельному участнику.


Copyright © 2023 KELONMYOSA.
Licensed under the Apache License, Version 2.0

About

Discord-бот для распознавания речи и эмоций

Topics

Resources

License

Stars

Watchers

Forks