"Как Яндекс распознаёт музыку с микрофона"....

Preview:

DESCRIPTION

Музыкальный поиск Яндекса помогает находить альбомы, отдельные треки или исполнителей, в том числе по цитате из песни. Всё это — текстовые разновидности поиска. А если пользователь хочет узнать, какая музыка играет в данный момент, запросом становится само содержимое аудиофайла, непосредственно звуки музыки. Именно так устроено, например, «Распознавание» в мобильном приложении Яндекс.Музыка. В докладе мы обсудим особенности разных подходов к решению этой задачи и посмотрим, какие характеристики можно извлекать из аудиосигнала. И, конечно, поговорим о реализации поиска по музыкальному фрагменту в Яндексе, о возникающих сложностях и способах их решения.

Citation preview

1

2

Распознавание музыки по фрагменту

Евгений Крофто

3

Введение. Актуальность

Виды музыкальных запросов

4

Виды музыкальных запросов !  Исполнительские

5

Виды музыкальных запросов !  Исполнительские !  Альбомные

6

Виды музыкальных запросов !  Исполнительские !  Альбомные !  Трековые –  По названию трека

7

Виды музыкальных запросов !  Исполнительские !  Альбомные !  Трековые –  По названию трека –  По цитате из слов песни

8

!  Все это текстовые запросы –  Что делать, если запрос нельзя выразить в виде

текста?

9

Постановка задачи

10

Формат запроса !  Наш запрос – это фрагмент звукового сигнала, записанный с помощью микрофона

11

Ограничения !  Наш запрос – это фрагмент звукового сигнала,

записанный с помощью микрофона –  Высокий уровень искажений –  Минимальная продолжительность запроса

12

Требования !  Наш запрос – это фрагмент звукового сигнала, записанный с помощью микрофона –  Высокий уровень искажений –  Минимальная продолжительность запроса

!  Большой размер базы треков !  Возможность масштабирования !  Ответ за приемлемое время

13

Особенность Поиск по примеру (Query by exact example) !  Что требуется найти: –  Точное совпадение с записанным фрагментом

!  Что не требуется находить: –  Похожие треки –  Cover-версии –  Другие исполнения

14

Этапы решения

15

Этапы решения

!  Построение сигнатуры (фингерпринта)

!  Способ сравнения сигнатур

!  Ускорение поиска

!  Отсечение ложных срабатываний

16

Этапы решения

Построение сигнатуры

17

Предобработка сигнала

!  Объединение каналов

! Ресэмплирование сигнала в частоту 8-11KHz

18

Разбиение на фреймы Сигнал разбивается на фреймы

1 2

3Фрейм

Частота дискретизации 8KHz 1.  Hop size 2.  Overlap size 3.  Frame size

19

Построение спектрограммы К каждому фрейму применяется оконная функция (Hanning window) и вычисляется преобразование Фурье

Время

Част

ота

20

Извлечение признаков !  Spectral Centroid – центр масс спектра

𝑆𝐶↓𝑖,𝑏 = ∑𝑢= 𝑙↓𝑏 ↑𝑢↓𝑏 ▒   𝑢|𝑓↓𝑖 (𝑢)|↑2  /∑𝑢= 𝑙↓𝑏 ↑𝑢↓𝑏 ▒   |𝑓↓𝑖 (𝑢)|↑2    !  Spectral Bandwidth – разброс относительно центра масс

𝑆𝐵↓𝑖,𝑏 = ∑𝑢= 𝑙↓𝑏 ↑𝑢↓𝑏 ▒   (𝑢  − 𝑆𝐶↓𝑖,𝑏↑ )↑2 |𝑓↓𝑖 (𝑢)|↑2  /∑𝑢= 𝑙↓𝑏 ↑𝑢↓𝑏 ▒   |𝑓↓𝑖 (𝑢)|↑2   

!  Spectral Flatness Measure – характеризует «гладкость» спектра. Помогает отличать сигнал похожий на шум от сигналов с выраженной тональностью

𝑆𝐹𝑀↓𝑖,𝑏 = [∏𝑢= 𝑙↓𝑏 ↑𝑢↓𝑏 ▒  |𝑓↓𝑖 (𝑢)|↑2  ]↑1/𝑢↓𝑏 − 𝑙↓𝑏 +1  /1/𝑢↓𝑏 − 𝑙↓𝑏 +1 ∑𝑢= 𝑙↓𝑏 ↑𝑢↓𝑏 ▒   |𝑓↓𝑖 (𝑢)|↑2   

21

Извлечение признаков !  Shannon Entropy

𝑆𝐸↓𝑖,𝑏 =∑𝑢= 𝑙↓𝑏 ↑𝑢↓𝑏 ▒|𝑓↓𝑖 (𝑢)|  𝑙𝑜𝑔↓2 |𝑓↓𝑖 (𝑢)|  ! Renyi Entropy

𝑅𝐸↓𝑖,𝑏 = 1/1−𝑟 𝑙𝑜𝑔(∑𝑢= 𝑙↓𝑏 ↑𝑢↓𝑏 ▒|𝑓↓𝑖 (𝑢)|↑𝑟  ) Энтропия (в теории информации) – мера неопределенности какого-либо опыта, который может иметь разные исходы, а значит, и количество информации.

22

Извлечение признаков Mel-frequency Cepstral Coefficient (MFCC)

!  Частотная шкала переводится в Mel-масштаб

!  Берется логарифм мощности

!  Вычисляется дискретное косинусное преобразование

Изначально использовались в качестве признаков в распознавании речи

23

Извлечение признаков

!  Локальные максимумы в спектрограмме

! Вейвлет-преобразование

Вейвлет – это математическая функция, позволяющая анализировать различные частотные компоненты данных.

24

Сокращение размерности

!  Gaussian Mixture Model (GMM)

!  Hidden Markov Model (HMM) – статистическая модель, имитирующая работу процесса, похожего на Марковский процесс с неизвестными параметрами, и задачей ставится разгадывание неизвестных параметров на основе наблюдаемых.

! MinHash – техника для быстрой оценки близости двух множеств.

25

Этапы решения

Сравнение сигнатур

26

Сравнение сигнатур

!  Поиск ближайшего

–  Расстояние Хэмминга при побитовом сравнении –  Евклидово расстояние –  Манхэттенское расстояние

!  Максимальное правдоподобие

27

Этапы решения

Ускорение поиска

28

Ускорение поиска

!  Инвертированный индекс

!  Отбрасывание заведомо нерелевантных кандидатов

!  Иерархический поиск

29

Этапы решения

Отсечение ложных срабатываний

30

Отсечение ложных срабатываний Предварительные результаты поиска

TrackID 2534 Offset 829 Score 103

TrackID 14371 Offset 10917

Score 39

TrackID 8591 Offset 14439

Score 37

?

31

Отсечение ложных срабатываний Предварительные результаты поиска

TrackID 2534 Offset 829 Score 103

TrackID 14371 Offset 10917

Score 39

TrackID 8591 Offset 14439

Score 37

?

32

Отсечение ложных срабатываний

False acceptance rate 𝐹𝐴𝑅= 𝐶𝑜𝑢𝑛𝑡↓01 /𝐶𝑜𝑢𝑛𝑡↓00 

+ 𝐶𝑜𝑢𝑛𝑡↓01   False rejection rate

𝐹𝑅𝑅= 𝐶𝑜𝑢𝑛𝑡↓10 /𝐶𝑜𝑢𝑛𝑡↓10 + 𝐶𝑜𝑢𝑛𝑡↓11  

Да Нет

Да

Нет

Ответ поиска

Есть

ли

реле

вант

ный

отве

т?

33

Отсечение ложных срабатываний !  Нужно найти баланс

!  Подбор порога для отсечения

Запросы (отсортированы по максимальной близости)

Степ

ень

близ

ости

Множество запросов с релевантным ответом

Множество запросов без релевантного ответа

34

Существующие подходы

35

J. Haitsma, T. Kalker !  В качестве признака – разность энергий

𝐹(𝑛,𝑚)={█■1,    𝐸(𝑛,𝑚)−𝐸(𝑛,𝑚+1)−(𝐸(𝑛−1,𝑚)−𝐸(𝑛−1,𝑚+1))>00,    𝐸(𝑛,𝑚)−𝐸(𝑛,𝑚+1)−(𝐸(𝑛−1,𝑚)−𝐸(𝑛−1,𝑚+1))≤0   !  Сравнение сигнатур по расстоянию Хэмминга

J. Haitsma, T. Kalker (2002). A Highly Robust Audio Fingerprinting System.

36

J. Haitsma, T. Kalker

37

A. Wang !  Предложил искать локальные максимумы в спектрограмме

!  Важно только «положение» максимума, а не амплитуда

!  Для повышения уникальности пики объединяются в пары

!  Сравнение: ищется смещение, максимизирующее число совпавших пар пиков

A. Wang (2003). An Industrial-Strength Audio Search Algorithm.

38

Наш выбор

39

Наш выбор

!  Проведен первичный анализ статей

!  Интуитивно подход Wang лучше

!  Наличие доступного прототипа (Dan Ellis)

!  Наличие параметров, возможность подстроить алгоритм

40

Наш выбор: реализация

!  Этапы реализации подхода:

–  Прототип переписан на с++ –  Реализована схема построения индекса –  Подбор параметров для обеспечения необходимого уровня распознавания –  Оптимизация поиска –  Двухуровневый поиск – обеспечение масштабируемости –  Анализ ложных срабатываний

41

Спектрограммы

Сигнал на входе mono 8000Hz Параметры построения спектрограммы: !  Размер окна 512 samples !  Перекрытие 50%

Записанный фрагмент

Искомый фрагмент оригинального трека

Время Ча

стот

а

Амп

литу

да

Част

ота

Амп

литу

да

42

Инициализация порога

!  Берем максимум энергии в первых n фреймах, по каждой частоте !  Каждый максимум размываем по Гауссу !  Полученные значения и есть пороги (в каждой частоте свой)

50 100 150 200 2500

0.5

1

1.5

2

2.5

3

3.5

4

Original signalPositive local maximaFinal output

(J.-S. Roger Jang)

43

Отбор пиков

!  Применяем пороговое «лезвие» к фрейму !  Берем все, что оказалось выше порога !  Ищем локальные максимумы

Частота

Амп

литу

да

44

Корректирование порогов

!  Значения энергии отобранных пиков используются для обновления порогов !  Снова сглаживаем по Гауссу !  При переходе от фрейма к фрейму порог уменьшается («опускающееся лезвие») Время

Амп

литу

да

45

Извлеченные пики

Наборы пиков в запросе (вверху) и в фрагменте оригинального трека (внизу)

Записанный фрагмент

Искомый фрагмент оригинального трека

Время Ча

стот

а

Амп

литу

да

Част

ота

Амп

литу

да

46

Объединение пиков в пары Объединяем пики в пары Плюсы: !  Увеличиваем уникальность ключа в индексе !  Уменьшаем объем вычислений Минусы: ! Воспроизводимость пары ниже чем у пиков

Время Ча

стот

а

Записанный фрагмент

Искомый фрагмент оригинального трека

Амп

литу

да

Част

ота

Амп

литу

да

47

Сравнение

Считаем гистограмму число совпадений для разных смещений

Сдвиг по времени Числ

о со

впад

ений

Записанный фрагмент

Искомый фрагмент оригинального трека

Время Ча

стот

а

Амп

литу

да

Част

ота

Амп

литу

да

48

Подбор параметров

!  Увеличение плотности пиков

!  Какими параметрами можно регулировать отбор пиков

–  Число пиков на фрейм –  Число пар для каждого пика –  Скорость снижения порога !  Цена высокой плотности пиков – увеличение объема вычислений

49

Общая схема

Легкая  сигнатура  

Поиск  в  легком  индексе  

Топ  треков  Результат   Поиск  в  тяжелом  индексе  

Тяжелая  сигнатура  

50

Структура «легкого» индекса

0 1 2 3 4 5 …

13 7 43 121 133 354 74 …

124 11 101 14437 33 74 142 …

TrackID

Offset

LandmarkHash

51

Структура «тяжелого» индекса

0 1 2 3 4 5 6 …

11234 5 34 101 153 54211 40 …

12432 10 131 17531 44 82 107 …

LandmarkHash

Offset

TrackID

52

Двухуровневый поиск

Мета  поиск  

Базовый  поиск  Базовый  поиск  Базовый  поиск  

Мобильное  устройство  

Запрос

Результат

53

Фильтрация ложных срабатываний !  Анализ значений «релевантности» (близость фрагмента трека и запроса)

!  Ищем резкий перепад значений

!  Если не находим, считаем, что релевантного трека у нас в базе нет.

Треки (отсортированные по релевантности)

Реле

вант

ност

ь

54

Планы на будущее

55

Что дальше

Это только начало пути Над чем будем работать: !  Добавить инкрементальный поиск

!  Нормализация итогового score

!  Попробовать Mel-масштаб для шкалы частот

!  Попробовать сравнивать спектрограммы как изображения

!  Машинное обучение для построения сигнатур

56

Y. Ke, D. Hoiem, R. Sukthankar !  Предложили рассматривать спектрограммы как изображения

!  Применение методов «компьютерного зрения»

!  Признаки Viola/Jones

!  Отбор признаков (сокращение числа признаков) с помощью AdaBoost

Y. Ke, D. Hoiem, R. Sukthankar (2005). Computer Vision for Music Identification.

57

S. Baluja, M. Covell !  Спектрограмма разбивается на фрагменты (Spectral Images)

!  К каждому фрагменту применяется вейвлет-преобразование

!  Отбирается топ самых «сильных» вейвлетов и берется их знак

!  Полученный разреженный вектор «сжимается» с помощью MinHash

!  Для поиска кандидатов используется локально чувствительное хэширование (LSH)

!  Для отобранных кандидатов считается расстояние Хэмминга

S. Baluja, M. Covell (2006). Content Fingerprinting Using Wavelets.

58

Ссылки на статьи

!  J. Haitsma, T. Kalker (2002). A Highly Robust Audio Fingerprinting System.

!  A. Wang (2003). An Industrial-Strength Audio Search Algorithm.

!  Y. Ke, D. Hoiem, R. Sukthankar (2005). Computer Vision for Music Identification.

!  S. Baluja, M. Covell (2006). Content Fingerprinting Using Wavelets.

!  D. Ellis (2009). Robust Landmark-Based Audio Fingerprinting.

59

Спасибо за внимание

60

Евгений Крофто Разработчик

ekrofto@yandex.ru

Магистр

© ООО «Яндекс», 2013