Built to order

Speech Emotion Recognition using Machine Learning

A system that recognizes emotions from speech audio by extracting MFCC features and classifying them with a CNN/LSTM. The app lets you upload or record voice clips and shows the predicted emotion with a confidence radar — a unique audio-AI project that stands out from image-only builds.

Cover image of the speech emotion recognition project, showing the VoiceMood app interface with a voice waveform and the predicted emotion with a confidence radar.
More project photos (2)

The problem

Speech Emotion Recognition (SER) is an audio-AI final-year project that detects the speaker's emotion — happy, angry, sad, neutral and more — directly from voice recordings. Raw audio is converted into Mel-Frequency Cepstral Coefficients (MFCCs), the standard acoustic features used in speech research, and a convolutional neural network trained on the RAVDESS dataset classifies the emotion with a confidence score. The trained model is wrapped in VoiceMood, a Streamlit web app where you can upload or record a voice clip and instantly see the predicted emotion, a confidence radar chart and an emotion timeline for longer recordings.

Unlike image-classification projects that every examiner has seen a hundred times, this is an audio-AI build with real signal-processing depth — MFCC extraction, spectro-temporal learning, and a head-to-head CNN vs LSTM vs SVM comparison, all documented with confusion matrices and per-class F1 scores for your viva.

This is a built-to-order software project: the trained model, full source code and complete documentation are prepared and delivered for your final-year review.

How it works

  1. The audio clip is loaded, resampled to a uniform rate (22.05 kHz), trimmed of leading/trailing silence and normalized.
  2. librosa extracts 40 MFCCs plus their delta derivatives, forming a fixed-length time-frequency feature matrix (216 frames for a 3-second clip).
  3. The trained CNN learns spectro-temporal patterns from this matrix and outputs a softmax distribution over the 8 emotion classes.
  4. VoiceMood renders the waveform, the top predicted emotion, a confidence radar across all classes, and — for longer clips — an emotion timeline.
  5. The report section compares CNN vs LSTM vs SVM with accuracy, confusion matrices and per-class F1, giving you examiner-ready talking points.

Project features

  • Upload or record voice clips (WAV/MP3) directly in the browser
  • MFCC + delta feature extraction with librosa — the industry-standard acoustic pipeline
  • CNN classifier trained on the RAVDESS benchmark dataset (1,440 clips, 8 emotions)
  • LSTM variant and SVM baseline included for model comparison in the report
  • Confidence radar/bar chart for every prediction
  • Emotion timeline view for longer audio (emotion per segment)
  • Batch prediction mode for demoing a folder of clips
  • Interactive Streamlit web app — runs on any laptop, no GPU needed for inference
  • Colab training notebook included for re-training and viva demonstrations

What is included

  • Full source code (Python, well-commented, modular)
  • Trained CNN model file (.h5) + training Colab notebook
  • Project report PDF (synopsis, literature survey, methodology, results, conclusion)
  • PPT presentation for final review
  • Viva Q&A preparation document (MFCC, CNN/LSTM, RAVDESS questions answered)

FAQs

  1. Why is RAVDESS used instead of my own recordings? RAVDESS is the recognized public benchmark for speech emotion research — examiners trust results measured on it, and the report includes the dataset citation. The app still lets you test on your own voice recordings.
  2. Why MFCC features instead of feeding raw audio to the model? MFCCs compress speech into a compact representation that mimics human hearing — this is the standard approach in published SER papers, keeps training fast, and is exactly what viva examiners expect you to explain.
  3. CNN vs LSTM — which one is better for this project? The CNN learns local spectro-temporal patterns and trains faster; the LSTM captures longer prosodic dynamics. The report compares both against an SVM baseline with confusion matrices, so you can defend the choice either way.
  4. Can I record my voice live in the app? Yes — VoiceMood supports mic recording in the browser as well as file upload, which makes for a strong live demo in your review.
  5. How is accuracy measured for my review? The report documents the evaluation procedure for measuring accuracy on the RAVDESS held-out split, with the confusion matrix — examiners respect an honest benchmarked number over an inflated claim.
  6. How can I extend this project? Common extensions are real-time streaming prediction, multilingual emotion datasets (e.g. EMO-DB), and fusing speech with text sentiment for multimodal emotion detection. Ask us and we will scope it.

Limitations & prerequisites

  • RAVDESS is acted studio speech — accuracy drops on noisy, real-world or heavily accented audio; we document this honestly in the report.
  • Voice-only emotion is inherently ambiguous; sarcasm, mixed emotions and context beyond audio are not captured.
  • Clips shorter than ~1 second give less reliable predictions (too few MFCC frames).
  • Training on a laptop CPU is slow (20–40 min); the Colab GPU notebook is provided for re-training.
Components & software requirements
  • Python 3.10, NumPy, pandas
  • librosa (audio loading, resampling, MFCC extraction), SoundFile
  • TensorFlow/Keras (CNN and LSTM models), scikit-learn (SVM baseline, metrics)
  • Streamlit (VoiceMood web app), Matplotlib/Plotly (charts)
  • RAVDESS dataset — trained model (.h5) included; dataset source linked in docs

Specifications

Parameter Value
Input features 40 MFCCs + delta, 216 time frames (3 s clips)
Model architecture 2D CNN (Conv2D + BatchNorm + Dropout); LSTM variant
Baseline SVM on aggregated MFCC statistics (scikit-learn)
Dataset RAVDESS: 1,440 acted clips, 24 actors, 8 emotions
Emotion classes neutral, calm, happy, sad, angry, fearful, disgust, surprised
Test accuracy ~70–75% (CNN on RAVDESS held-out split)
Audio formats WAV, MP3 (auto-resampled)
Inference CPU real-time; training via included Colab GPU notebook
UI Streamlit web app with mic recording + file upload

Download abstract (PDF)

Related guides

All guides
Illustration of object tracking showing video frames with bounding boxes and persistent ID labels following people and vehicles, comparing motion prediction and appearance matching.B.E./B.Tech Computer Science and Electronics students building video analytics projects — people counting, vehicle tracking, sports analysis — who have detection working and need

Object Tracking: DeepSORT and ByteTrack Explained

Detection finds objects per frame; tracking keeps their identities across frames. This guide explains tracking-by-detection, Kalman motion models, DeepSORT's appearance embeddings vs ByteTrack's low-confidence box recovery, tracking metrics (HOTA, IDF1, ID switches), and the tuning parameters that determine real-world quality.

Read guide
Illustration of image segmentation showing U-Net's U-shaped encoder-decoder with skip connections producing pixel masks, alongside Mask R-CNN detecting instances with masks.B.E./B.Tech Computer Science and AI/ML students moving from image classification or detection to pixel-level understanding — medical imaging, defect detection, autonomous driving

Image Segmentation: U-Net and Mask R-CNN

When projects need pixel-level answers, segmentation delivers. This guide explains semantic vs instance vs panoptic segmentation, U-Net's encoder-decoder with skip connections, Mask R-CNN's parallel mask head, Dice and IoU evaluation, paired augmentation, and how to choose the right architecture for your data and question.

Read guide
Illustration of Whisper speech-to-text showing sound waves flowing into a neural network and emerging as transcribed text with timestamps and speaker labels.B.E./B.Tech Computer Science and AI/ML students adding speech-to-text to projects — voice assistants, meeting transcription, accessibility tools

Whisper for Speech-to-Text in Student Projects

Whisper transcribes speech in dozens of languages with no training required. This guide covers how it works, choosing among model sizes, running it locally with faster-whisper, handling hour-long audio, timestamps and speaker diarization, multilingual quirks, and honest evaluation with word error rate.

Read guide
Get a quotation