Zadanie identyfikacji tego, co reprezentuje dźwięk, nazywa się klasyfikacją dźwięku . Model klasyfikacji dźwięku jest wytrenowany w celu rozpoznawania różnych zdarzeń dźwiękowych. Na przykład możesz nauczyć model rozpoznawania zdarzeń reprezentujących trzy różne zdarzenia: klaskanie, pstryknięcie palcami i pisanie. TensorFlow Lite zapewnia zoptymalizowane, wstępnie wytrenowane modele, które można wdrożyć w aplikacjach mobilnych. Dowiedz się więcej o klasyfikacji dźwięku za pomocą TensorFlow tutaj .
Poniższy obraz przedstawia dane wyjściowe modelu klasyfikacji dźwięku w systemie Android.
Zaczynaj
Jeśli jesteś nowy w TensorFlow Lite i pracujesz z systemem Android, zalecamy zapoznanie się z poniższymi przykładowymi aplikacjami, które mogą pomóc w rozpoczęciu pracy.
Możesz skorzystać z gotowego interfejsu API z biblioteki zadań TensorFlow Lite, aby zintegrować modele klasyfikacji dźwięku w zaledwie kilku wierszach kodu. Możesz także zbudować własny, niestandardowy potok wnioskowania, korzystając z biblioteki obsługi TensorFlow Lite .
Poniższy przykład Androida pokazuje implementację przy użyciu biblioteki zadań TFLite
Jeśli używasz platformy innej niż Android/iOS lub jeśli znasz już interfejsy API TensorFlow Lite , pobierz model początkowy i pliki pomocnicze (jeśli dotyczy).
Pobierz model startowy z TensorFlow Hub
Opis modelu
YAMNet to klasyfikator zdarzeń dźwiękowych, który przyjmuje kształt fali dźwiękowej jako dane wejściowe i tworzy niezależne prognozy dla każdego z 521 zdarzeń dźwiękowych z ontologii AudioSet . Model wykorzystuje architekturę MobileNet v1 i został przeszkolony przy użyciu korpusu AudioSet. Ten model został pierwotnie wydany w TensorFlow Model Garden, gdzie znajduje się kod źródłowy modelu, oryginalny punkt kontrolny modelu i bardziej szczegółowa dokumentacja.
Jak to działa
Istnieją dwie wersje modelu YAMNet przekonwertowane na TFLite:
YAMNet to oryginalny model klasyfikacji dźwięku z dynamicznym rozmiarem wejściowym, odpowiedni do wdrażania Transfer Learning, Web i Mobile. Ma też bardziej złożone wyjście.
YAMNet/klasyfikacja to skwantyzowana wersja z prostszym wejściem ramki o stałej długości (15600 próbek) i zwraca pojedynczy wektor wyników dla 521 klas zdarzeń audio.
Wejścia
Model akceptuje matrycę 1-D float32
Tensor lub NumPy o długości 15600 zawierającą przebieg 0,975 sekundy reprezentowany jako próbki mono 16 kHz w zakresie [-1.0, +1.0]
.
Wyjścia
Model zwraca tensor kształtu 2-D float32
(1, 521) zawierający przewidywane wyniki dla każdej z 521 klas w ontologii AudioSet, które są obsługiwane przez YAMNet. Indeks kolumny (0-520) tensora wyników jest mapowany na odpowiednią nazwę klasy AudioSet przy użyciu mapy klas YAMNet, która jest dostępna jako skojarzony plik yamnet_label_list.txt
spakowany do pliku modelu. Zobacz poniżej zastosowanie.
Odpowiednie zastosowania
Można użyć YAMNet
- jako samodzielny klasyfikator zdarzeń audio, który zapewnia rozsądną podstawę dla szerokiej gamy zdarzeń audio.
- jako ekstraktor cech wysokiego poziomu: wynik osadzania 1024-D z YAMNet może być użyty jako cechy wejściowe innego modelu, który można następnie przeszkolić na małej ilości danych dla określonego zadania. Pozwala to na szybkie tworzenie wyspecjalizowanych klasyfikatorów dźwięku bez konieczności stosowania dużej ilości oznaczonych danych i bez konieczności kompleksowego szkolenia dużego modelu.
- jako ciepły start: parametry modelu YAMNet można wykorzystać do zainicjowania części większego modelu, co umożliwia szybsze dostrojenie i eksplorację modelu.
Ograniczenia
- Wyjścia klasyfikatora YAMNet nie zostały skalibrowane między klasami, więc nie można bezpośrednio traktować wyników jako prawdopodobieństw. W przypadku dowolnego zadania najprawdopodobniej będziesz musiał przeprowadzić kalibrację z danymi specyficznymi dla zadania, co pozwoli ci przypisać odpowiednie progi wyników i skalowanie dla poszczególnych klas.
- YAMNet został przeszkolony na milionach filmów z YouTube i chociaż są one bardzo zróżnicowane, nadal może istnieć niezgodność domen między przeciętnym filmem z YouTube a wejściami audio oczekiwanymi dla danego zadania. Powinieneś spodziewać się pewnych dostrojeń i kalibracji, aby uczynić YAMNet użytecznym w każdym budowanym systemie.
Dostosowanie modelu
Dostarczone wstępnie wytrenowane modele są przeszkolone do wykrywania 521 różnych klas dźwięku. Pełną listę klas można znaleźć w pliku etykiet w repozytorium modelu .
Możesz użyć techniki znanej jako uczenie transferu, aby ponownie nauczyć model rozpoznawania klas spoza oryginalnego zestawu. Na przykład możesz ponownie nauczyć model wykrywania wielu śpiewów ptaków. Aby to zrobić, będziesz potrzebować zestawu dźwięków szkoleniowych dla każdej nowej wytwórni, którą chcesz trenować. Zalecanym sposobem jest użycie biblioteki TensorFlow Lite Model Maker , która upraszcza proces uczenia modelu TensorFlow Lite przy użyciu niestandardowego zestawu danych w kilku linijkach kodu. Wykorzystuje uczenie transferu w celu zmniejszenia ilości wymaganych danych treningowych i czasu. Możesz także uczyć się z Transfer learning dla rozpoznawania dźwięku jako przykładu transfer learning.
Dalsze czytanie i zasoby
Skorzystaj z następujących zasobów, aby dowiedzieć się więcej o pojęciach związanych z klasyfikacją dźwięku: