
Table of Contents
- Project Overview
- Demo
- Features
- Technologies Used
- Maqam Classes
- Web Interface Link
- Model Training and Code
- Setup Instructions
- Usage
- Acknowledgments
Project Overview
This project aims to classify Quranic maqams using deep learning techniques. A Deep Neural Network (DNN) model was trained on the Maqam-478 Dataset, consisting of various Quranic recitations, to automatically predict the maqam of a given audio file. The system utilizes Mel-frequency cepstral coefficients (MFCC) for audio feature extraction.
Additionally, the project includes a web interface to allow users to upload Quranic recitations and receive the predicted maqam.
Demo
https://github.com/user-attachments/assets/8d1d7095-03cb-43d6-b1d2-4facc9db2925
Features
- Automatic Quranic Maqam Classification: Upload an audio file and receive the predicted maqam.
- High Accuracy Classification: The system identifies the maqam with high accuracy and displays the accuracy percentage for each classification.
Interactive Confidence Scores: After processing, the model presents the top maqam predictions alongside their confidence scores, allowing users to see how confident the model is for each maqam.
- Deep Learning Model: A pre-trained DNN model is deployed to classify the maqams.
Technologies Used
- Python (Backend, Flask)
- TensorFlow/Keras (Model Training)
- Librosa (Audio feature extraction)
- Google Colab (Model Training)
- HTML/CSS/JavaScript (Frontend for web interface)
- Render (Backend hosting)
Maqam Classes
The following Quranic maqams are classified by the model:
- Ajam = عجم
- Bayat = بيات
- Hijaz = حجاز
- Kurd = كرد
- Nahawand = نهاوند
- Rast = رست
- Saba = صبا
- Seka = سيكا
Web Interface Link
You can access the deployed web interface here:
Quranic Maqam Classification Web Interface
Model Training and Code
You can find the model training code in this Google Colab notebook:
Setup Instructions
Prerequisites
- Python 3.x
- Flask
- TensorFlow/Keras
- Librosa
- Numpy
Backend Setup (Flask API)
-
Clone the repository:
git clone https://github.com/FatimaALzahrani/Quranic-Maqam-Classification-using-Deep-Learning.git
-
Install dependencies:
pip install -r requirements.txt
-
Run the Flask server:
````bash
python app.py
The Flask application will start at http://127.0.0.1:5000.
Usage
- Visit the web interface and upload an audio file in .wav format.
- Wait for the rotating progress bar to complete while the backend processes your file.
- The predicted maqam will be displayed in both English and Arabic.
Acknowledgments
- Maqam-478 Dataset: Link to dataset
- This project was developed by Fatimah Mohammed Al-Zahrani.