Ekstrakcja Funkcji Audio

Jestem zainteresowany poznaniem i napisaniem systemu, który wyodrębni funkcje z plików audio (mp3, wav, itp.), które można później wykorzystać w dowolnym celu. W przyszłości mam nadzieję użyć go do napisania jakiegoś oprogramowania do podobieństwa muzyki.

Czy istnieją jakieś biblioteki, które mogłyby pomóc? Znam libxtract, ale nie używałem go.

Czy są jakieś niskopoziomowe biblioteki c/C++, które byłyby dobre w radzeniu sobie ze strumieniami audio? Po prostu nie mam doświadczenia w tym miejsce.

Dzięki za pomoc,

Eric

Author: Thomas Zoechling, 2009-09-22

6 answers

Marsyas jest bardzo kompletnym frameworkiem, który oferuje również ekstrakcję funkcji audio.
Jest napisany w C++ i oferuje mechanizm "łatania", który pozwala na podłączenie predefiniowanych komponentów.
Framework zawiera kilka przykładów.
Spójrz na źródła, aby dowiedzieć się, jak tworzyć własne ekstraktory.
Narzędzie linii poleceń bextract, które jest dostarczane z Marsyas, może wyodrębnić:

  • MFCCs
  • Zerowy Wskaźnik Przejścia
  • widmowy Centroid
  • ...

Marsyas obsługuje kilka platform, w tym Windows, Linux i Mac OS X (widziałem również artykuł wspominający, że działa również na iPhone)

 15
Author: Thomas Zoechling,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-13 09:26:07

Ze względu na kompletność, oto opcje, które znam:

Yaafe i libXtract są prawdopodobnie najbardziej zoptymalizowane pod względem wydajności(patrz benchmarki poniżej). Obie te cechy dzielą pośrednie obliczenia między ekstraktorami funkcji. Na przykład, będą uruchamiać tylko jeden FFT na okno, a następnie każdy ekstraktor, który wymaga FFT, będzie odwoływał się do tego FFT. To samo dotyczy funkcji wyższego poziomu. Inne wymienione ekstraktory tak naprawdę tego nie robią, ponieważ opierają się na architekturze wtyczek - tzn. każdy ekstraktor musi być samodzielny.

Sonic Annotator i przyjaciele korzystają z architektury wtyczek, dzięki czemu możesz cieszyć się różnego rodzaju zewnętrznymi ekstraktorami funkcji (w tym libXtract, aubio i Essentia). Ekosystem wtyczek Vamp jest naprawdę bardzo zróżnicowany i wspaniały. W Vamp Plugin SDK jest kompletny przykładowy kod do budowania hosta wtyczki.

Niewiele wiem o Essentii, poza tym, że jest nowsza od innych i pochodzi z doskonałej technologii muzycznej Grupa w Pompeu Fabra. Wydaje się to dużym i dobrze zorganizowanym projektem. Dokumentacja jest bardzo dobra. Używają go w dużych projektach analizy muzyki (takich jak Freesound i AcousticBrainz). Projekt koncentruje się na wydajności i poprawności. Zdecydowanie warto zajrzeć.

MARSYAS to cały framework, nie tylko biblioteki. Dokumentacja jest całkiem dobra. Jest w trakcie aktywnego rozwoju i częścią MOOC okresowo oferowanego przez George ' a Tzanetakisa w UVic. Wydaje się, że jest sporo aplikacji i projekty budowane wokół Marysi.

CAMEL i Maaate wydają się uśpione - nie doczekały się nowego wydania odpowiednio od 2010 i 2012 roku.

Oto benchmark (w sekundach) porównujący Sonic Annotator, Marsyas i YAAFE wykonujące ekstrakcję funkcji na 40 godzinach 32 KHz plików wav mono:
            S.A.    Marsyas     YAAFE
MFCC        1506       1168       142
Centroid    724         942       235
Rolloff     731         951       194
ZCR         221         620        57
Total       3182       3681       628
 17
Author: James H,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-26 23:28:20

Istnieje również libxtract, który zapewnia kompleksowy zestaw ponad 50 funkcji audio przeznaczonych do użytku w czasie rzeczywistym. Jest to "Szczupła" biblioteka z minimalnymi zależnościami i zapewnia powiązania dla Pythona i Javy. Istnieje również "obiekt zewnętrzny", który udostępnia funkcjonalność libxtract w środowisku muzyki komputerowej Pure Data real time.

Kanonicznym odniesieniem do libxtract jest Ten artykuł .

 6
Author: j b,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-17 10:29:43

Chociaż to bardzo stary post, ale może ktoś by tu dotarł po googlowaniu. Teraz jest kilka bardzo dobrych zestawów narzędzi do analizy dźwięku:

  1. TarsoDSP https://github.com/JorenSix/TarsosDSP
  2. OpenSmile http://www.audeering.com/research/opensmile
  3. CMU Sphinx http://cmusphinx.sourceforge.net/
 4
Author: Wahib Ul Haq,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-05 18:29:59

Najpierw Przeczytaj o FFT i cyfrowym przetwarzaniu sygnału. Następnie uzyskaj podręcznik rozpoznawania mowy, ponieważ opiera się on dokładnie na tym, co chcesz zrobić - silnik rozpoznawania mowy wyodrębnia "funkcje" z dźwięku, aby określić, co jest mówione.

Odkryłem, że współczynniki Cepstralne tworzą wielkie "cechy" w sensie uczenia maszynowego.

 2
Author: dmazzoni,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-12-30 09:04:14

Sprawdź stronę http://www.audiocontentanalysis.org/. W sekcji "Oprogramowanie" znajdziesz listę z różnymi bibliotekami związanymi z przetwarzaniem sygnału Audio, ekstrakcją funkcji i pobieraniem informacji muzycznych. Ponadto strona internetowa (i jej książka) wydaje się bardzo dobrym punktem wyjścia do zagłębiania się w cały temat.

 2
Author: rikner,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-26 10:16:57