# Tunisian Speech Emotion Recognition
This project implements a deep learning model for speech emotion recognition, with a focus on Tunisian dialect voice emotion detection. The model is based on the Wav2Vec2 architecture and is trained on the EYASE dataset for initial emotion recognition capabilities.
## Features
- Speech emotion detection for multiple languages/dialects
- Support for 4 basic emotions: angry, happy, neutral, and sad
- Based on Facebook's Wav2Vec2 pre-trained model
- Real-time audio processing capabilities
- TensorBoard integration for training visualization
## Project Structure
```
voiceEmotion/
├── model.py # Model architecture definition
├── train.py # Training script
├── predict.py # Inference script
├── preprocess.py # Audio preprocessing utilities
├── prepare_data.py # Dataset preparation script
├── requirements.txt # Project dependencies
└── datasets/ # Dataset directory
└── EYASE/ # EYASE dataset
```
## Installation
1. Clone the repository:
```bash
git clone
github.com
cd tunisian-speech-emotion-recognition
```
2. Install dependencies:
```bash
pip install -r requirements.txt
```
## Usage
### Data Preparation
```bash
python prepare_data.py
```
### Training
```bash
python train.py
```
### Prediction
```bash
python predict.py --audio_path path/to/audio/file.wav
```
## Model Architecture
The model uses a Wav2Vec2-based architecture with:
- Pre-trained Wav2Vec2 base for feature extraction
- Custom classifier head for emotion detection
- Dropout layers for regularization
- Cross-entropy loss for multi-class classification
## Training Details
- Learning rate: 2e-5
- Batch size: 16
- Number of epochs: 30
- Optimizer: AdamW
- Audio preprocessing: 16kHz sampling rate, 3-second segments
## Results
The model achieves competitive performance on emotion recognition tasks:
- Training monitoring through TensorBoard
- Confusion matrices sav …