Datenexploration
Ich würde vorschlagen, die Daten etwas weiter zu untersuchen, um zu entscheiden, welcher Ansatz für diesen Vogel-Lied-Datensatz am besten geeignet ist.
Schauen Sie sich zum Beispiel das Spektrogramm jedes Vogels an (es gibt nur 66 verschiedene Gattungstypen), um zu sehen, wie Sie weitere Daten aus den Proben extrahieren können. Hier ist das Spektrogramm einer Probe von hier :
Wir können sehen, dass es eindeutig ein sich wiederholendes Muster gibt! Wir können diese hohen hellgrünen Blöcke sehen, die zeitweise überall erscheinen. Obwohl das Sample tatsächlich etwas mehr als 70 Sekunden lang ist, scheint der Ruf des Vogels wirklich nur etwa 2 Sekunden zu dauern!
Entweder mit einem einfachen Filteralgorithmus oder sogar mit dem Erstellen eines Modells zum Auffinden dieser Chunks können Sie diese Chunks extrahieren und nur an diesen arbeiten, möglicherweise zusammen mit den Daten zu den Lücken zwischen diesen Chunks.
Dies ist nur ein Beispiel für eine datenspezifische Vorverarbeitung. Ich bin sicher, dass es viele andere Möglichkeiten gibt, die Informationsdichte zu verbessern.
Beispielrate
Dies ist ein weiterer Freiheitsgrad, den Sie betrachten können. Eine Idee wäre, verschiedene Samplerates innerhalb Ihrer Eingabe für ein Modell zu akzeptieren. Man könnte die Abtastrate anpassen, um sicherzustellen, dass alle endgültigen Abtastungen alle die gleiche Länge haben.
Meine Idee wäre, die Länge des kürzesten Samples zu verwenden und dann regelmäßig alle längeren Sound-Snippets abzutasten, sodass die resultierenden Snippets alle dieselbe Länge haben wie Ihr kürzestes Sample.
Diese Methode beeinträchtigt natürlich die Qualität der Daten (unregelmäßig über die Stichproben hinweg), aber wenn die Startabtastrate ausreichend hoch ist, können Sie möglicherweise damit durchkommen!
Schauen Sie sich diesen nützlichen Artikel an , der viele Methoden in (Vorverarbeitungs-) Schallwellen beschreibt.
Zwei Modelle
In Ihrem speziellen Fall, wenn Sie wirklich nur zwei mögliche Längen haben: 8637686
und 3227894
... ist es möglicherweise möglich, einfach zwei Modelle zu erstellen, eines für jede Stichprobenlänge. Es ist definitiv keine optimale Lösung; Dies würde jedoch eine sehr schnelle Entwicklung und Modelliterationen ermöglichen, da Sie dasselbe Modell verwenden könnten und nur den Parameter ändern müssten, um beide Teile der Daten zu verwenden.
Grundlagen
Sie können nicht nur Ihre längeren Samples abschneiden (sie auf die Länge der kürzeren / kürzesten Samples zuschneiden), sondern auch das Auffüllen verwenden , um die kurzgeschlossenen Samples einfach an die Länge des längsten Samples anzupassen.
In der Regel erfolgt dies durch einfaches Hinzufügen von Nullen am Ende der Vektoren. Sie können auch versuchen, am Anfang und am Ende Nullen hinzuzufügen, um die Informationen in jedem Sample zentriert zu halten.
Wenn Sie mit Keras ein neuronales Netzwerk erstellen, sollten Sie sich zunächst die ZeroPadding1d-Ebene ansehen .