MARF

Modular Audio Recognition Framework (MARF) — программная исследовательская платформа с открытым исходным кодом, созданная Сергеем А. Моховым[1], написанная на Java и предназначенная для работы с алгоритмами обработки звука, речи, голосовых сообщений, распознавания речи, а также естественного языка (NLP). Программный комплекс реализует модульную и расширяемую архитектуру для упрощения добавления новых алгоритмов. В настоящее время проект неактивен; последнее обновление кода датируется 2015 годом[2].

MARF может использоваться в качестве библиотеки в различных приложениях, а также в качестве платформы для обучения и создания собственных модулей. Для демонстрации возможностей фреймворка предоставляется несколько примеров, доступна подробная документация[3] и javadoc-совместимая справка по API в онлайн-формате[4]. MARF, его приложения, исходные коды и сопроводительная документация распространяются на условиях лицензии BSD.

Общие сведения
Modular Audio Recognition Framework
Тип распознавание образов, искусственный интеллект,
обработка сигналов, фреймворк
Автор Сергей А. Мохов
Разработчики Serguei A. Mokhov, Stephen Sinclair,
Ian Clement, Dimitrios Nicolacopoulos,
The MARF Research and Development Group
Написана на Java
Интерфейс Интерфейс командной строки, Графический интерфейс пользователя
Операционная система любая ОС с установленной JVM
Первый выпуск 8 декабря 2002
Аппаратная платформа Java Virtual Machine
Последняя версия 0.3.0.6-devel-20151006 (6 октября 2015)
Репозиторий sourceforge.net/projects…
Состояние архивный
Лицензия BSD
Сайт marf.sourceforge.net

История и статус проекта

Проект был задуман в 2002 году[5] Сергеем А. Моховым из Университета Конкордия при участии Стивена Синклера (Stephen Sinclair)[6]. Первый публичный выпуск, демонстрационная версия 0.1.1, состоялся 8 декабря 2002 года[7]. Через девять дней, 17 декабря, вышла версия 0.1.2, обозначенная как «финальная версия проекта» (Final Project Deliverable)[7][8]. Последним стабильным релизом считается версия 0.2.1 от 17 февраля 2003 года, так как все последующие выпуски носили статус разработческих (development)[7][9].

В период с 2004 по 2007 год была выпущена серия промежуточных версий для разработчиков (-devel), направленных на тестирование и добавление нового функционала. Ключевыми релизами в этой серии стали 0.3.0-devel-20040614, 0.3.0-devel-20050817 и snapshot-0.3.0-devel-20070108[7].

В настоящее время проект неактивен и считается заброшенным[10]. Последнее обновление кода (версия 0.3.0.6-devel-20151006) датируется 6 октября 2015 года, а основные научные публикации, описывающие фреймворк, вышли в период с 2007 по 2009 год[11]. Репозиторий исходного кода MARF размещён на платформе SourceForge, где код доступен через систему контроля версий CVS или в виде архивов для скачивания[7].

Архитектура

MARF спроектирован на основе модульной и расширяемой архитектуры, что позволяет использовать его как в качестве библиотеки в сторонних приложениях, так и в виде самостоятельной платформы для исследований. Ключевой целью такой архитектуры является упрощение добавления, подключения и тестирования новых алгоритмов обработки и распознавания аудио, речи и текста. Программный комплекс, включая исходные коды и документацию, распространяется на условиях свободной лицензии типа BSD.

Платформа полностью написана на языке Java. Этот выбор был обусловлен бинарной переносимостью (позволяющей запускать фреймворк на любой операционной системе с установленной JVM) и упрощённым управлением памятью, что дало разработчикам возможность сосредоточиться на алгоритмах[12]. Фреймворк поставляется в виде JAR-файлов, а его API документирован в стандартном для Java формате Javadoc. Хотя ядро системы реализовано на Java, на странице проекта также упоминается использование IDL, Perl и Unix Shell для вспомогательных задач. Существуют также научные работы по созданию специализированного языка программирования MARFL, предназначенного для написания скриптов для приложений на базе MARF[13].

Возможности

Интерфейсы

MARF является программным фреймворком, а не конечным приложением, поэтому он не имеет единого пользовательского интерфейса и предназначен для использования в качестве библиотеки или основы для исследований. Платформа поддерживает несколько режимов взаимодействия:

  • Интерфейс командной строки (CLI) — основной способ взаимодействия для выполнения задач без графической оболочки.
  • Графический интерфейс пользователя (GUI) — фреймворк включает компоненты, созданные с использованием библиотек Java AWT и Java Swing, что позволяет разрабатывать приложения с графическим интерфейсом. В качестве примера был создан прототип GUI для мониторинга состояния сервисов MARF[14].
  • Неинтерактивный режим (демон) — MARF может работать в фоновом режиме как служба (daemon), обрабатывая задачи без прямого вмешательства пользователя.

Поддерживаемые форматы файлов

Фреймворк способен обрабатывать несжатые аудиоданные. Основным поддерживаемым форматом для чтения является WAV[15]. Поскольку MARF написан на Java и, предположительно, использует стандартную библиотеку Java Sound API, также вероятна поддержка форматов AIFF и AU.

В процессе работы MARF может создавать файлы различных типов для сохранения обработанных данных и результатов анализа. Фреймворк сохраняет аудио в формате WAV, а также генерирует файлы XML (например, для конфигурации нейронных сетей), текстовые файлы (TXT) и собственные бинарные файлы для хранения обученных моделей. Отмечается, что бинарные файлы могут быть несовместимы между разными версиями фреймворка.

Системные требования

Поскольку MARF полностью написан на языке Java, он является платформонезависимым и не имеет строгих аппаратных требований. Основным системным требованием для запуска фреймворка является наличие установленной виртуальной машины Java (JVM). Согласно документации, для работы подходит JDK версии 1.4.* и выше[16].

Так как фреймворк был разработан в начале 2000-х годов, его требования к ресурсам считаются крайне скромными по современным меркам, и любая современная компьютерная система многократно их превосходит[17][18].

Примечания

  1. Serguei A. Mokhov. Concordia University. Дата обращения: 3 ноября 2025.
  2. Modular Audio Recognition Framework. SourceForge. Дата обращения: 3 ноября 2025.
  3. MARF, The Modular Audio Recognition Framework, and its Applications: Programmer's Manual (англ.). marf.sourceforge.net (26 августа 2007). Дата обращения: 22 июня 2024. Архивировано 4 марта 2016 года.
  4. MARF Developers' API (англ.). marf.sourceforge.net. Дата обращения: 22 июня 2024. Архивировано 3 марта 2016 года.
  5. The Modular Audio Recognition Framework (PDF). core.ac.uk. Дата обращения: 3 ноября 2025.
  6. The Modular Audio Recognition Framework (MARF) and its Applications. Semantic Scholar. Дата обращения: 3 ноября 2025.
  7. 1 2 3 4 5 Modular Audio Recognition Framework. marf.sourceforge.net. Дата обращения: 3 ноября 2025.
  8. MARF, The Modular Audio Recognition Framework, and its Applications: Final Report (PDF). marf.sourceforge.net. Дата обращения: 3 ноября 2025.
  9. MARF News. SourceForge. Дата обращения: 3 ноября 2025.
  10. Modular Audio Recognition Framework. Open Hub. Дата обращения: 3 ноября 2025.
  11. The Modular Audio Recognition Framework (MARF) and its Applications: A Review and the New E-Learning and E-Health Paradigms. arXiv.org. Дата обращения: 3 ноября 2025.
  12. MARF, The Modular Audio Recognition Framework, and its Applications: Programmer's Manual (англ.). marf.sourceforge.net (26 августа 2007). Дата обращения: 3 ноября 2025. Архивировано 4 марта 2016 года.
  13. MARFL: An Intentional Programming Language for MARF (PDF). Concordia University. Дата обращения: 3 ноября 2025.
  14. MARF Service Status Monitor GUI Prototype. ResearchGate. Дата обращения: 3 ноября 2025.
  15. The Modular Audio Recognition Framework (MARF) and its Applications: Scientific and Software Engineering Notes. ResearchGate. Дата обращения: 3 ноября 2025.
  16. MARF, The Modular Audio Recognition Framework, and its Applications: Programmer’s Manual (PDF). marf.sourceforge.net. Дата обращения: 3 ноября 2025.
  17. wir35/marf. GitHub. Дата обращения: 3 ноября 2025.
  18. Getting started with Java. refreshjava.com. Дата обращения: 3 ноября 2025.

Ссылки