Audio-Klassifizierung

Die Aufgabe, zu identifizieren, was ein Audio darstellt, wird als Audioklassifizierung bezeichnet . Ein Audioklassifizierungsmodell wird trainiert, um verschiedene Audioereignisse zu erkennen. Sie können beispielsweise ein Modell trainieren, um Ereignisse zu erkennen, die drei verschiedene Ereignisse darstellen: Klatschen, Fingerschnappen und Tippen. TensorFlow Lite bietet optimierte vorgefertigte Modelle, die Sie in Ihren mobilen Anwendungen bereitstellen können. Weitere Informationen zur Audioklassifizierung mit TensorFlow finden Sie hier .

Das folgende Bild zeigt die Ausgabe des Audioklassifizierungsmodells unter Android.

Screenshot des Android-Beispiels

Loslegen

Wenn Sie TensorFlow Lite noch nicht kennen und mit Android arbeiten, empfehlen wir Ihnen, die folgenden Beispielanwendungen zu untersuchen, die Ihnen den Einstieg erleichtern können.

Sie können die Out-of-Box-API aus der TensorFlow Lite Task Library nutzen, um Audioklassifizierungsmodelle in nur wenigen Codezeilen zu integrieren. Sie können auch Ihre eigene benutzerdefinierte Inferenz-Pipeline mithilfe der TensorFlow Lite-Unterstützungsbibliothek erstellen.

Das folgende Android-Beispiel zeigt die Implementierung mithilfe der TFLite-Aufgabenbibliothek

Android-Beispiel anzeigen

IOS-Beispiel anzeigen

Wenn Sie eine andere Plattform als Android / iOS verwenden oder bereits mit den TensorFlow Lite-APIs vertraut sind, laden Sie das Startermodell und die unterstützenden Dateien herunter (falls zutreffend).

Laden Sie das Startermodell von TensorFlow Hub herunter

Modellbeschreibung

YAMNet ist ein Audioereignisklassifizierer, der die Audiowellenform als Eingabe verwendet und unabhängige Vorhersagen für jedes der 521 Audioereignisse aus der AudioSet- Ontologie macht. Das Modell verwendet die MobileNet v1-Architektur und wurde mit dem AudioSet-Korpus trainiert. Dieses Modell wurde ursprünglich im TensorFlow Model Garden veröffentlicht, wo sich der Modellquellcode, der ursprüngliche Modellprüfpunkt und eine detailliertere Dokumentation befinden.

Wie es funktioniert

Es gibt zwei Versionen des YAMNet-Modells, die in TFLite konvertiert wurden:

  • YAMNet ist das ursprüngliche Audioklassifizierungsmodell mit dynamischer Eingabegröße, das für Transfer Learning, Web- und Mobile-Bereitstellung geeignet ist. Es hat auch eine komplexere Ausgabe.

  • YAMNet / Klassifikation ist eine quantisierte Version mit einer einfacheren Frame-Eingabe mit fester Länge (15600 Samples) und einem einzelnen Bewertungsvektor für 521 Audio-Ereignisklassen.

Eingänge

Das Modell akzeptiert ein 1-D- float32 - float32 oder NumPy-Array der Länge 15600 mit einer Wellenform von 0,975 Sekunden, die als Mono-16-kHz-Abtastwerte im Bereich [-1.0, +1.0] .

Ausgänge

Das Modell gibt einen 2-D- float32 Tensor der Form (1, 521) zurück, der die vorhergesagten Ergebnisse für jede der 521 Klassen in der AudioSet-Ontologie enthält, die von YAMNet unterstützt werden. Der Spaltenindex (0-520) des Scores-Tensors wird mithilfe der YAMNet-Klassenzuordnung, die als zugehörige Datei yamnet_label_list.txt verfügbar ist und in die yamnet_label_list.txt gepackt ist, dem entsprechenden AudioSet-Klassennamen zugeordnet. Siehe unten für die Verwendung.

Geeignete Verwendungen

YAMNet kann verwendet werden

  • als eigenständiger Audio-Ereignisklassifizierer, der eine angemessene Basis für eine Vielzahl von Audioereignissen bietet.
  • als High-Level-Feature-Extraktor: Der 1024-D-Einbettungsausgang von YAMNet kann als Eingabe-Feature eines anderen Modells verwendet werden, das dann auf eine kleine Datenmenge für eine bestimmte Aufgabe trainiert werden kann. Dies ermöglicht die schnelle Erstellung spezieller Audioklassifizierer, ohne dass viele beschriftete Daten erforderlich sind und ohne dass ein großes Modell durchgängig trainiert werden muss.
  • als Warmstart: Mit den YAMNet-Modellparametern kann ein Teil eines größeren Modells initialisiert werden, was eine schnellere Feinabstimmung und Modellexploration ermöglicht.

Einschränkungen

  • Die Klassifikatorausgänge von YAMNet wurden nicht klassenübergreifend kalibriert, sodass Sie die Ausgaben nicht direkt als Wahrscheinlichkeiten behandeln können. Für eine bestimmte Aufgabe müssen Sie höchstwahrscheinlich eine Kalibrierung mit aufgabenspezifischen Daten durchführen, mit der Sie die richtigen Schwellenwerte und Skalierungen für die Bewertung pro Klasse zuweisen können.
  • YAMNet wurde für Millionen von YouTube-Videos geschult. Obwohl diese sehr unterschiedlich sind, kann es dennoch zu einer Domain-Nichtübereinstimmung zwischen dem durchschnittlichen YouTube-Video und den für eine bestimmte Aufgabe erwarteten Audioeingaben kommen. Sie sollten mit einer gewissen Feinabstimmung und Kalibrierung rechnen, damit YAMNet in jedem von Ihnen erstellten System verwendet werden kann.

Modellanpassung

Die bereitgestellten vorab trainierten Modelle sind darauf trainiert, 521 verschiedene Audioklassen zu erkennen. Eine vollständige Liste der Klassen finden Sie in der Beschriftungsdatei im Modellrepository .

Sie können eine als Transferlernen bekannte Technik verwenden, um ein Modell neu zu trainieren, um Klassen zu erkennen, die nicht im ursprünglichen Satz enthalten sind. Sie können das Modell beispielsweise neu trainieren, um mehrere Vogellieder zu erkennen. Dazu benötigen Sie für jedes der neuen Labels, die Sie trainieren möchten, eine Reihe von Schulungsaudios. Die empfohlene Methode ist die Verwendung der TensorFlow Lite Model Maker- Bibliothek, die das Trainieren eines TensorFlow Lite-Modells mithilfe eines benutzerdefinierten Datensatzes in wenigen Codezeilen vereinfacht. Es verwendet Transferlernen, um die Menge der erforderlichen Trainingsdaten und -zeit zu reduzieren. Sie können auch vom Transferlernen für die Audioerkennung als Beispiel für das Transferlernen lernen.

Weiterführende Literatur und Ressourcen

Verwenden Sie die folgenden Ressourcen, um mehr über Konzepte im Zusammenhang mit der Audioklassifizierung zu erfahren: