Scipy - Przetwarzanie audio


14

Szukam dobrych narzędzi do przetwarzania sygnału audio. np. analiza mowy i muzyki, automatyczna identyfikacja języka itp.

Czy biblioteka Scipy zapewnia funkcje przetwarzania dźwięku? Czy ma dobre narzędzie do przetwarzania sygnału audio?

Czy możesz zasugerować do tego narzędzie?


1
Tak, scipy zapewnia infrastrukturę do robienia tego rodzaju rzeczy, ale musisz być bardziej szczegółowy w tym, czego szukasz, aby uzyskać bardziej użyteczną odpowiedź (szczególnie, aby odpowiedzieć, czy istnieje „lepsze narzędzie niż [scipy]” ).
A_A

1
w czasie rzeczywistym czy offline?
endolith

offline. Szukam klasyfikacji mowy / muzyki.
user1147663

1
Scipy i Numpy razem zapewniają doskonałe narzędzia do przetwarzania danych zarówno w czasie rzeczywistym, jak i offline. W połączeniu z Cython lub Ctypes (wolę podejście Cython), łatwo jest operować na tablicach numpy z szybkimi operacjami niskiego poziomu napisanymi w C, jeśli innych bibliotek nie można przekonać do dopasowania.
Henry Gomersall

1
jedyną rzeczą, której brakuje MATLAB-owi, jest możliwość zdefiniowania początku tablicy jako czegoś innego niż 1. tak jak wartość DC na wyjściu FFT jest w bin # 1 zamiast bin # 0, jak powinno być. w MATLAB (lub Octave) są jeszcze inne głupie rzeczy.
Robert Bristol-Johnson

Odpowiedzi:


9

Osobiście uważam, że Python jest jednym z najlepszych dostępnych rozwiązań i zająłem się identyfikacją audio. Zachęcamy do sprawdzenia na przykład mojego oprogramowania do automatycznej identyfikacji ptaków na podstawie głośnych nagrań dźwiękowych: ornitokrity . Z programu korzysta Departament Ochrony Nowej Zelandii i cieszą się z tego. Na podstawie tego przykładu chciałbym wskazać kilka zalet używania Pythona:

  1. Ogromna, szybko rozwijająca się społeczność zapewniająca mnóstwo bibliotek. SciPy zapewnia mnóstwo metod przetwarzania sygnałów (oczywiście nie tak wiele i dojrzałych jak Matlab). Pamiętaj jednak, że SciPy, choć jeden z najważniejszych, jest tylko jednym z setek, które mogą ci pomóc w twoich staraniach. znalazłem Aubio najlepiej do analizy muzyki. Do rozpoznawania mowy i muzyki z pewnością docenisz wiele funkcji audio, które Yaafe może wydobyć.
  2. Jest wolne! Po wyjściu ze środowiska akademickiego szybko dowiadujesz się, że Matlab jest raczej drogi. I nawet jeśli możesz sobie na to pozwolić, użytkownicy z Twojej perspektywy nie będą zadowoleni z tej zależności. Na przykład wspomniany Departament Konserwacji nie zaakceptuje oprogramowania własnościowego.
  3. Identyfikacja często wymaga uczenia maszynowego, a Python ma do tego świetny zestaw narzędzi: sklearn. Jest to najnowocześniejsza biblioteka sztuki - i łatwa w użyciu. Spójrz na konkursach Kaggle (uczenia maszynowego) i sprawdzić, jak wiele czołowych programistów przy użyciu Python i sklearn.
  4. Możesz zarządzać „big data”. Jeśli chcesz uruchomić analizę na ogromnych sieciowych bazach nagrań, to Python ma dobrze ugruntowany zestaw narzędzi. Nie sądzę, żeby interfejs Matlab / Octave był łatwy z np. Hadoopem, ale proszę, poprawcie mnie, jeśli się mylę. R robi to lepiej.
  5. Mówiąc o interfejsie, możesz łatwo połączyć swój program ze stroną internetową. W ten sposób zarządzam Ornithokrites (rozpoznawanie ptaków): program działa w chmurze Amazon Web Services. Świetne, jeśli chcesz udostępnić swoje oprogramowanie innym osobom, które niekoniecznie chcą przejść procedurę instalacji wszystkich wymaganych bibliotek.

Moim drugim wyborem będzie R. Chociaż nie jest tak bogaty w funkcje jak Python, ma wiele przydatnych bibliotek (sprawdź np. Seewave dla swoich aplikacji). Instalacja tych w systemie Windows i Linux to bułka z masłem, co jest ważne, jeśli chcesz, aby inni korzystali z Twojego programu. Jednak z mojego doświadczenia wynika, że ​​wysokowydajne przetwarzanie w języku R jest trudniejsze - ważne jest, aby zauważyć, jeśli trzeba wykonać DUŻO przetwarzania i identyfikacji.

Przykłady klasyfikacji muzyki w Pythonie:

Book Building Machine Learning Systems with Python zawiera rozdział na temat klasyfikacji muzyki

Inne narzędzia (lista nie jest kompletna): Python w muzyce


2

Wygląda na to, że Python jest popularnym językiem do tego celu z kilkoma dobrymi zestawami narzędzi, ponieważ dobrze ... Widziałem go w użyciu w niektórych działach i firmach technicznych.

W środowisku akademickim bardzo często obserwuje się tego rodzaju pracę wykonaną w Matlabie, ponieważ łączy on wiele potężnych zestawów narzędzi (przetwarzanie sygnałów, przetwarzanie równoległe, wykresy, narzędzia baz danych, uczenie maszynowe, AI) w łatwym do sondowania środowisku IDE. Jednak kosztuje i ma pewne wady (nie jest to najlepszy język programowania pod względem projektowania aplikacji i wydajności, więc jest to głównie narzędzie do prototypowania, ale można je skompilować do C). Octave to darmowa alternatywa, ale nie mogę ręczyć za jakość narzędzi do przetwarzania sygnału lub samego oprogramowania, ponieważ go nie używałem.


Świetną biblioteką do tego jest github.com/worldveil/dejavu . Python, oprogramowanie typu open source, licencja MIT oraz rozpoznawanie dźwięku i pobieranie odcisków palców.
Lollercoaster

scipyekosystem ma wiele funkcji MATLAB.
Darleison Rodrigues

2

Możesz także sprawdzić pyAudioAnalysis : łączy otwarte biblioteki do rozpoznawania wzorców i kilka implementacji funkcji audio. Niektóre przykładowe aplikacje zaimplementowane w pyAudioAnalysis , które mogą Cię zainteresować:

  • usuwanie ciszy
  • biegunka mówcy
  • klasyfikacja segmentów (i szkolenie) z wykorzystaniem SVM, kNN itp
  • wspólna segmentacja-klasyfikacja (przy użyciu HMM)
  • thumbnailing audio
  • wizualizacja treści audio

0

Możesz użyć biblioteki C ++ analizy audio Essentia , która zawiera powiązania Pythona. Skorzystasz ze wszystkich zalet środowiska python / scipy oraz wielu algorytmów analizy dźwięku / muzyki, które są dostarczane z Essentia.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.