Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Speech Emotion Audio Annotation Workflow

Python Audio Dataset Status

Overview

This project demonstrates an end-to-end audio annotation workflow using the RAVDESS speech emotion dataset.

The goal is to transform raw audio files into structured annotation data through dataset analysis, label extraction, quality validation, and audio visualization.

The workflow reflects practical AI data preparation processes used in machine learning and data annotation pipelines.


Project Workflow

Raw Audio Dataset
        |
        ↓
Dataset Analysis
        |
        ↓
Annotation Metadata Extraction
        |
        ↓
Quality Assurance Checks
        |
        ↓
Audio Visualization
        |
        ↓
Reports and Documentation

Dataset

Dataset: Ryerson Audio-Visual Database of Emotional Speech and Song (RAVDESS)

Dataset characteristics:

  • 1,440 audio samples
  • 24 professional actors
  • 8 emotion categories

Emotion classes:

  • Neutral
  • Calm
  • Happy
  • Sad
  • Angry
  • Fearful
  • Disgust
  • Surprised

Project Structure

speech-emotion-audio-annotation/

├── assets/
│   ├── emotion_distribution.png
│   ├── spectrograms/
│   └── waveforms/
│
├── reports/
│   ├── audio_summary.csv
│   ├── audio_annotations.csv
│   └── annotation_quality_report.txt
│
├── scripts/
│   ├── audio_dataset_analyzer.py
│   ├── audio_visualization.py
│   ├── create_annotation_csv.py
│   ├── emotion_distribution.py
│   └── annotation_quality_check.py
│
├── requirements.txt
├── README.md
└── LICENSE

Annotation Pipeline

1. Dataset Analysis

audio_dataset_analyzer.py

Extracts:

  • Audio filenames
  • Speaker IDs
  • Emotion labels
  • Duration
  • Sample rate
  • Audio channels

Output:

reports/audio_summary.csv

2. Annotation CSV Creation

create_annotation_csv.py

Converts raw metadata into an annotation-ready format.

Generated fields:

  • Audio file
  • Actor ID
  • Emotion label
  • Duration
  • Sample rate
  • Quality status
  • Verification status

Output:

reports/audio_annotations.csv

3. Annotation Quality Control

annotation_quality_check.py

Validates:

  • Missing values
  • Duplicate files
  • Invalid labels
  • Missing audio files
  • Invalid durations

Output:

reports/annotation_quality_report.txt

Result:

STATUS: PASSED

Audio Visualization

The project includes visual analysis examples:

Waveform

Shows the amplitude changes of an audio signal over time.

Mel Spectrogram

Represents frequency patterns commonly used in audio machine learning systems.

Emotion Distribution

Displays label balance across the dataset.


Tools Used

  • Python
  • Pandas
  • Librosa
  • Matplotlib
  • SoundFile

Reproducibility

Create the environment:

python -m venv audio-env

Activate:

audio-env\Scripts\activate

Install dependencies:

pip install -r requirements.txt

Run analysis:

python scripts/audio_dataset_analyzer.py

Create annotation data:

python scripts/create_annotation_csv.py

Run quality checks:

python scripts/annotation_quality_check.py

Generate visualizations:

python scripts/audio_visualization.py
python scripts/emotion_distribution.py

Future Improvements

Possible extensions:

  • Human-in-the-loop annotation interface
  • Automatic speech recognition integration
  • Text transcription alignment
  • Deep learning emotion classification model
  • Active learning annotation workflow

License

This project is licensed under the MIT License.

About

End-to-end audio annotation workflow for speech emotion data including dataset analysis, annotation generation, quality checks, and audio visualization.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages