Угадай мелодию
АрхивПолезняшки (архив)Компьютерным распознаванием печатного текста уже никого не удивишь, над качественным распознаванием слитной речи тоже бьются светлые умы. Теперь настал черед распознавания музыки.
Ну очень интересно, чтобы компьютер выдал нотную партитуру, "прослушав" просто насвистывание в микрофон. Еще хотелось бы развлечения ради конвертнуть живой музон из WAV-файла в MIDI-файл, пусть даже не в реальном времени и не сохранив при этом вокальных партий (понятно, что для вокала в MIDI никаких WAVETABLE не наберешься). Найдется масса желающих наиграть что-нибудь на гитаре, а затем распознать ноты своего творения и, подправив все в миди-редакторе, наложить другие инструменты. Согласитесь, приятно было бы к электронно-почтовому поздравлению подцепить собственноручно сделанный MIDI-файл (всего-то в пределах сотни килобайт) с любимой мелодией виновника торжества! На пересылку музыки в форматах MP3 или VQF не каждый разорится: файлы оных весят несколько мегабайт. О полном распознавании трэков непосредственно с "сидюков" и конвертации в MIDI пока остается только мечтать, но мечтать, как известно, не вредно.
Владельцы звуковых карт без таблично-волнового синтеза законно возразят: "мидийный" звук удовольствия мало доставляет. Обладатели карт покруче и сэмплов к ним помузыкальнее имеют противоположное мнение. Одно дело слушать звук того же электрооргана живьем в MIDI, совсем другое - многократно перезаписанный да перемикшированный с тиражируемого CD, причем, в большинстве российских случаев, известного "замеса". Это две бо-о-ольшие разницы, смею вас заверить. И не надо иметь утонченный музыкальный слух, чтобы прочувствовать эту разницу.
Справедливости ради надо признать, что автор MIDI-композиции фактически аранжирует музыкальное произведение по-своему, на свой манер и вкус. Казалось бы, ввел ноты в навороченный CakeWalk - и автоматом получишь результат. Ан нет, такой результат мало кто будет слушать, не говоря о том, чтобы еще и деньги за прослушивание платить. Здесь на секунду отвлечемся, поскольку для конвертирования-сканирования нотной партитуры с листов бумаги в формат MIDI (в своем роде тоже распознавание) служат специальные программы, например, MIDISCAN. Среди всего изобилия MIDI-музыки произведений, ласкающих слух, кот наплакал. Любителям Deep Purple повезло. То ли творения этой легенды хард-рока создавались в MIDI компьютерными последователями с самой беззаветной любовью, то ли Deep Purple сочиняли музыку как будто специально для MIDI, но великолепный результат налицо. Склоняюсь к мысли, что феномен "мидийности" Deep Puple все-таки существует. Есть удачные переложения и других "рок-посевов" (Metallica, Scorpions). А вот поклонники творчества Pink Floyd вряд ли станут слушать их переложение на MIDI, по крайней мере, мне удачных аранжировок найти не удалось. Неплохо звучит практически весь джаз, пожалуй, исключая авангардные вещи. Классика упорно не желает влезать в MIDI-формат, что несколько странно, уж орган Баха качественно переложить, казалось бы, сам Бог велел. Слушая иногда приплывающее из Интернета MIDI-файлы с классикой, так и хочется сказать: "В этом мотиве есть какая-то фальшь". В чем причина разной степени адаптации к MIDI той или иной музыки - остается только гадать. Но вернемся к распознаванию.
На днях попался под руку Music Composer версии 1.45, который якобы шумозащищенный и должен переводить в MIDI полифоническую музыку. Насколько это передовой представитель программного обеспечения распознавания музыки - сейчас попытаемся выяснить. Для начала Music Composer использовался в качестве MIDI проигрывателя, и первое впечатление было обнадеживающим.
Возможность регулировать уровень громкости каждого инструмента по отдельности, конечно, радует. Но когда я решил сделать один из инструментов потише и с помощью мышки подвинул регулятор до нужного положения, звук вдруг исчез и появился снова только через несколько секунд. Неприятно, но это мелочи жизни. Что еще из приятного? Если есть необходимость послушать звучание одного инструмента, например, бас-гитары, то программа сделает это легко. Достаточно поставить галочку в столбце SOLO напротив выбранного инструмента. Нужно услышать бас-гитару одновременно с ударными, еще с чем-либо? Нет проблем, помечаем галочками нужные инструменты в столбце On.
Дальше - хуже. Читая коротенький "хелп" (есть чудаки, которые сначала его читают, потом на кнопки давят), узнаем, что полифония не означает распознавания одновременно нескольких инструментов. AKOFF предупреждает: распознан может быть только один инструмент (или голос). Причем распознаются основные музыкальные тона с С3 до В8 в пределах шести октав. Вот такая полифония.
С регулятором входной чувствительности надо подружиться. Сначала я наугад выставил чувствительность, соответствующую некому уровню 16 дБ, любезно отображаемому программой.
AKOFF с усердием пытался что-нибудь распознать, и с микрофона, и WAV, но не выдавал ни результата, ни сообщения, просто не оживала кнопка PLAY. Тогда я передвинул регулятор чувствительности до упора вниз, что соответствовало -60 дБ, а уровень записи в микшере к звуковой карте вывел на 75%. Сграбленный ранее с компакт-диска пятиминутный стерео WAV-файл, преимущественно с джазовым фортепиано, обработался программой подозрительно быстро. К примеру, конвертация из WAV в VQF на том же компьютере занимала гораздо больше времени. Затаив дыхание, нажимаю на PLAY и… выпадаю в осадок. Поскольку время от времени в исходном материале появлялись ударные и контрабас, то AKOFF не поленился их приобщить за компанию к фортепиано, естественно в интерпретации звучания последнего, и что из этого получилось - представить несложно. Помучившись с итерациями чувствительности (-32 дБ и 48 дБ), я решил больше не пытать счастья с полифонией.
Личный теоретическо-практический багаж даёт основание утверждать: сколько чувствительность ни подгоняй, а звуки других инструментов будут пролезать из-за перекрытия в частотном диапазоне. То есть, если основные частотные компоненты разных инструментов имеют близкую амплитуду, то при большом пороге (он выступает в роли планки по чувствительности) инструменты, в принципе, еще неразличимы, а при чуть меньшем - уже неразличимы. Поясню на условном примере. Пусть стоит задача распознать бас-гитару в присутствии "дисторшн"-гитары. Для бас-гитары характерно наличие в спектре ярко выраженной частотной компоненты в районе 70 Гц, которая вдобавок имеет максимальную амплитуду.
Для "дисторшн"-гитары в этой области частот пик спектра имеет значительно меньшую амплитуду. В остальных областях картина неоднозначна, но если въедливо покопаться, то можно выудить и другие частотные области, в которых различия заметны, хоть и в меньшей степени. Выделяя сигнал в данной области тем или иным способом и эмпирически задавая некоторый порог, осуществляют распознавание (это самый простейший подход). Если порог превышен - значит, звучит бас-гитара. Предполагается, что чем больше контролируемых областей, тем меньше вероятность прокола с распознаванием. Правда, возникают трудности, когда, грубо говоря, для одной половины частотных областей порог превышен, а для другой - нет. На практике все гораздо сложнее, поскольку амплитуда любой частотной компоненты не постоянна во времени. Если бас- и "дисторшн"-гитара будут звучать одновременно, то в один момент времени может доминировать бас, а в другой момент - "дисторшн", или обе будут сравнимы по мощности в той или иной области частот.
На данном рисунке представлено поведение одной выбранной частотной составляющей во времени по отдельности для каждой из гитар. Из рисунка видно, что в районе 0.5 сек порог локально превышен, и "дисторшн"-гитара внесет свою лепту, тогда как по истечении 1.5 сек присутствие звучания бас-гитары не будет учтено.
Более того, в конечном итоге надо распознавать ноты, а значит "прыжки" характерных спектральных составляющих в частотной области. Т.е. в идеале необходимо учитывать поведение сигнала как в частотной, так и во временной областях.
Вернемся к AKOFF. Беру старый добрый микрофон "Октава" МД-80А, уж не взыщите, и напеваю "па-а-ба-ба, па-па-ба-ба-ба-па-а-ба-ба" (хотя программой рекомендовано использовать конструкции из "ту-ту тю-тю":)). Индикатор чувствительности попрыгал в такт столбиками зеленого и красного цвета. Что это значит, уже не так важно (связано со злополучным порогом), главное, распознавание в реальном времени произошло. Жму PLAY. AKOFF ожил и заиграл, прорисовывая зелёненьким авто-нажатия клавиш. Сам я певец, особенно на публику, никудышный, но кажется, программе удалось из моих экзерсисов более-менее беспристрастно сделать звуки фортепиано. Вместо фортепиано можно выбрать другой инструмент из длинного списка (зависит от аудиокарты).
На закуску задачка проще некуда: создать моно WAV-файл (11 кГц, 16 бит) с записью одной акустической гитары. Худо-бедно, с непонятно откуда берущимися заиканиями, результат все-таки удалось получить. Однако он, мягко говоря, не вдохновил на дальнейшие эксперименты, и платить 20 у.е. за регистрацию продукта с получением возможности сохранять этот самый результат на диске как-то быстро расхотелось.
Итак, резюме. У музыкантов, скорее всего, будет много претензий к AKOFF Music Composer. Тем не менее, в целях начального обучения "по пению" и превращения своего голоса в звуки инструментов данная программа может с успехом использоваться. Судя по подозрительной шустрости и скромному размеру, а также относительно безобидным графическим глюкам с обновлением содержимого окон программы, AKOFF не претендует на "орден, а согласен на медаль". Стратегия фирмы очевидна: главное - забить место на рынке, а там видно будет. С каждой последующей версией можно будет продвигаться вперед, к совершенству, и вширь, завоевывая новых клиентов и ублажая заверениями старых. Лучший пример успеха такой стратегии - доходы хорошо известного каждому великого "микро-мягкого". AKOFF-проигрыватель имеет все шансы прижиться на российских просторах, так как "шароварность" распространения данного продукта накладывает ограничения только на распознавание, а проигрывать MIDI можно абсолютно на халяву.
Изрядно поплутав во всемирной паутине, прихожу к заключению, что конкуренты не особо наступают на пятки AKOFF, и сравнительное тестирование устраивать, честно говоря, не из чего. По большому счету, в этой статейке речь идет не о AKOFF как таковом, а о принципиальных подходах и о перспективах на ближайшее будущее.
Разработчики Music Composer призывают к снисхождению, смело заявляя, что вычислительных ресурсов компьютеров всего мира не хватит, чтобы распознать звучание симфонического оркестра. Пожалуй, зря AKOFF замахнулся на полифонию (использование этого слова - чистой воды рекламная уловка), не говоря уже о распознавании в реальном времени на обычном PC (P133 и выше, Windows 95/98/NT). Принципы "лучше меньше да лучше" и "от простого к сложному" как нельзя кстати применительны к убедительному внедрению качественного распознавания музыки. Пусть распознавания одной тривиальной гитары, зато качественного. Если говорить о перспективах, то думаю, что уверенно распознавать тип инструмента в полифонической музыке начнут в самое ближайшее время, корректно применяя современные нейросетевые распознаватели. Не хватает вычислительной мощности доступного массам процессора, чтобы не выглядеть смешным тугодумом в глазах компьютерной общественности, - так почему бы не задействовать DSP (Digital Signal Processor), имеющийся на борту последних звуковых плат? Обработка в реальном времени колоссально возросших потоков аудио-, видео- и прочих данных без использования специализированных дополнительных процессоров - не лучший путь, по крайней мере, для нашего с вами кармана. Тогда как применение того же недорогого DSP позволяет повысить производительность в 100 и более раз в зависимости от конкретной задачи. Господа хорошие, даешь многопроцессорность в 21 веке!