Для полноты изложения мне известны следующие варианты:
Yaafe и libXtract, вероятно, наиболее высоко оптимизированы с точки зрения производительности (см. Тесты ниже). Они оба разделяют промежуточные вычисления между экстракторами признаков. Например, они будут запускать только одно FFT на окно, а затем любой экстрактор, которому требуется FFT, будет просто ссылаться на это FFT. То же самое для функций более высокого уровня. Другие упомянутые экстракторы на самом деле этого не делают, потому что используют архитектуру плагинов - то есть каждый экстрактор должен быть автономным.
Sonic Annotator и его друзья извлекают выгоду из архитектуры плагинов, поэтому вы можете пользоваться всеми видами сторонних экстракторов функций (включая libXtract, aubio и Essentia). Экосистема плагинов Vamp действительно довольно разнообразна и замечательна. В SDK Vamp Plugin есть полный пример кода для сборки хоста плагина.
Я очень мало знаю об Essentia, за исключением того, что он новее других и прибывает из превосходной группы музыкальных технологий в Помпеу Фабра. Это похоже на большой и хорошо организованный проект. Документация очень хорошая. Они используют его в масштабных проектах по анализу музыки (таких как Freesound и AcousticBrainz). В центре внимания проекта, кажется, на производительности и правильности. Определенно стоит посмотреть.
MARSYAS - это целая структура, а не только библиотеки. Документация довольно хорошая. Он находится в стадии активной разработки и является частью MOOC, периодически предлагаемой Джорджем Цанетакисом в UVic. Кажется, что вокруг MARYSYAS построено довольно много приложений и проектов.
CAMEL, Maaate и FEAPI кажутся бездействующими - с 2010, 2012 и 2013 годов не выпускали новых версий соответственно.
Вот пример (в секундах) сравнения Sonic Annotator, Marsyas и YAAFE, выполняющих извлечение функций на 40 часах моно-wav-файлов с частотой 32 кГц:
S.A. Marsyas YAAFE
MFCC 1506 1168 142
Centroid 724 942 235
Rolloff 731 951 194
ZCR 221 620 57
Total 3182 3681 628
Стоит также отметить, что вы можете запускать код Matlab из C ++, что открывает возможности для использования:
- MIR Toolbox
- Timbre Toolbox
Есть также интересный опрос или экстракторы функций 2015 года, с большим количеством информации о производительности, функциях, экосистемах и т. Д .:
https://www.ntnu.edu/documents/1001201110/1266017954/DAFx-15_submission_43_v2.pdf/06508f48-9272-41c8-9381-7639a0240770