SlideShare a Scribd company logo
1 of 60
Download to read offline
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))>0⁠0,    
𝐸(𝑛, 𝑚)− 𝐸(𝑛, 𝑚+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 250
0
0.5
1
1.5
2
2.5
3
3.5
4
Original signal
Positive local maxima
Final 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

More Related Content

Similar to "Как Яндекс распознаёт музыку с микрофона". Евгений Крофто, Яндекс

Speech technologies
Speech technologiesSpeech technologies
Speech technologiesNLPseminar
 
Современные средства NLP в поисковых задач - Стачка 2017
Современные средства NLP в поисковых задач - Стачка 2017Современные средства NLP в поисковых задач - Стачка 2017
Современные средства NLP в поисковых задач - Стачка 2017Nikita Zhiltsov
 
CV2011 Lecture 10. Image retrieval
CV2011 Lecture 10.  Image retrievalCV2011 Lecture 10.  Image retrieval
CV2011 Lecture 10. Image retrievalAnton Konushin
 
Задачи музыкального поиска, связанные с анализом аудио сигнала
Задачи музыкального поиска, связанные с анализом аудио сигналаЗадачи музыкального поиска, связанные с анализом аудио сигнала
Задачи музыкального поиска, связанные с анализом аудио сигналаYandex
 
Методы декомпозиции звукового сигнала.
Методы декомпозиции звукового сигнала.Методы декомпозиции звукового сигнала.
Методы декомпозиции звукового сигнала.Ilya Siganov
 
Яндекс Малый ШАД - лингвистика в поиске
Яндекс  Малый ШАД - лингвистика в поискеЯндекс  Малый ШАД - лингвистика в поиске
Яндекс Малый ШАД - лингвистика в поискеЕвгений Летов
 
Russir 2010 final
Russir 2010 finalRussir 2010 final
Russir 2010 finalyaevents
 
Петрикин "Разработка программных средств лоя идентификации диктора по голосу"
Петрикин "Разработка программных средств лоя идентификации диктора по голосу"Петрикин "Разработка программных средств лоя идентификации диктора по голосу"
Петрикин "Разработка программных средств лоя идентификации диктора по голосу"RF-Lab
 
Системы автоматического синтеза речи
Системы автоматического синтеза речиСистемы автоматического синтеза речи
Системы автоматического синтеза речиArtem Lukanin
 
2011 Vnukovskiy MSc presentation
2011 Vnukovskiy MSc presentation2011 Vnukovskiy MSc presentation
2011 Vnukovskiy MSc presentationRF-Lab
 
CV2015. Лекция 8. Распознавание лиц людей.
CV2015. Лекция 8. Распознавание лиц людей.CV2015. Лекция 8. Распознавание лиц людей.
CV2015. Лекция 8. Распознавание лиц людей.Anton Konushin
 
BigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: PersonalizationBigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: PersonalizationAnton Gorokhov
 
машинное обучение и анализ данных
машинное обучение и анализ данныхмашинное обучение и анализ данных
машинное обучение и анализ данныхYandex
 
диссертационная презентация
диссертационная презентациядиссертационная презентация
диссертационная презентацияSon Ingvar
 

Similar to "Как Яндекс распознаёт музыку с микрофона". Евгений Крофто, Яндекс (18)

Speech technologies
Speech technologiesSpeech technologies
Speech technologies
 
Современные средства NLP в поисковых задач - Стачка 2017
Современные средства NLP в поисковых задач - Стачка 2017Современные средства NLP в поисковых задач - Стачка 2017
Современные средства NLP в поисковых задач - Стачка 2017
 
CV2011 Lecture 10. Image retrieval
CV2011 Lecture 10.  Image retrievalCV2011 Lecture 10.  Image retrieval
CV2011 Lecture 10. Image retrieval
 
Автоматическое формирование базы знаний для задачи анализа мнений
Автоматическое формирование базы знаний для задачи анализа мненийАвтоматическое формирование базы знаний для задачи анализа мнений
Автоматическое формирование базы знаний для задачи анализа мнений
 
Использование поисковых машин и ресурсов Интернет для отбора терминов предмет...
Использование поисковых машин и ресурсов Интернет для отбора терминов предмет...Использование поисковых машин и ресурсов Интернет для отбора терминов предмет...
Использование поисковых машин и ресурсов Интернет для отбора терминов предмет...
 
Задачи музыкального поиска, связанные с анализом аудио сигнала
Задачи музыкального поиска, связанные с анализом аудио сигналаЗадачи музыкального поиска, связанные с анализом аудио сигнала
Задачи музыкального поиска, связанные с анализом аудио сигнала
 
Методы декомпозиции звукового сигнала.
Методы декомпозиции звукового сигнала.Методы декомпозиции звукового сигнала.
Методы декомпозиции звукового сигнала.
 
Яндекс Малый ШАД - лингвистика в поиске
Яндекс  Малый ШАД - лингвистика в поискеЯндекс  Малый ШАД - лингвистика в поиске
Яндекс Малый ШАД - лингвистика в поиске
 
Russir 2010 final
Russir 2010 finalRussir 2010 final
Russir 2010 final
 
Петрикин "Разработка программных средств лоя идентификации диктора по голосу"
Петрикин "Разработка программных средств лоя идентификации диктора по голосу"Петрикин "Разработка программных средств лоя идентификации диктора по голосу"
Петрикин "Разработка программных средств лоя идентификации диктора по голосу"
 
Системы автоматического синтеза речи
Системы автоматического синтеза речиСистемы автоматического синтеза речи
Системы автоматического синтеза речи
 
2011 Vnukovskiy MSc presentation
2011 Vnukovskiy MSc presentation2011 Vnukovskiy MSc presentation
2011 Vnukovskiy MSc presentation
 
Извлечение терминологических словосочетаний из текстов
Извлечение терминологических словосочетаний из текстовИзвлечение терминологических словосочетаний из текстов
Извлечение терминологических словосочетаний из текстов
 
CV2015. Лекция 8. Распознавание лиц людей.
CV2015. Лекция 8. Распознавание лиц людей.CV2015. Лекция 8. Распознавание лиц людей.
CV2015. Лекция 8. Распознавание лиц людей.
 
BigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: PersonalizationBigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: Personalization
 
машинное обучение и анализ данных
машинное обучение и анализ данныхмашинное обучение и анализ данных
машинное обучение и анализ данных
 
диссертационная презентация
диссертационная презентациядиссертационная презентация
диссертационная презентация
 
Комбинирование факторов для разрешения референции местоимений
Комбинирование факторов для разрешения референции местоименийКомбинирование факторов для разрешения референции местоимений
Комбинирование факторов для разрешения референции местоимений
 

More from Yandex

Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksYandex
 
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Yandex
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаYandex
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаYandex
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Yandex
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Yandex
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Yandex
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Yandex
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Yandex
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Yandex
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Yandex
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Yandex
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровYandex
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Yandex
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Yandex
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Yandex
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Yandex
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Yandex
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Yandex
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Yandex
 

More from Yandex (20)

Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of Tanks
 
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
 

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

  • 1. 1
  • 5. 5 Виды музыкальных запросов !  Исполнительские !  Альбомные
  • 6. 6 Виды музыкальных запросов !  Исполнительские !  Альбомные !  Трековые –  По названию трека
  • 7. 7 Виды музыкальных запросов !  Исполнительские !  Альбомные !  Трековые –  По названию трека –  По цитате из слов песни
  • 8. 8 !  Все это текстовые запросы –  Что делать, если запрос нельзя выразить в виде текста?
  • 10. 10 Формат запроса !  Наш запрос – это фрагмент звукового сигнала, записанный с помощью микрофона
  • 11. 11 Ограничения !  Наш запрос – это фрагмент звукового сигнала, записанный с помощью микрофона –  Высокий уровень искажений –  Минимальная продолжительность запроса
  • 12. 12 Требования !  Наш запрос – это фрагмент звукового сигнала, записанный с помощью микрофона –  Высокий уровень искажений –  Минимальная продолжительность запроса !  Большой размер базы треков !  Возможность масштабирования !  Ответ за приемлемое время
  • 13. 13 Особенность Поиск по примеру (Query by exact example) !  Что требуется найти: –  Точное совпадение с записанным фрагментом !  Что не требуется находить: –  Похожие треки –  Cover-версии –  Другие исполнения
  • 15. 15 Этапы решения !  Построение сигнатуры (фингерпринта) !  Способ сравнения сигнатур !  Ускорение поиска !  Отсечение ложных срабатываний
  • 17. 17 Предобработка сигнала !  Объединение каналов ! Ресэмплирование сигнала в частоту 8-11KHz
  • 18. 18 Разбиение на фреймы Сигнал разбивается на фреймы 1 2 3 Фрейм Частота дискретизации 8KHz 1.  Hop size 2.  Overlap size 3.  Frame size
  • 19. 19 Построение спектрограммы К каждому фрейму применяется оконная функция (Hanning window) и вычисляется преобразование Фурье Время Частота
  • 20. 20 Извлечение признаков !  Spectral Centroid – центр масс спектра ​ 𝑆 𝐶↓𝑖, 𝑏 =​∑ 𝑢=​ 𝑙↓𝑏 ↑​ 𝑢↓𝑏 ▒  ​ 𝑢|​ 𝑓↓𝑖  ( 𝑢)|↑2  /∑𝑢=​ 𝑙↓𝑏 ↑​ 𝑢↓𝑏 ▒  ​|​ 𝑓↓𝑖 ( 𝑢)|↑2    !  Spectral Bandwidth – разброс относительно центра масс ​ 𝑆 𝐵↓𝑖, 𝑏 =​∑ 𝑢=​ 𝑙↓𝑏 ↑​ 𝑢↓𝑏 ▒  ​​( 𝑢  −​ 𝑆𝐶↓𝑖, 𝑏↑ )↑2 |​ 𝑓↓𝑖 ( 𝑢)|↑2  /∑𝑢=​ 𝑙↓𝑏 ↑​ 𝑢↓𝑏 ▒  ​|​ 𝑓↓𝑖 ( 𝑢)|↑2    !  Spectral Flatness Measure – характеризует «гладкость» спектра. Помогает отличать сигнал похожий на шум от сигналов с выраженной тональностью ​ 𝑆 𝐹𝑀↓𝑖, 𝑏 =​​[∏𝑢=​ 𝑙↓𝑏 ↑​ 𝑢↓𝑏 ▒​  |​ 𝑓↓𝑖  ( 𝑢)|↑2  ]↑​1/​ 𝑢↓𝑏 −​ 𝑙↓𝑏 +1  /​1/​ 𝑢↓𝑏 −​ 𝑙↓𝑏 +1 ∑𝑢=​ 𝑙↓𝑏 ↑​ 𝑢↓𝑏 ▒  ​|​ 𝑓↓𝑖 ( 𝑢)|↑2   
  • 21. 21 Извлечение признаков !  Shannon Entropy ​ 𝑆 𝐸↓𝑖, 𝑏 =∑𝑢=​ 𝑙↓𝑏 ↑​ 𝑢↓𝑏 ▒|​ 𝑓↓𝑖 ( 𝑢)|​   𝑙𝑜𝑔↓2 |​ 𝑓↓𝑖 ( 𝑢)|  ! Renyi Entropy ​ 𝑅 𝐸↓𝑖, 𝑏 =​1/1− 𝑟 𝑙𝑜𝑔(∑𝑢=​ 𝑙↓𝑏 ↑​ 𝑢↓𝑏 ▒​|​ 𝑓↓𝑖 ( 𝑢)|↑𝑟  ) Энтропия (в теории информации) – мера неопределенности какого-либо опыта, который может иметь разные исходы, а значит, и количество информации.
  • 22. 22 Извлечение признаков Mel-frequency Cepstral Coefficient (MFCC) !  Частотная шкала переводится в Mel-масштаб !  Берется логарифм мощности !  Вычисляется дискретное косинусное преобразование Изначально использовались в качестве признаков в распознавании речи
  • 23. 23 Извлечение признаков !  Локальные максимумы в спектрограмме ! Вейвлет-преобразование Вейвлет – это математическая функция, позволяющая анализировать различные частотные компоненты данных.
  • 24. 24 Сокращение размерности !  Gaussian Mixture Model (GMM) !  Hidden Markov Model (HMM) – статистическая модель, имитирующая работу процесса, похожего на Марковский процесс с неизвестными параметрами, и задачей ставится разгадывание неизвестных параметров на основе наблюдаемых. ! MinHash – техника для быстрой оценки близости двух множеств.
  • 26. 26 Сравнение сигнатур !  Поиск ближайшего –  Расстояние Хэмминга при побитовом сравнении –  Евклидово расстояние –  Манхэттенское расстояние !  Максимальное правдоподобие
  • 28. 28 Ускорение поиска !  Инвертированный индекс !  Отбрасывание заведомо нерелевантных кандидатов !  Иерархический поиск
  • 30. 30 Отсечение ложных срабатываний Предварительные результаты поиска TrackID 2534 Offset 829 Score 103 TrackID 14371 Offset 10917 Score 39 TrackID 8591 Offset 14439 Score 37 ?
  • 31. 31 Отсечение ложных срабатываний Предварительные результаты поиска TrackID 2534 Offset 829 Score 103 TrackID 14371 Offset 10917 Score 39 TrackID 8591 Offset 14439 Score 37 ?
  • 32. 32 Отсечение ложных срабатываний False acceptance rate 𝐹𝐴𝑅=​​ 𝐶 𝑜𝑢𝑛𝑡↓01 /​ 𝐶 𝑜𝑢𝑛𝑡↓00  +​ 𝐶 𝑜𝑢𝑛𝑡↓01   False rejection rate 𝐹𝑅𝑅=​​ 𝐶 𝑜𝑢𝑛𝑡↓10 /​ 𝐶 𝑜𝑢𝑛𝑡↓10  +​ 𝐶 𝑜𝑢𝑛𝑡↓11   Да Нет Да Нет Ответ поиска Естьлирелевантныйответ?
  • 33. 33 Отсечение ложных срабатываний !  Нужно найти баланс !  Подбор порога для отсечения Запросы (отсортированы по максимальной близости) Степеньблизости Множество запросов с релевантным ответом Множество запросов без релевантного ответа
  • 35. 35 J. Haitsma, T. Kalker !  В качестве признака – разность энергий 𝐹(𝑛, 𝑚)={█■1,     𝐸(𝑛, 𝑚)− 𝐸(𝑛, 𝑚+1)−( 𝐸(𝑛−1, 𝑚)− 𝐸( 𝑛−1, 𝑚+1))>0⁠0,     𝐸(𝑛, 𝑚)− 𝐸(𝑛, 𝑚+1)−( 𝐸(𝑛−1, 𝑚)− 𝐸( 𝑛−1, 𝑚+1))≤0   !  Сравнение сигнатур по расстоянию Хэмминга J. Haitsma, T. Kalker (2002). A Highly Robust Audio Fingerprinting System.
  • 37. 37 A. Wang !  Предложил искать локальные максимумы в спектрограмме !  Важно только «положение» максимума, а не амплитуда !  Для повышения уникальности пики объединяются в пары !  Сравнение: ищется смещение, максимизирующее число совпавших пар пиков A. Wang (2003). An Industrial-Strength Audio Search Algorithm.
  • 39. 39 Наш выбор !  Проведен первичный анализ статей !  Интуитивно подход Wang лучше !  Наличие доступного прототипа (Dan Ellis) !  Наличие параметров, возможность подстроить алгоритм
  • 40. 40 Наш выбор: реализация !  Этапы реализации подхода: –  Прототип переписан на с++ –  Реализована схема построения индекса –  Подбор параметров для обеспечения необходимого уровня распознавания –  Оптимизация поиска –  Двухуровневый поиск – обеспечение масштабируемости –  Анализ ложных срабатываний
  • 41. 41 Спектрограммы Сигнал на входе mono 8000Hz Параметры построения спектрограммы: !  Размер окна 512 samples !  Перекрытие 50% Записанный фрагмент Искомый фрагмент оригинального трека Время Частота Амплитуда Частота Амплитуда
  • 42. 42 Инициализация порога !  Берем максимум энергии в первых n фреймах, по каждой частоте !  Каждый максимум размываем по Гауссу !  Полученные значения и есть пороги (в каждой частоте свой) 50 100 150 200 250 0 0.5 1 1.5 2 2.5 3 3.5 4 Original signal Positive local maxima Final output (J.-S. Roger Jang)
  • 43. 43 Отбор пиков !  Применяем пороговое «лезвие» к фрейму !  Берем все, что оказалось выше порога !  Ищем локальные максимумы Частота Амплитуда
  • 44. 44 Корректирование порогов !  Значения энергии отобранных пиков используются для обновления порогов !  Снова сглаживаем по Гауссу !  При переходе от фрейма к фрейму порог уменьшается («опускающееся лезвие») Время Амплитуда
  • 45. 45 Извлеченные пики Наборы пиков в запросе (вверху) и в фрагменте оригинального трека (внизу) Записанный фрагмент Искомый фрагмент оригинального трека Время Частота Амплитуда Частота Амплитуда
  • 46. 46 Объединение пиков в пары Объединяем пики в пары Плюсы: !  Увеличиваем уникальность ключа в индексе !  Уменьшаем объем вычислений Минусы: ! Воспроизводимость пары ниже чем у пиков Время Частота Записанный фрагмент Искомый фрагмент оригинального трека Амплитуда Частота Амплитуда
  • 47. 47 Сравнение Считаем гистограмму число совпадений для разных смещений Сдвиг по времени Числосовпадений Записанный фрагмент Искомый фрагмент оригинального трека Время Частота Амплитуда Частота Амплитуда
  • 48. 48 Подбор параметров !  Увеличение плотности пиков !  Какими параметрами можно регулировать отбор пиков –  Число пиков на фрейм –  Число пар для каждого пика –  Скорость снижения порога !  Цена высокой плотности пиков – увеличение объема вычислений
  • 49. 49 Общая схема Легкая   сигнатура   Поиск  в  легком   индексе   Топ  треков  Результат   Поиск  в  тяжелом   индексе   Тяжелая   сигнатура  
  • 50. 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. 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. 52 Двухуровневый поиск Мета  поиск   Базовый  поиск  Базовый  поиск  Базовый  поиск   Мобильное   устройство   Запрос Результат
  • 53. 53 Фильтрация ложных срабатываний !  Анализ значений «релевантности» (близость фрагмента трека и запроса) !  Ищем резкий перепад значений !  Если не находим, считаем, что релевантного трека у нас в базе нет. Треки (отсортированные по релевантности) Релевантность
  • 55. 55 Что дальше Это только начало пути Над чем будем работать: !  Добавить инкрементальный поиск !  Нормализация итогового score !  Попробовать Mel-масштаб для шкалы частот !  Попробовать сравнивать спектрограммы как изображения !  Машинное обучение для построения сигнатур
  • 56. 56 Y. Ke, D. Hoiem, R. Sukthankar !  Предложили рассматривать спектрограммы как изображения !  Применение методов «компьютерного зрения» !  Признаки Viola/Jones !  Отбор признаков (сокращение числа признаков) с помощью AdaBoost Y. Ke, D. Hoiem, R. Sukthankar (2005). Computer Vision for Music Identification.
  • 57. 57 S. Baluja, M. Covell !  Спектрограмма разбивается на фрагменты (Spectral Images) !  К каждому фрагменту применяется вейвлет-преобразование !  Отбирается топ самых «сильных» вейвлетов и берется их знак !  Полученный разреженный вектор «сжимается» с помощью MinHash !  Для поиска кандидатов используется локально чувствительное хэширование (LSH) !  Для отобранных кандидатов считается расстояние Хэмминга S. Baluja, M. Covell (2006). Content Fingerprinting Using Wavelets.
  • 58. 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.