Подтвердить что ты не робот

Извлечение аудиофункций

Мне интересно узнать и написать систему, которая будет извлекать функции из аудиофайлов (mp3, wav и т.д.), которые впоследствии могут быть использованы для любых целей. В будущем я надеюсь использовать его для написания некоторого программного обеспечения для сходства музыки.

Существуют ли библиотеки, которые существуют, чтобы помочь? Я знаю libxtract, но не использовал его.

Кроме того, существуют ли библиотеки с низким уровнем c/С++, которые бы хорошо справлялись с аудиопотоками? У меня просто нет опыта в этой области.

Спасибо за помощь,

Эрик

4b9b3361

Ответ 1

Marsyas - очень полная структура, которая также предлагает извлечение аудио-функции.
Он написан на С++ и предлагает механизм "исправления", который позволяет подключать предопределенные компоненты.
Рамка содержит несколько примеров.
Взгляните на источники, чтобы узнать, как создавать пользовательские экстракторы.
Инструмент командной строки bextract, который поставляется с Marsyas, может извлечь:

  • коэффициенты MFCC
  • Частота пересечения нулей
  • Спектральный центроид
  • ...

Marsyas поддерживает несколько платформ, включая Windows, Linux и Mac OS X (я также видел статью о том, что она также работает на iPhone)

Ответ 2

Для полноты, здесь варианты, о которых я знаю:

Yaafe и libXtract, вероятно, наиболее оптимизированы с точки зрения производительности (см. приведенные ниже тесты). Они оба разделяют промежуточные вычисления между экстракторами признаков. Например, они будут запускать только один FFT для каждого окна, а затем любой экстрактор, который требует БПФ, будет просто ссылаться на этот БПФ. То же самое для функций более высокого уровня. Другие упомянутые выше экстракторы на самом деле не делают этого, потому что они полагаются на архитектуру плагина, то есть каждый экстрактор должен быть автономным.

Sonic Annotator и друзья пользуются плагиновой архитектурой, поэтому вы можете наслаждаться всеми видами экстрактов сторонних разработчиков (включая libXtract, aubio и Essentia). Экосистема Vamp плагин действительно довольно разнообразный и замечательный. Здесь приведен пример кода кода в SDK Vamp Plugin для создания хоста плагинов.

Я очень мало знаю об Essentia, за исключением того, что она более новая, чем другие, и принадлежит отличной группе Music Technology Group в Помпеу-Фабре. Это похоже на большой и хорошо организованный проект. Документация очень хорошая. Они используют его в крупных проектах по анализу музыки (например, Freesound и AcousticBrainz). Ориентация на проект, по-видимому, зависит от производительности и правильности. Определенно стоит посмотреть.

MARSYAS - это целая структура, а не только библиотеки. Документация неплохая. Он находится в активной разработке и является частью MOOC, периодически предлагаемой Джорджем Тзанетакисом на UVic. По-видимому, существует множество приложений и проектов, построенных вокруг MARYSYAS.

CAMEL и Maaate выглядят бездействующими - не видели новых релизов с 2010 и 2012 годов соответственно.

Здесь сравнительный тест (в секундах), сравнивающий 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

Ответ 3

Существует также libxtract, который предоставляет полный набор из более чем 50 аудиофункций, предназначенных для использования в реальном времени. Это "скудная" библиотека с минимальными зависимостями и обеспечивает привязки для Python и Java. Существует также "внешний объект", который делает функциональность libxtract доступной в компьютерной среде Pure Data в реальном времени.

Каноническая ссылка для libxtract эта статья.

Ответ 5

Сначала прочитайте о БПФ и обработке цифрового сигнала. Затем получите учебник по распознаванию речи, поскольку это зависит от того, что вы хотите сделать - механизм распознавания речи извлекает "функции" из аудио, чтобы определить, что говорить.

Я обнаружил, что Cepstral Coeffic делает отличные "функции" в смысле машинного обучения.

Ответ 6

Ознакомьтесь с веб-сайтом http://www.audiocontentanalysis.org/. В разделе "Программное обеспечение" вы найдете список с различными библиотеками, связанными с обработкой аудиосигнала, извлечением функций и извлечением информации о музыке. Кроме того, веб-сайт (и его книга) кажется очень хорошей отправной точкой для погружения во всю тему.