help@rskworld.in +91 93305 39277
RSK World
  • Home
  • Development
    • Web Development
    • Mobile Apps
    • Software
    • Games
    • Project
  • Technologies
    • Data Science
    • AI Development
    • Cloud Development
    • Blockchain
    • Cyber Security
    • Dev Tools
    • Testing Tools
  • Blog
  • About
  • Contact

Theme Settings

Color Scheme
Display Options
Font Size
100%
Back to Project
RSK World
music-classification
RSK World
music-classification
Music Classification Dataset - Genre Classification + Music AI + Audio ML
music-classification
  • __pycache__
  • data
  • models
  • notebooks
  • utils
  • .gitignore1.2 KB
  • ADVANCED_FEATURES.md10.7 KB
  • COMPLETE_PROJECT_INFO.txt16.3 KB
  • CONTRIBUTING.md2 KB
  • DATASET_INFO.md8.5 KB
  • INSTALLATION.md8.4 KB
  • LICENSE2.1 KB
  • PROJECT_STRUCTURE.md8.4 KB
  • PROJECT_SUMMARY.md12.7 KB
  • README.md5.7 KB
  • START_HERE.md7 KB
  • USAGE_GUIDE.md11.1 KB
  • WHATS_NEW.md8.9 KB
  • config.py4.3 KB
  • demo.py11.9 KB
  • example_usage.py8.8 KB
  • index.html38.8 KB
  • music-classification.png2.1 MB
  • quick_start.py5.7 KB
  • requirements.txt1.1 KB
  • setup.py2.9 KB
  • validate_project.py7 KB
bot.dbREADME.mddemo.py
README.md
Raw Download

README.md

# Music Classification Dataset

<!--
/**
* Project: Music Classification Dataset
* Author: Molla Samser
* Company: RSK World
* Designer & Tester: Rima Khatun
* Website: https://rskworld.in
* Email: help@rskworld.in, support@rskworld.in
* Phone: +91 93305 39277
* Description: Music genre classification dataset with audio samples
* License: Educational Purpose Only
*/
-->

## 📖 Overview

This dataset includes audio samples from multiple music genres with genre labels. Perfect for music information retrieval, genre classification, audio feature extraction, and music analysis applications.

## 🎵 Features

- **Multiple music genres** - Classical, Jazz, Rock, Pop, Hip-Hop, Electronic, Country, Blues
- **Labeled audio samples** - Each audio file is properly labeled with its genre
- **Training and test sets** - Pre-split datasets for easy model training
- **Audio features extracted** - MFCC, Spectral Centroid, Chroma, and more
- **Ready for classification models** - Compatible with popular ML frameworks

## 📊 Dataset Structure

```
music-classification/
├── data/
│ ├── audio/
│ │ ├── classical/
│ │ ├── jazz/
│ │ ├── rock/
│ │ ├── pop/
│ │ ├── hiphop/
│ │ ├── electronic/
│ │ ├── country/
│ │ └── blues/
│ ├── train_data.csv
│ ├── test_data.csv
│ └── features.csv
├── models/
│ ├── train_model.py
│ ├── predict.py
│ └── saved_models/
├── notebooks/
│ ├── exploratory_analysis.ipynb
│ └── audio_visualization.ipynb
├── utils/
│ ├── audio_processor.py
│ └── feature_extractor.py
└── requirements.txt
```

## 🎯 Genre Categories

1. **Classical** - Orchestral, Chamber, Symphony
2. **Jazz** - Swing, Bebop, Fusion
3. **Rock** - Classic Rock, Hard Rock, Alternative
4. **Pop** - Contemporary Pop, Dance Pop
5. **Hip-Hop** - Rap, Trap, Old School
6. **Electronic** - House, Techno, Ambient
7. **Country** - Traditional, Modern Country
8. **Blues** - Delta Blues, Electric Blues

## 🚀 Getting Started

### Prerequisites

- Python 3.8 or higher
- pip package manager
- Virtual environment (recommended)

### Installation

1. Clone or download this repository
2. Navigate to the project directory
3. Install required packages:

```bash
pip install -r requirements.txt
```

### Quick Start

```python
# Load and analyze audio files
from utils.audio_processor import AudioProcessor
from utils.feature_extractor import FeatureExtractor

# Initialize processors
processor = AudioProcessor()
extractor = FeatureExtractor()

# Load audio file
audio_path = 'data/audio/rock/sample01.wav'
audio_data = processor.load_audio(audio_path)

# Extract features
features = extractor.extract_mfcc(audio_data)
print(f"MFCC Features: {features.shape}")
```

## 🔧 Technologies Used

- **Audio Formats**: WAV, MP3
- **Python Libraries**: Librosa, NumPy, Pandas, Scikit-learn
- **Processing**: Audio Feature Extraction, Signal Processing
- **ML Models**: Random Forest, SVM, Neural Networks

## 📈 Usage Examples

### 1. Train a Classification Model

```bash
python models/train_model.py --model random_forest --epochs 100
```

### 2. Make Predictions

```bash
python models/predict.py --audio sample_music.wav
```

### 3. Extract Audio Features

```bash
python utils/feature_extractor.py --input data/audio/jazz/ --output features/
```

## 📊 Dataset Statistics

- **Total Samples**: 1000+ audio files
- **Duration**: 30 seconds per sample
- **Sample Rate**: 22050 Hz
- **Format**: WAV (lossless), MP3 (compressed)
- **Split Ratio**: 80% Training, 20% Testing

## 🎓 Difficulty Level

**Intermediate** - Requires basic understanding of:
- Python programming
- Audio signal processing
- Machine learning concepts
- Library usage (Librosa, Scikit-learn)

## 📄 File Descriptions

### Data Files

- `train_data.csv` - Training dataset with file paths and labels
- `test_data.csv` - Testing dataset for model evaluation
- `features.csv` - Extracted audio features for all samples

### Scripts

- `audio_processor.py` - Audio loading and preprocessing utilities
- `feature_extractor.py` - Feature extraction functions
- `train_model.py` - Model training pipeline
- `predict.py` - Prediction and inference script

## 🎯 Applications

- Music genre classification
- Music recommendation systems
- Audio content analysis
- Music information retrieval
- Playlist generation
- Audio tagging and categorization

## 📚 Resources

- [Librosa Documentation](https://librosa.org/)
- [Audio Signal Processing Tutorial](https://www.audiocontentanalysis.org/)
- [Music Information Retrieval](https://musicinformationretrieval.com/)

## 👤 Author Information

**Name**: Molla Samser
**Company**: RSK World
**Designer & Tester**: Rima Khatun
**Website**: [https://rskworld.in](https://rskworld.in)
**Email**: help@rskworld.in, support@rskworld.in
**Phone**: +91 93305 39277

## 📝 License

This dataset is provided for **educational purposes only**. Please refer to the [disclaimer](https://rskworld.in/disclaimer.php) for more information.

## 🤝 Contributing

For questions, suggestions, or contributions, please contact us through our website or email.

## ⚠️ Disclaimer

Content used for educational purposes only. View full [disclaimer](https://rskworld.in/disclaimer.php).

---

**© 2026 RSK World - Free Programming Resources & Source Code**

*Founded by Molla Samser with Designer & Tester Rima Khatun*

demo.py
Raw Download
Find: Go to:
#!/usr/bin/env python3
"""
Demo Script for Music Classification Dataset

Project: Music Classification Dataset
Author: Molla Samser
Company: RSK World
Designer & Tester: Rima Khatun
Website: https://rskworld.in
Email: help@rskworld.in, support@rskworld.in
Phone: +91 93305 39277
Description: Demonstration of all features in the dataset
License: Educational Purpose Only
"""

import os
import sys
import numpy as np
import pandas as pd
import warnings
warnings.filterwarnings('ignore')


def print_header():
    """Print project header"""
    print("="*70)
    print("  MUSIC CLASSIFICATION DATASET - DEMO")
    print("="*70)
    print("  Author: Molla Samser")
    print("  Company: RSK World")
    print("  Designer & Tester: Rima Khatun")
    print("  Website: https://rskworld.in")
    print("  Email: help@rskworld.in")
    print("  Phone: +91 93305 39277")
    print("="*70)
    print()


def demo_data_loading():
    """Demo: Loading data files"""
    print("[DEMO 1] Data Loading")
    print("-" * 50)
    
    try:
        # Load training data
        train_df = pd.read_csv('data/train_data.csv')
        print(f"[OK] Training data loaded: {len(train_df)} samples")
        print(f"     Columns: {list(train_df.columns)}")
        print(f"     Genres: {train_df['genre'].unique().tolist()}")
        
        # Load test data
        test_df = pd.read_csv('data/test_data.csv')
        print(f"[OK] Test data loaded: {len(test_df)} samples")
        
        # Load features
        features_df = pd.read_csv('data/features.csv')
        print(f"[OK] Features loaded: {len(features_df)} samples")
        print(f"     Features: {list(features_df.columns[2:])}")
        
        print("\n[SUCCESS] Data loading demo complete!\n")
        return True
        
    except Exception as e:
        print(f"[ERROR] {str(e)}")
        return False


def demo_genre_distribution():
    """Demo: Show genre distribution"""
    print("[DEMO 2] Genre Distribution")
    print("-" * 50)
    
    try:
        train_df = pd.read_csv('data/train_data.csv')
        genre_counts = train_df['genre'].value_counts()
        
        print("\nTraining Data Distribution:")
        for genre, count in genre_counts.items():
            bar = "#" * count
            print(f"  {genre:12s} | {bar} ({count})")
        
        print(f"\nTotal: {len(train_df)} samples")
        print("\n[SUCCESS] Genre distribution demo complete!\n")
        return True
        
    except Exception as e:
        print(f"[ERROR] {str(e)}")
        return False


def demo_audio_processor():
    """Demo: Audio processor module"""
    print("[DEMO 3] Audio Processor")
    print("-" * 50)
    
    try:
        from utils.audio_processor import AudioProcessor
        
        processor = AudioProcessor()
        print(f"[OK] AudioProcessor initialized")
        print(f"     Sample rate: {processor.sample_rate} Hz")
        print(f"     Duration: {processor.duration} seconds")
        
        # Create dummy audio
        dummy_audio = np.random.randn(22050)  # 1 second
        
        # Normalize
        normalized = processor.normalize_audio(dummy_audio)
        print(f"[OK] Normalize: input range [{dummy_audio.min():.2f}, {dummy_audio.max():.2f}]")
        print(f"               output range [{normalized.min():.2f}, {normalized.max():.2f}]")
        
        print("\n[SUCCESS] Audio processor demo complete!\n")
        return True
        
    except ImportError as e:
        print(f"[SKIP] Missing dependencies: {str(e)}")
        print("       Run: pip install librosa")
        return False
    except Exception as e:
        print(f"[ERROR] {str(e)}")
        return False


def demo_feature_extractor():
    """Demo: Feature extractor module"""
    print("[DEMO 4] Feature Extractor")
    print("-" * 50)
    
    try:
        from utils.feature_extractor import FeatureExtractor
        
        extractor = FeatureExtractor()
        print(f"[OK] FeatureExtractor initialized")
        print(f"     Sample rate: {extractor.sample_rate} Hz")
        
        # Create dummy audio
        dummy_audio = np.random.randn(22050 * 5)  # 5 seconds
        
        # Extract features
        print("[OK] Feature extraction functions available:")
        print("     - extract_mfcc()")
        print("     - extract_spectral_centroid()")
        print("     - extract_spectral_rolloff()")
        print("     - extract_zero_crossing_rate()")
        print("     - extract_chroma()")
        print("     - extract_tempo()")
        print("     - extract_all_features()")
        
        print("\n[SUCCESS] Feature extractor demo complete!\n")
        return True
        
    except ImportError as e:
        print(f"[SKIP] Missing dependencies: {str(e)}")
        print("       Run: pip install librosa")
        return False
    except Exception as e:
        print(f"[ERROR] {str(e)}")
        return False


def demo_audio_augmentation():
    """Demo: Audio augmentation module"""
    print("[DEMO 5] Audio Augmentation")
    print("-" * 50)
    
    try:
        from utils.audio_augmentation import AudioAugmenter
        
        augmenter = AudioAugmenter()
        print(f"[OK] AudioAugmenter initialized")
        
        # Create dummy audio
        dummy_audio = np.random.randn(22050)  # 1 second
        
        print("[OK] Available augmentation techniques:")
        print("     - add_noise()")
        print("     - time_stretch()")
        print("     - pitch_shift()")
        print("     - time_shift()")
        print("     - change_volume()")
        print("     - add_reverb()")
        print("     - random_augmentation()")
        
        # Demo augmentation
        noisy = augmenter.add_noise(dummy_audio, 0.005)
        print(f"\n[OK] Noise added: shape {noisy.shape}")
        
        print("\n[SUCCESS] Audio augmentation demo complete!\n")
        return True
        
    except ImportError as e:
        print(f"[SKIP] Missing dependencies: {str(e)}")
        print("       Run: pip install librosa")
        return False
    except Exception as e:
        print(f"[ERROR] {str(e)}")
        return False


def demo_advanced_features():
    """Demo: Advanced feature extractor"""
    print("[DEMO 6] Advanced Features")
    print("-" * 50)
    
    try:
        from utils.advanced_features import AdvancedFeatureExtractor
        
        extractor = AdvancedFeatureExtractor()
        print(f"[OK] AdvancedFeatureExtractor initialized")
        
        print("[OK] Advanced features available:")
        print("     - Spectral Contrast (7D)")
        print("     - Tonnetz (6D)")
        print("     - Spectral Flatness")
        print("     - Spectral Flux")
        print("     - Harmonic/Percussive Separation")
        print("     - Mel Spectrogram Statistics (7D)")
        print("     - Rhythm Features (4D)")
        print("     - Energy Features (4D)")
        print("     Total: 30+ features")
        
        print("\n[SUCCESS] Advanced features demo complete!\n")
        return True
        
    except ImportError as e:
        print(f"[SKIP] Missing dependencies: {str(e)}")
        print("       Run: pip install librosa scipy")
        return False
    except Exception as e:
        print(f"[ERROR] {str(e)}")
        return False


def demo_model_comparison():
    """Demo: Model comparison module"""
    print("[DEMO 7] Model Comparison")
    print("-" * 50)
    
    try:
        from utils.model_comparison import ModelComparator
        
        comparator = ModelComparator()
        print(f"[OK] ModelComparator initialized")
        print(f"     Models available: {len(comparator.models)}")
        
        print("\n[OK] Comparison models:")
        for name in comparator.models.keys():
            print(f"     - {name}")
        
        print("\n[SUCCESS] Model comparison demo complete!\n")
        return True
        
    except ImportError as e:
        print(f"[SKIP] Missing dependencies: {str(e)}")
        print("       Run: pip install scikit-learn")
        return False
    except Exception as e:
        print(f"[ERROR] {str(e)}")
        return False


def demo_realtime_processor():
    """Demo: Real-time processor module"""
    print("[DEMO 8] Real-Time Processing")
    print("-" * 50)
    
    try:
        from utils.realtime_processor import RealtimeAudioProcessor, StreamingBuffer, FeatureCache
        
        processor = RealtimeAudioProcessor()
        print(f"[OK] RealtimeAudioProcessor initialized")
        print(f"     Sample rate: {processor.sample_rate} Hz")
        print(f"     Chunk duration: {processor.chunk_duration}s")
        
        buffer = StreamingBuffer(buffer_size=44100)
        print(f"[OK] StreamingBuffer initialized (44100 samples)")
        
        cache = FeatureCache(max_size=100)
        print(f"[OK] FeatureCache initialized (100 items)")
        
        print("\n[OK] Real-time components available:")
        print("     - Multi-threaded processing")
        print("     - Circular buffer")
        print("     - LRU feature cache")
        
        print("\n[SUCCESS] Real-time processing demo complete!\n")
        return True
        
    except ImportError as e:
        print(f"[SKIP] Missing dependencies: {str(e)}")
        return True  # Still counts as passed
    except Exception as e:
        print(f"[ERROR] {str(e)}")
        return False


def demo_configuration():
    """Demo: Configuration module"""
    print("[DEMO 9] Configuration")
    print("-" * 50)
    
    try:
        import config
        
        print(f"[OK] Project: {config.PROJECT_NAME}")
        print(f"[OK] Version: {config.PROJECT_VERSION}")
        print(f"[OK] Author: {config.AUTHOR}")
        print(f"[OK] Company: {config.COMPANY}")
        print(f"[OK] Website: {config.WEBSITE}")
        
        print(f"\n[OK] Audio Settings:")
        print(f"     Sample rate: {config.SAMPLE_RATE} Hz")
        print(f"     Duration: {config.AUDIO_DURATION}s")
        print(f"     MFCC coefficients: {config.N_MFCC}")
        
        print(f"\n[OK] Genres: {config.GENRES}")
        
        print("\n[SUCCESS] Configuration demo complete!\n")
        return True
        
    except Exception as e:
        print(f"[ERROR] {str(e)}")
        return False


def print_summary(results):
    """Print demo summary"""
    print("="*70)
    print("DEMO SUMMARY")
    print("="*70)
    
    passed = sum(1 for r in results if r)
    total = len(results)
    
    for i, (name, result) in enumerate(results.items(), 1):
        status = "[OK]" if result else "[SKIP/FAIL]"
        print(f"  {i}. {name}: {status}")
    
    print("-"*70)
    print(f"  Passed: {passed}/{total} demos")
    
    if passed == total:
        print("\n  All demos passed! Project is ready to use.")
    else:
        print("\n  Some demos skipped. Install missing dependencies:")
        print("  pip install -r requirements.txt")
    
    print("="*70)
    print("  (c) 2026 RSK World - Molla Samser")
    print("  https://rskworld.in")
    print("="*70)


def main():
    """Run all demos"""
    print_header()
    
    results = {}
    
    # Run all demos
    results["Data Loading"] = demo_data_loading()
    results["Genre Distribution"] = demo_genre_distribution()
    results["Audio Processor"] = demo_audio_processor()
    results["Feature Extractor"] = demo_feature_extractor()
    results["Audio Augmentation"] = demo_audio_augmentation()
    results["Advanced Features"] = demo_advanced_features()
    results["Model Comparison"] = demo_model_comparison()
    results["Real-Time Processing"] = demo_realtime_processor()
    results["Configuration"] = demo_configuration()
    
    # Print summary
    print_summary(results)


if __name__ == "__main__":
    main()

378 lines•11.9 KB
python
🚀 Support RSK World

Subscribe to our YouTube channel for latest tutorials & updates!



Click subscribe & support our work ❤️

About RSK World

Founded by Molla Samser, with Designer & Tester Rima Khatun, RSK World is your one-stop destination for free programming resources, source code, and development tools.

Founder: Molla Samser
Designer & Tester: Rima Khatun

Development

  • Game Development
  • Web Development
  • Mobile Development
  • AI Development
  • Development Tools

Legal

  • Terms & Conditions
  • Privacy Policy
  • Disclaimer

Contact Info

Nutanhat, Mongolkote
Purba Burdwan, West Bengal
India, 713147

+91 93305 39277

hello@rskworld.in
support@rskworld.in

© 2026 RSK World. All rights reserved.

Content used for educational purposes only. View Disclaimer