This project implements emotion detection through speech using deep learning techniques. Leveraging datasets like RAVDESS, CREMA-D, TESS, and SAVEE, it classifies human emotions (e.g., happy, sad, angry) from audio recordings.
- Emotion classification into categories: Angry, Calm, Disgust, Fear, Happy, Neutral, Sad, Surprise.
- Utilizes Convolutional Neural Networks (CNNs) for feature extraction and classification.
- Data augmentation techniques for improving model robustness.
- Balanced dataset handling to address class imbalance.
The following datasets are used for training and evaluation:
- 4 Convolutional Layers with MaxPooling for feature extraction.
- Dense layers for classification.
- Dropout layers to prevent overfitting.
- Final Softmax layer with 8 outputs (one for each emotion).
- Accuracy: 64.72%
- Precision, recall, and F1-score provided for each class in the confusion matrix.
-
Clone the repository:
git clone https://github.com/your-username/emotion-detection-voice-dl.git cd emotion-detection-voice-dl -
Install the required dependencies:
pip install -r requirements.txt
Dependencies include:
librosanumpypandasmatplotlibseabornkerassklearn
-
Download the datasets and place them in the respective folders as described in the notebook.
-
Run the Jupyter Notebook:
jupyter notebook
Open the
Emotion_Detection.ipynbfile and follow the instructions. -
To train the model:
- Execute the "Model Training" section in the notebook.
-
To evaluate the model:
- Run the "Evaluation" section, which includes accuracy, loss plots, and the confusion matrix.
- Incorporate more advanced models like transformers.
- Explore multi-modal approaches combining speech and text analysis.
- Extend the model to real-time emotion detection applications.
Dineth Hettiarachchi
Feel free to contribute! Fork the repository, make your changes, and submit a pull request.
This project is licensed under the MIT License.