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
/
__pycache__
RSK World
music-classification
Music Classification Dataset - Genre Classification + Music AI + Audio ML
__pycache__
  • config.cpython-313.pyc5.2 KB
  • quick_start.cpython-313.pyc7 KB
  • setup.cpython-313.pyc2.9 KB
__init__.pyfeature_extractor.pyfeature_extractor.cpython-313.pycPROJECT_STATUS.mddancing_003.mp4README.mdREADME.md
utils/__init__.py
Raw Download
Find: Go to:
"""
Utilities Package 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: Audio processing and feature extraction utilities
License: Educational Purpose Only
"""

# Lazy imports to handle missing dependencies gracefully
# Author: Molla Samser (RSK World)
# Website: https://rskworld.in

__all__ = [
    'AudioProcessor',
    'FeatureExtractor', 
    'AudioAugmenter',
    'AdvancedFeatureExtractor',
    'ModelComparator',
    'RealtimeAudioProcessor',
    'StreamingBuffer',
    'FeatureCache'
]

try:
    from .audio_processor import AudioProcessor
except ImportError:
    AudioProcessor = None

try:
    from .feature_extractor import FeatureExtractor
except ImportError:
    FeatureExtractor = None

try:
    from .audio_augmentation import AudioAugmenter
except ImportError:
    AudioAugmenter = None

try:
    from .advanced_features import AdvancedFeatureExtractor
except ImportError:
    AdvancedFeatureExtractor = None

try:
    from .model_comparison import ModelComparator
except ImportError:
    ModelComparator = None

try:
    from .realtime_processor import RealtimeAudioProcessor, StreamingBuffer, FeatureCache
except ImportError:
    RealtimeAudioProcessor = None
    StreamingBuffer = None
    FeatureCache = None

__version__ = '1.0.0'
__author__ = 'Molla Samser'
__company__ = 'RSK World'
__email__ = 'help@rskworld.in'
__website__ = 'https://rskworld.in'

68 lines•1.6 KB
python
utils/feature_extractor.py
Raw Download
Find: Go to:
"""
Feature Extractor Module for Music Classification

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: Extract audio features for music genre classification
License: Educational Purpose Only
"""

import librosa
import numpy as np
from typing import Dict, List, Tuple
import warnings
warnings.filterwarnings('ignore')


class FeatureExtractor:
    """
    Feature extraction class for audio analysis
    
    Author: Molla Samser (RSK World)
    Website: https://rskworld.in
    """
    
    def __init__(self, sample_rate: int = 22050):
        """
        Initialize FeatureExtractor
        
        Args:
            sample_rate: Sample rate of audio files
        """
        self.sample_rate = sample_rate
        
    def extract_mfcc(self, audio: np.ndarray, n_mfcc: int = 13) -> np.ndarray:
        """
        Extract MFCC features
        
        Args:
            audio: Audio time series
            n_mfcc: Number of MFCCs to extract
            
        Returns:
            MFCC features array
        """
        mfcc = librosa.feature.mfcc(y=audio, sr=self.sample_rate, n_mfcc=n_mfcc)
        return np.mean(mfcc.T, axis=0)
    
    def extract_spectral_centroid(self, audio: np.ndarray) -> float:
        """
        Extract spectral centroid
        
        Args:
            audio: Audio time series
            
        Returns:
            Mean spectral centroid value
        """
        spectral_centroid = librosa.feature.spectral_centroid(y=audio, sr=self.sample_rate)
        return np.mean(spectral_centroid)
    
    def extract_spectral_rolloff(self, audio: np.ndarray) -> float:
        """
        Extract spectral rolloff
        
        Args:
            audio: Audio time series
            
        Returns:
            Mean spectral rolloff value
        """
        spectral_rolloff = librosa.feature.spectral_rolloff(y=audio, sr=self.sample_rate)
        return np.mean(spectral_rolloff)
    
    def extract_zero_crossing_rate(self, audio: np.ndarray) -> float:
        """
        Extract zero crossing rate
        
        Args:
            audio: Audio time series
            
        Returns:
            Mean zero crossing rate
        """
        zcr = librosa.feature.zero_crossing_rate(audio)
        return np.mean(zcr)
    
    def extract_chroma(self, audio: np.ndarray) -> np.ndarray:
        """
        Extract chroma features
        
        Args:
            audio: Audio time series
            
        Returns:
            Chroma features array
        """
        chroma = librosa.feature.chroma_stft(y=audio, sr=self.sample_rate)
        return np.mean(chroma.T, axis=0)
    
    def extract_tempo(self, audio: np.ndarray) -> float:
        """
        Extract tempo (BPM)
        
        Args:
            audio: Audio time series
            
        Returns:
            Tempo in beats per minute
        """
        tempo, _ = librosa.beat.beat_track(y=audio, sr=self.sample_rate)
        return float(tempo)
    
    def extract_spectral_bandwidth(self, audio: np.ndarray) -> float:
        """
        Extract spectral bandwidth
        
        Args:
            audio: Audio time series
            
        Returns:
            Mean spectral bandwidth
        """
        spectral_bandwidth = librosa.feature.spectral_bandwidth(y=audio, sr=self.sample_rate)
        return np.mean(spectral_bandwidth)
    
    def extract_rms_energy(self, audio: np.ndarray) -> float:
        """
        Extract RMS energy
        
        Args:
            audio: Audio time series
            
        Returns:
            Mean RMS energy
        """
        rms = librosa.feature.rms(y=audio)
        return np.mean(rms)
    
    def extract_all_features(self, audio: np.ndarray) -> Dict[str, any]:
        """
        Extract all features at once
        
        Args:
            audio: Audio time series
            
        Returns:
            Dictionary containing all extracted features
        """
        features = {
            'mfcc': self.extract_mfcc(audio),
            'spectral_centroid': self.extract_spectral_centroid(audio),
            'spectral_rolloff': self.extract_spectral_rolloff(audio),
            'zero_crossing_rate': self.extract_zero_crossing_rate(audio),
            'chroma': self.extract_chroma(audio),
            'tempo': self.extract_tempo(audio),
            'spectral_bandwidth': self.extract_spectral_bandwidth(audio),
            'rms_energy': self.extract_rms_energy(audio)
        }
        
        return features
    
    def flatten_features(self, features: Dict[str, any]) -> np.ndarray:
        """
        Flatten feature dictionary to 1D array
        
        Args:
            features: Dictionary of features
            
        Returns:
            Flattened feature array
        """
        feature_list = []
        
        for key, value in features.items():
            if isinstance(value, np.ndarray):
                feature_list.extend(value)
            else:
                feature_list.append(value)
        
        return np.array(feature_list)


# Example usage
if __name__ == "__main__":
    """
    Demo script for FeatureExtractor
    
    Author: Molla Samser
    Company: RSK World
    Website: https://rskworld.in
    """
    from audio_processor import AudioProcessor
    
    # Initialize processors
    audio_processor = AudioProcessor()
    feature_extractor = FeatureExtractor()
    
    # Example audio file
    audio_path = "../data/audio/jazz/jazz_001.wav"
    
    # Load audio
    print(f"Loading audio from: {audio_path}")
    audio = audio_processor.load_audio(audio_path)
    
    # Extract all features
    print("\nExtracting features...")
    features = feature_extractor.extract_all_features(audio)
    
    # Display features
    print("\nExtracted Features:")
    print(f"- MFCC shape: {features['mfcc'].shape}")
    print(f"- Spectral Centroid: {features['spectral_centroid']:.2f}")
    print(f"- Spectral Rolloff: {features['spectral_rolloff']:.2f}")
    print(f"- Zero Crossing Rate: {features['zero_crossing_rate']:.6f}")
    print(f"- Chroma shape: {features['chroma'].shape}")
    print(f"- Tempo: {features['tempo']:.2f} BPM")
    print(f"- Spectral Bandwidth: {features['spectral_bandwidth']:.2f}")
    print(f"- RMS Energy: {features['rms_energy']:.6f}")
    
    # Flatten features
    flat_features = feature_extractor.flatten_features(features)
    print(f"\nFlattened features shape: {flat_features.shape}")

229 lines•6.7 KB
python
feature_extractor.cpython-313.pyc

This file cannot be displayed in the browser.

Download File
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*

🚀 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