Frage

Ich habe die Möglichkeit untersucht, Klang (zum Beispiel Tiere Sounds von Tieren) mit Spektrogrammen zu klassifizieren. Die Idee ist, ein tiefes Faltungsnetz zu verwenden, um Segmente im Spektrogramm zu erkennen und eine (oder viele) Klasse -Etiketten auszugeben. Dies ist keine neue Idee (siehe zum Beispiel Walklassifizierung oder Musikstil -Anerkennung).

Das Problem, mit dem ich ausgestattet bin, ist, dass ich Sounddateien unterschiedlicher Länge und damit Spektrogramme unterschiedlicher Größen habe. Bisher verwendet jeder Ansatz, den ich gesehen habe, ein Soundprob mit fester Größe, aber ich kann das nicht, da meine Sounddatei möglicherweise 10 Sekunden oder 2 Minuten lang ist.

Mit zum Beispiel ein Vogelklang am Anfang und ein Froschklang am Ende (die Ausgabe sollte "Vogel, Frosch" sein). Meine aktuelle Lösung wäre, dem neuronalen Netzwerk eine zeitliche Komponente hinzuzufügen (erstellen mehr ein wiederkehrendes neuronales Netzwerk), aber ich möchte es vorerst einfach halten. Irgendwelche Ideen, Links, Tutorials, ...?

War es hilfreich?

Lösung 2

RNNs produzierten nicht genug Ergebnisse und sind auch schwer zu trainieren, also ging ich mit CNNs.

Da ein bestimmter tierischer Klang nur wenige Sekunden lang ist, können wir das Spektrogramm in Stücke teilen. Ich habe eine Länge von 3 Sekunden verwendet. Anschließend führen wir die Klassifizierung für jeden Chunk durch und haben die Ausgänge durchschnittlich, um eine einzige Vorhersage pro Audiodatei zu erstellen. Dies funktioniert sehr gut und ist auch einfach zu implementieren.

Eine ausführlichere Erklärung finden Sie hier:http://ceur-ws.org/vol-1609/16090547.pdf

Andere Tipps

Für die automatische Spracherkennung (ASR) können die Filterbankfunktionen für Spektrogramme so gut wie CNN erfolgen Tabelle 1. Sie können ein DBN-DNN-System auf FBANK für die Klassifizierung von Tieren-Sounds trainieren.

In der Praxis werden längere Sprachäußerungen in kürzere Äußerungen unterteilt, da das Dekodieren von Viterbi für längere Äußerungen nicht gut funktioniert. Sie könnten dasselbe tun.

Sie können die längeren Äußerungen in kleinere Äußerungen mit fester Länge unterteilen. Es ist einfach, die längeren Äußerungen in kleiner zu teilen. Das Problem ist, dass die Länge der kleineren Äußerungen erhöht wird, um die feste Länge zu erreichen.

Sie können die Frequenzachse des Spektrogramms zum Augmentieren der kleineren Äußerungen verziehen. Es wurde gezeigt, dass diese Datenvergrößerung die ASR -Leistung verbessert Daten Augumentation.

Für eine längere Äußerung mit mehreren Klängen können Sie Musiksegmentierungsalgorithmen verwenden, um sie in mehrere Äußerungen zu unterteilen. Diese Äußerungen können entweder durch Teilung oder Augmentation aus fester Länge bestehen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit datascience.stackexchange
scroll top