Как перевести бумажные ноты в код и XML с помощью Audiveris

11 авг 2026
2,692
395
66
4 недели

Если вы когда-нибудь пробовали отсканировать старые ноты и воспроизвести их в синтезаторе или открыть в музыкальном редакторе вроде MuseScore, то наверняка знаете, насколько это мучительный процесс. Обычный OCR вроде Tesseract здесь бессилен: текстовые символы привязаны к сетке из пяти линеек, а длительности, аккорды, паузы и динамические оттенки образуют двумерную графовую структуру.

Здесь на сцену выходит OMR — Optical Music Recognition. Проектов в этой области немного, а зрелых опенсорсных систем и вовсе единицы. Audiveris — пожалуй, самый известный открытый движок распознавания нот, развивающийся уже много лет.

Главная проблема распознавания нот

Разработчики Audiveris честно признают в документации важный факт: добиться 100% точности распознавания нот исключительно алгоритмическим путем практически невозможно. Реальные сканы из архивоввроде IMSLP часто страдают от замятия бумаги, перекосов, размытых чернил и нестандартных шрифтов издателей XIX века. Стоит ошибке закрасться в ключевые знаки в начале строки, и вся дальнейшая расшифровка превратится в какофонию.

Поэтому концепция Audiveris строится на двух тесно связанных компонентах:

Реклама
  • Вычислительный движок (OMR Engine)
  • Встроенный графический редактор (OMR Editor)

Сначала движок выполняет распознавание, а затем подключается человек. В интерфейсе программы можно скорректировать перекосы, подправить распознанные символы или изменить параметры алгоритма прямо на лету, не перерабатывая весь документ заново.

Из чего состоит движок распознавания

Архитектуру Audiveris можно назвать гибридной. Создатели не стали слепо полагаться только на классический компьютерный анализ или только на глубокое обучение. Для каждого типа элементов нотной грамоты они подобрали свой метод:

  1. Нотные линейки и сетка выделяются спец-алгоритмами поиска прямых линий.
  2. Вязка нот (штрихи, соединяющие восьмые и шестнадцатые ноты) распознается с помощью математической морфологии изображений.
  3. Текстовые элементы вроде названий, темпов и подстрочного текста передаются во внешний OCR-движок.
  4. Головки нот идентифицируются через сопоставление по шаблонам (template matching).
  5. Все остальные знаки фиксированного размера обрабатываются нейросетью.

Результат работы сохраняется во внутреннем формате XML с расширением .omr или экспортируется в стандартный MusicXML 4.0. Этот формат понимают практически все современные нотные редакторы: Finale, Sibelius, Dorico и MuseScore.

Осторожно с доменными именами

Интересная деталь из README репозитория: авторы отдельно предупреждают пользователей о фальшивом сайте audiveris.com.

Настоящий проект живет на GitHub и связанной с ним странице GitHub Pages. Сайт с доменной зоной .com мимикрирует под официальный ресурс, но перенаправляет людей на сторонние сервисы с криптовалютами и ставками. Будьте внимательны, если решите скачать готовый дистрибутив.

Как собрать и запустить проект

Код написан на Java и собирается с помощью Gradle. Для работы потребуется JDK 17 или новее, а также Git.

Проект использует классическую схему веток:

  • Ветка master содержит только стабильные релизы.
  • Вся активная разработка идет в ветке development.

Клонируем репозиторий и собираем проект из ветки разработки:

git clone https://github.com/Audiveris/audiveris.git
cd audiveris
git checkout development
./gradlew build

После завершения сборки запустить приложение можно прямо через Gradle:

./gradlew run

Если вы не планируете дорабатывать сам код, а хотите просто конвертировать ноты, разработчики собирают готовые установщики для Windows (.msi), Linux (.deb и Flatpak на Flathub) и macOS (.dmg). В них уже встроен нужный Java Runtime Environment, так что разворачивать окружение вручную не придется.

Зачем это разработчику

Audiveris интересен не только музыкантам. Если вы разрабатываете сервисы для работы с медиаконтентом, цифровые архивы или обучающие программы, этот проект дает пару отличных возможностей:

  • Использование Java API. Вы можете подключить Audiveris как библиотеку к своему проекту и автоматизировать обработку нотных PDF-файлов на сервере.
  • Доступ к исходной структуре документа. Формат .omr содержит подробную информацию о геометрии распознанных элементов, что удобно для анализа или обучения собственных моделей.

Ступень вхождения здесь вполне адекватная, а закрытый лицензией AGPLv3 код дает хорошее представление о том, как строить сложные гибридные системы обработки изображений.

Итоги

Если перед вами стоит задача оцифровать нотные архивы или встроить распознавание партитур в свое приложение, смотреть в сторону проприетарных утилит за сотни долларов теперь необязательно. Audiveris демонстрирует прагматичный подход к OMR: сочетание автоматических алгоритмов с удобной ручной корректировкой дает отличный практический результат.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.