Deploy or Adopt - Success or Failure for Technology Insertion
EchoPrint – вiдкрита система розпiзнавання музики
1. EchoPrint – вiдкрита система
розпiзнавання музики
Герасимчук Назар
магiстр 2-го року навчання,
факультет кiбернетики,
Київський нацiональний унiверситет iм. Т. Шевченка
27 сiчня 2013 р.
Герасимчук Назар (КНУ) EchoPrint 27 сiчня 2013 р. 1 / 15
2. Системи iдентифiкацiї музики
Означення
В основi типової СIМ лежить складний механiзм
iдентифiкацiї композицiй, в якому поєднано технологiї
«аудiовiдбиткiв» i БД великого розмiру (де зберiгається
iнформацiя про композицiї).
Герасимчук Назар (КНУ) EchoPrint 27 сiчня 2013 р. 2 / 15
3. Системи iдентифiкацiї музики
Загальний принцип роботи
Користувач завантажує звуковий файл.
На основi завантаженого файлу формується
«аудiовiдбиток».
Вiдбувається перевiрка «аудiовiдбитку» в БД.
Користувач отримує результат про знайденi
спiвпадiння.
Герасимчук Назар (КНУ) EchoPrint 27 сiчня 2013 р. 3 / 15
5. EchoPrint
Про проект EchoPrint
Розробники EchoPrint – Echo Nest –
http://the.echonest.com/.
Засновниками компанiї є доктори наук з MIT
Media Lab http://www.media.mit.edu/.
Лiцензування EchoPrint – MIT License.
Герасимчук Назар (КНУ) EchoPrint 27 сiчня 2013 р. 5 / 15
6. EchoPrint
Функцiонал EchoPrint
Розпiзнавання музики по записаному вiдривку.
Пошук дублiкатiв.
Масове розпiзнавання i заповнення тегiв в
муз. колекцiях.
Перевiрка аудiо/вiдео на вмiст фрагменту.
Синхронiзацiя колекцiй з просторiв iTunes, Last.fm,
Spotify.
. . .
Герасимчук Назар (КНУ) EchoPrint 27 сiчня 2013 р. 6 / 15
7. EchoPrint
Саме цiкаве. Клiєнт
Клiєнтська програма echoprint-codegen (проект на
github: github.com/echonest/echoprint-codegen)
поширюється як у вихiдних кодах, так i в бiнарних1
1
Повна кросплатформеннiсть!
Герасимчук Назар (КНУ) EchoPrint 27 сiчня 2013 р. 7 / 15
8. EchoPrint
Саме цiкаве. Клiєнт. Приклад використання
Перевiрити 20 секунд з mp3 файла, починаючи с 10-ї
секунди:
echoprint-codegen ./recorded.mp3 10 20 |
curl -F "query=@-" http://developer.echonest.com/api/v4/song/identify?api_key=MY_API_KEY
{"response": {"status": {"version": "4.2", "code": 0, "message": "Success"},
"songs": [{"tag": 0, "score": 66, "title": "Creep", "message": "OK (match type 6)",
"artist_id": "ARH6W4X1187B99274F", "artist_name": "Radiohead", "id": "SOPQLBY12A6310E992"}]}}
Герасимчук Назар (КНУ) EchoPrint 27 сiчня 2013 р. 8 / 15
9. EchoPrint
Саме цiкаве. Клiєнт. Приклад використання
Використання у власному кодi:
Codegen * pCodegen =
new Codegen(const float* pcm,
uint numSamples,
int start_offset);
string code = pCodegen->getCodeString();
Герасимчук Назар (КНУ) EchoPrint 27 сiчня 2013 р. 9 / 15
11. EchoPrint
Сервер
Серверна частина (проект на github:
github.com/echonest/echoprint-server)
Отже, «пiдняти» можна свiй власний сервер. Echo
Nest навiть виклала в загальний доступ кiлька Гб
опрацьованих даних.
Рушiй сервера заснований на базi пошукового
сервера Apache Solr, в якостi БД – Tokyo Tyrant.
Герасимчук Назар (КНУ) EchoPrint 27 сiчня 2013 р. 11 / 15
12. EchoPrint
Результати тестування
За [1]:
Деякi виконавцi визначаються з дуже високою
ймовiрнiстю.
20 секунд – мiнiмальний перiод запису.
Гучнiсть майже не впливає на розпiзнавання.
Metallica розпiзнається краще нiж Бетховен.
Iнодi помиляєтся.
Герасимчук Назар (КНУ) EchoPrint 27 сiчня 2013 р. 12 / 15