Mit der MediaPipe Audio Classifier-Aufgabe können Sie Audioclips in eine Reihe von definierten Kategorien einteilen, z. B. Gitarrenmusik, eine Zugpfiff oder Vogelgezwitscher. Die Kategorien werden während des Trainings des Modells definiert. Bei dieser Aufgabe werden Audiodaten mit einem ML-Modell als unabhängige Audioclips oder als kontinuierlicher Stream verarbeitet. Es wird eine Liste potenzieller Kategorien nach absteigendem Wahrscheinlichkeitswert ausgegeben.
Jetzt starten
Folgen Sie einer dieser Implementierungsanleitungen für Ihre Zielplattform, um diese Aufgabe zu verwenden. In diesen plattformspezifischen Anleitungen werden Sie durch die grundlegende Implementierung dieser Aufgabe geführt. Sie finden dort auch ein empfohlenes Modell und ein Codebeispiel mit empfohlenen Konfigurationsoptionen:
- Android – Codebeispiel – Anleitung
- Python – Codebeispiel Leitfaden
- Web – Codebeispiel – Anleitung
In diesen plattformspezifischen Anleitungen wird eine grundlegende Implementierung dieser Aufgabe beschrieben, einschließlich eines empfohlenen Modells und eines Codebeispiels mit empfohlenen Konfigurationsoptionen.
Taskdetails
In diesem Abschnitt werden die Funktionen, Eingaben, Ausgaben und Konfigurationsoptionen dieser Aufgabe beschrieben.
Funktionen
- Audioverarbeitung: Die Verarbeitung umfasst Audio-Resampling, Pufferung, Framing und Fourier-Transformation.
- Labelzuordnungs-Locale: Legen Sie die Sprache fest, die für Anzeigenamen verwendet wird.
- Grenzwert für die Bewertung: Ergebnisse nach Bewertungen filtern.
- Top-K-Erkennung: Hiermit können Sie die Ergebnisse der Zahlenerkennung filtern.
- Label-Zulassungs- und -Ausschlussliste: Geben Sie die erkannten Kategorien an.
Aufgabeneingaben | Aufgabenausgaben |
---|---|
Die Eingabe kann einen der folgenden Datentypen haben:
|
Der Audioklassifikator gibt eine Liste von Kategorien aus, die Folgendes enthält:
|
Konfigurationsoptionen
Für diese Aufgabe gibt es die folgenden Konfigurationsoptionen:
Option | Beschreibung | Wertebereich | Standardwert |
---|---|---|---|
running_mode |
Legt den Ausführungsmodus für die Aufgabe fest. Der Audioklassifikator hat zwei Modi: AUDIO_CLIPS: Der Modus zum Ausführen der Audioaufgabe auf unabhängigen Audioclips. AUDIO_STREAM: Der Modus für die Ausführung der Audioaufgabe in einem Audiostream, z. B. von einem Mikrofon. In diesem Modus muss resultListener aufgerufen werden, um einen Listener einzurichten, der die Klassifizierungsergebnisse asynchron empfängt. |
{AUDIO_CLIPS, AUDIO_STREAM } |
AUDIO_CLIPS |
display_names_locale |
Legt die Sprache der Labels fest, die für die Anzeigenamen verwendet werden, die in den Metadaten des Modells der Aufgabe angegeben sind, sofern verfügbar. Der Standardwert ist en für Englisch. Mit der TensorFlow Lite Metadata Writer API können Sie den Metadaten eines benutzerdefinierten Modells lokalisierte Labels hinzufügen.
| Gebietscode | de |
max_results |
Legt die optionale maximale Anzahl der Klassifizierungsergebnisse mit der höchsten Punktzahl fest, die zurückgegeben werden sollen. Wenn der Wert kleiner als 0 ist, werden alle verfügbaren Ergebnisse zurückgegeben. | Beliebige positive Zahlen | -1 |
score_threshold |
Legt den Schwellenwert für die Vorhersagebewertung fest, der den in den Modellmetadaten angegebenen Wert (falls vorhanden) überschreibt. Ergebnisse unter diesem Wert werden abgelehnt. | [0.0, 1.0] | Nicht festgelegt |
category_allowlist |
Legt die optionale Liste der zulässigen Kategorienamen fest. Wenn die Liste nicht leer ist, werden Klassifizierungsergebnisse herausgefiltert, deren Kategoriename nicht in dieser Liste enthalten ist. Doppelte oder unbekannte Kategorienamen werden ignoriert.
Diese Option schließt category_denylist aus. Die Verwendung beider Optionen führt zu einem Fehler. |
Beliebige Strings | Nicht festgelegt |
category_denylist |
Hiermit wird eine optionale Liste der nicht zulässigen Kategorienamen festgelegt. Wenn der Wert nicht leer ist, werden Klassifizierungsergebnisse herausgefiltert, deren Kategoriename in diesem Set enthalten ist. Doppelte oder unbekannte Kategorienamen werden ignoriert. Diese Option schließt category_allowlist aus. Die Verwendung beider Optionen führt zu einem Fehler. |
Beliebige Strings | Nicht festgelegt |
result_callback |
Legt fest, dass der Ergebnisempfänger die Klassifizierungsergebnisse asynchron empfängt, wenn sich der Audioklassifikator im Audiostream-Modus befindet. Kann nur verwendet werden, wenn der Ausführungsmodus auf AUDIO_STREAM festgelegt ist. |
– | Nicht festgelegt |
Modelle
Für den Audioklassifikator muss ein Audioklassifizierungsmodell heruntergeladen und im Projektverzeichnis gespeichert werden. Beginnen Sie mit dem standardmäßigen, empfohlenen Modell für Ihre Zielplattform, wenn Sie mit dieser Aufgabe beginnen. Bei den anderen verfügbaren Modellen müssen in der Regel Kompromisse zwischen Leistung, Genauigkeit, Auflösung und Ressourcenanforderungen eingegangen werden. In einigen Fällen sind auch zusätzliche Funktionen verfügbar.
Yamnet-Modell (empfohlen)
Das Yamnet-Modell ist ein Audioereignisklassifikator, der auf dem AudioSet-Dataset trainiert wurde, um Audioereignisse vorherzusagen, die in den AudioSet-Daten definiert sind. Informationen zu den von diesem Modell erkannten Audioereignissen finden Sie in der Liste der Labels.
Modellname | Eingabeform | Quantisierungstyp | Versionen |
---|---|---|---|
YamNet | 1 × 15.600 | Keine (float32) | Neueste |
Benchmarks für Aufgaben
Hier sind die Aufgaben-Benchmarks für die gesamte Pipeline, die auf den oben genannten vorab trainierten Modellen basieren. Das Latenzergebnis ist die durchschnittliche Latenz auf Pixel 6 mit CPU / GPU.
Modellname | CPU-Latenz | GPU-Latenz |
---|---|---|
YamNet | 12,29 ms | - |