Czy ktoś może mi dać pomysł na ten problem w matlab,
Mam 4.pliki wav zawierające ćwierkanie ptaków. Każdy plik .wav reprezentuje innego ptaka. Biorąc pod uwagę wejściowy plik .wav, muszę zdecydować, który to ptak. Wiem, że muszę dokonać porównania widma częstotliwości, aby dostać się do rozwiązania. ale nie wiem, jak powinienem używać spektrogramu, aby pomóc mi tam dotrzeć.
P.S. Wiem, jak działa spektrogram i mimo to wykreśliłem sporo plików .wav
Odpowiedzi:
1 dla odpowiedzi № 1Istnieje kilka metod rozwiązywania problemów z patterami, takich jak ten, o którym mówisz.
Możesz użyć analizy częstotliwości jak FFT z funkcją matlab
S = SPECTROGRAM(X,WINDOW,NOVERLAP)
W SPECTROGRAM
musisz zdefiniować okno czasowe sygnału do analizy w zmiennej WINDOW
. Możesz użyć prostokątnego okna (przykład WINDOW = [1 1 1 1 1 1 1 ... 1]
) z liczbą wartości równą pożądanej długości. Jest wiele okien do użycia: hanning, hamming, blackman. Powinieneś użyć tego, który jest lepszy dla twojego problemu. The NOVERLAP
to liczba punktów, które poruszają się okna w jednym kroku.
Poza tym podejściem transformacja falkowa jest również dobrą techniką do rozwiązania problemu. Matlab ma również dobry zestaw narzędzi do stosowania dyskretnych i ciągłych falek.
1 dla odpowiedzi nr 2
Możesz spróbować rozwiązać problem za pomocą Deep Belief Networks
Oto kilka artykułów, które mogą być pomocne:
- Ekstrakcja funkcji audio za pomocą zastrzeżonych maszyn Boltzmann
- Uczenie funkcji bez nadzoru dla klasyfikacji audio
Podsumowując pomysł, zamiast ręcznie dostroić funkcje, użyj KMS lub Autoencoder aby wyodrębnić cechy (bazy) reprezentujące obserwowane próbki audio, a następnie uruchomić algorytm uczenia się.
Aby szkolić DBN, będziesz potrzebował więcej niż 4 próbek audio, ale warto spróbować, ponieważ podejście to dawało obiecujące wyniki w przeszłości.
To tuturial może być również pomocny.
0 dla odpowiedzi № 3
może to być skomplikowany problem. Jako punkt wyjściowy radzę podzielić każdy rekord na pewną stałą długość klatek, np. 20 ms z 10 ms nakładaniem się, a następnie wyodrębnić fft tych ramek i uzyskać pewien maksymalny freq energii. wartości dla każdej ramki. W ostatnim kroku porównaj częstotliwości ramek ze sobą i określ wynik, wybierając maksymalną korelację