{ "metadata": { "name": "", "signature": "sha256:a95e890d187878bc772c53a63e8c02e8216cb324385f7ceea42dd2997dcc4d5d" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Music Fingerprinting using Locality Sensitive Hashing" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This notebook shows a simple system for performing retrieval of musical tracks using LSH." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Import libraries:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import librosa\n", "import os\n", "import os.path" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 26 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Set figure size:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "rcParams['figure.figsize'] = (15, 5)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 27 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Select training data:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "training_dir = '../train/'\n", "training_files = [os.path.join(training_dir, f) for f in os.listdir(training_dir)]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 28 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Define a hash function:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def hash_func(vecs, projections):\n", " bools = dot(vecs, projections.T) > 0\n", " return [bool2int(bool_vec) for bool_vec in bools]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 29 }, { "cell_type": "code", "collapsed": false, "input": [ "def bool2int(x):\n", " y = 0\n", " for i,j in enumerate(x):\n", " if j: y += 1<