File size: 3,540 Bytes
3d01235
eae5e7b
 
 
 
 
 
 
 
3d01235
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
---
title: BirdCLEF 2024
emoji: πŸ‘
colorFrom: yellow
colorTo: pink
sdk: gradio
sdk_version: 4.36.0
app_file: app.py
pinned: false
---

Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference

[![Review Assignment Due Date](https://classroom.github.com/assets/deadline-readme-button-24ddc0f5d75046c5622901739e7c5dd533143b0c8e959d652212380cedb1ea36.svg)](https://classroom.github.com/a/rzFn0ERT)

# BirdCLEF 2024: Bird Species Identification from Audio

## Overview

This project is part of the BirdCLEF 2024 competition, focusing on identifying bird species from audio recordings. The
target region is the Western Ghats, a significant biodiversity hotspot in India. The goal is to develop a machine
learning model capable of accurately predicting bird species from audio recordings, with a particular emphasis on
under-studied species.

## Author

This project was created by:

- **Name**: LAGHJAJ ABDELLATIF
- **Email**: abdelatiflaghjaj@gmail.com

## Screenshots

|          **Sketch**          |       **Main App**        |       **Result**        |
|:----------------------------:|:-------------------------:|:-----------------------:|
| ![Sketch](images/sketch.png) | ![Main App](images/1.png) | ![Result](images/2.png) |

## Project Components

1. **Data Collection**
2. **Preprocessing**
3. **Model Training**
4. **Prediction and Visualization**
5. **User Interface**

## Setup Instructions

### Prerequisites

Ensure you have the following installed:

- Python 3.8 or higher
- Required Python packages (specified below)

### Installation

1. Clone the repository:
    ```bash
    git clone https://github.com/ISEF-soft/introduction-to-machine-learning-challenge-abdellatif-laghjaj
    cd introduction-to-machine-learning-challenge-abdellatif-laghjaj
    ```

2. Create and activate a virtual environment:
    ```bash
    python -m venv venv
    source venv/bin/activate  # On Windows use `venv\Scripts\activate`
    ```

3. Install the required packages:
    ```bash
    pip install -r requirements.txt
    ```

### Directory Structure

Ensure your project directory is structured as follows:

```
birdclef2024/
β”‚
β”œβ”€β”€ sounds/
β”‚ β”œβ”€β”€ asbfly.ogg
β”‚ β”œβ”€β”€ bkwsti.ogg
β”‚ └── comros.ogg
β”‚
|── .gitignore
β”œβ”€β”€ model.joblib
β”œβ”€β”€ data.csv
β”œβ”€β”€ app.py
|── main.ipynb
β”œβ”€β”€ README.md
└── requirements.txt
```

### Files Description

- `sounds/`: Directory containing sample audio files.
- `model.joblib`: Pre-trained machine learning model.
- `data.csv`: CSV file containing bird species metadata.
- `app.py`: Main Python script to run the project.
- `main.ipynb`: Jupyter notebook containing the project code.
- `README.md`: This readme file.
- `requirements.txt`: List of Python packages required.

### Running the Project

1. Ensure you have the correct directory structure and all necessary files.
2. Run the `app.py` script to start the Gradio interface:
    ```bash
    python apy.py
    ```

### Usage

Once the Gradio interface is launched, you can:

- **Upload an audio recording** of a bird to identify the species.
- **Select a sample** from the provided audio files.

The interface will display:

- The **predicted bird species**.
- The **prediction confidence**.
- A **map** showing the location of the recording.
- A **spectrogram** of the audio recording.

## Acknowledgements

This project is based on the BirdCLEF 2024 competition. Special thanks to the organizers and contributors who provided
the dataset and resources.