Automatic Detection and Classification of tabla talas from the Indian Classical music
! TensorFlow Community Spotlight Winner(First of the program!)
See here
Introduction
Methods used
- Models
- Convolutional Neural Network
- Long Short-Term Memory Network
- Signal Processing
- Downsampling (from 44100 to 16000)
- Noise Threshold Detection (Using envelope detection)
- Harmonic-Percussive Source Separation HPSS
File description
PNstreamsetup.py
- Audio backend for live audio and FFT.GUI.py
- QtDesigner generated code converted to Python usingpyuic
Vocalseparation.py
- Implementation of vocal separation as shown here.dataops.py
- Perform pre-processing on data.model.py
- Models and pickles form here.predict.py
- Predict on a sample using this.main.py
- Real-time visualisations, recording and classification
Getting Started
-
Clone this repository
git clone https://github.com/pranav6670/Detection-Classification-of-Tabla-taals.git
. -
Data is stored in
wavfiles
diectory. Check-out the data. There are 10 classes of talas. Atest.csv
is included in the directory -
First run the
dataops.py
script which will pre-process the data which includes, first, downsampling the data and then cleaning it(noise threshold detection). -
Then create two folders named
models
andpickles
into the directory. -
Run
model.py
to form pickles out of the data and start training. Thecfg.py
can be used to adjust the parameters of MFCC function. Inmodel.py
,config.mode == 'conv'
will select the CNN model whileconfig.mode == 'rec'
will select the LSTM model. The difference between these is only the shape of input data to the model. Once pickles are formed for both the models, the data dosen’t load again the next time, saving alot of time. The models are easy to modify. -
Under
models
directory, you will find theconv.model
andrec.model
formed, after training. Use these models to predict usingpredict.py
-
Also run
main.py
after training to do the classification real-time.
Tools used for real-time visuals
- Raw and FFT plot
- Spectogram
HPSS
Data Distribution
Features
Time(Raw) | FFT |
---|---|
Filter Bank Energies | MFCC |
---|---|
GUI
Made using PyQt5