Skip to content

Web-based AI app that detects human emotions from real-time and recorded voice inputs

Notifications You must be signed in to change notification settings

owacez/EmoSense

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 

Repository files navigation

EmoSense

EmoSense is a web-based emotion recognition application that analyzes both real-time and pre-recorded voice inputs to detect human emotions using AI-powered models. Designed for therapists, researchers, and individuals, EmoSense provides emotionally intelligent insights through a user-friendly interface. Future versions will support multi-lingual input, emotion analysis reports in printable formats, and further usability enhancements.

🌐 Project Structure

EmoSense/
├── client/   # React frontend for UI interaction
└── server/   # Python backend for emotion analysis and API handling

📦 Prerequisites

Before running the application, make sure you have the following installed:

  • Node.js & npm
  • Python 3.12
  • pip (Python package installer)
  • Git
  • PyCharm (optional, for running backend server)
  • Postgres (v12+ Recommended)

🗂 Download RAVDESS Dataset

  1. Go to Kaggle RAVDESS Dataset
  2. Download the dataset and extract the contents.
  3. Place the dataset in an appropriate directory referenced by your backend (e.g., server/ravdess/).

🛠 Installation & Setup

1. Clone the Repository

2. Backend Setup

  • cd server
  • pip install -r requirements.txt
  • python EmoSenseApp.py (You can run the backend either using Python or via PyCharm)

2. Client Setup

  • cd client
  • npm install
  • npm start

3. Database Setup

  • Open pgAdmin.
  • Create a new database named EmoSense.
  • Right-click on the EmoSense database and select Query Tool.
  • Paste the following SQL script and click Execute to create the necessary tables and relationships.
-- This script was generated by the ERD tool in pgAdmin 4.
-- Please log an issue at https://github.com/pgadmin-org/pgadmin4/issues/new/choose if you find any bugs, including reproduction steps.
BEGIN;

CREATE TABLE IF NOT EXISTS public."ANALYSIS"
(
    "ANALYSIS_ID" serial NOT NULL,
    "PATIENT_EMAIL" character varying(50) COLLATE pg_catalog."default" NOT NULL,
    "THERAPIST_ID" integer NOT NULL,
    "ANALYSIS_MODE" character varying(30) COLLATE pg_catalog."default" NOT NULL,
    "ANALYSIS_DURATION" time without time zone NOT NULL,
    "DOMINANT_EMOTION" character varying(30) COLLATE pg_catalog."default" NOT NULL,
    "ANALYSIS_SUMMARY" text COLLATE pg_catalog."default" NOT NULL,
    "DATE" date NOT NULL,
    "SESSION_START" time without time zone NOT NULL,
    "SESSION_END" time without time zone NOT NULL,
    "SESSION_DURATION" time without time zone NOT NULL,
    CONSTRAINT "ANALYSIS_pkey" PRIMARY KEY ("ANALYSIS_ID")
);

CREATE TABLE IF NOT EXISTS public."PATIENTS"
(
    "PATIENT_FULLNAME" character varying(50) COLLATE pg_catalog."default" NOT NULL,
    "PATIENT_EMAIL" character varying(50) COLLATE pg_catalog."default" NOT NULL,
    "PATIENT_CONTACT" bigint NOT NULL,
    CONSTRAINT "PATIENTS_pkey" PRIMARY KEY ("PATIENT_EMAIL")
);

CREATE TABLE IF NOT EXISTS public."THERAPIST"
(
    "THERAPIST_ID" serial NOT NULL,
    "THERAPIST_FULLNAME" character varying(50) COLLATE pg_catalog."default" NOT NULL,
    "THERAPIST_EMAIL" character varying(50) COLLATE pg_catalog."default" NOT NULL,
    "THERAPIST_PASSWORD" character varying(30) COLLATE pg_catalog."default" NOT NULL,
    CONSTRAINT "THERAPIST_pkey" PRIMARY KEY ("THERAPIST_ID")
);

ALTER TABLE IF EXISTS public."ANALYSIS"
    ADD CONSTRAINT "ANALYSIS_PATIENT_EMAIL_fkey" FOREIGN KEY ("PATIENT_EMAIL")
    REFERENCES public."PATIENTS" ("PATIENT_EMAIL") MATCH SIMPLE
    ON UPDATE NO ACTION
    ON DELETE NO ACTION
    NOT VALID;


ALTER TABLE IF EXISTS public."ANALYSIS"
    ADD CONSTRAINT "ANALYSIS_THERAPIST_ID_fkey" FOREIGN KEY ("THERAPIST_ID")
    REFERENCES public."THERAPIST" ("THERAPIST_ID") MATCH SIMPLE
    ON UPDATE NO ACTION
    ON DELETE NO ACTION
    NOT VALID;

END;

💻 UI Pages Overview

Home Page

Quick access to start real-time or pre-recorded emotion analysis. image

Real-Time Analysis Page

Captures voice input directly from the microphone and processes it for live emotion feedback. image

Pre-Recorded Analysis Result Page

Displays detailed emotion analysis results from the uploaded audio, including emotional queues, average scores, and summary insights. image

Analysis History

The History Page displays a log of all previous emotion analysis sessions (both real-time and pre-recorded), helping users review and download past reports. image


📌 Future Enhancements

  • Multi-lingual input support
  • Downloadable/Printable emotion reports

About

Web-based AI app that detects human emotions from real-time and recorded voice inputs

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published