Ekstrakcja funkcji do klasyfikacji dźwięku

16

Próbuję wyodrębnić funkcje z pliku dźwiękowego i sklasyfikować dźwięk jako należący do określonej kategorii (np. Szczekanie psa, silnik pojazdu itp.). Chciałbym wyjaśnić następujące kwestie:

1) Czy to w ogóle wykonalne? Istnieją programy rozpoznające mowę i rozróżniające różne rodzaje szczekania psa. Ale czy można mieć program, który może odbierać próbkę dźwięku i po prostu powiedzieć, jaki to dźwięk? (Załóżmy, że istnieje baza danych zawierająca wiele próbek dźwięku, do których można się odwoływać). Próbki wejściowego dźwięku mogą być nieco zaszumione (wejście mikrofonu).

2) Zakładam, że pierwszym krokiem jest ekstrakcja funkcji audio. W tym artykule sugeruje się wyodrębnienie MFCC i przekazanie ich do algorytmu uczenia maszynowego. Czy MFCC wystarczy? Czy są jakieś inne funkcje, które są ogólnie używane do klasyfikacji dźwięku?

Dziękuję za Twój czas.

Kevin Martin Jose
źródło

Odpowiedzi:

15
  1. Na dłuższą metę jest to wykonalne - w jakim zakresie? Zobaczysz. To zadanie klasyfikacji dźwięków środowiskowych nie jest zbyt dobrze zbadane. Kluczowy jest także wybór paradygmatu uczenia maszynowego - podejście statystyczne, a może klasyfikator binarny? Możesz zacząć od GMM, ANN i SVM - wybieram GMM i ANN.
  2. Tak, większość ludzi używa MFCC, ponieważ są dobrze skorelowane z tym, co ludzie faktycznie słyszą, a także nikt nie wymyślił nic lepszego. Możesz także chcieć dodać dodatkowe funkcje, takie jak deskryptory MPEG-7. Należy przeprowadzić odpowiednią optymalizację funkcji, ponieważ czasami nie potrzebujesz tak wielu funkcji, zwłaszcza gdy nie można ich rozdzielić. Aby uzyskać więcej informacji, zapoznaj się z moimi poprzednimi odpowiedziami:

Ekstrakcja funkcji z widma

Ekstrakcja MFCC

Wykrywanie dźwięków

jojek
źródło
Rozszerzę swoją odpowiedź wieczorem.
jojek
wciąż czekam na rozszerzoną odpowiedź ...
Nithin
Wieczorem ...
jojek
4

Dźwięk niewerbalny (nie mówiąc już o środowisku) wydaje się być młodszym bratem głównego nurtu mediów, takich jak obrazy, mowa, tekst.

Aby odpowiedzieć na twoje pytanie, czy można wyszkolić sieć w celu zidentyfikowania danego dźwięku? Tak to jest! Jest to jednak trudne z tych samych powodów, dla których uczenie maszynowe jest trudne.

Jednak to, co naprawdę powstrzymuje Audio i dlaczego nazywam go młodszym bratem dla obrazów i mowy, jest spowodowane brakiem zestawu danych oznaczonego na dużą skalę. Dla mowy jest TIMIT, dla obrazów jest kilka ImagenNet, CIFAR, Caltech, dla przetwarzania tekstu i języka naturalnego jest ogromna ilość literatury itp.

Według mojej wiedzy, największymi dwoma niewerbalnymi zestawami danych audio * są zestawy danych UrbanSounds i ESC-100, które są zbyt małe dla naprawdę głębokiego uczenia się. Istnieje kilka opublikowanych mieszanych wyników dotyczących tych zestawów danych przy użyciu dwuwarstwowych sieci ConvNet.

Funkcje MFCC są dobrze ugruntowaną podstawową reprezentacją funkcji w rozpoznawaniu mowy i analizie dźwięku w ogóle. Ale istnieje mnóstwo innych reprezentacji funkcji audio! Ten artykuł zawiera niezłą taksonomię typów funkcji audio.

Najbardziej ekscytującą pracą nad klasyfikacją dźwięku, którą ostatnio widziałem, są ludzie z DeepMind, o nazwie WaveNet .

beeCwright
źródło
3

Oto rozwiązanie do klasyfikacji dźwięku dla 10 klas: szczekanie psa, klakson, bawiące się dzieci itp. Oparte jest na bibliotece tensorflow wykorzystującej sieci neuronowe. Funkcje są wyodrębniane przez konwersję klipów dźwiękowych do spektrogramu

abggcv
źródło
3
proste połączenie nie jest wystarczającą odpowiedzią.
Gilles,
Tak, proszę rozwinąć treść linku.
Peter K.
2
Ale dzięki za link.
Kevin Martin Jose
Właściwie staram się też lepiej zrozumieć techniki stosowane w tutorialu podanym w linku. Moja wiedza na temat sygnałów dźwiękowych jest bardzo ograniczona, ponieważ jestem facetem od wizji komputerowej i przetwarzania obrazu. Postaram się bardziej szczegółowo opracować odpowiedź, gdy będę miał lepsze zrozumienie.
abggcv
1

Tak, jest to niezwykle wykonalne. Chociaż NN są doskonałe w tego rodzaju szkoleniach klasyfikacyjnych, mogą nawet nie być konieczne - przy dobrze dobranym zestawie funkcji, tylko klasyczne algorytmy grupowania, takie jak model mieszanki Gaussa lub analiza głównych składników, prawdopodobnie równie dobrze by zrobiły . Nowoczesne biblioteki mogą to zrobić w 95% przypadków lub dłużej.

johnwbyrd
źródło