Metadata-Version: 2.4
Name: piafzam
Version: 0.0.1
Summary: Reconnaissance de chants d'oiseaux
Author: ElGrandeSosoo
License-Expression: MIT
Project-URL: Homepage, https://github.com/ElGrandeSosoo/piafzam_project
Project-URL: Repository, https://github.com/ElGrandeSosoo/piafzam_project
Project-URL: Issues, https://github.com/ElGrandeSosoo/piafzam_project/issues
Keywords: birds,audio,xeno-canto,spectrograms
Requires-Python: <3.13,>=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: python-dotenv
Requires-Dist: requests
Requires-Dist: numpy
Requires-Dist: librosa
Requires-Dist: mutagen
Requires-Dist: scikit-learn
Requires-Dist: matplotlib
Requires-Dist: google-cloud-storage
Requires-Dist: fastapi
Requires-Dist: uvicorn
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: build; extra == "dev"
Dynamic: license-file

# PIAFZAM

Reconnaissance de chants d'oiseaux (35 espèces européennes) à partir d'enregistrements [Xeno-canto](https://xeno-canto.org/).

Paquet Python `piafzam`, Python 3.10–3.12.

## Installation

Depuis un clone du dépôt :

```bash
cp .env.sample .env
pip install .
```

Depuis GitHub :

```bash
pip install "git+https://github.com/ElGrandeSosoo/piafzam_project.git"
```

Une fois le paquet publié sur PyPI : `pip install piafzam`.

Développement (lien éditable + tests) :

```bash
cp .env.sample .env
pip install -e ".[dev]"
make test
```

Renseigner dans `.env` :

- `XENO_CANTO_API_KEY`
- `GOOGLE_APPLICATION_CREDENTIALS` (chemin vers le JSON du compte de service GCS)

`GCP_PROJECT`, `GCS_BUCKET` et `GCS_PREFIX` ont déjà des valeurs par défaut.

Le chemin local `data/` / `models/` se déduit du clone. Après un `pip install` classique, on peut le fixer avec `PIAFZAM_ROOT`.

## Structure

```
piafzam_project/
├── pyproject.toml              # packaging pip
├── requirements.txt            # dépendances
├── piafzam/
│   ├── params.py               # espèces, chemins, audio, GCS
│   ├── data/
│   │   ├── xeno_canto.py       # recherche d'enregistrements
│   │   └── storage.py          # Google Cloud Storage
│   ├── ml_logic/
│   │   ├── preprocessor.py     # audio → mel-spectrogramme
│   │   ├── model.py            # à implémenter
│   │   └── registry.py         # save / load — à implémenter
│   ├── interface/main.py       # pipeline preprocess / train / evaluate
│   └── api/fast.py             # FastAPI
├── notebooks/                  # exploration
├── data/raw                    # audios locaux
├── data/processed              # spectrogrammes
├── models/                     # artefacts entraînés
└── tests/
```

## Usage

```python
from piafzam.ml_logic.preprocessor import load_audio, to_melspectrogram

y, sr = load_audio("chemin/vers/chant.mp3")
spec = to_melspectrogram(y, sr)
```

```bash
piafzam --version
piafzam species
piafzam api          # http://127.0.0.1:8000/docs
make test
```

`make preprocess`, `make train` et `make evaluate` sont les points d'entrée du pipeline, encore à brancher.
