Skip to content

Générer un dataset

Toutes les campagnes d'annotation sont basées sur un jeu de données. Chaque jeu de données doit être importé.

Les jeux de données doivent être placés dans un dossier datasets.

OSEkit Recommandé

Nous avons développé notre package Python pour manipuler les fichiers audio. Ce package permet de sortir directement l'ensemble des données dans une structure de fichier qui peut être lue par APLOSE.

Ce package est disponible sur GitHub : https://github.com/Project-OSmOSE/OSEkit

Vous pouvez également accéder directement à sa documentation : https://project-osmose.github.io/OSEkit/

Manuellement

Pour créer un jeu de données manuellement, vous devez comprendre la structure de fichier attendue et les fichiers de métadonnées.

Structure des fichiers

Le dossier racine est nommé dataset.

dataset/
├── datasets.csv
├── {Campagne d'acquisition}/
│ ├─── {Dataset}
│ └── ...
├── {Dataset}
└── ...

Les dossiers des jeux de données peuvent être situés à la racine ou dans un dossier « Campagne d'acquisition ». Chaque dossier de jeu de données contient la structure de fichier décrite ci-dessous.

.
└── {Dataset}/
    ├── data/
    │   └── audio/
    │       ├── {Spectrogram duration}_{Sample rate}/
    │       │   ├── metadata.csv
    │       │   ├── timestamp.csv
    │       │   ├── {audio file name}.wav
    │       │   └── ...
    │       └── ...
    └── processed/
        └── spectrogram/
            ├── {Spectrogram duration}_{Sample rate}/
            │   ├── {NFFT}_{Window size}_{Overlap}_{frequency scale}/
            │   │   ├── metadata.csv
            │   │   └── image/
            │   │       ├── {audio file name}_{zoom level}_{index in zoom level}.png
            │   │       └── ...
            │   └── ...
            └── ...

Tous les spectrogrammes doivent être pré-calculés et disponibles dans le dossier dataset. Il doit y avoir au moins une image de spectrogramme par fichier audio.

Pour récupérer l'image appropriée dans l'affichage de l'annotateur, APLOSE utilise le nom du fichier audio, le niveau de zoom et l'index dans le niveau de zoom pour obtenir le nom de l'image. Les niveaux de zoom augmentent comme une puissance de 2. Le nom du spectrogramme est très important.

Comprendre le nommage de l'image du spectrogramme

Pour un fichier audio « sound.wav », il doit y avoir au moins une image « sound_1_0.png » : elle correspond au premier niveau de zoom et à la première (et unique) image.

Pour un deuxième niveau de zoom :

  • sound_2_0.png
  • sound_2_1.png

Pour un troisième niveau :

  • sound_4_0.png
  • sound_4_1.png
  • sound_4_2.png
  • sound_4_3.png

Et ainsi de suite...

Fichiers de métadonnées

datasets.csv

Situé à ./datasets.csv

C'est ici qu'APLOSE recherchera de nouveaux jeux de données. Ce fichier liste l'ensemble des jeux de données disponibles et donne des informations pour récupérer les fichiers audio et les spectrogrammes.

ColumnTypeDescription
pathstringChemin d'accès au dossier racine de l'ensemble de données (par exemple: {Acquisition campaign}/{Dataset} or {Dataset})
datasetstringNom du jeux de données dans APLOSE, ce nom peut être différent du nom du dossier et doit être unique dans APLOSE.
spectro_durationintDurée des fichiers (en secondes)
dataset_srintFréquence d'échantillonnage (en Hz)
file_typestringType de fichiers utilisés (par exemple: .wav)

[Audio] metadata.csv

Situé à ./{Dataset}/data/audio/{Spectrogram duration}_{Sample rate}/metadata.csv

Ce fichier décrit les fichiers audio. Il donne des informations sur le processus qu'ils ont suivi.

ColumnTypeDescription
sample_bitsarray of stringSous-types des fichiers (par exemple: ['PCM-16'])
channel_countintNombre de canaux du fichier
start_datetimestampDébut du dataset
end_datetimestampFin du dataset
dataset_srintFréquence d'échantillonnage des fichiers traités (en Hz)
audio_file_dataset_durationintDurée de chaque fichier (en secondes)
audio_file_countintNombre de fichiers

[Audio] timestamp.csv

Situé à ./{Dataset}/data/audio/{Spectrogram duration}_{Sample rate}/timestamp.csv

Ce fichier répertorie tous les fichiers audio. APLOSE l'utilise par-dessus la structure des fichiers pour savoir quels fichiers utiliser.

INFO

Cela signifie que vous pouvez créer un sous-ensemble en supprimant des fichiers de ce CSV. Ou si vous ne voulez pas écouter d'audio pendant que vous annotez, vous pouvez ajouter ce CSV sans les fichiers wav associés.

ColumnTypeDescription
filenamestringNom des fichiers (avec extension)
timestamptimestampDébut de l'enregistrement

[Spectrogram] metadata.csv

Situé à ./{Dataset}/processed/spectrogram/{Spectrogram duration}_{Sample rate}/{NFFT}_{Window size}_{Overlap}_{frequency scale}/metadata.csv

Ces fichiers décrivent le processus de génération de spectrogrammes.

ColumnTypeDescription
dataset_srintFréquence d'échantillonnage (en Hz)
nfftintNombre de fenêtres de fréquences de la FFT
window_sizeintNombre d'échantillons audio dans chaque fenêtre de la FFT
overlapintNombre d'échantillons se chevauchant entre deux fenêtres de la FFT
colormapstringColormap utilisée pour généré les fichiers
zoom_levelintNombre de niveaux de zoom disponibles
dynamic_minintLimite inférieure de l'échelle des niveaux de bruit (en dB)
dynamic_maxintLimite supérieure de l'échelle des niveaux de bruit (en dB)
spectro_durationintDurée des spectrogrammes (en secondes)
data_normalizationstringType de normalisation des données (2 valeurs possibles : si les valeurs de sensibilité et de gain sont disponibles, choisir 'instrument' sinon, choisir zscore)
hp_filter_min_freqintFréquence de coupure du filtre passe-haut (en Hz)
sensitivity_dBfloatSensibilité de l'instrument (en dB)
peak_voltagefloatTension de crête de l'instrument (en volts)
spectro_normalizationstringType de normalisation pour le calcul du spectrogramme (doit être réglé sur density si data_normalization = instrument et sur spectrum si data_normalization = zscore)
gain_dBintGain de l'instrument (en dB)
zscore_durationstringDurée sur laquelle le niveau de bruit est moyenné dans la configuration zscore (en secondes)
window_typestringType de fenêtre d'analyse (ex : 'Hammin', 'Hanning', 'Blackman')
frequency_resolutionfloatRésolution en fréquence du spectrogramme (en Hz)
temporal_resolutionfloatRésolution temporelle du spectrogramme (en secondes)
audio_file_dataset_overlapintOverlap temporel entre chaque fichiers (en secondes)
custom_frequency_scalestringNom de l'échelle de fréquence à appliquer
Échelles de fréquences
ÉchelleDescription
linearÉchelle linéaire allant de 0 à la fréquence d'échantillonnage / 2
audibleÉchelle linéaire allant de 0 à 22kHz
porp_delphÉchelle multi-linéaire :
  • 0-50%: de 0 à 30kHz
  • 50-70%: de 30kHz à 80kHz
  • 70-100%: de 80kHz to la fréquence d'échantillonnage / 2
dual_lf_hfÉchelle multi-linéaire :
  • 0-50%: de 0 à 22kHz
  • 50-100%: de 22kHz à la fréquence d'échantillonnage / 2