Как стать автором
Обновить

Как линуксовый админ управлял детским хором с помощью системы распознавания нот под Ubuntu 16.04. Микрофон и аккорды

Время на прочтение 4 мин
Количество просмотров 11K
Что нужно, чтобы лето проходило весело? Нужна музыка! Но если музыка записана нотами на бумаге, а вы — обыкновенный системный администратор, и вам поручили задачу создать детский хор, то в качестве одного из вариантов решения этой проблемы представляю несколько полезных программ. Они написаны на Java и доступны как в репозитарии Ubuntu 16.04, так и на Гитхабе для решения задачи машинного распознавания нот, создания музыкальных партий, выгрузки и редактирования получившегося музыкального продукта в популярные форматы и раздачи файлов (а также и подзатыльников) отдельным исполнителям. Тема, я надеюсь, будет интересна читателям нашего блога.(UPD1. Есть добавление по системе оптического распознавания TESSERACT 5.0.0-alpha для быстрой работы системы на современных процессорах.)

image

image

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

Располагая одним ноутбуком с установленной Ubuntu 16.04, админ решил задачу следующим образом.

1. Установка мощного бесплатного редактора нот MuseScore.

Общий вид с открытой детской песней «Моя Россия».

image

Можно открыть и MIDI файл:

image

Работает и с файлами караоке.

image


Если у кого есть MIDI-клавиатура, то и ее можно подцепить к программе для редактирования и ввода нот.

2. Было взято несколько популярных партитур. Примеры — на скриншотах. Песни, разумеется, популярные, поэтому и так уже набили оскомину, хоть хором, хоть соло!

3. Но мы-то в 21 веке живем. Решено было попробовать спеть что-нибудь новенькое. Но выяснилось, что весело подпевая программе, никто не знает нот. Что в таком случае делает линуксовый администратор?

А. Ставит систему распознавания OCR TESSERACT. Например, отсюда: https://github.com/tesseract-ocr/tesseract/wiki. Будьте внимательны, нужно поставить не 4.0, а предыдущую версию — 3.5.
Обязательно проверить установку языков, которые точно используются в музыкальных произведениях и нотах (английский, итальянский, немецкий, французский, русский).
UPD1.
sudo apt-get install libleptonica-dev
https://github.com/DanBloomberg/leptonica
Leptonica 1.74.4
git clone --recursive https://github.com/DanBloomberg/leptonica
cd leptonica

./autobuild
./configure
./make-for-auto

sudo make
sudo make install

Прим. Лептоника хочет быть разделяемой библиотекой.
Tesseract 4.0
git clone --depth 1 https://github.com/tesseract-ocr/tesseract.git tesseract
cd tesseract
./autogen.sh
./configure --enable-debug
LDFLAGS="-L/usr/local/lib" CFLAGS="-I/usr/local/include" make
sudo make install
sudo ldconfig

test Tesseract
$ tesseract imagename outputbase [-l lang] [--psm pagesegmode] [configfiles...]
$ tesseract 1.jpg 1.txt -l chi_sim

Если
$ tesseract -v
вернет
tesseract 5.0.0-alpha
leptonica-1.80.0
libjpeg 8d (libjpeg-turbo 1.4.2) : libpng 1.2.54 : libtiff 4.0.6 : zlib 1.2.8
Found AVX
Found SSE
Found OpenMP 201307
Found libcurl/7.47.0 OpenSSL/1.0.2g zlib/1.2.8 libidn/1.32 librtmp/2.3

Значит, вы добились нужного результата!

https://github.com/tesseract-ocr/tessdata/blob/master/eng.traineddata
https://github.com/tesseract-ocr/tessdata/blob/master/rus.traineddata
https://github.com/tesseract-ocr/tessdata/blob/master/fra.traineddata
https://github.com/tesseract-ocr/tessdata/blob/master/deu.traineddata
И еще два действия:
https://github.com/tesseract-ocr/tessdata #These language data files only work with Tesseract 4.0
sudo mv eng.traineddata /usr/share/tesseract-ocr/tessdata
export TESSDATA_PREFIX=/usr/share/tesseract-ocr/tessdata

или
sudo mv /usr/local/share/tessdata /usr/local/share/tessdata.bak
sudo ln -s /usr/share/tesseract-ocr/tessdata /usr/local/share/

Перед запуском системы распознавания проверяем:
  1. Наличие всех требуемых языков.
  2. export TESSDATA_PREFIX=/usr/share/tesseract-ocr/tessdata


Б. Устанавливает потрясающую систему распознавания нот! Единственно, ограничение — 300DPI сканирование, не более 3,5 МБ одна страница в PDF.
Ставить надо отсюда:

$> git clone https://github.com/Audiveris/audiveris.git
cd audiveris
gradlew.bat clean build
./gradlew clean build
./gradlew run
./gradlew run -PcmdLineArgs="your,arguments,here"

Для работы с одним-двумя листом партитур конфигурации по-дефолту хватает, но для оркестровых вещей рекомендую билдить и запускать не менее, чем -Xmx=11G.

Если все правильно установлено, то запуск надо осуществлять из директории, куда отработала команда git clone.

Интерфейс выглядит так:

image

Пользоваться надо так:

1. Открыть файл PDF.

2. Book -> Trancribe book

3. Дождаться распознавания нот.

Начало работы:

image

4. Экспортируем получившийся Music XML 3.0 через Book->Export.

5. Открываем файл в MuseScore и экспортируем из него в формат MP3.

Слушаем и наслаждаемся.

image

UPD1. Оригинал для сравнения.
image
image

6. Если не терпится записывать микрофонные пассажи местных «соловьев» с фальцетной распевкой, то на этот случай тоже есть прикладная микрофонная программа Nootka.
Это хороший вокальный тренажер. Может заставить петь гаммы по нотам, может проверить слух, может помочь настроить инструмент. Графически показывает, насколько точно вы попадаете в ноту, и если попадаете, то он рисует ее на нотоносце. Например, эта же мелодия в моем исполнении.

image

7. Еще одна жизненная ситуация. Нет под рукой гитары, а гитарные соло хочется послушать.
Или накидать аранжировку. Сравнить качество разных аранжировок. Представляю программу
TuxGuitar. Бесплатная, идет в репозитарии Ubuntu.

image

Для работы с нею необходимо экспортировать полученный ранее файл Music XML 3.0 в
формат Guitar Pro, Tux Guitar или PowerTab. К сожалению, в новой версии MuseScore прямой
экспорт был отключен. Привожу пример с ранее сделанным экспортом.
image

UPD2. В комментариях подняли вопрос многологосья.
Уважаемые друзья, привожу еще несколько скриншотов музыкального редактора, связанного с созданием многоголосой (оркестровой) партитуры.

Главное меню -> Файл -> Создать партитуру.
image
В партитуре -> Выбор инструментов оркестра (голосов).
image
Выбор тональности.
image
Полученная готовая пустая многоголосая партитура.
image

Краткое заключение. Заметка написана для людей, которые очень-очень хотят услышать незнакомые ноты, владеют администрированием, но не играют на музыкальных инструментах.
А хор администрировать тоже надо.

Посвящаю эту заметку моим незабвенным преподавателям: Надежде Николаевне Кулепётовой и Валентину Анатольевичу Лапушкину.
Теги:
Хабы:
+29
Комментарии 33
Комментарии Комментарии 33

Публикации

Информация

Сайт
www.rdtex.ru
Дата регистрации
Дата основания
Численность
101–200 человек
Местоположение
Россия

Истории