Interviewz is a comprehensive application designed to analyze sentiments detected from video interviews across different sources:
It uses advanced machine learning models to detect sentiments from the interview data.
Purpose: The Middleware module acts as an orchestrator, coordinating the processing tasks across the audio, text, and video modules.
How It Works:
Key Components:
Purpose: The Audio module processes audio data to extract and analyze emotions.
Overview: The Audio Emotions Analysis module of the Interviewz application is responsible for analyzing audio segments from interviews and determining the emotional content within these segments. The module uses FastAPI for serving the endpoints, PyTorch and torchaudio for audio processing, and a Supabase database for storing and retrieving data.
Components:
Initializes a FastAPI application.
Handles the extraction of audio segments from storage and predicts emotions using pre-trained models. Utilizes torchaudio for audio handling and transformers for emotion classification.
Provides methods for logging, configuration management, file operations, and database interactions. Manages connections to both Supabase for data handling and S3 buckets for file storage.
Manages the loading and usage of machine learning models for audio classification. Ensures models are loaded once using singleton pattern to optimize resources.
Purpose: The Text module processes textual data to analyze sentiments and emotions.
Overview: The Text module of the Interviewz application processes textual data to analyze emotional content using machine learning models. It leverages state-of-the-art NLP models for sequence classification to predict emotional responses based on the text from interviews.
Components:
Initializes a FastAPI application.
Manages the text analysis process by fetching text data, applying emotional analysis, and updating results. Utilizes pre-trained NLP models to classify text into emotional categories.
Includes logging setup, configuration management, and methods for file operations on S3 storage. Implements methods for updating database records and managing connections to Supabase for data storage.
Responsible for loading and managing NLP models and tokenizers for text emotion classification. Implements singleton pattern to ensure models are loaded once per application lifecycle.
Purpose: The Video module processes video data to detect emotions through facial recognition.
Overview: The Video module of the Interviewz application processes video data to analyze emotional content using advanced computer vision models. It handles video segments, applies emotion recognition using frame analysis, and updates emotional data back to the database.
Components:
Initializes a FastAPI application.
Manages the video analysis process by fetching video data, applying frame-by-frame emotion analysis, and updating results. Utilizes DeepFace for facial emotion recognition (planned to be replaced by a YOLO model).
Provides methods for configuration management, database interactions, file handling, and logging. Manages connections to Supabase for data handling and S3 buckets for file storage.
Handles configuration settings but currently does not load specific models due to the module's reliance on DeepFace.
interviewz/ │ ├── middleware/ │ ├── app.py │ └── utils/ │ ├── process.py │ └── utils.py │ ├── audio/ │ ├── app.py │ ├── audioEmotions.py │ └── utils/ │ ├── models.py │ └── utils.py │ ├── text/ │ ├── app.py │ ├── textEmotions.py │ └── utils/ │ ├── models.py │ └── utils.py │ ├── video/ │ ├── app.py │ ├── videoEmotions.py │ └── utils/ │ ├── models.py │ └── utils.py
Check out the project on GitHub.
For any questions, please contact the project maintainers at contact@interviewz.online.