Решение задачи QBH на основе извлечения признаков: построение платформы для сравнения различных признаков Постановка задачи Последнее время получила достаточно широкое распространение задача поиска музыки по голосу (Query by Humming, QBH). Типичная постановка задачи выглядит следующим образом. Имеется набор музыкальных композиций (как правило, достаточно большого объема), который в дальнейшем будем называть базой. Некоторый человек (будем называть его пользователь) хорошо знает мелодию некоторой части одной из композиции базы и желает найти ее в ней. Пользователь может захотеть найти все исполнения этой композиции независимо от стиля и исполнителя. Для поиска он записывает при помощи любого доступного средства записи (как правило, бытового микрофона) собственное исполнение этой мелодии — либо насвистывая ее, либо напевая в соответствии с его представлением о ней. Запись этого исполнения будем называть запросом. От пользователя не должно требоваться специальных вокальных навыков. Задача поиска музыки по голосу тогда ставится так: по запросу необходимо выдать из базы все исполнения композиции, содержащей эту мелодию. В этой работе нас будет интересовать, прежде всего, качество поиска и влияние на него выбора различных признаков. Здесь не будут рассмотрены вопросы эффективности реализации этих признаков в практических системах. Это позволит нам рассматривать достаточно широкий спектр алгоритмов, лучшие из которых могут указать направление, в котором следует разрабатывать эффективные алгоритмы, применимые в реальных задачах. Критерием качества поиска, таким образом, мы выбираем успешность процедуры поиска независимо от времени его работы. В этой работе мы покажем, как на основе типичного подхода к решению задачи QBH на основе признаков создать платформу для сравнения различных признаков в решении задачи QBH. Обзор вариантов решений Подходы к решению этой задачи в целом можно разделить на два больших класса [1]. К первому классу относятся методы, использующие для поиска представление музыки в виде некоторой нотации, например, в виде MIDI [2] или признаков, тесно связанных с такого рода нотацией. Такими признаками, например, являются признаки onset-pitch-duration: из аудиоданных извлекается высота ноты (pitch) и промежуток времени, в течение которого эта нота звучит (onset — начало звучания, duration — продолжительность) [3]. Фактически, эти признаки играют ту же роль, что и MIDI. Некоторые исследователи отказываются и от пауз, утверждая, что пользователь слишком плохо их воспроизводит. Так, например, в [4] база представлена в виде коллекции мелодий, заданных как последовательность пар N 1, d1 , N 2, d2 , , N k , dk , где N i — нота, а di — ее длительность. К этому классу относится большая часть исследований задачи QBH (cм., например, [1-7]). К сожалению, такой подход накладывает дополнительные ограничения либо музыкальную базу, либо на сам запрос. С одной стороны, в символическом виде должна быть представлена сама база. Такое представление может быть получено либо при помощи человека, записывающего мелодии в некотором формате (MIDI, код Парсона [7] и др.), либо при помощи транскрибирующих алгоритмов. Несмотря на разнообразие таких методов, они, как правило, обладают существенными недостатками либо требуют наличия дополнительной информации (вплоть до участия работы человека). Самая сложная и неоднозначная задача — выделение отдельных нот из аудио. Поскольку все существующие решения подвержены различного рода ошибкам, алгоритмы поиска дополнительно усложняются для того, чтобы учесть погрешность, вносимую методами создания символического представления. С другой стороны, разбор запроса также представляет собой существенную трудность. На данный момент авторам неизвестен ни один алгоритм, который был бы способен надежно выделить отдельные ноты из запроса для любого стиля напевания (подобной точки зрения придерживается, например, [5]). Эту проблему пытаются решить за счет требований к запросу: так, пользователя просят петь более отрывисто, либо петь специальным образом («та-да-да», «фа-фа-фа») [4, 5, ]. Помимо того, что это ограничение может казаться искусственным для пользователя, оно, вообще говоря, иногда невыполнимо — во-первых, если в мелодии есть легато, во-вторых, иногда дополнительное введение легато упрощает исполнение, что может быть важно для пользователя с малым опытом пения. Более того, множество подходов рассматривают представление базы в виде гомофонических мелодий (в каждый момент времени может звучать только одна нота). Это в некоторой степени оправдано тем, что запрос действительно представляет собой гомофоническую мелодию. Однако это может привести к ухудшению качества поиска. Действительно, существуют композиции, в которых одновременно звучит несколько мелодических линий. Пользователь может запомнить и напеть некоторую комбинацию из этих линий, которая не будет совпадать ни с одной из мелодических линий, извлеченных для хранения в базе. В свете вышеизложенного более красивыми и потенциально более продуктивными подходами представляются подходы, принадлежащие второму классу. К ним относятся те методы решения задачи QBH, которые используют признаки, полученные непосредственно из аудио-сигнала, представляющего композиции базы или запрос пользователя. Задача учета недостатков воспроизведения мелодии пользователем переносится на этап вычисления признаков, что позволяет упростить алгоритмы поиска. Из этого также следует, что признаки должны быть достаточно грубыми. С одной стороны, это должно снизить количество ложных несовпадений (т.е. случаев, когда искомая мелодия отбрасывается). С другой стороны, это избавляет поиск от тех ошибок, которые вносятся в рассмотренных выше подходах алгоритмами отслеживания высоты звука и алгоритмами разбиения на ноты. Учитывая все вышеизложенное, далее будем рассматривать только алгоритмы поиска музыки по голосу, принадлежащие второй категории. Заметим, что мы не будем относить те методы, которые используют признаки onset-pitch-duration, ко второй категории, поскольку эти признаки излишне точны, следовательно, в достаточной степени подвержены влиянию ошибок, вносимых процедурой извлечения признаков, и неточностей в воспроизведении мелодии пользователем. Авторам не приходилось встречать работ, посвященных изучению влияния вычисления признаков на поведение рассматриваемых алгоритмов поиска. Целью этой и последующих работ является устранение этого пробела. Общее устройство решения задачи QBH на основе извлечения признаков В этом разделе мы рассмотрим схему решения задачи QBH, следуя принципам, изложенным в статье Курта и Мюллера [8]. В отличие от авторов, проводивших рассуждения только для специального вида признаков (CENS), мы обобщим изложение для произвольных признаков. Рассмотрим, какие шаги проводятся для поиска очередного запроса Q в базе D . Заметим, что многие из них идентичны для запроса и базы; в то же время из дальнейшего будет очевидно, что действия над базой производятся независимо от действий над запросом и должны быть совершены один раз, до начала приема запросов. В дальнейшем с учетом этой оговорки все действия над базой и запросом будут для удобства описываться так, как если бы они проводились одновременно. 1. Вычисляется последовательность векторов признаков для базы w , w , v , v , 0 0 1 1 , wM 1 . Вычисляется последовательность признаков для запроса vN 1 . Каждый из векторов v i , w j лежит в пространстве L . Будем обозначать функцию расстояния между векторами как . Она должна удовлетворять всем свойствам, которые обычно требуют от функции расстояния (неотрицательность и равенство нулю только для совпадающих элементов, симметричность, неравенство треугольника). Ясно, что выбор функции зависит от характера признаков. Для улучшения качества поиска (учета глобальных отклонений запроса в темпе, тональности и т.д.) может составляться несколько запросов (обозначим их число N Q ). 2. Рассмотрим метод диагонального сопоставления для поиска соответствия (совпадения). Соответствием (совпадением) будем называть пару k , N , где k 0 : M 1 — позиция соответствия, N 1 : M 1 — длина соответствия, то есть запрос Q соответствует последовательности признаков базы w , k wk N 1 . В методе диагонального сопоставления вычисляется мера расстояния между запросом и фрагментом из базы на позиции i 1 N 1 1 wi n , vn , i 0 : M N . i : N n 0 , i M N 1 : M 1 Ясно, что наилучшим соответствием является пара i 0 , N , где i0 arg min . Для поиска второго, третьего и далее лучших соответствий из поиска исключается окрестность i0 . Происхождение названия этого метода становится ясно, если заметить, что приведенное выражение для i 0 : M N равно сумме диагоналей матрицы wm , vn mn . Этот метод рассмотрен для одной последовательности векторов признаков запроса. В случае множественных запросов поиск производится следующим образом: минимум ищется как min 1 i , N Q i , где каждая из функций расстояния вычисляется отдельно. После того, как найден очередной лучший запрос, из области поиска выкидывается окрестность позиции соответствия для всех функций расстояния. Этого метода могло бы быть достаточно для решения задачи, но он неэффективен (требует операций в количестве, пропорциональном размеру базы) и, что хуже, слишком строг. 3. Построение словаря. Все множество возможных векторов признаков обозначим как F . Рассмотрим квантующую функцию Q : F 1 : R : Q v arg min r 1:R v, cr , где — функция расстояния между признаками, а cr C R c1, cR — некоторому множеству векторов, которое будем называть словарем. В случае, если arg min выдает несколько значений, выбирается случайное. Отдельная задача — выбор словаря C R . Первый подход является универсальным и подходит для различных признаков. Он основан на алгоритме Линде-Бузо-Грея (LBG) [11, 12]. В качестве меры расстояния принимается . Пусть изначально имеется заданный объем словаря R . Применим итеративный подход. На первом шаге словарь C R0 c10 , , cR0 выбирается произвольным образом. При переходе на каждый новый шаг l вычисляется функция ошибки как среднее расстояние между вектором базы и соответствующим ему вектором из словаря, составленного на предыдущем шаге: l 1 wm , cQl l w , m M где Q l w — функция квантования по словарю C Rl . Алгоритм останавливается, если ошибка становится меньше порогового значения. В противном случае вычисляется новый словарь: для каждого кластера, составленного на предыдущем шаге, создается новый вектор, равный r центру масс старого кластера. Обозначим через Prl Q l 1 множество признаков, отнесенных квантующей функцией Q l к классу r . Тогда все векторы словаря пересчитываются следующим образом: crl 1 1 Prl v . vPr На этом этапе надо быть осторожным, так как если признаки нормализованы, то к полученному центру масс необходимо применить проекцию на сферу соответствующей размерности. Другой возможный подход — применение априорного знания о полученных векторах признаков. В некоторых случаях можно составить универсальный словарь, базируясь на специальных свойствах тех или иных признаков. Это возможно, например, для признаков CENS, о чем будет рассказано подробнее в разделе, посвященном этим признакам. Преимущества у этих способов различны. Первый хорош тем, что позволяет выбирать словарь произвольного размера, в то время как размер словаря во втором методе диктуется особенностями признаков и поэтому фиксирован. В то же время, первый метод требует базы для обучения. К тому же, второй метод может дать предположительно лучший результат. Это приводит к решению использовать в тех случаях, когда возможен второй подход, оба с тем, чтобы сравнить их между собой. 4. Индексирование и поиск точного соответствия. База представляется в квантованном по словарю виде Q W r0, r1, , rM 1 , rm Q wm . Строится инвертированный индекс L r m 0 : M 1 | rm r , r 1 : R . Квантуется полученную последовательность обозначим s 0, s1, и запрос — , s N 1 . Назовем точным соответствием ситуацию, при которой имеет место полное совпадение последовательности Q V и подпоследовательности Q W той же длины. Множество всех точных совпадений можно вычислить так: n 0:N 1 L s n , n где операция вычитания имеет поэлементный смысл. Корректность этой формулы следует из следующего рассуждения: на позиции k имеется соответствие, если и только если n 0 : N 1 sn находится на позиции k n в Q W , то есть k n L sn , но тогда k L sn n . 5. Индексирование и нечеткие соответствия. Поиск точных соответствий слишком строг и почти наверняка приведет к большому количеству ложных несовпадений (искомый запрос не попадет в список лучших). Ослабим условие соответствия, применяя вместе следующие два (независимых) подхода: нечеткое сравнение и поиск, устойчивый к ошибкам. a. Нечеткое сравнение Квантующая функция, рассмотренная выше, на самом деле достаточно «опасна». Действительно, если вектор находится на границе кластеров, достаточно небольшой ошибки, чтобы значение квантующей функции изменилось. Возьмем вместо квантующей функции многозначное отношение, сопоставляющее вектору признаков не одно значение (класс), как раньше, а множество, состоящее из этого значения и нескольких соседних, т.е. Q v r | v, cr , Q . Новое отношение применяется ко всем векторам запроса V : Q V S 0, S 1, S N 1 .Будем говорить, что пара k , N является нечетким соответствием, если n 0 : N 1 rk n S n . Обратные списки теперь выглядят так: L Sn L s . sS n Вычисление множества нечетких совпадений производится аналогично случаю точных соответствий. b. Устойчивый к ошибкам поиск Идея проста: разрешим не более ошибок в соответствиях. Формально: введем : 0 : M 1 0 : N , m : n 0 : N 1 | m L S n n и будем говорить, что k , N — нечеткое соответствие с не более чем ошибками, если k N . Подсчет этой функции производится либо при помощи динамического программирования [9], либо при помощи хэширования [10]. 6. Ранжирование Искомая мелодия может встречаться в различной аранжировке в базе, равно как и встречаться несколько раз в одной композиции. Могут быть найдены похожие в некотором смысле мелодии, возможно, далекие от того, что предполагал пользователь. Это приводит к необходимости научиться вводить ранжирование результатов. Рассмотрим двухэтапную процедуру. Первый этап предполагает оценку результатов по количеству ошибок, разрешенных при отказоустойчивом поиске. Вспоминая, что на самом деле в поиске участвует несколько запросов с различными длинами, нормируем эту оценку по длине найденного соответствия: k 0,1 . N Этот инструмент оценки результатов поиска, однако, достаточно груб, поэтому мы воспользуемся им только для того, чтобы отсеять заведомо нерелевантные результаты. Для этого можно взять только несколько лучших результатов или просто некоторое априорно заданное их число. Второй этап использует определенный выше метод диагонального сопоставления для вычисления функции расстояния для небольшой окрестности лучших соответствий, полученных после первого этапа. Окончательное ранжирование производится по полученной функции расстояния. Попробуем коротко сформулировать основные принципы. k , N : Признаки квантуются некоторым словарем, то есть рассматриваются последовательности символов из относительно небольшого (до 1000 символов) словаря. Для улучшения поиска из одного запроса могут составляться несколько запросов для учета глобальных темпоральных и тональных отклонений. Индексация производится по методу обратных списков. Сравнение можно эффективно реализовать на его основе. Для устойчивости к ошибкам применяется нечеткое квантование и сравнение по принадлежности, а не по равенству. Разрешается некоторое количество ошибок при сравнении. Выводятся только соответствия, относительное количество ошибок для которых больше порогового; они ранжируются по функции расстояния, полученной методом диагонального соответствия. Признаки для задачи QBH В этом разделе мы опишем признаки, которые могут применяться для решения задачи QBH способом, описанным выше. CENS-признаки Вычисление признаков CENS (Chroma Energy Normalized Statistics) основывается на идее рассматривать в качестве главного аспекта музыки интонационный аспект, то есть мелодию и гармонию. Восприятие интонационного аспекта тесно связано с возможностью человеческой слуховой системы определять высоту звука. Поскольку построение CENS-признаков использует теорию восприятия высоты тона и практические следствия из нее в музыкальной культуре, начнем этот раздел с некоторых сведений из психоакустики и теории музыки. Что такое высота звука? Широко распространено определение, данное в стандарте ANSI-1994: «Высота (Pitch) — это атрибут слухового ощущения в терминах, в которых звуки можно расположить по шкале от низких к высоким. Высота зависит главным образом от частоты звукового стимула, но она также зависит от звукового давления и от формы волны». Подобного определения придерживается и Беранек [ 13]. Пара высот образует интервал. Тип интервала зависит от отношения частот, соответствующих его высотам. Ключевое значение в музыке играет интервал между высотами, частоты которых соотносятся как 2:1, известный как октава. Начиная с 17-18 веков, основная часть западноевропейской музыки строится на основе равномерно темперированного строя. В дальнейшем мы будем рассматривать только музыку, использующую этот строй. Это ограничение является достаточно разумным, поскольку практически вся популярная музыка удовлетворяет этому требованию. Использование равномерно темперированного строя (далее РТС) в некоторой композиции означает следующее: можно считать, что частоты всех высот, встречающихся в этой композиции, содержатся в конечном наборе частот, определяемых этим строем. Обозначим такой набор Fn -EDO — это набор частот для РТС с n полутонами, обозначаемого n-EDO (от Equal Division of Octave — равномерное деление октавы). Как следует из названия, набор получается путем (логарифмического) деления октавы на n равных частей. Существуют строи, основанные на делении других интервалов, но мы не будем их рассматривать. Как правило, n = 12 (классический РТС, применяется практически повсеместно в современной популярной музыке), также существуют (хотя редко используются) строи 24-EDO, 19-EDO, 31-EDO [14]. Мы ограничим рассмотрение случаем 12-EDO. Математически построение набора Fn -EDO можно описать так. Выбирается некоторая основная частота fbase , ей задается некоторый номер pbase . Затем определяется диапазон номеров частот, которые будут входить в набор: pmin , pmax . Тогда набор частот определяется так: Fn -EDO p pbase f p : f p fbase 2 n , p pmin , pmax . Начиная с середины 20 века, принято брать в качестве fbase 440Гц. В выборе остальных констант мы будем следовать Мюллеру [15 ]: pbase 69 , pmin 21 , pmax 108 . Обратим внимание на то, что все ноты для построенного набора разбиваются на n 12 классов. Их называют классами высот (pitch classes). Для музыки они важны тем, что ноты из одного класса играют одну и ту же роль в восприятии гармонии (октавная эквивалентность). Мы будем пользоваться также другим названием классов — хромы (Chroma, «цвет»). Октавная эквивалентность отражена и в системе названий для высот. По традиции, каждая хрома имеет свое имя (например: ля, соль-диез (или ля-бемоль — в РТС 12EDO эти ноты совпадают)). Нота задается номером октавы и названием хромы: так, базовую ноту, соответствующую по современным стандартам частоте 440Гц, принято называть Ля первой октавы. Учитывая введенное понятие хром, перейдем к описанию CENS-признаков. Кратко говоря, каждый вектор CENS-признаков является нормализованным распределением энергии по хромам на небольшом промежутке времени. Более подробно, построение состоит из нескольких этапов. 1. Выделение поддиапазонов (subbands) На этом этапе из исходного сигнала x выделяются поддиапазоны, соответствующие каждой частоте из набора F12EDO . Это осуществляется путем фильтрации x 0 полосовыми фильтрами с центральными частотами fp F12EDO . Символически эту операцию можно выразить так: x 0 x pF pmax p pmin , где x pF — сигнал, полученный на выходе фильтра с центральной частотой f p . Опишем спецификацию фильтров. Для всех фильтров вводится общая добротность Q 25 . Полоса пропускания выбирается так, чтобы ее центральной частотой была f p . Ширина полосы пропускания определяется как w fp . Центральная частота Q располагается в центре полосы пропускания. Таким образом, полоса пропускания w ограничена частотами fpass fp (1). Частоты полос подавления вычисляются 1,2 2 так: fstop fp w (2). Неравномерность в полосе пропускания должна составлять 1,2 1Дб, подавление должно составлять 50Дб [15]. Поскольку при проведении экспериментов необходимо обрабатывать большие объемы данных (порядка десятков гигабайт), авторам потребовалось добиться разумного быстродействия при реализации этого этапа. Это привело к следующим решениям: ускорить фильтрацию — для этого необходимо минимизировать порядок фильтра; сократить объем обрабатываемых данных за счет понижения частоты дискретизации. 1.1. Фильтрация Для фильтрации естественно использовать фильтры с бесконечной импульсной характеристикой (БИХ-фильтры), поскольку для данной спецификации они имеют порядок, существенно меньший по сравнению с фильтрами с конечно-импульсной характеристикой (КИХ-фильтров) [ 16]. Один из распространенных подходов к созданию цифровых фильтров по заданной спецификации заключается в расчете аналогового фильтра с последующим преобразованием его в цифровой фильтр. Говоря подробнее, по изначальной спецификации для полосового фильтра необходимо составить спецификацию для аналогового НЧ-фильтра, а затем, пользуясь известными формулами для аналоговых фильтров, найти его корни и полюса. К полученным точкам применяется билинейное преобразование, переводящее эти точки в корни и полюса соответствующего цифрового полосового фильтра [16]. Исходная спецификация для полосового фильтра была приведена выше. Для аналогового НЧ-фильтра необходимо преобразовать эту спецификацию в значения частот пропускания и подавления p , s . Требования к неравномерности в полосе пропускания и подавлению остаются теми же, хотя для аналоговых фильтров их иногда выражают как относительные отклонения (ripples): p 10 A p 10 s 10 As 10 1 . Также вводят коэффициенты избирательности k p s и k1 1, p s . В качестве аналогового прототипа был выбран эллиптический фильтр. Модуль импульсной характеристики выглядит следующим образом: H 2 1 1 cd NuK 1, k1 2 p 2 Здесь N — порядок фильтра, K 1 K k1 ,K1 2 0 d 1 k12 sin 2 — полный эллиптический интеграл первого рода с параметром k1 , cd — эллиптическая функция Якоби, а u такое, что cd uK , k ( K K k ) [17]. p Несмотря на столь хорошее поведения модуля импульсной характеристики, эллиптические фильтры имеют существенно нелинейную фазовую характеристику. Линейность фазовой характеристики очень важна. Во-первых, нелинейность фазы приводит к искажениям сигнала. Однако даже если бы в пределах полосы пропускания arg H можно было приблизительно считать линейной, то для фильтров с различными центральными частотами групповая задержка отфильтрованного сигнала была бы различной. Это может привести, например, к тому, что нескольким одновременно звучащим нотам будут соответствовать различные участки отфильтрованных сигналов, то есть вместо аккорда получится несколько различных нот. Для обеспечения линейности фазовой характеристики хорошо подходит метод, применяемый и для остальных БИХ-фильтров (forward-backward filtering). Он заключается в том, что некоторого фильтр G применяется для исходного сигнала, затем результирующий сигнал обращается во времени, к нему снова применяется G , и полученный сигнал снова обращается во времени: y f t Gx 0, y fbR t Gy fR (здесь f означает прямую фильтрацию, b — обратную фильтрацию, R — оператор обращения во времени) [18]. Выбор эллиптического фильтра обоснован тем, что он имеет наименьший порядок среди всех фильтров для данного набора спецификаций [16]. Поиск корней и полюсов эллиптического фильтра, а также процедура построения цифрового фильтра подробно описаны в [17]. Для реализации необходимы функции Якоби cd и sn , а также функция sn 1 , в некотором смысле обратная к sn (она сопоставляет w и k такое u , что w sn uK k , k ). Авторам не удалось найти в свободном доступе библиотек, в которых эти функции были бы реализованы, поэтому была написана собственная реализация на основе [17, 19]. 1.2. Минимизация объема вычислений путем понижения частоты дискретизации Поскольку описанная выше процедура фильтрации выделяет из сигнала только те частоты, которые попадают в полосу пропускания каждого из фильтров, нас не будут интересовать те частоты, которые находятся выше верхней частоты пропускания фильтра с самой большой центральной частотой f p . Типичная max частота дискретизации аудио составляет 44100Гц (например, формат CDDA), что позволяет представлять частоты до 22050Гц (частота Найквиста [16]). В то же время, при pmax 108 f108 440 2 108 69 12 4186.009Гц . Видно, что можно значительно сократить частоту дискретизации — до 2f108 8372.018 . Разумеется, при этом необходимо ограничивать спектр сигнала НЧ-фильтром для избежания наложения спектров (aliasing). Развивая эту идею, приходим к фильтр-банку со многими частотами дискретизации (multirate filter bank). Идея заключается в том, чтобы разбить диапазон частот фильтр-банка на подгруппы, в каждой из которых сигнал представлен с общей для этой группы частотой дискретизации. При выборе количества групп и значений частоты дискретизации надо учитывать следующие факторы: Понижение частоты дискретизации в целое число раз n реализуется быстро при помощи прореживания (decimation) — в сигнале оставляются только сэмплы, стоящие на позиции kn , k 0 . Из этого следует правило выбора частот дискретизации: они должны в целое число раз отличаться от исходной частоты. Для НЧ-фильтрации сигнала перед прореживанием должен применяться линейный фильтр с высоким подавлением. Как правило, для этого используется БИХ-фильтр. Как правило, БИХ-фильтры, удовлетворяющие условиям высокого подавления, имеют высокие порядки (1000 и более), что делает понижение частоты дискретизации достаточно трудоемкой операцией. Это накладывает ограничение сверху на количество подгрупп фильтров. Исходя из этого, выбирается немного (например, 3) группы с частотами дискретизации в 2, 10 и 20 раз меньше исходной: f21, f56 , f57 , f92 , f93, f108 [15]. Затем можно двигаться от самой верхней частоты к самой нижней, прореживая исходный сигнал при смене подгруппы. 2. Средняя энергия на коротком промежутке времени (STMSP, Short Time Mean Square Power) На втором этапе для полученных поддиапазонов вычисляется средняя энергия в прямоугольном окне ширины w : w w k n :n 2 2 x pf k 2 . Для дальнейшего сокращения объемов вычислений, полученный сигнал прореживается в d раз. При этом ширина окна w выбирается как 2d 1 , а d рассчитывается исходя из требуемой частоты векторов признаков FST MSP . При этом надо учитывать, что полученные на предыдущем шаге поддиапазоны имеют различные частоты дискретизации в зависимости от подгруппы частот. x x , f p Этот этап можно символически изобразить так: fs p где s означает операцию взятия средней локальной энергии. 3. Нормализованные хромы (Normalized chroma features) Полученные на предыдущем этапе распределения локальной энергии по поддиапазонам преобразуются в распределения по хромам: x y fs p q : yq t x pfs t , q 1,12 yqN , p q mod 12 y t q , y t 0 N 1 где y t y r t , y q t y t . 1 1 r 1 0, y t 1 0 Заметим теперь, что вычисления на этапах 1-2 можно проводить параллельно внутри каждой группы, что также дает возможность вычислять CENS-признаки за разумное время. 4. Квантование 12 0, 0 a 0, 05 1, 0, 05 a 0,1 , a : 2, 0,1 a 0, 2 . 3, 0, 2 a 0, 4 4, 0, 4 a 1 y z , z t y t N1 q N q q q Заметим, что пороги квантования распределены по логарифмическому закону. Это соответствует законам восприятия человеком громкости звука (закон ВебераФехнера, формула Стивенса [21]). 5. Локальная нормализация Последний этап характеризуется парой параметров w, d , имеющих тот же смысл, что и на шаге 2. К сигналам, полученным на предыдущем этапе, применяется окно ширины w , затем он прореживается в d раз. Ширину окна выбирают как w 4d 1 [8]. Полученные сигналы нормализуются аналогично этапу 3, но по Евклидовой норме: z z q w ,d q z w ,d N q , a w ,d N w ,d : zq t zq t q aq , aq 0 a q . 1,1, ,1 , aq 0 12 Результирующая последовательность векторов называется CENS dw . Заметим, что процедура получения CENS dw -признаков из z q не является трудоемкой. Это позволяет быстро получать CENS dw для различных w, d . Такой прием используется в поиске аудио: если для базы получены CENS 1041 , то для запроса получаются CENS d j при d j 7 : 14 , что позволяет учесть отклонения в w j темпе запроса в пределах 40% от темпа соответствующей записи в базе. MFCC-признаки В предыдущем разделе уже упоминалось широко известное определение высоты звука. Как мы отметили, главным образом высота зависит от основной частоты звука. В психоакустике вводится единица измерения высоты чистого тона — мел. За 1000 мел принимается высота (синусоидального) звука с частотой 1000Гц интенсивностью 60Дб (измеряемых относительно 0.0002 микробар). Зависимость этой психофизической величины от физической (частоты) устанавливается экспериментально (подробнее см. [13, 20]). Полученная кривая описывается f приближенным уравнением ясно, что B f 1125 ln 1 ; 700 b 1 B f 700 e 1125 1 [20]. Введем понятие MFCC, или Mel-Frequency Cepstrum Coefficients (коэффициенты кепстр мел-частот). Фактически, это представление исходного сигнала x в виде вещественного кепстр по шкале мел-частот для взятых в некотором окне участков сигнала, полученного из дискретного Фурье-образа X . Под вещественным 1 кепстром понимается преобразование c n ln X e i e id [20] (само 2 слово «кепстр» является перевернутым словом «спектр», указывая на спектральную природу преобразования). Построение MFCC производится следующим образом. Выбирается число коэффициентов в результирующем представлении M и диапазон частот, которые будут участвовать в представлении fL , fH . Рассмотрим M 1 частот fm , равномерно распределенных по B fH B fL N 1 fm B B fL m Fs M 1 шкале . мел в выбранном диапазоне: Для исходного сигнала x 0 , взятого в некотором окне (например, окне Хэмминга) вычисляется дискретное преобразование Фурье (ДПФ) X 0 размера N . Для каждой частоты fm рассмотрим треугольный фильтр с частотной характеристикой H m k , где k — номер ДПФ-ячейки ( 0 k N ): 0, k LF m 2 k LF m H m k , LF m k CF m , R F m LF m CF m LF m 2 RF m k , CF m k R F m R F m LF m R F m CF m 0, k R F m где f , m 0 LF m m 1 ,CF m fm , R F m fm 1 . f ,m 0 L Рассмотрим логарифмическую энергию: 2 n 1 S m ln X 0 k H m k , 0 m M . k 0 Чтобы вычислить кепстр мел-частоты, применим дискретное преобразование (DCT-II): косинус- m 1 2 . S cos n m M m 0 Первые M значений полученного кепстра называются коэффициентами кепстра мел-частот (MFCC) [20]. Заметим, что первый из этих коэффициентов имеет физический смысл энергии сигнала на взятом промежутке времени. Для получения признаков на основе MFCC будем брать M 13 . Вычисления будем производить в окне Хэмминга [16] небольшого размера (200мс) со сдвигом окна 100мс. c n M 1 Описание эксперимента В этом разделе мы опишем устройство платформы для экспериментов с различными признаками и критерии оценки качества поиска. Рис. 1 Изначально для экспериментов выбирается база D . Какие требования разумно предъявить для базы? 1) Требования к характеру записей, содержащихся в базе. С одной стороны, записи должны быть разнообразными (разные стили, авторы, исполнители). С другой стороны, в пределах каждого стиля должно быть достаточно большое количество записей (например, для современной популярной музыки — как минимум один альбом на автора). Хорошее представление о разнообразии стилей можно получить, посетив сайты, посвященные музыкальной тематике ([22, 23]). 2) Требования к размеру базы. Как правило, такие требования задаются общим временем звучания. Размер должен быть достаточно большим, чтобы удовлетворить предыдущее требование. 3) Все записи в базе должны удовлетворять требованиям, предъявляемым всеми признаками, участвующими в эксперименте. Например, CENS-признаки определены только для музыки, построенной в РТС 12-EDO (хотя, как мы замечали, практически вся популярная музыка и академическая музыка 18-20 веков удовлетворяют этому требованию). Для экспериментов также подготавливаются запросы Q j Tj j 1 . Запросы должны содержать мелодии по возможности различных жанров. Для каждого запроса методом экспертной оценки подготавливается список композиций из базы, содержащих этот запрос (т.е. ответы на запросы). Для каждого запроса должна быть хотя бы одна соответствующая композиция в базе. Обозначим эти списки ответов как A j A Q j . Далее, для базы строятся наборы признаков для всех исследуемых типов признаков (их построители обозначены как FE i , от Feature Extractor). Для них выбираются словари C Ri i , причем те типы признаков, для которых возможны несколько вариантов выбора словаря, участвуют дважды с различными словарями. Также возможен вариант, когда один и тот же тип признаков участвует несколько раз с различными значениями R i . Полученные признаки квантуются по словарям C Ri i , по ним строятся инвертированные индексы Li r , r 1..R i (см. рис. 1). Далее, для каждого запроса Q j запускается алгоритм поиска (см. рис. 1). Заметим, что для улучшения качества поиска из каждого запроса может быть произведено несколько; при этом засчитывается общий результат эксперимента. После извлечения признаков и нечеткого квантования алгоритм ранжирующего поиска выдает для каждого из исследуемых признаков ограниченный первыми n лучшими результатами список ответов B nji на запрос Q j . Эксперимент повторяется для нескольких выбранных значений n . Оценка результатов производится отдельно для каждого n следующим образом: качество поиска для каждого запроса Q j определяется как nij A j B nji Aj . Сравнение качества работы признаков будем производить для всех n по среднему по запросам качеству поиска: ni j Tj nij . Дальнейшая работа Авторы надеются в скором времени предоставить работу, в которой будет проведен соответствующий эксперимент. В эксперимент также планируется включить признаки, построенные на основе CENS и MFCC, а также признаки других типов. TODO найти хорошую постановку qbh -> скачать статью A. Ghias, J. Logan, D. Chamberlin, and B. C. Smith. Query by humming: Musical information retrieval in an audio database QBH через MIDI — примеры О том, что поиск музыки по контуру — плохо: Uitdenbgerd, Zobel Manipulation of music for melody matching Литература 1. Typke, R., Wiering, F., Veltkamp, Remco C. A survey of music information retrieval systems 2. Dannenberg, Roger B., Birmingham, William P., Tzanetakis, G., Meek, C., Hu, N., Pardo, B. The MUSART Testbed for Query-By-Humming Evaluation 3. Bosma, M., Velkamp, Remco C., and Wiering, F. Muugle: A music retrieval experimentation framework. 4. Zhu Y., Shasha D. Query by Humming: A time series database approach. 5. Pauws, S. CubyHum: A fully operational query by humming system. 6. Lau E., Ding A., On C. MusicDB: A Query by Humming System. 7. http://www.musipedia.org 8. Kurth, F., and Müller, M. Efficient Index-Based Audio Matching 9. M. Clausen, F. Kurth, “A unified approach to content-based and fault tolerant music identification 10. H. Wolfson, I. Rigoutsos, “Geometric hashing: An overview”, IEEE Comput. Sci. Eng., vol. 4, no. 4, pp. 10-21, 1997 11. Deller, J. R., Proakis, J. G., Hansen, J. H. L. Discrete-time processing of speech signals. Washington, DC: IEEE Computer Society Press, 1999. 12. Linde, Y., Buzo, A., Gray, R., An Algorithm for Vector Quantizer Design, IEEE Transactions on Communications, vol. 28, pp. 84-94, 1980. 13. Beranek, Leo L. (1993 ed.) Acoustics 14. Burns, Edward M. (1999). "Intervals, Scales, and Tuning", The Psychology of Music second edition. Deutsch, Diana, ed. San Diego: Academic Press. 15. Müller, M. Information Retrieval for Music and Motion. Berlin: Springer-Verlag Heidelberg, 2007. 16. Proakis, John G., and Manolakis, Dimitris G. Digital Signal Processing: Principles, Algorithms, and Applications (3rd Ed.) 17. Orfanidis, Sophocles J. (2006). Lecture Notes on Elliptic Filter Design 18. Gustafsson, F. Determining the Initial States in Forward-Backward Filtering 19. Abramowitz, Stegun. Handbook of Mathematical Functions 20. Huang 21. Zwislocki, Jozef J. Sensory Neuroscience: Four Laws of Psychophysics. Springer, 2008 22. www.last.fm 23. www.allmusic.com