Przewodnik po klasyfikacji audio

Zadanie MediaPipe Audio Classifier umożliwia klasyfikowanie klipów audio w określonej kategorii, np. muzyka gitarowa, gwizdek kolejowy lub ptaka piosenka. Kategorie są definiowane podczas trenowania modelu. To zadanie działa na danych audio z modelem systemów uczących się (ML) jako niezależne klipy audio lub ciągły strumień i generuje listę potencjalnych kategorii uporządkowaną według malejącego wyniku prawdopodobieństwa.

Wypróbuj!

Rozpocznij

Zacznij od wykonania tego zadania, postępując zgodnie z instrukcjami podanymi w jednym z przewodników po implementacji dla platformy docelowej. Przewodniki dotyczące poszczególnych platform przeprowadzą Cię przez podstawowe wdrożenie tego zadania, w tym zalecany model i przykładowy kod z zalecanymi opcjami konfiguracji:

Z tych przewodników dla poszczególnych platform dowiesz się, jak wykonać podstawowe zadania opisane w tym zadaniu. Znajdziesz w nich zalecany model i przykładowy kod z zalecanymi opcjami konfiguracji.

Szczegóły działania

W tej sekcji opisujemy możliwości, dane wejściowe, dane wyjściowe i opcje konfiguracji tego zadania.

Funkcje

  • Przetwarzanie dźwięku wejściowego – przetwarzanie obejmuje ponowne próbkowanie, buforowanie, kadrowanie i przekształcanie czterokanałowe.
  • Język mapy etykiety – ustaw język wyświetlanych nazw.
  • Próg wyniku – filtrowanie wyników na podstawie wyników prognozy.
  • Wykrywanie Top-K – filtruje wyniki wykrywania liczb.
  • Lista dozwolonych i odrzuconych etykiet – pozwala określić wykryte kategorie.
Dane wejściowe zadań Wyniki działania
Dane wejściowe mogą być jednym z tych typów:
  • Klipy audio
  • Strumień audio
Klasyfikator dźwięku generuje listę kategorii zawierającą:
  • Indeks kategorii: indeks kategorii w danych wyjściowych modelu
  • Wynik: stopień ufności dla tej kategorii, zwykle prawdopodobieństwo w zakresie [0,1].
  • Nazwa kategorii (opcjonalna): nazwa kategorii określona w metadanych modelu TFLite, jeśli są dostępne.
  • Wyświetlana nazwa kategorii (opcjonalna): wyświetlana nazwa kategorii określona w metadanych modelu TFLite w języku określonym za pomocą wyświetlanych nazw opcji regionalnych, jeśli są dostępne.

Opcje konfiguracji

To zadanie ma te opcje konfiguracji:

Nazwa opcji Opis Zakres wartości Wartość domyślna
running_mode Ustawia tryb działania zadania. Klasyfikator dźwięku ma 2 tryby:

AUDIO_CLIPS: tryb uruchamiania zadania dotyczącego dźwięku w niezależnych klipach audio.

AUDIO_STREAM: tryb uruchamiania zadania audio w strumieniu audio, np. z mikrofonu. W tym trybie należy wywołać funkcję resultListener, aby skonfigurować detektor umożliwiający asynchroniczne otrzymywanie wyników klasyfikacji.
{AUDIO_CLIPS, AUDIO_STREAM} AUDIO_CLIPS
display_names_locale Ustawia język etykiet, które mają być używane w przypadku nazw wyświetlanych w metadanych modelu zadania (jeśli są dostępne). Wartość domyślna w języku angielskim to en. Za pomocą TensorFlow Lite MetadataWriter API możesz dodawać zlokalizowane etykiety do metadanych modelu niestandardowego. Kod języka en
max_results Określa opcjonalną maksymalną liczbę zwracanych wyników klasyfikacji o najwyższych wynikach. Jeśli wartość jest mniejsza niż 0, zostaną zwrócone wszystkie dostępne wyniki. Dowolne liczby dodatnie -1
score_threshold Ustawia próg wyniku prognozy, który zastępuje próg podany w metadanych modelu (jeśli istnieją). Wyniki poniżej tej wartości zostały odrzucone. [0,0; 1,0] Nie ustawiono
category_allowlist Ustawia opcjonalną listę dozwolonych nazw kategorii. Jeśli nie będzie pusty, wyniki klasyfikacji, których nazwy kategorii nie ma w tym zbiorze, zostaną odfiltrowane. Zduplikowane i nieznane nazwy kategorii są ignorowane. Ta opcja wzajemnie się wyklucza, category_denylist i ich użycie kończy się błędem. Dowolne ciągi Nie ustawiono
category_denylist Ustawia opcjonalną listę niedozwolonych nazw kategorii. Jeśli pole nie jest puste, wyniki klasyfikacji, których nazwa kategorii znajduje się w tym zbiorze, zostaną odfiltrowane. Zduplikowane i nieznane nazwy kategorii są ignorowane. Ta opcja wzajemnie się wyklucza z category_allowlist, a korzystanie z obu daje błąd. Dowolne ciągi Nie ustawiono
result_callback Ustawia detektor wyników, aby asynchronicznie otrzymywać wyniki klasyfikacji, gdy Klasyfikator dźwięku działa w trybie strumienia audio. Tego ustawienia można używać tylko wtedy, gdy tryb biegowy jest ustawiony na AUDIO_STREAM Nie dotyczy Nie ustawiono

Modele

Klasyfikator dźwięku wymaga pobrania modelu klasyfikacji audio i zapisania go w katalogu projektu. Gdy zaczniesz tworzyć aplikacje z tym zadaniem, zacznij od domyślnego, zalecanego modelu dla platformy docelowej. Inne dostępne modele zwykle kompensują wymagania dotyczące wydajności, dokładności, rozdzielczości i zasobów, a w niektórych przypadkach zawierają dodatkowe funkcje.

Model Yamnet to klasyfikator zdarzeń audio wytrenowany na zbiorze danych AudioSet do przewidywania zdarzeń dźwiękowych zdefiniowanych w danych AudioSet. Informacje o zdarzeniach audio rozpoznawanych przez ten model znajdziesz na liście etykiet modelu.

Nazwa modelu Wprowadź kształt Typ kwantyzacji Wersje
YamNet 1 × 15600 Brak (float32) Najnowsze

Testy porównawcze działań

Oto porównania zadań dla całego potoku na podstawie powyższych wytrenowanych modeli. Wynik opóźnienia to średnie opóźnienie na Pixelu 6 korzystającym z procesora / GPU.

Nazwa modelu Czas oczekiwania procesora Opóźnienie GPU
YamNet 12,29 ms -