A modern web application for creating labeled Darija audio datasets.
# Darija Dataset Labeling Tool
A modern full-stack application for creating labeled audio datasets with multiple input methods. The app supports YouTube videos, file uploads, and direct recording, providing a sleek web interface with real-time WebGL effects for labeling audio clips.
## Features
- **YouTube Processing** - Download and split videos automatically
- **File Upload** - Upload audio/video files for processing
- **Direct Recording** - Record audio directly in the browser
- **Modern UI** - Glassmorphism design with WebGL particle effects
- **History View** - Track all labeled content by dialect category
- **Progress Tracking** - See how many clips you've labeled
- **Smart Deduplication** - Automatically skip duplicate entries
- **Category Organization** - Organize by dialect (Urban, Northern, Saharan, Amazigh)
## Project Structure
```
darija-dataset/
├── backend/
│ ├── app.py # Flask API server
│ ├── requirements.txt # Python dependencies
│ ├── dataset.csv # Generated labeled dataset
│ ├── videos/ # Temp: Downloaded files (auto-deleted)
│ └── clips/ # Audio clips organized by ID
│ └── recordings/ # Direct recordings
├── frontend/
│ ├── src/
│ │ ├── App.jsx # Main application
│ │ ├── App.css # Global styles with utility classes
│ │ ├── components/ # React components
│ │ │ ├── ViewToggle.jsx
│ │ │ ├── InputSection.jsx
│ │ │ ├── ModeSelector.jsx
│ │ │ ├── CategorySelector.jsx
│ │ │ ├── YouTubeInput.jsx
│ │ │ ├── FileUpload.jsx
│ │ │ ├── RecordingControls.jsx
│ │ │ ├── LabelingSection.jsx
│ │ │ ├── HistoryView.jsx
│ │ │ └── PixelBlast.jsx # WebGL background effect
│ │ └── lib/
│ │ └── utils.js # Utility functions
│ ├── tailwind.config.js # Tailwind CSS configuration
│ ├── postcss.config.js # PostCSS configuration
│ └── package.json …