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

Что нужно, чтобы лето проходило весело? Нужна музыка! Но если музыка записана нотами на бумаге, а вы — обыкновенный системный администратор, и вам поручили задачу создать детский хор, то в качестве одного из вариантов решения этой проблемы представляю несколько полезных программ. Они написаны на 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

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

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

Комментарии 33

    +4
    Читая заголовок подумал, что статья про распознавание с микрофона.
      0
      Сейчас пару скриншотов и про микрофон с табулатурой выложу.
      +1
      А как насчёт ошибок распознавания? Оно и ноты распознаёт так же как текст «LET rr BE»? Моё музыкальное образование ограничено средней школой, но мне вот кажется, что паузы как-то странно расставлены. Можно скан оригинала посмотреть?
        0
        Да, с некачественным сканом есть проблемы. Можно принудительно поставить язык, но от ручной коррекции это мало избавляет.
          0
          паузы как-то странно расставлены
          Всё нормально, паузы расставлены для каждого голоса отдельно.
          +1
          Так а что в итоге с хором-то делали? В статье описаны инструменты (редактор нот, распознавание нот), но как этими инструментами пользовались в описанной ситуации?
          (По заголовку показалось вообще, что статья о том, как администратор компенсировал нехватку знания нот на слух машинным распознаванием, чтобы определять, кто из учеников не попадает в ноты)
            0
            Правильно показалось, да, в поставке задачи написано верно — есть много людей, которые поют в караоке, но мало кто может петь в хоре.
            Далее — редактором дали каждому его партию, показали ритм. Подстроили гитару. Ну и репетировали, пока дожди шарахают по веранде.
            0
            Сам когда то пытался идти похожим путём. В принципе — вполне имеет право на жизнь! Но в итоге оказалось, что всё таки, нужно нотную грамоту изучить, хотя бы на уровне 2-3 класса ДМШ. И желательно с освоением фортепьянной клавиатуры.
              +1
              Еще раз пишу, нет музработника, нет образования. Есть только умение админить, микрофон и один свободный вечер до концерта. Ну что делать при этом? Своего рода статья про музыкальный «аджайл».
                +2

                Да я ведь и без претензий сказал! Я сам абсолютно без какого либо образования, и даже когда-то писал софт для помощи себе в обучении вокалу. Но в итоге, всё равно пришёл к тем выводам, что я озвучил. Совсем не хотел Вас задеть.

                  0
                  Наоборот, спасибо за отзыв. Если еще и микрофонную часть посмотрите будет, вообще хорошо.
              0

              Мне тут трудно судить, я не очень хорошо разбираюсь в линукс системах. Но сам в итоге я пришёл к внешней звуковой карте и ASIO канал. Это очень мне помогло в работе так как практически ушла задержка при записи звука под минус, а без этого нереально заниматься самостоятельно над произведением.

                –1
                Извините, я понимаю о чем вы говорите, но сами ASIO — драйвера — тема отдельной статьи. Мне надо было что-то быстро сделать. А «доехать до магазина, купить там Creative 128 голосов, потом взять с собой в лагерь» — зачем мне это? Я же не студийный работник.
                0

                Вот и я о том же. Но это затягивает со временем ;)

                  +1
                  Так это и хорошо. Одна из целей этой статьи — показать богатство и мощь даже простого дистрибутива с рекомендуемыми программами. Информация собиралась с нескольких форумов. А тех, кого это дело затянет, может быть напишут как запускать профессиональные звуковые карты под бесплатными дистрибутивами. Конечно, есть штуки типа Сибелиуса, но их надо осваивать, как и популярную DJ программу Tractor.
                  –1
                  Простите, я не понял, а зачем все это было делать? Цель — получить mp3?
                  Разве в интернете тяжело найти ноты, тексты и готовые аранжировки в mp3?
                    +1
                    Извините, вы не думаете, что интернета может не быть совсем?
                    Цель — обучение хора. Выложите сюда ноты на хор хотя бы на 4 голоса. Могу сказать, что для популярных песен это сделать, может быть, получится. Вы бы радовались, если дети всю смену в интернете просидели? Насчет правового поля вообще умолчу.
                      –1
                      1. Если нет интернета совсем, откуда админ ставил библиотеки?
                      2. Это лагерь для музыкально одаренных детей? Я, например, и сейчас не разберусь что там с 4мя голосами. Или у админа все же было музыкальное образование?
                        0
                        1. Админ себе нашел березу, сел на ней, когда понял, что надо делать.
                        2. Нет, для обычных детей. 4-голоса — обычная типовая вокальная оркестровка. Не все поют фальцетами, у многих уже есть голоса. Образования не было.
                    0
                    а часть про распознавания какие ноты берет хор по партиям будет, что бы знать кто фальшивит?
                      0
                      Извините, Вы невнимательно читали. Ноотка — вокальный тренажер. Можно найти детей с хорошим слухом и поставить их на сольные партии.
                      0

                      Соглашусь с комментаторами, что связь заголовка с текстом незаметная. За сборник софта спасибо.

                        0
                        Да, а как бы вы сформулировали заголовок? Получается или очень технически, или очень по-детски. Длина — то ограничена. А написать «Как админ смог стать дирижером за одну ночь: система распознавания печатных, звучащих нот и аккордов» — лучше?
                          0
                          Ожидается увидеть заявленное
                          управлял детским хором

                          а получается установил, настроил инструменты и… всё.

                          По заголовку ожидалось, что будет подробно рассмотрен какой-то практический пример.
                        0
                        С трудом верю глазам. Это Linux! Где Finalé? Где Sibelius???
                        Это всё opensource и работает???
                        Честно, после всех этих GIMP vs Photoshop, Scribus vs InDesign и Kinoma (или как его там) vs Premiere диву даюсь.
                        Редактирование аудио «есть», Audacity вполне пригоден, для сведения дорожек тоже есть «кое что», но вот ноты… Ноты так долго оставались островком суровой проприетарщины. Даже старенький Encore работал лучше, чем все эти поделки лет пять назад. А Finalé казалось просто «Мерседесом» на фоне остального. А сейчас…
                        Серьёзно задумался.
                          0
                          Ну так проверьте, если с трудом верится. Спокойно все можно поставить и поиграться.
                          Вы что думаете, зря Microsoft подписку на продукты вводит? Да потому, что все подсели уже.
                          А тут — голый, но стандартный XML.
                            +1

                            MuseScore, как и lilypond — опенсорсные; есть под все платформы (по крайней мере последний), и очень неплохи!
                            Я сам перелез с finale на lilypond уже два года, как — и всё радуюсь факту, что я могу хранить исходник партитуры на гитхабе (покуда это текст), и открывать на любой платформе, которая под рукой, чтобы что-то подправить, если вдруг надо.

                              0
                              Причем можете сохранять не просто для себя, но и делиться с другими.
                              А это ли не творческое счастье?
                            0

                            Tux Guitar по сравнению с Guitar Pro вообще мало умеет. Даже такой важной функции как затакт не завезли (когда проверял в последний раз). Можно, конечно, обойтись костылем в виде разного размера первого и последующего тактов, но все-таки это костыль.


                            "Накидать аранжировку" уже может быть проблемно

                              –1
                              Да, но… В конце статьи ради вас напишу способ создания партитур на маленький оркестр.
                              0
                              Если бы мог, поставил бы плюс, только за заголовок.) Нет слов.)
                                +1
                                Готовится к выходу вторая серия этого блокбастера. «Управление хором линуксовых админов на рядах Фурье, с применением качественной теории гармонического анализа.»
                                0
                                На таких преподах, как Надежда Николаевна, и держится ещё классическое образование =)) Респект.
                                ДМ32

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

                                Самое читаемое