AI & Data

Speech Emotion Recognition

Speech Emotion Recognition is an individual Speech Processing course project that predicts both the emotion and intensity behind a spoken audio clip. Built around a CNN-LSTM multitask model, it takes a short recording, extracts MFCC audio features, and returns two simultaneous predictions: the dominant emotion and how strongly it's expressed, along with a window-by-window breakdown of how emotion shifts across a longer clip.

Role
Machine Learning Developer
Client
Akademik
Year
2026
Tools
Python, TensorFlow, Keras, Librosa, Streamlit, scikit-learn, SciPy
speech-emotion-recognition.app

Case Study

01 / PROBLEM

Speech carries emotional information in its acoustic patterns and how they unfold over time, not in the words themselves. A system built to recognize emotion from voice has to extract meaningful features from raw audio and interpret how they change across a clip, rather than relying on any text content. The project also set out to go one step further than a single emotion label, by distinguishing how strongly an emotion is expressed.

02 / PROCESS

Trained on the RAVDESS speech dataset (2,880 labeled clips across 24 actors, 8 emotions x 2 intensities), using 40-coefficient MFCC features extracted with Librosa as the model's input. The model itself is a CNN-LSTM multitask network: two Conv1D+MaxPooling stages for local acoustic feature learning, followed by an LSTM layer for temporal patterns, then two separate output heads predicting emotion (8 classes) and intensity (2 classes) from the same shared representation. For longer clips, a sliding 2.0-second window with a 0.5-second hop feeds the same model repeatedly, and a 5-tap median filter smooths the resulting per-window predictions into stable time segments before they're shown. The whole pipeline is wrapped in a Streamlit interface for uploading audio and reviewing results, including an optional feedback form for correcting a wrong prediction.

03 / RESULT

A completed, working individual Speech Processing project: given an uploaded .wav file, it predicts the speaker's emotion and its intensity, and can break a longer recording into a timeline of emotion segments over time. It runs as an interactive local Streamlit application; it was not deployed publicly.

Project Gallery

Interested in working together?

Reach out to talk about a project, or see more of the work first.