RoadToDestiny/face

Python

1

34 commits

updated Jun 3, 2026

See the code

README

Emotion AI Live Analyzer

Готовое desktop-приложение для мультимодального анализа эмоций по камере и видеофайлам.

Система объединяет:

  • эмоцию лица по видеокадрам
  • распознавание речи из аудио (VOSK)
  • эмоцию текста по распознанной речи
  • итоговую агрегированную эмоцию

Что входит в поставку

  • готовый чекпоинт: checkpoints/best_emotion_model.pt
  • прод-лаунчер: scripts/run_app.py
  • графический интерфейс: scripts/run_ui.py

Требования

  • Windows 10/11 или Linux
  • Python 3.9+
  • ffmpeg в PATH (обязателен для извлечения аудио из видео)

Установка

pip install -r requirements.txt

Какие модели используются

Проект использует 3 модели:

  1. Модель эмоций лица (PyTorch checkpoint)
  • Назначение: определение эмоции по лицу в кадре
  • Путь: checkpoints/best_emotion_model.pt
  • В поставке: уже лежит в репозитории
  1. VOSK модель распознавания речи
  • Назначение: субтитры и распознавание речи из аудио
  • Путь: vosk-model-small-ru-0.22/
  • Ручная загрузка: https://alphacephei.com/vosk/models/vosk-model-small-ru-0.22.zip
  • Примечание: автоматическая загрузка модели VOSK может быть недоступна при подключении из России — выполняйте ручную загрузку, если авто-скачивание не срабатывает.
  1. RuBERT модель тональности текста
  • Назначение: эмоция текста по распознанной речи
  • Путь: seararubert-base-cased-russian-sentiment/ (также поддерживается rubert-base-cased-russian-sentiment/)
  • Страница модели: https://huggingface.co/seara/rubert-base-cased-russian-sentiment
  • Ручная загрузка файлов: кнопка Download files на странице модели

Если скачиваете вручную, распакуйте/скопируйте файлы в указанные папки в корне проекта.

Быстрый старт

Один рабочий запуск в production-режиме:

python scripts/run_app.py

Что делает этот скрипт:

  1. Проверяет наличие Vosk и RuBERT моделей
  2. Автоматически скачивает недостающие модели
  3. Запускает графический интерфейс

Важно: автоматическая загрузка моделей работает только при подключении через VPN.

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

python scripts/run_app.py --force-download
python scripts/run_app.py --models vosk
python scripts/run_app.py --models rubert

Запуск только UI

python scripts/run_ui.py

В интерфейсе доступны:

  • режим камеры для анализа в реальном времени
  • загрузка видео с офлайн-предобработкой
  • субтитры и плашка эмоций во время воспроизведения видео

Обработка видео

После загрузки видео приложение выполняет предобработку перед воспроизведением:

  1. Извлекает аудиодорожку через ffmpeg
  2. Строит субтитры с таймкодами через VOSK
  3. Определяет эмоцию текста для реплик
  4. Предвычисляет эмоции лица по кадрам
  5. Запускает воспроизведение с синхронизированными оверлеями

Если модель анализа текста недоступна, воспроизведение все равно работает, а эмоция текста устанавливается в NEUTRAL.

Структура проекта

face/
├── checkpoints/
│   └── best_emotion_model.pt
├── config/
│   └── default.yaml
├── scripts/
│   ├── run_app.py
│   ├── download_models.py
│   ├── run_ui.py
│   └── ...
├── src/
│   ├── face_detection/
│   ├── emotion/
│   ├── audio/
│   ├── pipeline/
│   └── streams/

Устранение проблем

  • Ошибка предобработки видео:
    • проверьте, что ffmpeg установлен и доступен в терминале
    • проверьте, что в видео есть аудиодорожка
  • Модель VOSK не определяется:
    • держите папку vosk-model-small-ru-0.22 в корне проекта
  • Камера недоступна:
    • закройте другие приложения, которые используют камеру

Лицензия

Для внутреннего и учебного использования, если иная политика лицензирования не задана в вашей организации.

RoadToDestiny/face

Python

1

34 commits

updated Jun 3, 2026

See the code

README

Emotion AI Live Analyzer

Готовое desktop-приложение для мультимодального анализа эмоций по камере и видеофайлам.

Система объединяет:

  • эмоцию лица по видеокадрам
  • распознавание речи из аудио (VOSK)
  • эмоцию текста по распознанной речи
  • итоговую агрегированную эмоцию

Что входит в поставку

  • готовый чекпоинт: checkpoints/best_emotion_model.pt
  • прод-лаунчер: scripts/run_app.py
  • графический интерфейс: scripts/run_ui.py

Требования

  • Windows 10/11 или Linux
  • Python 3.9+
  • ffmpeg в PATH (обязателен для извлечения аудио из видео)

Установка

pip install -r requirements.txt

Какие модели используются

Проект использует 3 модели:

  1. Модель эмоций лица (PyTorch checkpoint)
  • Назначение: определение эмоции по лицу в кадре
  • Путь: checkpoints/best_emotion_model.pt
  • В поставке: уже лежит в репозитории
  1. VOSK модель распознавания речи
  • Назначение: субтитры и распознавание речи из аудио
  • Путь: vosk-model-small-ru-0.22/
  • Ручная загрузка: https://alphacephei.com/vosk/models/vosk-model-small-ru-0.22.zip
  • Примечание: автоматическая загрузка модели VOSK может быть недоступна при подключении из России — выполняйте ручную загрузку, если авто-скачивание не срабатывает.
  1. RuBERT модель тональности текста
  • Назначение: эмоция текста по распознанной речи
  • Путь: seararubert-base-cased-russian-sentiment/ (также поддерживается rubert-base-cased-russian-sentiment/)
  • Страница модели: https://huggingface.co/seara/rubert-base-cased-russian-sentiment
  • Ручная загрузка файлов: кнопка Download files на странице модели

Если скачиваете вручную, распакуйте/скопируйте файлы в указанные папки в корне проекта.

Быстрый старт

Один рабочий запуск в production-режиме:

python scripts/run_app.py

Что делает этот скрипт:

  1. Проверяет наличие Vosk и RuBERT моделей
  2. Автоматически скачивает недостающие модели
  3. Запускает графический интерфейс

Важно: автоматическая загрузка моделей работает только при подключении через VPN.

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

python scripts/run_app.py --force-download
python scripts/run_app.py --models vosk
python scripts/run_app.py --models rubert

Запуск только UI

python scripts/run_ui.py

В интерфейсе доступны:

  • режим камеры для анализа в реальном времени
  • загрузка видео с офлайн-предобработкой
  • субтитры и плашка эмоций во время воспроизведения видео

Обработка видео

После загрузки видео приложение выполняет предобработку перед воспроизведением:

  1. Извлекает аудиодорожку через ffmpeg
  2. Строит субтитры с таймкодами через VOSK
  3. Определяет эмоцию текста для реплик
  4. Предвычисляет эмоции лица по кадрам
  5. Запускает воспроизведение с синхронизированными оверлеями

Если модель анализа текста недоступна, воспроизведение все равно работает, а эмоция текста устанавливается в NEUTRAL.

Структура проекта

face/
├── checkpoints/
│   └── best_emotion_model.pt
├── config/
│   └── default.yaml
├── scripts/
│   ├── run_app.py
│   ├── download_models.py
│   ├── run_ui.py
│   └── ...
├── src/
│   ├── face_detection/
│   ├── emotion/
│   ├── audio/
│   ├── pipeline/
│   └── streams/

Устранение проблем

  • Ошибка предобработки видео:
    • проверьте, что ffmpeg установлен и доступен в терминале
    • проверьте, что в видео есть аудиодорожка
  • Модель VOSK не определяется:
    • держите папку vosk-model-small-ru-0.22 в корне проекта
  • Камера недоступна:
    • закройте другие приложения, которые используют камеру

Лицензия

Для внутреннего и учебного использования, если иная политика лицензирования не задана в вашей организации.