Skip to content

CreepyNiki/EchoWing

Repository files navigation

EchoWing

Bachelorarbeit von Niklas Halft

Thema: Automatisierte Klassifikation von Vogelgesang und Vogelrufarten mittels Machine Learning

EchoWing beschäftigt sich mit der automatisierten Klassifikation verschiedener Lautäußerungen heimischer Brutvogelarten – darunter Gesänge, Rufe, Alarmrufe, Bettelrufe und Flugrufe. Im Rahmen dieser Arbeit wurden Audiodaten der zehn häufigsten Brutvogelarten Deutschlands von der Datenbank Xeno-canto gesammelt. Anschließend wurden diese Aufnahmen mit BirdNET nach Vogelarten klassifiziert und anschließend in dreisekündige Schnipsel zerlegt. Die passenden dreisekündigen Schnipsel einer Vogelart wurden anschließend in einem weiteren feinjustierten Modell auf ihre Lautäußerungsart klassifiziert. Hierbei wurden aufgrund der unterschiedlichen Datenverfügbarkeit der einzelnen Vogelarten für jede Vogelart ein eigenes Modell trainiert. Die Modelle und Aufnahmen sind in diesem Projekt nicht enthalten. Diese kann man über den untenstehenden Link herunterladen.

Setup

  1. Herunterladen der Audioaufnahmen und Modelle der verschiedenen Vogelarten von Sciebo

Download-Link Modelle: https://uni-koeln.sciebo.de/s/0p0Wj0WT4d04f03

Download-Link Audiodaten: https://uni-koeln.sciebo.de/s/37LY03egBCip3IN

  1. Ordnerstruktur herstellen -> Entpacken der Files

Die heruntergeladenen Ordner müssen in das Projektverzeichnis eingefügt werden. Die Struktur sollte wie folgt aussehen: Ordnerstruktur

Der trained_models Ordner sollte als Unterordner in den "models" Ordner eingefügt werden (Entpacken ins Basisverzeichnis sollte aber genügen)

Der SoundFiles Ordner sollte im Basisordner des "Projekts" eingefügt werden (Entpacken ins Basisverzeichnis sollte aber genügen)

Preprocessing

  1. Umbenennung der "BIRDNAME" Variable im .env File zum deutschen Namen der jeweiligen Vogelart zB. Blaumeise

  2. Umbenennung der "SpeciesName" Variable im birdNETAnalyzer.py Skript zum englischen Namen der jeweiligen Vogelart zB. Eurasian Blue Tit

    image
  3. Starten des passenden Skripts im Ordner File Extraktion zum Scrapen der Audiofiles von Xeno-canto

    -> Aufgrund der Timeouts und der 503 Errors durch das Blocken durch den Xeno-canto Server kann es sein, dass das Skript öfter wiederholt gestartet werden muss

Skript Enthaltene Klassen
getFiles.js "alarmcall", "beggingcall", "call", "song"
getFiles3classes.js "alarmcall", "call", "song"
getFiles3classes_beggingcall.js "beggingcall", "call", "song"
getFilesFlightCall.js "alarmcall", "flightcall", "call", "song"
  1. Starten des Python Skripts birdNETAnalyzer.py zur Identifikation der Vogelart
  2. Starten des Python Skripts shortenFilesIntoSegments zur Segmentierung und Umwandlung der Audioaufnahmen in .wav Format -> Auswahl der passenden Sample Rate der jeweiligen Vogelart an zwei Stellen des Skripts durch das Ändern des sr Attributs

Trainieren und Testen des Modells

  1. Umbenennung der "BIRDNAME" Variable im .env File zur jeweiligen Vogelart
  2. Auswahl der passenden Sample Rate der jeweiligen Vogelart in den Python Skripts train.py und prediction.py
image
  1. Starten des Python Skripts train.py zum Trainieren des Modells (nicht nötig falls die Modelle von Sciebo heruntergeladen wurden)
  2. Starten des Python Skripts prediction.py zum Evaluiieren des Modells -> Auswahl der passenden Evaluationsmetriken durch Auskommentieren

Ein großes Dankeschön an das Team von BirdNET für die Bereitstellung ihres Modells! 🙏

Bei Fragen oder Feedback: 📧 nhalft@smail.uni-koeln.de

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors