This project implements a deep learning model for Speech Emotion Recognition (SER) using audio data. The model is trained on the RAVDESS dataset to classify audio signals into one of eight emotions: neutral, calm, happy, sad, angry, fear, disgust, and surprise. The pipeline includes data preprocessing, feature extraction, data augmentation, model building, training, and evaluation.
Dataset link: Ravdess Dataset
Load the audio files from the RAVDESS dataset and assign labels based on file names.
Visualize waveplots and spectrograms for various emotions.
Apply the following techniques:
- Noise injection
- Time-stretching
- Shifting
- Pitch adjustment
Extract the following features to reduce complexity and reduce noise:
- Zero-Crossing Rate (ZCR)
- Chroma features
- Mel-Frequency Cepstral Coefficients (MFCCs)
- MelSpectogram
- Root Mean Square (RMS)
The model is a 1D Convolutional Neural Network (CNN) designed for feature extraction and classification.
- Convolutional Layers: Extract spatial features from the audio data.
- Dropout Layers: Prevent overfitting.
- MaxPooling Layers: Reduce the dimensionality of feature maps.
- Dense Layers: Perform classification into the 8 emotion categories.
Evaluate the model using metrics like accuracy, confusion matrix, and classification report.
The model achieved an accuracy of 65.74% on the test dataset.
- Loss: Decreases consistently over epochs.
- Accuracy: Peaks around 65% on validation dataset.


