Ad

MusicGenreClassification: Genre classification using CNNs and TensorFlow

This project classifies music genres from sound samples using a CNN implemented in TensorFlow, addressing the challenge of classifying the 10-class GTZAN dataset with improved accuracy.
Screenshot of mlachmish/MusicGenreClassification homepage

MusicGenreClassification investigates deep learning techniques for music genre classification. The project addresses the gap in existing deep learning research, which often lacks robust performance across a wide range of genres. This implementation focuses on classifying the 10-class GTZAN dataset using a Convolutional Neural Network (CNN) built with TensorFlow. The motivation stems from the observation that existing approaches, including those explored by Tao Feng and inspired by Deep Content-Based Music Recommendation, often struggle with larger genre sets, leading to diminished results.

  • Dataset Handling: Addresses the challenge of acquiring a large, representative dataset by leveraging the Million Song Dataset (MSD) and a custom preview downloader to overcome copyright restrictions and data size limitations.

  • Feature Extraction: Implements Mel-Frequency Cepstral Coefficients (MFCCs) and Mel-frequencies for feature extraction, demonstrating improved performance with Mel-frequencies.

  • CNN Architecture: Employs a CNN architecture with multiple hidden layers and max-pooling for robust feature learning and classification.

  • Visualization Techniques: Utilizes t-SNE for dimensionality reduction and visualization of the preprocessed data and learned filters, offering insights into the model's decision-making process.

  • Comparative Analysis: Compares the performance of the implemented CNN against existing approaches, demonstrating improved results on the 10-class challenge, effectively tackling the shortcomings of previous works.

  • Multi-class Classification: Supports classification across 10 distinct music genres, a more challenging task than limited-class systems.

  • TensorFlow Implementation: Leverages TensorFlow for building and training the CNN model, facilitating efficient computation and scalability.

  • Data Preprocessing Pipeline: Includes a detailed preprocessing pipeline for audio data, featuring MFCC extraction and Mel-frequency analysis.

  • Filter Visualization: Provides visualization of convolutional filters to interpret learned features and identify musical characteristics.

  • Performance Benchmarking: Compares results against existing approaches and demonstrates improvement on the 10-class genre classification problem.

  • Reproducible Results: Focuses on clear implementation and documented steps to facilitate reproduction and experimentation.

  • Clear Documentation: Includes explanations of data acquisition, feature extraction, network architecture, and results analysis for easy understanding.

The project showcases a functional implementation of a CNN-based music genre classifier. The code is well-structured, and the results demonstrate a significant improvement over existing approaches on the 10-class challenge. While not a production-ready system, the project provides a solid foundation for further development and exploration. The README contains sufficient information for understanding the project's core features and setup. Visualization techniques aid the user’s understanding of the data and the model's learned features.

This project is valuable to researchers and developers interested in music information retrieval, deep learning, and audio classification. It provides a practical implementation of a CNN for genre classification, addressing challenges related to data acquisition and model performance on a larger classification task. Developers can benefit from the well-documented codebase and visualization techniques to understand and adapt the model for their specific applications. The project offers a valuable resource for learning about CNNs for audio analysis and provides insights into the complexities of music genre classification.

Languages:
Summarize:
Share:
Stars
604
Forks
121
Issues
10
Created
10 years ago
Commit
6 years ago
License
MIT
Archived
No
Updated 17 days ago

Similar Repositories