The problem
Bird Species Identification from Birdsong using CNN is an audio-classification project that names the bird species singing in a field recording — from sound, not from a photograph. Ecologists and birdwatchers survey bird populations by ear, yet manually labeling hours of field audio is slow and demands expert knowledge that students and small survey teams rarely have. This project follows the approach of the BirdCLEF research community: each recording is converted into a mel-spectrogram, a picture of sound in which time runs left to right, frequency runs bottom to top, and brightness shows loudness on a pitch scale matched to human hearing. A convolutional neural network reads that picture as it would read a photograph, outputting species probabilities. The model is trained on BirdCLEF 2024 (Kaggle, hosted by the Cornell Lab of Ornithology): 182 species, field-recorded calls, evaluated with macro-averaged ROC-AUC. A web demo lets you upload audio, watch its spectrogram drawn live, and inspect the ranked predictions.
A field recording of birdsong, uploaded as ogg or wav.
Follow the working sequence
How it works
A birdsong recording enters the system as a waveform and leaves it as a ranked list of species. First the audio is resampled to 32 kHz — the sample rate of the BirdCLEF training data — and sliced into short overlapping windows. Each window passes through an FFT to reveal its frequency content, and a mel filterbank compresses those frequencies onto the mel scale that mirrors how ears perceive pitch; the log-scaled result is a mel-spectrogram image where a trill appears as a zigzag and a whistle as a clean horizontal band. The CNN reads this image through stacked convolution and pooling layers that learn spectrogram patterns the way photo CNNs learn shapes, then global pooling and a softmax layer produce probabilities over all 182 species. Training and inference are separate: the notebook trains and evaluates the model on labeled recordings, while the web demo runs the frozen trained weights on new uploads.
- Field recordings (ogg/wav) are loaded and resampled to 32 kHz, the BirdCLEF training sample rate.
- Audio is sliced into overlapping windows (1024 samples, 256-sample hop — design values) and each window is transformed with an FFT.
- A 128-band mel filterbank maps the spectrum onto the mel scale; log scaling produces the mel-spectrogram image.
- Spectrograms are normalized and augmented (time-shifts, noise mixing) during training only.
- The CNN — stacked convolution-pooling blocks, global average pooling, dropout, softmax over 182 classes — is trained with categorical cross-entropy in the notebook.
- Evaluation runs on a held-out split: macro-averaged ROC-AUC, top-1 accuracy, confusion matrix, per-class metrics.
- For inference, the trained weights are frozen; the demo converts an uploaded recording to a spectrogram and returns ranked species probabilities.
Tech stack:
- Python 3
- TensorFlow · Keras
- librosa · SciPy (audio signal processing)
- NumPy · Matplotlib
- BirdCLEF 2024 dataset (Kaggle)
- Jupyter Notebook (training & evaluation)
- HTML5 · JavaScript web demo
- Web Audio API (in-browser spectrogram rendering)
Dataset & model details
- Dataset: BirdCLEF 2024 (Kaggle competition hosted by the Cornell Lab of Ornithology) — 182 bird species; ~23.4 GB total dataset including 7.81 GB of labeled training audio clips and unlabeled soundscapes; recordings primarily from the Western Ghats, in ogg format downsampled to 32 kHz; hidden test set of ~1,100 audio clips.
- Task: Audio classification; input = mel-spectrogram image (128 mel bins × time frames, computed with 1024-sample windows and 256-sample hop as design values); prediction = probability of each species' presence; output = ranked species list with per-class probabilities.
- Model: Convolutional neural network: stacked convolution–pooling blocks over the spectrogram, global average pooling, dropout, dense softmax over 182 classes. The notebook documents every layer choice, the optimizer, learning rate, batch size and epoch count.
- Metrics: Macro-averaged ROC-AUC (the official BirdCLEF scoring metric), top-1 accuracy, per-class precision/recall/F1, confusion matrix. Design target: macro ROC-AUC above 0.85 on the held-out validation split — stated honestly as a target; the report documents the actual achieved figures after the training run.
| Parameter | Value |
|---|---|
| Input audio | Field recordings (ogg/wav), resampled to 32 kHz (design value) |
| Classes | 182 bird species (BirdCLEF 2024, verified) |
| Spectrogram | 128 mel bins · 1024-sample window · 256-sample hop (design values) |
| Training data | 7.81 GB labeled training audio (BirdCLEF 2024, verified) |
| Spectrogram compute | Approximately 145–175 ms per 10 s clip (Measured on the build machine) |
| Model output | Probability distribution over 182 species |
| Evaluation metric | Macro-averaged ROC-AUC (official competition metric) |
| Inference | Expected under 1 s per 10 s clip on CPU (expected) |
| Training time | Expected 6–12 hours on a single GPU (expected) |
| Model file | Expected 50–90 MB (.h5 weights) |
| Demo | Single-file web app, runs offline after download |
Project features
The standout capabilities of this build are the genuine audio pipeline, the competition-grade dataset, and the honest evaluation. First, the web demo computes a real mel-spectrogram from any audio you upload — using the Web Audio API to decode the file and a mel filterbank on sliding FFT windows — so what you see on screen is your recording turned into the exact input the CNN reads. Second, the classifier covers 182 bird species from BirdCLEF 2024 field recordings, outputting ranked probabilities rather than a single blind guess. Third, the training notebook is fully open: preprocessing, augmentation, CNN architecture, training loop and evaluation are all documented. Fourth, evaluation uses the competition's own metric, macro-averaged ROC-AUC, plus a confusion matrix and per-class precision/recall, so the report discusses real strengths and real confusions.
- [Real mel-spectrogram rendering] The demo decodes any uploaded audio with the Web Audio API, resamples it to 32 kHz to match the training data, and draws a true mel-spectrogram (128 mel bins, sliding FFT windows) on canvas — the same transformation the CNN consumes.
- [182-species CNN classifier] A convolutional neural network trained on BirdCLEF 2024 outputs a probability distribution over all 182 species, shown as ranked bars with the top-3 species highlighted.
- [Upload-and-analyze workflow] Drop in a field recording (or a phone recording of birdsong) and watch the full pipeline: waveform, spectrogram, then species probabilities — no photo input anywhere in the system.
- [Sample call library] Six synthesized demo calls (Asian Koel, Common Tailorbird, Indian Roller, Red-vented Bulbul, White-cheeked Barbet, Purple Sunbird) let you explore the interface instantly; these are clearly labeled as synthesized stand-ins, since real classification comes from the trained model.
- [Full training notebook] Audio loading, 32 kHz resampling, mel-spectrogram conversion, augmentation (time-shift, background-noise mixing), CNN definition, training loop and evaluation in one reproducible Jupyter notebook.
- [Competition-metric evaluation] Macro-averaged ROC-AUC (the BirdCLEF scoring metric), top-1 accuracy, confusion matrix and per-class precision/recall/F1 — the report documents the actual achieved figures after training.
- [Optional: soundscape scanning] As an optional customization, long recordings can be scanned in sliding 5-second windows to timestamp species activity across a dawn-chorus session.
- [Future scope: on-device real-time] Real-time identification on a phone or field recorder via a quantized model is documented as future scope, not part of the base build.
What is included
- Complete training & evaluation Jupyter notebook (preprocessing, augmentation, CNN, metrics)
- Trained CNN model weights (.h5) with the spectrogram preprocessing code
- Working web demo: upload audio, view the real mel-spectrogram, see ranked species probabilities
- Confusion matrix, per-class metrics and training-curve plots
- Project report PDF (audio ML background, mel-spectrogram theory, architecture rationale, methodology, results)
- PPT presentation for final review
- Viva Q&A preparation document (spectrograms, CNNs, ROC-AUC, overfitting, audio augmentation)
Timeline
- Standard build timeline: 2–4 weeks from order confirmation (dataset preparation, training run, demo wiring, documentation); a dated build plan is shared at order time.
Support
- Setup help for the training notebook and the web demo, the full viva Q&A document, and a code walkthrough call on request.
Limitations & prerequisites
- Heavy background noise (wind, insects, traffic, overlapping calls) lowers accuracy — field recordings are much harder than clean clips.
- Only the 182 BirdCLEF 2024 species are recognized; species outside the set are not identified.
- Recordings from regions acoustically unlike the Western Ghats training data may score lower.
- Overlapping simultaneous calls are difficult; single-species clips classify best.
- Clips shorter than ~2 seconds carry little signal and are unreliable.
- The macro ROC-AUC target is a design target, stated honestly — the report documents the actual figure after training.
- The web demo's six sample calls are synthesized stand-ins; real classification comes from the trained model shipped with the order.
- This is an academic prototype for study, not a conservation-grade survey instrument.
Frequently Asked Questions
Which dataset is used and why?
BirdCLEF 2024 from Kaggle, hosted by the Cornell Lab of Ornithology — 182 bird species with thousands of field-recorded calls (7.81 GB of training audio). It is the standard benchmark for birdsong classification, and its macro-averaged ROC-AUC metric makes results comparable with published research.
How is birdsong turned into something a CNN can read?
Each recording is converted into a mel-spectrogram: an image where time runs left to right, frequency bottom to top, and brightness shows loudness on a pitch scale matched to hearing. A trill becomes a zigzag, a whistle a clean band — patterns the CNN learns exactly like shapes in a photograph.
Is the accuracy guaranteed?
No accuracy is claimed as measured before the training run. The design target is a macro ROC-AUC above 0.85 on a held-out split, and the report documents the actual achieved figure, confusion matrix and per-class metrics after training — that honesty is itself a viva strength.
Can it work on my own noisy field recording?
Yes — the demo accepts any uploaded audio and computes a real spectrogram from it. But heavy background noise and overlapping calls genuinely reduce accuracy, and species outside the 182 training classes are not recognized; the limitations section states this plainly.
Can new species be added?
Yes — as a customization. New labeled recordings are added to the dataset, the existing spectrogram pipeline is reused unchanged, and the final softmax layer is retrained for the expanded class set. Adding species recorded in the same acoustic region as the training data gives the most reliable results.
Is this project suitable for a final-year project?
Yes — for AI & Machine Learning, Computer Science and Electronics programs. It demonstrates audio signal processing, mel-spectrogram feature engineering, CNN design, evaluation with a competition metric, and a working web deployment — a complete and defensible story for the viva.
Components & software requirements
- Python 3
- TensorFlow · Keras
- librosa · SciPy (audio signal processing)
- NumPy · Matplotlib
- BirdCLEF 2024 dataset (Kaggle)
- Jupyter Notebook (training & evaluation)
- HTML5 · JavaScript web demo
- Web Audio API (in-browser spectrogram rendering)
Dataset & model details
- Dataset: BirdCLEF 2024 (Kaggle competition hosted by the Cornell Lab of Ornithology) — 182 bird species; ~23.4 GB total dataset including 7.81 GB of labeled training audio clips and unlabeled soundscapes; recordings primarily from the Western Ghats, in ogg format downsampled to 32 kHz; hidden test set of ~1,100 audio clips.
- Task: Audio classification; input = mel-spectrogram image (128 mel bins × time frames, computed with 1024-sample windows and 256-sample hop as design values); prediction = probability of each species' presence; output = ranked species list with per-class probabilities.
- Model: Convolutional neural network: stacked convolution–pooling blocks over the spectrogram, global average pooling, dropout, dense softmax over 182 classes. The notebook documents every layer choice, the optimizer, learning rate, batch size and epoch count.
- Metrics: Macro-averaged ROC-AUC (the official BirdCLEF scoring metric), top-1 accuracy, per-class precision/recall/F1, confusion matrix. Design target: macro ROC-AUC above 0.85 on the held-out validation split — stated honestly as a target; the report documents the actual achieved figures after the training run.
Delivery information
Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.
Support terms
Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.
Download free synopsis (PDF)
Enter your name and WhatsApp number — the synopsis PDF downloads immediately. We may send occasional project updates on WhatsApp; no spam.