All work
Personal project · 2026
Taal AI
A model that listens to tabla audio and names the taal (rhythm cycle): Teentaal, Dadra or Bhajani. Trained on a dataset I built from 1,266 clips.
- TensorFlow
- Keras
- Librosa
- FastAPI
- Next.js
- Supabase
- validation accuracy
- 81.8%
- labelled audio clips
- 1,266
- taals classified
- 3
The problem
Recognising a taal by ear takes years of training. I wanted a tool that could tell a student which cycle a recording is in.
My role
Solo: data, model, backend and frontend.
What I built
- A Librosa pipeline that turns audio into Mel-spectrograms.
- A 4-layer CNN in TensorFlow and Keras.
- Browser-side smart slicing into 20-second chunks, with voting across chunks for the final answer.
- A FastAPI async inference backend and a Next.js frontend.
- Supabase logging of user corrections to feed future training.
The hard part
A long recording can drift between sections. Classifying 20-second chunks independently and voting made the prediction stable without a larger model.
Why it matters
It turns something I have practised for 18 years into a system other learners can use, and every correction improves the dataset.
How it was measured
81.8% validation accuracy across 3 taals on a proprietary set of 1,266 clips. The dataset is not published.
Architecture
- 1BrowserSlices audio into 20 s chunks
- 2FastAPIAsync inference per chunk
- 3LibrosaMel-spectrogram features
- 44-layer CNNPer-chunk prediction, then a vote
- 5SupabaseUser corrections for retraining