├── README.md └── feature_extend.ipynb /README.md: -------------------------------------------------------------------------------- 1 | # DCASE_explorations 2 | Experiments with the DCASE framework and database 3 | -------------------------------------------------------------------------------- /feature_extend.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "## Comparing feature output for librosa and essentia\n", 8 | "\n", 9 | "#### In order to extend the dcase baseline framework we need to know the differences between essentia and librosa. As the system is using librosa knowing the output form of the library will allow us to effectively connect on the framework all of the essentia descriptors. \n", 10 | "\n", 11 | "#### First example: one dimensional descriptor in librosa, in descriptors that don't depend of stft default window is square." 12 | ] 13 | }, 14 | { 15 | "cell_type": "code", 16 | "execution_count": 1, 17 | "metadata": { 18 | "collapsed": false 19 | }, 20 | "outputs": [ 21 | { 22 | "name": "stdout", 23 | "output_type": "stream", 24 | "text": [ 25 | "Shape of the output array: (1, 15786)\n", 26 | "Shape of the output array: (1, 15786)\n" 27 | ] 28 | }, 29 | { 30 | "data": { 31 | "image/png": "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\n", 32 | "text/plain": [ 33 | "" 34 | ] 35 | }, 36 | "metadata": {}, 37 | "output_type": "display_data" 38 | } 39 | ], 40 | "source": [ 41 | "\n", 42 | "from essentia import *\n", 43 | "from essentia.standard import *\n", 44 | "import librosa \n", 45 | "import matplotlib.pyplot as plt\n", 46 | "import numpy as np\n", 47 | "\n", 48 | "#load an audio \n", 49 | "\n", 50 | "audio = MonoLoader(filename='a001.wav')()\n", 51 | "zcr_librosa = librosa.feature.zero_crossing_rate(audio, frame_length=2048, hop_length=512, center=True)\n", 52 | "print \"Shape of the output array: \" + str(zcr_librosa.shape)\n", 53 | "\n", 54 | "\n", 55 | "\n", 56 | "plt.plot(zcr_librosa.T)\n", 57 | "plt.show()\n", 58 | "\n", 59 | "\n" 60 | ] 61 | }, 62 | { 63 | "cell_type": "markdown", 64 | "metadata": {}, 65 | "source": [ 66 | "#### One dimensional descriptor in essentia" 67 | ] 68 | }, 69 | { 70 | "cell_type": "code", 71 | "execution_count": 2, 72 | "metadata": { 73 | "collapsed": false 74 | }, 75 | "outputs": [ 76 | { 77 | "name": "stdout", 78 | "output_type": "stream", 79 | "text": [ 80 | "Shape of the output array: (15787,)\n" 81 | ] 82 | }, 83 | { 84 | "data": { 85 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAD8CAYAAACfF6SlAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnXd4FNX6x79vEgJI7126XLGCoVmxAnavDdSfYEdFsQvi\nFeTay712xYJdEMGCiHJRwEYChNBLIAmhQ0JI75t9f3/MJJlts7O7szubnffzPPNk5syZM++e7Hz3\nzHvOeQ8xMwRBEAR7EWe1AYIgCELkEfEXBEGwISL+giAINkTEXxAEwYaI+AuCINgQEX9BEAQbIuIv\nCIJgQ0T8BUEQbIiIvyAIgg1JsNoAd9q3b8+9evWy2gxBEIQGxdq1a48wcwej+aNO/Hv16oXU1FSr\nzRAEQWhQENHuQPKL20cQBMGGiPgLgiDYEBF/QRAEGyLiLwiCYENE/AVBEGyIiL8gCIINEfEXBEGw\nISL+giBEDUcy92DdGx9bbYYtEPEXBCFqKD5zJAZNvhUVRSVWmxLziPgLghA1dMo7AABw1tRYbEns\nI+IvCELUwU622oSYR8RfEIQogqw2wDaI+AuCEHUwS8s/3Ij4C4Ig2BARf0EQooZjqiusNsE2iPgL\ngiDYEBF/QRCiji++/tNqE2IeEX9BEKKOiZOusNqEmEfEXxAEwYaI+AuCINgQEX9BEAQbIuIvCIJg\nQ0T8BUEQbIiIvyAIgg0R8RcEQbAhIv6CIAg2RMRfEATBhoj4C4Ig2BARf0EQBBsi4i8IgmBDRPwF\ny6goLkXGkj+sNkMQbImIv2AZmy4bh36jz0HOtkyrTREE2yHiL1hGx20bAADlefkWWyII9kPEX7Ae\npyzWLQiRxpD4E9FoIkonogwimuLl/ENEtJWINhLRb0TUU3NuPBHtVLfxZhovNHCIrLZAEGyLX/En\nongAbwMYA2AggHFENNAt2zoAScx8MoD5AF5Sr20LYDqAYQCGAphORG3MM19o0LC0+AXBKoy0/IcC\nyGDmLGauAjAXgMsaa8y8nJnL1MMUAN3V/VEAljLzUWbOB7AUwGhzTBcEQRCCxYj4dwOwV3O8T03z\nxW0Afg7kWiK6k4hSiSg1NzfXgElCTCBuH0GwDFM7fInoJgBJAF4O5Dpmfp+Zk5g5qUOHDmaaJDQA\nWNw/ghBxjIj/fgA9NMfd1TQXiOgCANMAXM7MlYFcK9gThrT8BcEqjIj/GgD9iag3ESUCGAtgoTYD\nEQ0CMAuK8OdoTi0BcBERtVE7ei9S0wRBEAQLSfCXgZkdRDQJimjHA5jNzFuIaCaAVGZeCMXN0xzA\nN6T4cfcw8+XMfJSI/g3lBwQAZjLz0bB8EqHBQVDcPWU5eRZbIgj2g6LN35qUlMSpqalWmyFEArXD\nN7NLH/Q9ICEeBLgOAogybYp2iGgtMycZzS8zfAXLOaasxGoTBMF2iPgLlkPstNoEQbAdIv6CIAg2\nRMRfsBwZ8CkIkUfEX7CcOHH7CELEEfEXLIdkVIcgRBwRf0EQBBsi4i9YjrT8BSHyiPgLghBTsNOJ\n5Nsewr7VG602JaoR8RcspzbMgyCYQV7WHoyY/V/EjR5ltSlRjYi/YD2i/YKZqGtCJ1ZXWWxIdCPi\nL1iPDPQXhIgj4i9YDknLX/BCZWmZ/0y6yBdLDxF/IQqQh1TwJO32h6w2IaYR8Rcsp01ZEbYMOM1q\nM4QoIy4v1HUexJ+oh4i/EBWcsCPNahOEKEPmf4QXEX9BEKKTkMVffjz0EPEXBCE6kZZ/WBHxFwQh\nOglZ/MXnr4eIvyAIUYms8BZeRPwFQYhKnCF7fcRtpIeIvyAIUUnbzeusNiGmEfEXBCEq6Z+3N8QS\nxOevh4i/IAiCDRHxFwQhRhGfvx4i/oIgCDZExF8QhBhFfP56iPgLgiDYEBF/QRCiks0nDg+xBPH5\n6yHiLwhCVFLdKNFqE2IaEX9BEKISckp4h3Ai4i8IQnQSbGC3OOnoNYKIvyAIUUmogd1kMRh9DIk/\nEY0monQiyiCiKV7On01EaUTkIKJr3M7VENF6dVtoluGCIMQ2JNodVhL8ZSCieABvA7gQwD4Aa4ho\nITNv1WTbA2ACgEe8FFHOzKeaYKsgCLZC1D+c+BV/AEMBZDBzFgAQ0VwAVwCoE39mzlbPSQ+NIAjm\nEKTbhkl8/kYw4vbpBkAbXm+fmmaUJkSUSkQpRHRlQNYJtoJldIegIVifPcnMXkNEosO3JzMnAbgB\nwGtE1Nc9AxHdqf5ApObm5kbAJCEa4dBX7xAaONmde9UfSIdtWDEi/vsB9NAcd1fTDMHM+9W/WQBW\nABjkJc/7zJzEzEkdOnQwWrQgCDGMLOMYXoyI/xoA/YmoNxElAhgLwNCoHSJqQ0SN1f32AM6Apq9A\nELSwtPQEzVcg1DdBkg5jXfyKPzM7AEwCsATANgDzmHkLEc0kossBgIiGENE+ANcCmEVEW9TLjweQ\nSkQbACwH8ILbKCFBEASvnLQjLajrSCZ5GcLIaB8w82IAi93SntLsr4HiDnK/biWAk0K0UbAJ0uEr\nmIG8QBpDZvgKllFDrl+/nK0ZFlkiRAviqokcIv6CZbg/5jm3TrTEDiE6WPfmJ+h5eHfI5cgwf2OI\n+AvRg7yv25r2/37Kf6YAkPAQ+oj4C1FD98yt2Ld6o9VmCIItMNThKwjhwElxgGYsd/uSo8CwU+QN\nQBAigLT8BctIdDqsNkGIIhKqq6w2wVaI+AuCEBV0KThsconyBqmHiL8gCDGFeA2NIeIvCEJsoaq/\nrOSlj4i/IAgxicT110fEXxAEwYaI+AuCEJOI20cfEX9BEGIKllE+hhDxFwQhpqht8ZNEidVFxF8Q\nhJikVWWp1SZENSL+giAINkTEXxAEwYaI+AuCEFuEuPavXRDxFwRBsCEi/oIQAfKffRElC3+y2gxB\nqEPi+QtCBGjz5BRlRyYeCVGCtPwFSyjcd8hqEwTB1oj4C5ZwZOtOq00QYhSWtytDiPgLliAPqCBY\ni4i/YA0i/oJgKSL+giWwhF0RBEsR8ResQdRfECxFxF+wBPH6COGCZYavIUT8LeCPtVn4PTXDajOs\nRVr+gmApMsnLAs5O6qvs2Lj5yxJrXRAsRVr+gjWI+AuCpYj4C5YQFx9vtQlCjFJVLIu4GEHEX7AE\nJrLaBKEBsD91U8DXlI69IQyWxB6GxJ+IRhNROhFlENEUL+fPJqI0InIQ0TVu58YT0U51G2+W4ULD\nxllTY7UJQgOg25CTA75mwK4tYbAk9vAr/kQUD+BtAGMADAQwjogGumXbA2ACgK/crm0LYDqAYQCG\nAphORG1CN1to8MhwvDrKqhyYMfFlbMk8bLUpgo0w0vIfCiCDmbOYuQrAXABXaDMwczYzbwTg3os3\nCsBSZj7KzPkAlgIYbYLdQkNHhnrWsePn3zFj1mM4dMtdVpvSoFm9aTdeP0NcPkYxIv7dAOzVHO9T\n04wQyrVCDKM3EWdbxsEIWmI9CYWFAIBOufsstqRhUzX1SUxeOcdqMxoMUdHhS0R3ElEqEaXm5uZa\nbY4QAdjh8HmudO43EbQkemGnE6seexblBcVWm9IgSKwos9qEBoUR8d8PoIfmuLuaZgRD1zLz+8yc\nxMxJHTp0MFi00JBxOnx3+Or9MNiJDe9+iWEvP4mNN4o7yBAygiwgjIj/GgD9iag3ESUCGAtgocHy\nlwC4iIjaqB29F6lpgs1p0qGt75MUFS+kluMoUtxBCflHLbZEiEX8PmXM7AAwCYpobwMwj5m3ENFM\nIrocAIhoCBHtA3AtgFlEtEW99iiAf0P5AVkDYKaaJtgc3cgWcfZtweWmZ6GmWn3zUftFYn1ORE21\nAyk33htyObFeT2ZjKLYPMy8GsNgt7SnN/hooLh1v184GMDsEG4VYRCe8g10f4eb5eejwj75IvuY2\njPjmw/oTMS5qmz6cg+FfvWO1GbZD3q8FS9BdxjHOnl/LliX5AIDOfy1TEmwS+I+rqnXPZ/zyO9a9\n/XmErLEPEtVTsATWm+FrY7dPLeve/AStPnjXajMig583m35jRio79/5fSOUIroj4C5YgC7h7Qpoq\nGXT/LZoTsf0mRDZ907MaqXXBGnQmeVGMi507J46/2moTLMacFru0+wPDXk+ZED3odPg67BT3R96A\nQCa5+VjUPyBE/AVLcOoI/NH530fQEmsxsqJZzIuawc/nr65aZO00wRj7IOIvWIPTd4fvmHW/RtAQ\na9HGOPIp8jHekWnUzbf6sWd1zzcuk0VcAkHEXwgbTiejyuG9tSYdvgp2r4etu/Nw9KX/GsqbuOw3\n/Qw2r8tAEfEXwsYbz3+BN87zvn6PXlRPO2FoIfsYa/k7apzYcVgJVtfy5OMxctdaQ9eRhAE3FRF/\nIWw88OTNeOTPL7yflAXcARhs+ceY+M/571do1r8vdu06iO5FxqP4xvn7zsRYPYUbEX8h7Hhr3UrL\nX8FrPcS4iCW99zK6FeeifHVaQNcdt3VNmCyyJzLJSwg7jmoHGjVOrDteOW4imm3bbKFF0QOLK8Mw\nTRxVVpsQU4j4C2HHUV7pIv6nz51loTXRhbblXzvD1z06JYNQUVwKMKNJy+aRNC+sEAJ/+yvNK0Dj\n5scgQfN9EoJD3D5C2HHqxfERDFHVsTOatGphtRmmEEro5Wbt22DLsPNMtMa+iPgLYcfuwxn1MNT3\nQYSWFSXhNyZI1r35CQ5vjdwEq1M2/O39hHzPAkLcPkLYMTSc0aZ48/lzA4tSM+j+W5DTsj1QKOtv\nNySk5S+EHWn5+8Zoyz/a6Vh0JOBrov9TxTYi/kLYkWGdvtH+MCY28NEsFY0aY805lxm/QBoFliLi\nL4QNZ23bTkf8MweeFiFrohOtS6xZVbmFloROE0cVhvyxyG++cLm1ghk9ZGdE/IXwo/Frp/+w1OXU\n4VYdI21NVOHVJebHzbP2pXdxYP22MFkUOWJBrFOffTOind1mIuIvhI3aIX1at0/J+k0ueVrnHYqo\nTdGGN5dYp9z9PvPn7MjGaY/fg2bDh4TTrLBSF700Ct0+OdsysWrM9XBU+nfBVRSVIOnJ+1F1TsMc\neirir/Kf577ErLfsE0c+kri0bmtcR7c47b6Enxfxb15V5jN7xwG9AQCtKqMjfHEwI7lq3T56Lf+K\nBGsmcR0cezOG/TIPG8++2G9eZ7Wy8HzborxwmxUWZKgnABDhodr9SdHXGmmoxKvuHq1AkPrA1CfY\nT/xzWnVAabOW6H0g08UlJtRT1ripbjiHX5ZvQsa0Z/DPRbPRtW0z0+5LauNk8Go/4aMBkPrD3VAV\nw35PnhAR9iTXB+1yasR/8AtPuORzxtuv/dGx6Ah6H8wC0PCHenrz3Gz4cG7Q19ZCfqql/cP3YVLy\nPOR+v9jQvYxSWe0wnJfVBYmcDbQB0zCtDiOZT79ktQkxQWF6Zv2BTuvWmWA/8dfS4OdAeLH/lDvG\nYdOcH31eUlypiGZysu9Oa3+x+xtXKiOj4kxudw/ZkWo4r1P9oWhSXWmqDZHC9uJfll/octx3xuMW\nWRJbuGiCTuuWbdjy1xKrs5/LDuV4TU+54macvmcjAGDCW094zQMAcX5+FKm23uLigzPQBGpU8U90\nGn9biCZsL/6bXnrXahNiksqC4rp9vdats1GjSJgTtbCRlmv0en18/299iPLwhZ8bLVj3dK34U4J1\nElbjaJiiX4vtxZ+8+FMrqhr2PzUaiNN01un5tav6HRcJc6IWQz7/Bu4ZCga/LX/VLVSteXOnCLvQ\nnG79A6WVDuwvaDgT9Wwt/o4aJzbuL/RIr8wJPE6J4IamE0xvwRJq1TIS1kQvDXy0T7jcVlvPHKV7\nvrblP+j+W8JyfyO4i/8HE6Zhx2lnWWRN4Nha/P8z+T+4/bPnPU/EW+dHjBW0b1S6+ibj/P1mGfrb\nt17T5ywy3jkZaUIdoDR4sf6IoeMzN9bt79qrNNZCWScgGGrcxP+BuS/h3Cxji9FHA7Z+8h57+1Gv\n6XFxUexkbShoH0Sd1/E+d0/wml5d0TBHUARKKKN9xl02BBVlFSZaEzg+7Q9RiANZqatLn27KLSPs\n9ined7Buv6K64S1YZGvx9wXZvTUaAqnPvwUQwVlWP0tVz+3Ttnd3JE94wCN994qUsNgXbZRXhSYa\nzqrwRgIt2HMQIMKG974I6LqNn32Hl6Z/HCarXKmdDBZqy//5u180nDflmttw3FX1rqmln2qGtkbx\nvAwtonJe+C0t22oTGiydX30BAODYf6AuTa9TkzQutm2nXxjSvXf/sQYVRdG74pU7uw4WYOdVN4ZU\nRrjDZe/7YxUAoNWMfwV0/9tTf8BjM28Nm10edvho9W/L8j7k1BtT35tiOO/wBbNdjju/8YrLcU1N\n9PfliPh74YrRpyEjpwSrdx212pTYQOd1nIgA1c1W2KVH/SUBPjsr1+1Cz3OGYusFVwRlohXkz/8e\n52euCamMVZlHsCfPdywgs+h1ODvs9wiFypIyr26fks+/jMj9+2dsdDmuqar2kTN6MCT+RDSaiNKJ\nKIOIPH4eiagxEX2tnl9FRL3U9F5EVE5E69XtPXPNDx8Hh56FoX3aWW1Gg6P21TtzXXp9ml7LX9O/\noo3znp+SCmbGJ3P/QPbBAr/3PX1wHwBA7y3h7XDb8MEcrH05+K9xcbnGTWNCq/28of2w8Qz9kTGB\nkr89A3/fcA9qapxeh0JrMTRPIQJwjdPSKKGty4tdjh1hdseZgV/xJ6J4AG8DGANgIIBxRDTQLdtt\nAPKZuR+A/wLQOs8ymflUdZtokt1h56zd6602oUFz46r6CKlc49uv7dK/otGZNp9+iLyDeZgw7hxs\nvnxcOEwMilPuvAGnPXZ30Nf/NlXrHjBHrC5N/8uUct55bQG+nvcHjl5xDc6Y8y5Sv1/m330dIcHd\nPOZaP2Y4vbb8rVpF7lDaFkvuGwhGWv5DAWQwcxYzVwGYC8D93foKAJ+q+/MBnE/+mgyCbfA3oiW+\nUycAAHWsX9il/57tQKnSmhq+fVX4jIswXdI31O2XVVrjGqgqqwCI8Nftj6KipAyF+5Q1Fe558Bpc\nf/05iFMjr7J7BFYAlQmJSLlyPACgorgU5Xme82TCQemJp+ieZycHtThMeVUNcorK8fQFd3qc25uy\nzus1Bzdu91tun/NGoMbJKCyPXvePEfHvBmCv5nifmuY1DzM7ABQCqPWZ9CaidUT0OxF5nQFBRHcS\nUSoRpebm5gb0AcJNpSOyQ7g27C1okMPGdPHjwE+a+QhS//06Br/8lOtl6ltBpIfwhRXNR9n43a+W\nmFByWBkXf+ZHr6BJi2Zo1aOLi6A51dAM5HB4jFxpXFON4T98BgDI69UfrXt2NXzfj79aEZCd7z3+\nZt3+kOf0O2OZOfC3kOpqLB58IRaePw7Tf/vA4/T+b7wHp9v/41Kv6e7MeulLLDr9clRHWEOMEu4O\n34MAjmXmQQAeAvAVEXlM6WTm95k5iZmTOnToEGaTAmPujFkRu9f+fbk4vlcHzJ32pv/MDQh/Lf+4\nhHgkPXk/4hu5Bnn7MVVpc2in+q/NysX63a4d8Zv35ptkaWS5J2W+1SbUcVSzFGFNvCILcX5+tLsd\nPah73p1L7tZ33bjTt399GzMuQX/iJTudXkNC6Pkf9t81GVdvWY7bU3/wXqavTluDQ8Hvmfp/uHH9\nL3CUhL9DPhiMfIr9AHpojruraV7zEFECgFYA8pi5kpnzAICZ1wLIBGBpMJfMpX8j+ZYHDec//82n\nw2hNPSUV1Zj31DtIdDpwzhehi/+Kldvw05LomG1o2O/q9qTeOtbzRbH/wN44vm9n/Pr75rq0Tsf3\nqb9X1Dsbo/QtRvM/YlKENu3P9S59MtpQDqkbs8NuUq8OLQznZWb0yN3reUJH/QtWrtYv1Ee0Tsfu\nPYbtAoD9q7y7j6zGiPivAdCfiHoTUSKAsQAWuuVZCGC8un8NgGXMzETUQe0wBhH1AdAfQJY5pgfH\nsaPPwYhPXjOcv3uR8XHCgfLU2CexN1fxay+f/joe/HiGaWWPPGMgLhmdZFp5IWHwddzXY5qgTuKp\nLC1Dy8pSNK6pxgUjT6o736HU/2igqCEqtN9Lx6jmf1S7tOZdH8xwyVO4ud411G7k6QHdcf6Cv9Cx\nyFjMrCMXXQIA6HXqAMPlV5YEsayln+/lwZ17MP3eV+F0a7wMnxXYmh9tr748YNMigV/xV334kwAs\nAbANwDxm3kJEM4mo9lN9BKAdEWVAce/UOujOBrCRiNZD6QieyMyWDp5vpK6+UxXAtPji8iq8MPIW\nfLvQ3FmnM79+FunTlYFR7bO0nUhRoRBB4bXTLcQRFy2qlEiJh9ZtdUlfkZyOd0YE5kqwmqr0nf4z\nWcC+nPqOW+1MWe3w2xKul4ve+cZdPoeLKnDNNcYDnrVf9B0AoNGxPfzkrKey0rhf/fUX5+CRS/y/\n/f9z6Vd4+p1HUFUWWqTOxGrPYZ/FFdUorrC2M9iQ84qZFzPzcczcl5mfVdOeYuaF6n4FM1/LzP2Y\neSgzZ6npC5j5BHWY52Bm9r28T4TZcvYYw3mPrt+MKb9/goH3Tgj5vuv2uPqnm+UrrSHSxAb3t4Rd\nIGz+/Du/eZgZf+zINWdVKS9F1Ja7MkV/lATpxFQqLK9GXLzr17XJIw9Gld/cCNEwhDgtLdMjreX8\n+kBqNT7iKiXfdF/A98rak4v0UwJ7S0AQazx8eu+zhvNOnnIDXln8mvHRQSE+F82r6n88DhSUY+fh\nYrw55i68OeaukMoNFdvO8B20doXhvCW7lS6OplW+WwDb9h7Fb+t265bDzDilp/eJY8O//9Rreqic\nePM/sf37/7mkHdmxCx9d9yBe/Xg5Kh01WPrNMpw9oCOWzPmfj1KMk+hl0e3adVHpow+DLnfe/z3q\nEXOpdik/l/t7aWWFg/Vvf47MpX9H5F5m0/xzz5g7CZphnSdl1c9WLUqrH5p67ebARycVL/kVZ2eH\n3+c9bcVs/5ncMSjqpUfMG1Dw91mXw3HSyXhixcd4YkVkYh/5wlbiX1ganDCcMM67zy5tUzY+/fgX\nAEDpiDNx/uBeuuWwk01fc9QI5XsPuBwXnD8Kt33zGh6+9TxkDRiEFj8pox1a/+R91EMgdCz0HKq7\n9Z3PQi73jgWve8w2rfIyhK65zg+0mZw66Wb0vejMiNzLbPKKPF2eVT5Gtgx/aVq4zbGMlvnGhpVn\nTQh+Ul8t5erKdtdu/hXH52aHXJ4Z2Er8/3zyFf+Z9HATn6bnn4vxtyruo6T9vhejrsWpM9PVBYMt\nkrQh59VNuNEtzm3BjdYFeXX7x2dtqjs/cEG9SJdUOjD12qlIWZ9tyBY9/rExGQDQ7Yd5uvn8RVP9\nfMb7LsfDNvwZmmEmsHXujyhq2gKFB6NrfooeI1J+8Ug7c8PvFlhiLWRwIZrEotAHFGx88a2QyzAb\nW4l/59WhTYNvWl4KECFlktIaCvQX3Okl0p83LzeBsTvP/+iFwanL6ybc1LI7r9TDd7/ps/rFQPan\nbkJcjesQtuJ8pVXSsrL+nrt/W4nn57+Amttu82sHADx5+/N47HrvkR8dqtvnWG9D8QJgys/vGMqX\nfSSIkR9ecNQ4sfeo/hhtnvE0WlaUYO9Sa3+IDhVWGA4P3ba8KMzW1BPqyNuaxo1x9KHHw2JBI4ex\nDlftG+fW/qfq5k2Z6N3WoiC9DmGFmaNqO+200zhsKG3qkLfMNl1dytv23ZL68zpUlJR6lJU89i5O\nvvcJl7S8pi15a4de/PKsn419HpUtW3fzpk59ef5nSzztZuadP6/w//lUtn2zWPlsfU4ypW4zc4p1\n72f2/2hVylafphaUVfFfO3P9fqTZL33BaV0G8KGcAp/2bR5wGjPAmz77NqT6CXX7pf9w/s9tM/1+\npkjYot3Wv/9V4NcZsPtg646Gylo947/MzHz06eeYAc5anhKwPamnnGm87nTy5G7PMP5ZgwBAKrNx\nrbVVy1+PjJ9XYMN7xsK/9sk/gO2b6kdMFG/YqpO7HvbS8k/clYnhbz/nkta2vAjH52bjkbsUl1Lq\n828jY8kffstf+fw7OPFwJk6/5waPcxn7j6Jwk3/XVJ2thnMa4+CQM0wuUR/n3K99nvvu1ik4o38H\nFObrx/4f+Z9/YdDBdJRt9v///Wv1joBtNJNRO1Pw4EdPYfGUEF2bJlP+s/9BBOWJTer218z4j9/8\nW7/+CZ3zDwdkR5vpTwAAep87PKDrAOC0DcY8BhWaz+GN5iedEPC9w4mIv0q/0eegUSvjMworUtPq\n9vWE8rPZv+DXFcroCacXH2NCqb6LgpmR9MQk9Bt9jm6+yopK3P65MmegS0mex/ldI40NbU3+v8CG\n8+Xt2ot1p53rN98Zuzf6zWMmenEFL/tRGRlSfdTYlBMjM5QnvjUFh/YcMmZcGLn4Re9Lk4ZKZXzg\nwy8BYPh3n/jNs7N/fdC2xK6d/eYfeN3Fxg0I85KsGf+8qW6/SZX+3KEm1dG1NKmIv4a4RONf8MRt\n9a3BoTPqJ4w4apxYtCQNj1z5GKocTtx82xicc/5gAN59/v4wIjz/O24EXrxEX7QvzFitvGj6YcQX\nb+HpB97EsrnGhn1mTJ6KQWkrDOU1wuFW5sR2cl/Sr7rGCaeTXWZr+o07q2bIXbIMIMKRHbt0szvz\no2um8ftv/4Dp975qSlmNa8ydkJR88/31B5p/RCDBgHcuWmamSUGR1+94j7ScrRkWWBI4Cf6z2IgA\n1u6lSu+/4lMufxivLH4NlwLI3Xc/OqB+VrG30T7dd+m7FHLTM9HJjy0X7UzBRTv9zz42oP0AgOmv\n1z+Y3tZFzVqRgt5nDwXFxYHJ3PZDTtde6ORluGigEAE1TkZWbgn6d2qB188dj8aXX4rc7AOYqYaD\n0NZHTbUD+5LXoefZQzzK6vypEvEx+7tf0N79pLYQtze77COl6NSyCZom6gclCxd3TrpS2Xn7YUvu\nr0ebK8YAn73hkZ7Q7BjDZfS/xP8bp7MwvCGnvYW9btevZ1jvaRbS8tcQF2/8IT3Uznso21cW18cN\nomrXUTXs8Gz5ty3V/3JuW1W/KMSGPfnA3LmAly9cpNj40dfoc+4IrJmutijNXuzepGUgCsqqMee1\nuWg8oD//or3cAAAXHklEQVSydh3EI39+gfseHYuZbz/k9V5rJkxGz3OGIvv3+mBfgS4Irl20xlnj\nRMmJp2D2ZOOLgpvJn8uiM5hYHS6NBsKBvsr6UJ16+GvqBMawV6ebUk5hWTUclV5G7Hh5FhvKUia2\nEH+nk/HBV/47TDsNMt4h0//Vf/vNw25Nbb0VrXwx8tar6vZP6dkWGDcOex7xPqTSHzW/Bf6afHym\n4qtftGwT0rbvR9km5U2F16lhCkwW/0AF1xej3n0Gg997CccWHkbu8pU+blb//2m+ThH94l36s7T1\n0Lr11jz5Mk48nImJs4L7X4VKo3lzvaavedp4UMNIwXGEzr8vRdlzL6DdGUOtNscr341/GKmTPf+X\n7GW5xriEeBR0cl/yJPqISfHP+m0lNg8cgjmf/Q8ff/Qz1v0vBXfcqN9hCgAtu3b0m6cWI9E+D/7p\nGjLW8CQvP5R/Nccj0qARhi0NPg7OpeefjNanD0XLn5XwTHV3j9KWPwB02J8NABh22zWGb7Xur/qO\n6TYFStylnjlqCF8vHfZ9s+pDS7Nm/sSwF/QXHwk7Pv4vQ2YYD2ceTuI1cZo4PgFx3brimKmPm/r/\nN5MJ898E/fSTR7qvVv72KzxH3EUbMSn+lXfdjRO3pWLc+FG45faLkbAn29B1/maYBsrJt491OfY2\n2icYBhzZg8IILZ8H1EdA7ZN/AAN3uLkTTH9YTRT/Mv0O2Ir8Yo+0mz96pm6/TZlrHSc9MckjfxOH\n/oLsZg+ZNYzJfTFm03dofUhuNrsB4cbfd081pZxh+zzX5T3lhSfr9nf01HT+GvxMa57x7PeIFNH9\nDQkSD9eBn57O3R2PDaM1Gkxq+QPAG/c8b1pZ/jja1bN+SF3licrMXaXIyGIsaVeNN+Ve3ZJORFmF\nKt6a70iwy+5VqX06RzKyXdLNmnFslOoaZ9iHOIZKXOdOSHvVc+nEcHDGey+Epdzs5clo2rp+eHhh\n/3rxb9OssaEyOr1h3byMmBR/91/d9C36Q/QihXuMnVCYPj+wBSVCobPO6JthP30VMTtqGfztJ6aV\nVeYlpvpPdzyBA+uMTdzT8sO/lFZc+/6969KYCIcHDQvewCD4+oVPInq/YGk3bBAAoPriSw3lL/lx\nMY4+GZmV9YzQa6TbhDHNgJEBMx7F0WvG+S/E6BC8cBDIdOBIbKGGd1g5cUrA07d3d+hRd31VXHxd\n+qYP5wY+Nd3HtmTFJp5+/+umlWf1ljxmbO2c8qC3ivhGHv+/9SeN8H9tiPfVbkfyipiZ68I01G6V\ncQlBlbfuV9fwAdrvUyS3nBZtXeuLmQv2HrT8e+NuU3Hu0ZCed29lFx/Jj+hnqD1ePeZ6Q/Z5fM+Y\nedGv6/jP1TtCrIrAwjvE3Dj/EUG84ml9jtqVixq19lhrPmguGnkSLjKtNOtptTHNfyY/FF56Jdy7\n2Ju/8iIw6uyQyzZKk48+ANLWeKQn+li/1R+5Eye7HNfO8Yg0HYo9Zy+nT7gX0TaWpnn7NqaX2axt\nK9PLNALHBT6fo/Z7dskFg5RZ1F7WwwgXsen2CRCt4Ds0r27R7TW1lsahTlU/dAgdv/GMpdRp8ImG\nLt++4OfQ7q/S7LGHlbkTJnFhxirTyjKbuErjS5eGk7K+x4W1fKvG2XN8cHK65m9lxJjZs6j9EXMt\n/6Dw8V0R8fdNn5zgx8MDADp5n8xj9MH9xz9Hh3Z/N4Lt5G1QMFttAQDgmIx0q00IC8G0/AFgyJkn\n+c8UBmKq5f9dsufapEY4dOX1dfvxmk5ZaiS/jXp8eF1wY8Y3TrJ4DLwXTs20fm1doYHjZXjnuteD\nWF4yQsSM+BcXleKq0/sFde0wTUjleI2Ptku/HiHbFcvc/k1ws0Ur2wc/hX/DrPrRRUVvvxd0OXYk\n6W9zXGXRREVCotUm1NHy2qs80pp28x+l1CpiRvyr8oJfZFk7uavg6vq3gGYD/xGSTYJ3Thx9us9z\n5G98uuZ8jcEhgkLscuRvz856q2hzfHCNT6uIGfFHkHMpa9xmQrafE/hi42tGXxfUve1IdXwCmg7z\nPeYkLsG4q83pNpLmyOooD2ZmIcnX3eE1PaN7/whbYi7dh56MlPue9Egv6tnXcBnV5eZ0hHO1l36j\nAMOw7GtlbmA7PWJG/IPtnF19vdtDoYrP/rZdDJdR0yh6Xj0B4NCj01Das49unuJe/ZB7x711x+XN\nzRvWqsV9ZaZtg8/Szd+kRTPDZbv3X7YaGN5RJA2VDR/MwYhvPvR6rlHTphG1xaz1GrQMf8MzyOKR\n8bcbvr5RE9+zcQ8N8N4Zu62PZ7q32F2BNkmNxAwzi5gRfw5C/ve164qhn73lkX4kYzda7whghmcU\nBaMqnPwwOj//NJplZ6Jw2nTfGVeloMOsN1HTogUq5n+LTfc9ERH7qvwsdecX7QPGrjOmGwUQC95O\nnHKn7yBjBbdPjJgdW44bjGYRGulTbVJso87bva9AVz3N823DWeM5N6Smyrrw6/6IGfFv2jjwkTl7\nL7wM8V5G9LTveyyatWvt/SJmbB95iUtSx/vNeYDKGhmLB6JHq9deqZtm3uqZGT7ztejYDiBCfFER\nmlx9VVhiwRQ0bYHeN13tmhjicMNel15Qt9/K22Se5OSQyrcTBU1boOfYK72e232TpuVs0hDR8g6d\nwjKpCwA2nOzaj1QdaiPDD9oq2fDel8hp0Q4dTxzgkc/pJeRztBAz4n+MgbU/3Tn5rcBmAxcPUOL9\nFx7r6lLpNvzUgO+99kzXdUhXn3cVyr9fFHA5LmU8EXwAKwpDFMj4Ggfa93UNCkchxjdq1a3eJ9qo\nbRtg82ZsmfUlUiY+riQOD3yBbjuy/fv/oXVZEVof6+reXHXRtXBUVKLn5x+g4IyRpt6z16fhG51V\nMcr1eTrugTsNXVfe0bh7V0uCxlV0yl03oGPRETRp2dwjX1yj4NY+jgiBxIKIxBZSbJ9gY3PosPeP\nVcwArz1zDHNVFTMzb7n3cZdyqsorAr53ypTndOOEBLptev8rw3WSd92NHtlW/+uVoO/tt441x9vO\nuyy0/6MBHImNw/NZYmjb/v3/vNe3lupq5vJyn/+TLddMCPy7ECaqKyo972PEJvWZdk/P/n01p/33\nQ5/lOGtqDNnlrKkJ/P8TJAgwtk/MtPzDRfezhmLrnIUY+NM8QP0V7/2Qq5snPoARKrV0bG9u/JF2\nHX24qdzYtWwl2n79hac9Hc2Ph3KkeVuX4/yzzkX/D14PqIwDaVuwNyWwUTzxURLGIBAOnzg4ovcz\nNJM6IQFo4t19knL1rSju2t1kq4InoXHggy6q4hLqnum01z5yOdfz7CEY9MBtPq81uvYHxcVh1ZTw\nhJQOFVuK/4ZTzwwo/8Cxl7m80lG7dnX7m/9xGuISAp/W3fv+O7Cll2ccm8NbdgRUzoFFS1Ey7Sl0\nuWyU1/PlPy5G2YLvwDU1yN2eid7njvCar+fECSh5/AlwQQFKnva/RKURMibc7XLc5o9liO/T20du\n73QdNBA9hgXuVqvl0FXX+88UBTT/Zi5KHvO+6Mi+VRuwYbC5we4CGVKrpaCV8t1nIm8Lm1lK5e9/\nomz2p4bzr5g8o25/8ORbkbs9ExW/LkPpF+aGKafEKHX9BPKaEIktEm6fsiP5wd+DmSuLS+vKysva\nG9C9ta92O8671ONVr/BQLjPUcMe+rk1P54Njx3NG135cWVoe0mfxRV7WXq5I0LHBwJY8+SmlsGXL\nmF95xfC9Uy4eywxwRtd+9YnbtjGvXWv8A6g27FqxSnFfhNmNEvKmcuTEQR7nqnKP8PpTzzT1fuWZ\nuzzqKnfwMN/1efAg8x138OHNO3h/m868L3Uz5y/4we99jp5xjsdnjBQbLrtB17bV511pqJxqinOt\nu8QmAdlRuHR5UN+FQEGAbh/DGSO1mS3+ObNmMwNcqRHTmqrq4O/BzOxw1JV1JGsPMzMn3/aQ4X9u\n8sTHmZk59fXZHv9wZ00Nr7zpXs7+7W+v1+a1bBea7YESgsCse/TfQd3SWVPDK6+7g/eu3hiy3btW\nrHI53njy6SF9JrO37f+ZxZybW293cTHzrl2u+Zh5/SlnMAOc9tanvL9N59Dum57uUlVpk6Zy9qRH\nmEtKAq/nzZt93mfr6KuZKyt55a0P8s5ffg/yHxk8yZOfqrOltGVrD/tWXXStoXJq9h9wua5g78HA\njanVi849eM8d9+n/f4JExN9LRa554R3OzdjNec+8yCW9+gZfvoballjhIc2D6+X+e6fN9Ejbl7qZ\nmZnTf1ym/w/XXLNl9tfK/T7+zBT7DaP5ofO2aRcrWTX1BZdzR9eGIN4hsvqcy5gBPrRFXSBDtWnl\nTfcqD/Cxfbiwe8+QRDTl+js5a3mK4fy5zesXWMnu1JPZ6fT9AWqvcziYmXm9+qO17t3POXXYhS7l\nHm7flfOff9m47Wbj4z7Jtz9s/r0CQNsJvPvzbzjnjns5b9gZvOb00cr/7+GnAyisOqT6cx5UFtKp\nWK78CO7y0bgr+uzLoMpn5vCIP4DRANIBZACY4uV8YwBfq+dXAeilOTdVTU8HMMrfvcIh/uGg9GgB\n7/x5hUva3pT1nLtzl+f93WwqOJDDzMw11Yqwrj77Up/3Kfj0C87718xwfQzDHP5qATPAWScPc/0s\nbTty3v0Pc/HCn5iZOWPJH3XnyvMLLbO3vKiEdyxaVne849h/MAPsqKrmbQt+qc/oRygdca6v/MmX\n3eT53TIouo6qegHZ1bmX/gdwu0fWBcqP2YEFP3LBnvqWaN6lV7EzX3FjluYX+rXhaM9+vu4YPD7u\nlfnUc+bfK0CyuvRhBjhj6d91acmjrlPFP8DnCuDyhERT7StKbGqaXpku/gDiAWQC6AMgEcAGAAPd\n8twD4D11fyyAr9X9gWr+xgB6q+XE690vFPEv+0jjRgF467yfgi4rFMryi7yKf8Wff9UJfy2Fh3KV\nFkoDoGDfYa6pdtS5uEoffZwdGZke+RwZmVz65jsWWOibytJyLvHS11M+dRozwNlDzuLy6U/zgRMG\nu3yHUkeM4vKiEi7+K1lpXTNz/udzuGLRYpeyc7v30RXd8tmfMDNz0cxnmQHee6HvH3xm5vKERE6+\ncnzdsTMvj8uefYHZ6eTSowXMAJclNHa5prqkVNeGqhYtlRas2Wjusea5t7hqbRpX9R9QP4zSQtY8\n8wYzXN/QUy66VhH/R58JqKzywmIuLyw21b73ft3OJz7wNZe8M4uLfv8rpLLCIf4jACzRHE8FMNUt\nzxIAI9T9BABHoITbccmrzedrC3UN30i0+o2w6ryreNW/lE7OldfdwSvvfNRSe4QAyM3liocfYQZ4\nT3KasWuKi5kXLGBevpw5J4f5r7/qv4eHD7vmXbpUyR8ktY2Lo8e08jy5YoWyTZvGvHIl808/Me/Z\noxyrLiSzcfypfNbiE04OS/lmsz9tC6f3PJ7zdx+w2hRTCVT8SbnGN0R0DYDRzHy7evx/AIYx8yRN\nns1qnn3qcSaAYQBmAEhh5i/U9I8A/MzM833dLykpiVNTU3Vt0iUnB3A6lRAHHcwPIiUIRtn0yQJU\nHjyIpKmT/GcOkJSJj6Pr+Otx7IjIzg/wyd69QOfOdePmhchDRGuZOclo/qhYqoqI7gRwJwAce+yx\nfnL7oaP7kuCCYA0nTbjaf6YgGf7ei2ErOyh6yMJHDQ0jk7z2A9D+Z7uraV7zEFECgFYA8gxeC2Z+\nn5mTmDmpg7TWBUEQwo4R8V8DoD8R9SaiRCgdugvd8iwEMF7dvwbAMtUHtRDAWCJqTES9AfQHsNoc\n0wVBEIRg8ev2YWYHEU2C0lkbD2A2M28hoplQOhgWAvgIwOdElAHgKJQfCKj55gHYCsAB4F5m9rLc\njSAIghBJ/Hb4RpqQO3wFQRBsSKAdvrYM7CYIgmB3RPwFQRBsiIi/IAiCDRHxFwRBsCFR1+FLRLkA\ndodQRHso4SWijWi1C4he26LVLiB6bYtWuwCxLRgCsasnMxueKBV14h8qRJQaSI93pIhWu4DotS1a\n7QKi17ZotQsQ24IhnHaJ20cQBMGGiPgLgiDYkFgU//etNsAH0WoXEL22RatdQPTaFq12AWJbMITN\nrpjz+QuCIAj+icWWvyAIguCHmBF/IhpNROlElEFEUyJwvx5EtJyIthLRFiKarKa3JaKlRLRT/dtG\nTSciekO1byMRDdaUNV7Nv5OIxvu6ZxA2xhPROiJapB73JqJVqg1fq1FaoUZd/VpNX0VEvTRlTFXT\n04lolEl2tSai+US0nYi2EdGIaKg3InpQ/V9uJqI5RNTEqjojotlElKMulFSbZlodEdFpRLRJveYN\nIqIQ7HpZ/V9uJKLviKi1v7rw9bz6qu9gbdOce5iImIjaR7rO9GwjovvUuttCRC9p0sNfb4Es+xWt\nGwysMxyGe3YBMFjdbwFgB5Q1i1+Cusg9gCkAXlT3LwbwM5TlLYcDWKWmtwWQpf5to+63McnGhwB8\nBWCRejwPwFh1/z0Ad6v7pq3BbNCuTwHcru4nAmhtdb0B6AZgF4CmmrqaYFWdATgbwGAAmzVpptUR\nlNDqw9VrfgYwJgS7LgKQoO6/qLHLa11A53n1Vd/B2qam94ASlXg3gPaRrjOdejsXwK8AGqvHHSNZ\nb2ETx0huMLDOcARs+AHAhQDSAXRR07oASFf3ZwEYp8mfrp4fB2CWJt0lXwj2dAfwG4DzACxSv7BH\nNA9pXZ3BxDWYDdjVCorIklu6pfUGRfz3qg99glpno6ysMwC93MTClDpSz23XpLvkC9Qut3NXAfhS\n3fdaF/DxvOp9R0OxDcB8AKcAyEa9+Ee0znz8P+cBuMBLvojUW6y4fWof3Fr2qWkRQX3lHwRgFYBO\nzHxQPXUIQCd135eN4bL9NQCPAXCqx+0AFDCzw8t96mxQzxeq+cNhW28AuQA+JsUl9SERNYPF9cbM\n+wG8AmAPgINQ6mAtoqPOajGrjrqp++Gw8VYoreJg7NL7jgYFEV0BYD8zb3A7FQ11dhyAs1R3ze9E\nNCRI24Kqt1gRf8sgouYAFgB4gJmLtOdY+RmO+HAqIroUQA4zr430vQ2QAOX1911mHgSgFIoLow4r\n6k31n18B5cepK4BmAEZH0oZAsOq7pQcRTYOyaNOXVtsCAER0DIAnADxltS0+SIDypjkcwKMA5gXS\njxAqsSL+htYKNhsiagRF+L9k5m/V5MNE1EU93wVAjh8bw2H7GQAuJ6JsAHOhuH5eB9CalDWW3e8T\n0hrMAbIPwD5mXqUez4fyY2B1vV0AYBcz5zJzNYBvodRjNNRZLWbV0X513zQbiWgCgEsB3Kj+MAVj\nVx5813cw9IXyY75BfRa6A0gjos5B2GZ6nUF5Fr5lhdVQ3tLbB2FbcPUWjC8y2jYov6BZUP7RtR0h\nJ4T5ngTgMwCvuaW/DNdOuZfU/Uvg2sG0Wk1vC8UH3kbddgFoa6KdI1Hf4fsNXDuF7lH374Vr5+U8\ndf8EuHY8ZcGcDt8/AQxQ92eodWZpvQEYBmALgGPUe30K4D4r6wyePmLT6gienZcXh2DXaChLtXZw\ny+e1LqDzvPqq72BtczuXjXqff0TrzEe9TQQwU90/DopLhyJVb2ETx0hvUHrvd0DpDZ8WgfudCeW1\neyOA9ep2MRT/228AdkLpya/94hCAt1X7NgFI0pR1K4AMdbvFZDtHol78+6hf4Az1y1I7yqCJepyh\nnu+juX6aanM6Ahjd4MemUwGkqnX3vfqQWV5vAJ4GsB3AZgCfqw+fJXUGYA6UvodqKC3E28ysIwBJ\n6ufMBPAW3DrgA7QrA4pw1T4H7/mrC/h4Xn3Vd7C2uZ3PRr34R6zOdOotEcAXaplpAM6LZL3JDF9B\nEAQbEis+f0EQBCEARPwFQRBsiIi/IAiCDRHxFwRBsCEi/oIgCDZExF8QBMGGiPgLgiDYEBF/QRAE\nG/L/zRsQecJFFu0AAAAASUVORK5CYII=\n", 86 | "text/plain": [ 87 | "" 88 | ] 89 | }, 90 | "metadata": {}, 91 | "output_type": "display_data" 92 | } 93 | ], 94 | "source": [ 95 | "\n", 96 | "w = Windowing(type = 'square')\n", 97 | "zcr = ZeroCrossingRate()\n", 98 | "pool = essentia.Pool()\n", 99 | "\n", 100 | "\n", 101 | "for frame in FrameGenerator(audio, frameSize=2048, hopSize=512, startFromZero=False):\n", 102 | " win = w(frame)\n", 103 | " zcr_frame = zcr(win)\n", 104 | " pool.add(\"lowlevel.zcr\", zcr_frame)\n", 105 | "\n", 106 | "\n", 107 | "print \"Shape of the output array: \" + str(pool[\"lowlevel.zcr\"].shape)\n", 108 | "plt.plot(pool[\"lowlevel.zcr\"])\n", 109 | "plt.plot(zcr_librosa.T, color = \"red\")\n", 110 | "plt.show()" 111 | ] 112 | }, 113 | { 114 | "cell_type": "markdown", 115 | "metadata": {}, 116 | "source": [ 117 | "### Multidimensional descriptor in librosa\n", 118 | "\n", 119 | "#### Librosa uses a default hanning window to compute the stft\n" 120 | ] 121 | }, 122 | { 123 | "cell_type": "code", 124 | "execution_count": 3, 125 | "metadata": { 126 | "collapsed": false 127 | }, 128 | "outputs": [ 129 | { 130 | "name": "stdout", 131 | "output_type": "stream", 132 | "text": [ 133 | "Shape of the output array: (13, 15786)\n" 134 | ] 135 | }, 136 | { 137 | "data": { 138 | "image/png": "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\nQmCC\n", 139 | "text/plain": [ 140 | "" 141 | ] 142 | }, 143 | "metadata": {}, 144 | "output_type": "display_data" 145 | } 146 | ], 147 | "source": [ 148 | "mfcc_librosa = librosa.feature.mfcc(y=audio, sr=44100, S=None, n_mfcc=13, fmax=11000)\n", 149 | "\n", 150 | "print \"Shape of the output array: \" + str(mfcc_librosa.shape)\n", 151 | "\n", 152 | "plt.imshow(mfcc_librosa[1:,:], aspect =\"auto\", origin='lower')\n", 153 | "plt.title(\"MFCC Librosa\")\n", 154 | "plt.colorbar()\n", 155 | "plt.show()" 156 | ] 157 | }, 158 | { 159 | "cell_type": "markdown", 160 | "metadata": {}, 161 | "source": [ 162 | "### Multidimensional descriptor in essentia" 163 | ] 164 | }, 165 | { 166 | "cell_type": "code", 167 | "execution_count": 4, 168 | "metadata": { 169 | "collapsed": false 170 | }, 171 | "outputs": [ 172 | { 173 | "name": "stdout", 174 | "output_type": "stream", 175 | "text": [ 176 | "Shape of the output array: (15787, 13)\n" 177 | ] 178 | }, 179 | { 180 | "data": { 181 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWMAAAEICAYAAACK8ZV4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xu4JddZ3/nvu1ZV7cs5p29qqVs32zK+BBmDcRqDgTAO\n5mI7PJF5MnFkk2CDZ5RJTEJiZhgzzBPI8DBPuM0QZgxEIWADxtgYO3g8BuN4SAgBZGR8iWRbSJZk\nS62WWq1W97ntS9Va7/yx1t5nd7svu8/Zfc4+R+/neeo5e1fVrlq1qvbader2E1XFGGPMznI7XQBj\njDHWGBtjzFywxtgYY+aANcbGGDMHrDE2xpg5YI2xMcbMAWuMjQFE5G+IyH07XQ7zzGWN8R4kIg+L\nyFBEDp/X/5MioiLynPz+HXm81Ynu702M/wYRuTv3PyEivy8i3zwx/AUi8jsickpEzorIZ0TkrSLi\nL1CmV4hIPG9eqyLy8qtXExeX6+F5o/eq+p9V9YU7URZjwBrjvewh4PWjNyLyYqB7gfF+WlUXJ7r3\n5PHfCvw88L8DR4BnAb8I3JaHfwVwF/AI8GJV3Q/8XeAYsHSRMj123rwWVfXPZrGwxux21hjvXb8B\nfO/E+zcCvz7NB0VkP/C/AW9R1fer6pqq1qr6/6jq/5RH+5fAn6rqW1X1BICq3qeqb1DVM1daWBF5\nk4g8KCIrIvKQiHxP7v88EflPec/7lIi8Z+Izf01EPioip0XkPhF53cSwd4jI20Xk/83TvCv/gCAi\nf5xH+/Tov4G85/7oxOffJiJfyJ/9rIh895UukzFXwhrjvevPgX0i8pX5sMHtwG9O+dmXA23gA5cY\n59uA922tiImILAC/ALxaVZeAbwQ+lQf/BPCHwEHgJuD/mvjMR4HfAq4jLd8visitE5O+nfSjcRB4\nAPhJAFX9ljz8ayb/GzjPF4C/AezP0/hNEbl+FstrzIVYY7y3jfaOvx34HHD8AuP8jyJyJnencr9r\ngFOq2lxi2tcAJ66wPDdMzGvULeRhEfgqEemo6glVvTf3r4FnAzeoal9V/yT3/y7gYVX9NVVtVPWT\nwO+SDpWMfEBVP56X413AS6YtqKr+jqo+pqoxN9b3Ay+7wuU1ZmrWGO9tvwG8AXgTFz9E8bOqeiB3\noxN+TwGHRaS4xLSfAq50T/GxiXmNujVVXQP+HvA/ACfyoYW/lj/zw4AAHxeRe0Xk+3P/ZwNfP9mw\nA98DHJ2Y3+MTr9eBxWkLKiLfKyKfmpj2VwGHL/c5YzbLGuM9TFW/SDqR9xrg/Vfw0T8DBsBrLzHO\nfwD+zuZLdy5V/Yiqfjupgf888G9z/8dV9b9X1RuAf0g6FPE80onD/3Rew76oqv9oq2URkWfn+f8A\ncI2qHgDuIf0oGHNVWGO8970Z+Na89zkVVT0L/Avg7SLyWhHpikgpIq8WkZ/Oo/0Y8I0i8jMichTG\nJ9t+U0QOXEkBReSIiNyWD1kMgFXSYQtE5O+KyE151KcBzcM+BLxARP5BLlspIl8nIl855WyfAJ57\nkWELeT5P5jJ8H2nP2JirxhrjPU5Vv6Cqd2/icz8HvBX4X0mN0iOkPcV/P5ou6UTfc4B7ReQs6Zjt\n3cDKRSZ7wwWuM/47pO3wrcBjwGngvwFGe7hfB9wlIqvAB4EfVNUHVXUF+A7SSbrHSIckfgpoTbmI\nPw68Mx+GeN3kAFX9LPBzpP8QngBeDPyXKadrzKaIPVzeGGN2nu0ZG2PMHLDG2Bhj5oA1xsYYMwes\nMTbGmDlwqYv6Z65sLWirexAAiYyv2lQRJJ9IHL1WmRhHcye5i6AeZNSfjWmhoC4P49x+sPGZc8aZ\nmIYKqBMkbvSU805yqqRCiZ5f9lTmyXmpbExD5bxyTUxPVMfzVQFEQHU8vjpBgo7LCEDuN5ruZFlQ\nUL+xHBKBPI/Juvqyegukn+iYlyEq6uXcOh59dnJZ3ES/0WvZGEfy9DfKCi5s1NUFy3L+PMbby0Xq\ncXK9jbad868MnizXRPnG0z9ve5os7+T2ol7yuOd+QKJulD3m8fLMRPWcbXE828nt+/yy59fqzi2s\nq/M2l9eNuo3pj967oMRiok40lS8WLvU7//sX2Vh3E3WAbqy/yemfs81O/g167nZwTn1++fdpvL5H\nyyppWqvLx0+p6rVs0nf+zQV96nSYatxPfGbwEVV91WbnNQvb2hi3uod4ySv+KQC+H9EiraHQcvhB\n+vaHyuGHkVgKbqDjhsEPIqHlQNLretEjEdwwfS5WLm00QYmV4JqJDTAooZ0+64ZpQ4mVpJUPSB5X\nC0E91B1H2Yt5IxH8II43eglKaDlEFQkQi43h6sH3ldCWvOHnBsgLbqjpBySmacBG4xHaDlcrdddR\nrkfUQ9NyFP2IhPQFajqOci0Ni7neJvtJA7EUfK4PItSLjqKXvnTlaoNEpe4W43r3g0gsZPwFipVQ\nrgaajqfopY3Y9xqaxTJNstho2SQortn4IQhtBxFcHcfrAknjiab+TdenxiGAFlCdbWi6Pk8vTX/U\nKMRKcLWO16MKxDLVeyxH9SkbdemF0BKK9bT8bhiJpUvjqOYf0FSe8efytjVqZGMpG42cS+tHi1S3\n6knL6wQ33Nj+xg1s3j58LxJbqXx+EBnuK8bzd40ijRJbcs6Pgas11X+ZGknf39jW3TCihaPpuI1G\nVaD9xAAJkfpAi+iF0HH4fhxv003H0TpT07+mxA8UiWnexVpD/7oW5WpI88jL7fsR3480Cx5pFBeU\nUKXhro74YaReKHB1RJ0Q2uk723TSdtp0HL6v1AuOajngh5HQdunHnY3vQSzz98WNviOKRAi5znCp\nDSh6kT/+/f/5i5duUS7tqdOBj3/kWVON66+/f8fvrtzWxtgYY7ZL+uck7nQxpmaNsTFmT1KUWqc7\nTDEPrDE2xuxZtmdsjDE7TFHCLrrD2BpjY8yeFbHG2BhjdpQCwRpjY4zZebZnbIwxO0yB2o4ZG2PM\nzlLUDlMYY8yOUwi7py22xtgYszeN8rl2C2uMjTF7lBB2UYasNcbGmD0pncCzxtgYY3ZUus7YGmNj\njNlx0faMjTFmZ+22PeNtj12SieQCadKDxN1Q04PEB5FiPSAh9wup32R6Qko8gNaZGgnpAd5+GPG9\ngESlXG0o1sJ4vHKt2XiYei89QFsUirWAH0QkKEU/UPQCEpRyJeCHmh5SLhALaLpu/FD30EoPvo75\nAeWtMzWQHz4+SMkKKIRKxg++HyU7jFIXmo5LDxrPD9YeqVYDrk4PMK9WQ3o4vR9V3ETSQk6BiLlM\ndSeVzw9iehB/L5W96KcHyxdr6YHxodx4OH8qY3ovqvnh+Lme+iE/BF7R0hG9jBNQxg9ml9yvcOOH\nzk+mkqgXmo4jdByxFOJEIkV6kV7HUnKdaU4tkfyQ/42H3o8+M3rQfMwpGzLxsPfJB/aXKw1aOCQH\nCxBHD5VPZfTDCG6UVpEeno6m9eHq/AD/Ks3bDTemq5LKq4XgB6NtNm0z1dmGcrlJ0+/rOCzBDyKu\n1vSw9UpoFtLGECrB93XjYfaFUPTSdqg5sMANY3qgvYdiPVCuBopeZOHBZXpH28RWQfVUL4UTDDce\nxF/0GroneoRWegD+6IH+RT8wuKaiOtOkeqs11V3cKMP4ge+j+srpHeo2AhskKu0nB+n7shbxvUi5\nGnF1pP10qoPRdj75vR9ty67Wc9JHJrcZCWl4aG29EVWEgJuqmwe2Z2yM2bPsMIUxxuwwRRiO/7Wc\nf9YYG2P2pHTTx3wcgpiGNcbGmD1rN53As8bYGLMnqQpBd8+e8WVLKiK/KiInReSeiX6HROSjInJ/\n/nvw6hbTGGOuXESm6ubBND8b7wBedV6/twEfU9XnAx/L740xZm6kE3jFVN08uGxjrKp/DJw+r/dt\nwDvz63cCr51xuYwxZktGJ/Cm6ebBZn8Sjqjqifz6ceDIjMpjjDEzE55J1xmrqoqM7r36ciJyB3AH\nQNU5sNXZGWPMVEZ34O0Wmy3pEyJyPUD+e/JiI6rqnap6TFWPla3FTc7OGGOuXFQ3VXc5F7mQ4cdF\n5LiIfCp3r5kY9iMi8oCI3Cci3zlNWTfbGH8QeGN+/Ubg9zY5HWOMuSrSg4Jm9myKd/DlFzIA/J+q\n+pLcfRhARG4FbgdelD/ziyJy2VsBp7m07d3AnwEvFJFHReTNwL8Cvl1E7ge+Lb83xpi5oQi1+qm6\ny07rwhcyXMxtwG+r6kBVHwIeAF52uQ9d9pixqr7+IoNeOWXBjDFm26lyJTd9HBaRuyfe36mqd07x\nuR8Qke8F7gZ+SFWfBm4E/nxinEdzv0uajwvsjDFm5q7oho5TqnrsCmfwS8BPkI6I/ATwc8D3X+E0\nxqwxNsbsScoV7Rlf+fRVnxi9FpF/C3wovz0O3Dwx6k253yXtnus+jDHmCl3Nh8uPrijLvhsYXWnx\nQeB2EWmJyC3A84GPX256O7ZnrIVAQ0qeGEaIKdmDoDRdT7EecMPIcF+JC4qvIxqUcjmMpyFBcYOA\nFg5fR1xQJER8DbF04KDuFpRna0K3QIWU1OChXAnEyhFLP06hKNYDoeXwQyWWklIeNCUl+L6ifpRM\nEilc/rsyBCpY30iMqPdVqBP8MObUApcSE7zD90fpH4LvR3y/IZatcZnUC74PRS8QWvnEgm4kQvhB\nxPdTOocb+JSqoDkVIyqhLaj3uEaJVU5V0LQcWjiKXmC4r0jJISK4OtW/urQuQtvhexEXctKJT59x\ndaReKlHJqRmFECuXkiHYSIjQwm0kR7i0jlXSuBI20jpSgkVOCImApPpCoV7yGwkQOWVENNWDihsn\nSYhC8LKRMJITUNQLoZ1SI2KZyuYHMU9LCV03TvBI08zTb5TQdqm8XiiHYZxiol5QzfMgreuUlpHr\nKiihW1CeHYITJETUO0LlxttV+6maerHYSBAZTVBIiTYhJbO4YcQNA7HyuDpSPR1oukVavy3H6vP2\nI1FZu6FFqNocuG+VwbVtfC/NJxaOpu0p1hp8Xwhtj+8HpFGqsw2Dg2VKD1mLOQ0lLdMovSatEx0n\ngfhBpFkoaDqOci2ME15EwQ1CTo8JqZ7Xa1y/ptnfoViPVGcGDA+0KHoN0riU5tEo4lKlS1Rimeoo\nDYs4FUKx9f1ERWb2cPl8IcMrSMeWHwV+DHiFiLyEtLU+DPxDAFW9V0TeC3yW1Mq9RVXDhaY7yQ5T\nGGP2JAXqGT134iIXMvy7S4z/k8BPXsk8rDE2xuxRYs8zNsaYnaYw1d1188IaY2PMnmV7xsYYs8NU\nxfaMjTFmp6UTeJYObYwxO2x3ZeBZY2yM2ZPSCTw7ZmyMMTtuNz1c3hpjY8yeNMs78LaDNcbGmD1r\nXsJGp2GNsTFmT1KFOlpjbIwxOyodprDG2BhjdpzdgWeMMTvMLm0zxpi5YIcpjDFmLlxBBt6Os8bY\nGLMnpasp7NkUFyakeJ4mxeGIz5EvjYITmtIRW0KoHE07xdRoIdRtR2iliJ8SkDoS2h5EGBxuoQ6q\n5YZQpcifUDpcUJqWS/E56+nXMZYuxRGVQr1UAlAuN4SWo1nwtM7UqJcclZRikZxC0UuxUOpTlFMs\nU8xRs+CJVYdYCb6XY3iGgaaTYmSil3HMUCwdfqApcmcUodRvcHWK25EIzYKn7qbYp0E7RRwV/Yg6\nBwJNx+VYIPCDtBwIqMvvC8ENUnRQaAnqYLjoqEqhOtugIoSWp1xJUTlN16d4qSbHBw1H0xpFUqX6\n84O0/KjiIuN4nNj2eXliirmCHFeVoqX8UPEDRR3jWKhRtBAx92vSpqEeyPNP8UxpGtFLSmpUmYg8\nyrFO+f1ouj5HKYlqislKqwvfS8vjexGJSnU2EKoUAaRO0roZxnH0EgW4QI4E8uPYqpgjnmIhuJii\nmmLLjZc9dNw4tigWRYqz8pLqS0flSmUZbxPDOC6DFjmFKS9PaHvqxTQdCUrT9rSfWAfJ8URPniEc\nPUjvhgXK1QZcikOiiSBC6KT1U/QaiOR1PyS0HOVqw3B/mcquKfpKfarb6GW8TFo4NH9nWk/XuDpF\nMEkTEZ++A9KkCCwVCO02rVMKLsVzEZVirUlxYqPoq7wtuJDrtUrRX6N5Tn5HtsJu+jDGmDlhhymM\nMWaH2dUUxhgzJ+xqCmOM2WGqQmONsTHG7LzddJhiSz8bIvLPReReEblHRN4tIu1ZFcwYY7ZidMx4\nmm4ebLoxFpEbgX8KHFPVrwI8cPusCmaMMVu1mxrjrR6mKICOiNRAF3hs60Uyxpit223XGW96z1hV\njwM/C3wJOAGcVdU/PH88EblDRO4WkbvrwermS2qMMVcoIlN182ArhykOArcBtwA3AAsi8vfPH09V\n71TVY6p6rGwtbr6kxhhzBVShiW6qbh5spRTfBjykqk+qag28H/jG2RTLGGO27plyzPhLwDeISBfo\nAa8E7p5JqYwxZot22zHjTTfGqnqXiLwP+EugAT4J3DmrghljzFbpM6ExBlDVHwN+bEZlMcaYmZqX\nk3PTsDvwjDF7kuruugPPGmNjzB4lhDm5UmIa1hgbY/asZ8wx4yumKRUCyQkVPnXRyzgFBE1P/Qfo\nHy5pWkLTFnydUgjUF/h+SgyAlH6hDkKromkJ7TMOl5MRpAHfKIODJW6YEiZCS0DT52IBoVWmpIUC\nBgdKmnZKCSl6ES1S6sdwyaekhqApCUTStOoFh4SUTqEiaXmkwDUQ2imdQ5qU8KAFBC/EokipFgL1\nYhvfj9QLjmolLbNECC1HKNNr0ZTs4fK8VZVQpTpxTZqOa5SmLSBC3RFcUEIpSEzDJMDys1u0zkaG\nS2l6oikdpF4QWg4QlxM20nxi6RguOcpeJHQKWqpoIWgqJq7WnFCiaF6XsUwJI66WlIbRpLQNIC1/\nrk9yWoiSyg8pPYOY6n6UdBErR6wEUUVcqudRnY4SI7SApu2JVZqQeqi7BcN9nmol5PWck16KVKc1\nfpyMIqMUkpDHqSSlz2hKxghtwQ9SakksU0JFaDkg4oaKiiAuTQuFwYECUQiV0DoTNpavFJpOie+n\nChyVXdYVEaV3bUm5FkFBC2HQ3kilaboFwwWhfTay/LwlOqdqeteW8MJ9hEronGpS3VcubZOa0lzU\nC+UgpJSPjid6oVnoUK409I608IOYUkxi+m7GIqV+xFIIziGaEjf615Sp3pZSczFcchR9j7qUghM6\nDt9XpEmv+9d1GBzwFD1FfZvq6SGxKkDSd90FRUnJLcODBX6ghJbP9b+R9rHl5gY7TGGMMTsvJYXt\nGtYYG2P2rN10NcXuObptjDFXQPMJvGm6yxGRXxWRkyJyz0S/QyLyURG5P/89mPuLiPyCiDwgIp8R\nkZdOU15rjI0xe5bqdN0U3gG86rx+bwM+pqrPBz6W3wO8Gnh+7u4AfmmaGVhjbIzZs1Rlqu7y09E/\nBk6f1/s24J359TuB1070/3VN/hw4ICLXX24edszYGLMnpb3eqY8ZHxaRyWfr3Kmql3u8wxFVPZFf\nPw4cya9vBB6ZGO/R3O8El2CNsTFmz7qCS9tOqeqxzc5HVVVEtnTthh2mMMbsWTM8ZnwhT4wOP+S/\nJ3P/48DNE+PdlPtdkjXGxpg9SRFidFN1m/RB4I359RuB35vo/735qopvIKUgXfIQBdhhCmPMHjar\nez5E5N3AK0jHlh8lPa3yXwHvFZE3A18EXpdH/zDwGuABYB34vmnmYY2xMWZvurITeJeelOrrLzLo\nlRcYV4G3XOk8rDE2xuxddju0McbsPHtqmzHG7DAFYrTG2BhjdpYCtmdsjDE7zx6haYwx88Aa4wsb\n3SwYC9lIgMiJB7EU/CDiB4obRtwwgAjD/SXdJyOD/Z5yNackFELTdtRdhx8qRT8SSqG1HKm7jsKD\n78U0zWHE9XPSQjv/yyJ5XkPGyR6iKbXADVPSRbEeaNo+pWw0mlI3ghJJ03KN0jobiKUQvVAtN4RW\nSqZwgzQ99TlFolbIKRexymkXpP+givUwTi2RJlKupTQSlZT04PuRputoWjmBZD1SrkJspemoCEUv\njOvVD1JChx8q1VpMqRgFFH1NZV4OhMpRnU3pEO2n0meHB9Km4HshJYW0U/qIazQnZKSECwkpaURH\n6SwRmgVPKFPSSSxSwkioUh2lBU0pHaESin5ahtCSVEej/yIl1ZVbzfWh0LTTfCSmhA116a/kpJLo\n0/BYpGGuTskiYTHNO1ZCzOsATcsQSxknp8RSgDRuaKcNcrTNhDJtY+pT+UfLMkp2gZTmEsuN9Sma\n0mXqBUfrTKD9+BrrNy8S2m5cd7FMHy5Xm5Rk0/W4RnM9p8pwTapjiVCdbVK6SSjG6Sn1omfh+IDQ\ncjQLKYWmOt0ntAs6x2tip6B/bYv2kwPcoGF4sE294JGolKuBerGgWI+p7l1KN1HnCJVAe/QdBReE\nQiMuaErKUSj6AbQYp/FIUJp2kT/ncUOl6AV8PxIrR3l2iO/VDA9UaX0UklJTipSuIzl1x7uY6tul\n7025PotWdLqHAM0L2zM2xuxdtmdsjDE7TEHtagpjjJkH1hgbY8zOs8MUxhgzB3ZRY7ylR2iKyAER\neZ+IfF5EPiciL59VwYwxZktGN31M082Bre4Z/2vgD1T1vxWRCujOoEzGGDMTz4ibPkRkP/AtwJsA\nVHUIDGdTLGOMmYFddDXFVg5T3AI8CfyaiHxSRH5FRBbOH0lE7hCRu0Xk7nq4toXZGWPMlRGdrpsH\nW2mMC+ClwC+p6tcCa8Dbzh9JVe9U1WOqeqysvqytNsaYq0OvoJsDW2mMHwUeVdW78vv3kRpnY4yZ\nA1OevJuTE3ibboxV9XHgERF5Ye71SuCzMymVMcbMwi7aM97q1RT/BHhXvpLiQaYM3jPGmG0Rd7oA\n09tSY6yqnwKOzagsxhgzO/ZweWOMmQ/zcqXENKwxNsbsXbuoMd7S7dDGGGNmY1v3jKMXBgeKlChA\nTlsocoqDCCw4YgHFQJFYUq0EtICAo+k41KeEkNQJoUzJDLFwKfmhEGIpiDpCKfQPOqqVlJggUVOq\nR05UCKVDYvpMECG0Uvl8rajAcF+V0itc+lfHDzUlOojQtFL5q9U4TrAYHCwoeikhou66tFwh/SzH\n0iNxI8EBoP10YLDfUy84QksoepFYeBBonw40OXGh6TiaVk7WGMD6dQVFXwllKrNrQIInFtA+k85W\nFP1U1rq7kVRR9DWldVQOP4jUS6lMTadIddlKqRihKlOZC2gtR/oHPX6orC61CFVKaai7wnARfK24\nGuqFtEyjdYOm9Yik8VUEUaXJ6R6ukZyysXFIb5T6oZLKJZ5cprROJOZkiCCIBxc2tgEX0rCipzTt\ntL5dSMs6Klf6K+P6CGVa3lHCiApITO9D5ag7ed1H8t+cEJI/F4uN5BgJqfwhb3/qoH/Qgy7QO5SS\nOIq+0jvicA34Aazc5Cl6oEtpGJKTS1wqu6uhd42jbOd0lH5ksM/TWougsH60olqJdJ7oc/rWBYb7\nFpGgtM54Ypm2v9VndcZ7hk0nrYvBPk+1FgntnHBSpe0r5pZACyjXlKYrKSXGOVSgOSyU60rPFxT9\niERJCR051aZpp+9cMVDWjhR0ToeURNJpE1odhouCq6HppDp2DUQPRR9iCb7vaTrgaggtUnswA3aY\nwhhjdpqyq26HtsbYGLN32Z6xMcbsPDtMYYwx88AaY2OMmQPWGBtjzM6ap8djTsMaY2PM3mVXUxhj\nzM6zPWNjjJkH1hgbY8wOs2PGxhgzJ6wxNsaYnSfPlIfLG2PMM4WIPAysAAFoVPWYiBwC3gM8B3gY\neJ2qPr2Z6dsjNI0xe9fsM/D+pqq+RFVHCUdvAz6mqs8HPpbfb4o1xsaYvUk3bvy4XLcFtwHvzK/f\nCbx2sxOyxtgYs3dNv2d8WETunujuuMjU/lBEPjEx/IiqnsivHweObLaodszYGLN3Tb/Xe2ri0MPF\nfLOqHheR64CPisjnz5mVqopsfj97Wxtj9TDct5EqIDElTEgjaE5qGC4JYT2dBW3aBdVKRBygjJMZ\nIKVmdE4F1At+EBkupdSMoq+4RhkspQSNOkC1ltIIJKZEBYk6TvkYHBT2fbFh/VqPC0rvGkfTEdww\n1amrIVQAgoSU+FHk+ccCquWAr1ISCaT0i1DJeF6xyGkQcWMdSYS66+gfFCRuJC6UayllpOk4ikEk\nFoK6lLCgTlPaSEjlSPNinEYBwtpRR9HLddcBn1MUmq5QrCmuSWUseyn1Y/V6T7mquKCQ00yatlD2\nlHJdx8tTrqUUEolQL6b5hzYgAprqEk2JF5rXkcQ071QXpNtSXUrzCNVGysboy6Lkz2n6GwpBJSdz\n1GndRy841TyPNF31QkTHKS+IECqImpI4ok/lKNdTggQKoS20T8dxAkjdkZTAUSt1R6jW0rp1uZ5D\nJWn7q/J2WAlNL21TreU4PmNfrsVxikrdcdRLKYEllozXZb2YllYLIbTSsmixkSoySjNxdZqfHwpa\nK7F0lL3I2pGCwYGUmDLc74lFQeekMDggdJ+IcKDIyRsy3j6GC0KsUqLJcL/QP+wB6D6RkmlCOy2X\nqze+q6EUfN5m/VAZHHQT25GwemNBaAndJ0JeNmgtB5q2o1qNDJdSCki9INQLMq7r0E7zK9bT9jLY\nD36g0GI8r1F9bJUw26spVPV4/ntSRD4AvAx4QkSuV9UTInI9cHKz07fDFMaYvWmGx4xFZEFElkav\nge8A7gE+CLwxj/ZG4Pc2W1w7TGGM2btmd9PHEeADkrL5CuC3VPUPROQvgPeKyJuBLwKv2+wMrDE2\nxuxdM2qMVfVB4Gsu0P8p4JWzmIc1xsaYPcueTWGMMfNgFzXGWz6BJyJeRD4pIh+aRYGMMWYmNF1N\nMU03D2ZxNcUPAp+bwXSMMWa2Zn879FWzpcZYRG4C/hbwK7MpjjHGzM423A49M1vdM/554IeBi+7o\ni8gdo1sMm97aFmdnjDFX4JmwZywi3wWcVNVPXGo8Vb1TVY+p6rGis7DZ2RljzJWZtiGek8Z4K1dT\nfBPwt0XkNUAb2Cciv6mqf382RTPGmM0T5ucQxDQ2vWesqj+iqjep6nOA24H/zxpiY8w82U3HjO06\nY2PM3jXrqFvaAAATd0lEQVQnDe00ZtIYq+p/BP7jLKZljDEz80xrjI0xZu7M0SGIaVhjbIzZu6wx\nNsaYnTcvtzpPY1sbY4kpTUAFXJPeqyjVqjI44HA1FOs5lSOk4dXZBi0coRwlYqS/sRTqBUe1EvGD\nAPt8SgVRJZRCazlSrqckiJRUIRSD9DNZdxx+GPG1snCioX1ilVAdoP1UjcRynE4Ri1TW6qmUiCCR\nlEYRFD+I0HLUiykhpFiPOS0hJXx0TgVCO6V8qJO8zClto1xNERILjw+pFwtiKawfdsRSKHpxnNIg\nMaWMuCYlRbhGaZ1ucCFSdwuKXko6iaWjOt2nOLVCc90+hvsrJCjFWoOosn59h2q5oV70eR2kYZ0n\nIHQ8bhhRJ+Nlc3WkXiwol2uapTJtKP1ILBzlakrEUJfKk5Y5EktBVGnaDjQlfhSDlDjhakV9qgPR\nnPRR5gSUnKahPm8kmlI2QpWGxyIlfKhL40RS+kf0UAzSuMVoW3Kpv2sUF1KCB0DRS8OIaf6+p+Np\nInm6E9tk9OmvH2gaJ6RyhphjZkQpBoprRutWU+qJuPF1q92TNf1DBS7IOJ1m4fFA007bYXWmYf1o\nmdath9ASil7adlwDoYSin5MvRFh4aJVmf4vu8R6oEhZKylPrxE7Jyi0L4/UHsPjAWepDXdaPVJSr\nkabtqZ7WtN77aaRqORLauQ76qUwpsSWlprSWI36Q0mVap2ti2aJ9OlCs1tT7S/bf32PtWQvpu6Lg\n+zr+fnQfHyJNZHiwolyH9lPQLDiiF9pn0ncpFoILOt4mXJO29XJdxwkrM2lzbM/YGGN22Bzd0DEN\na4yNMXuXNcbGGLOzdtsdeNYYG2P2rMlU9nlnjbExZm+yY8bGGDMf7DCFMcbMA2uMjTFm59mesTHG\nzANrjI0xZoep3Q5tjDE7zq4zNsaYeaG7pzW2xtgYs2fZnrExxuw0u+nDGGPmg53AM8aYOWCNsTHG\n7DTFTuAZY8w8sBN4FyExxchEL5RrikSl6AmdUzXlWkHRi4SWjCN3Bvsd60fKHEGUImlaywEihLZj\nuOhwDfQOt1IcUw3dJxuK9Yhfb8ALKsLKzS2KfqRaDgz3FxSDHN8UoHddycqzDqEOBvtaxBJiKbRP\nR/wwR8DklFlRCGWK/VHniEWKD3JNjrTpAZLiepqOA6D1dM3gYEkxiNRdhx9EyuWaweGKRjzlakPT\n9iycVIaLDlFonQ00XUd1tqF/oBr/q6VeWL2xwg+V0BJUClxQmo4w+OolYrFE5wml6aYyumGL4X4I\nHaX9ZAtXK8P9aVixVqI+LVO5qhTrSrUaadoOP1Tap4cMD1aEVipzqvtIudIQCwGX1lFoOXw/EFoF\nxByPJKkOi76OI5eaNjTdFNETixQjlaK1NEdcpdigUDkkgBYp6qjpCJBithAgppgkyX+bbopz0iJ9\nVj24WmjaafymC76flrNpgx9CaEGxntbraH2FVlqeelHG48eQlsfVaTsozwSKXsQNI+WZPuqF/nVd\nin4AhVg5Qssx2JcypPxQKdcbqtNDRJXhgRadkw31YsHaDRXlWqToR0LLESoZx4b5fpoHqsTK0yx4\n6oNt1MHZ5y+MY8TWjrbStpjXzWCfY7jk8M/aR9N1xBL8MLL/CzUSIrHlWbmpldZz1yEh1X3RaIqY\n8qnOXVDK1UCx1qBFjvVaSd/N1Rs6qIfVo0ssnmgolyOuSTFcTdfTerph/foWoYLuyYbhPk/n8QHt\nkzXqHa5fA7D+7H3EUvL3VtN23PKEKm3rcRTDtVXWGBtjzM6ymz6MMWYeqNrD5Y0xZi7snrbYGmNj\nzN61mw5TuM1+UERuFpE/EpHPisi9IvKDsyyYMcZsiQJRp+umICKvEpH7ROQBEXnbrIu76cYYaIAf\nUtVbgW8A3iIit86mWMYYMwM6ZXcZIuKBtwOvBm4FXj/r9m7TjbGqnlDVv8yvV4DPATfOqmDGGLNV\no0tSL9dN4WXAA6r6oKoOgd8GbptlWWdyzFhEngN8LXDXLKZnjDGzcAVXUxwWkbsn3t+pqndOvL8R\neGTi/aPA12+xeOfYcmMsIovA7wL/TFWXLzD8DuAOgKp7YKuzM8aY6VzZU9tOqeqxq1eYy9vKMWNE\npCQ1xO9S1fdfaBxVvVNVj6nqsbK1uJXZGWPM1NJNHzpVN4XjwM0T72/K/WZmK1dTCPDvgM+p6v8x\nuyIZY8yMxCm7y/sL4PkicouIVMDtwAdnWdSt7Bl/E/APgG8VkU/l7jUzKpcxxmzZrPaMVbUBfgD4\nCOlihfeq6r2zLOumjxmr6p+Q/hMwxpj5M+OkD1X9MPDh2U3xXHYHnjFmj7JnUxhjzHywh8sbY8wO\nU4tdMsaY+WB7xhcWSli9yRFaUC+n1AcVGOyvcA20AXXQebJGndA9GSnODpDekLXnH0KCUq42DPeX\nKdFgoNRdoXU2MlxMaQmxFPoHCwb7KySkFActoH/YU6y5nNIhlKuKa5TuEzUSlP7hkqX7l2n2tfH9\nhtVndQHwvZSKADBccIimlBAvUAw0LYMD15BTIyIShGI9MDhUsn60wtVKqBxFT6lWavwgpGn3I03H\no05AUwpF3c3LUQihKlGBpiXEAnwl1AswKByuSeXApYSTpS9Fok9l6jwwZHCgpF5wuEZoFlIaSayE\nzknFD5V6UXBDKPrpfbkaKFdq+te1WHhohbBQUT09pH+khe9HqrOB/uGKp1/QQiLUSympIxbg+wX1\nvpQSMUqeQECC4IcQSwhVShwZHEznfNUpxfooKSVtH7EgfzDt0UiTEjyarhDLjb2cUX3Xi0KswLfT\ncC2ACC5AaOdplkq5kupPXSpLrNLfUTmL9TSdekmoF9I6lSgU6ykpRIIgDbRPC0XP03460HQXcrqF\nI7ZSXbSeGtD+9Am6R69Bmois96mvP4B6YbhUIQprN7boH0zru3etx/c9oZXmUy8VqIPWmbRtlutK\n50Sf8myfsFgxWCpZPD5g/bqUEjLc52k9HWg/vo7UgcXVdfTsCtLtMHzeEYozfaSJNAc6rD6rw3BJ\niD59F4ipvtSl9Sb5ZJf6lPwiBx2tZY9EqM42+EGkfXyFhS8Iw+sWKNZr+ofb1PsKBvscsYDWslKu\nKPs+fwZ3eoX6WYdpP7qMVgVaevpHOtTdBSQq69d56sW0zY/2YOtFUBGKPuPEjy3bPW2x7RkbY/Yu\nibvnOIU1xsaYvUmZ9oaOuWCNsTFmTxKmvtV5LlhjbIzZu6wxNsaYOWCNsTHG7DA7ZmyMMfPBrqYw\nxpgdp3aYwhhjdpxijbExxsyF3XOUwhpjY8zeZdcZG2PMPLDG2BhjdpgqhN1znMIaY2PM3mV7xsYY\nMwesMTbGmB2mgGXgGWPMTlNQO2Z8QboUCC9bRlVY7ReIV44cWmZ/q0+IDhHlUGudfigoXGQYCg62\n1tlf9lj093FL60lONUusxxQD8ORwia9eeIQl36ctNV4iR/1ZjjcH+Vz/Bh7pH2StadGo43kLT7Lc\ntLm5fRoAj3KkPEs/lnxd52Fu9pE/HRzi42tfwR89/gJefu099EJFrY6zdYcFP6RWR8fXnK07RBWO\ntpcZxIJFPyDg+Mal+4nquK9/PU8OlzjaOkvL1Zyql2i7mvVQsb/ocaz7EMuxzQP9o3xN94v8l5UX\nEHD0QklUh8uRFicHSxxtL/NYbz+FRA63Vjk1WCQiVK5htW5RuMh1rVWWmxaPrB7km659kEEs+MLq\nYe49cT3h0S6hE2g/UVAvRYo1R71fkWv7dLoDvvLaJ7ihc5avW3yIF1WP8aXmILUWvKT1GMfDIv1Y\n8nB9LZ9YeTbDWFBHz6n+Ak6UU+sLrKy3WRsUlFVDaDxNv8CVgbhe4BYaNAislqhXcIq0AzrwEAQ9\n46n3BaR2+L4Q2oouNOAVWSsgCG4oSITQViQAKSgEPxBUQAvF5ySUsBSRWvDrQugqsRVxfYcbCPWS\n4geAE9Qpw076rDoYHEppH6GjxFLRpQZxymC1pHv9Kt3WkEFdsLzeotMdMBTlusVV9rd6HG0vs+gH\nHCzXeHZ16pz1F9XxSH2I9dCiVs89Z29I23Zd8cjDh1m8bo21fkmrXXPr4ZM8+PQ1LLaGrA1Lnnvo\nVJ6G8NX7jlNKoFbPn5z6Cp7dWueJ3hInHr4OGkexr+S6Qz0qLyxVLZ6z8CTwJAfLdb7UO8RTgwUe\nffIwrbJhrVchAsPVitbSgKYu0Ai+iNSrFeXiEN8dIKLUPrK/3Seq8OKDj3Gyv8TLDjzEG/bdy5/2\njzBUz1/1r6dWz2P9AziJ3NA6y3qseFHnUf56+xHuHR7lI6dfzErToh0KTve79JuC9dUO3faQlbU2\ncehpLw4YDkqKsmHldAfpNDNocLATeMYYMxfsmLExxswBa4yNMWan2YOCjDFm5ylgj9A0xpg5sIv2\njN1WPiwirxKR+0TkARF526wKZYwxW5dvh56mmwOb3jMWEQ+8Hfh24FHgL0Tkg6r62VkVzhhjNk1B\nd9F1xlvZM34Z8ICqPqiqQ+C3gdtmUyxjjJmBqNN1c2ArjfGNwCMT7x/N/c4hIneIyN0icnc4u76F\n2RljzBVSna6bA1f9BJ6q3gncCdB+3g3zsdTGmL1P9RlzNcVx4OaJ9zflfsYYMx/mZK93GltpjP8C\neL6I3EJqhG8H3jCTUhljzJYpGsJOF2Jqm26MVbURkR8APgJ44FdV9d6ZlcwYY7bimfQITVX9MPDh\nGZXFGGNmaxdd2mZ34Blj9iQF9JmyZ2yMMXNL7eHyxhgzF3bTCTzRbbz0Q0RWgPu2bYYXdxg4tdOF\nwMpxvnkoxzyUAawcAM9W1Ws3+2ER+QNS+adxSlVftdl5zcJ2N8Z3q+qxbZuhlcPKsQvLYOV4ZtrS\nU9uMMcbMhjXGxhgzB7a7Mb5zm+d3MVaOc1k5NsxDGcDK8YyzrceMjTHGXJgdpjDGmDlgjbExxsyB\nbWmMr3ZWnojcLCJ/JCKfFZF7ReQHc/9DIvJREbk//z2Y+4uI/EIuz2dE5KUT03pjHv9+EXnjJsvj\nReSTIvKh/P4WEbkrz+89IlLl/q38/oE8/DkT0/iR3P8+EfnOTZThgIi8T0Q+LyKfE5GX70R9iMg/\nz+vkHhF5t4i0t6M+RORXReSkiNwz0W9myy8if11E/mv+zC+IiFxBOX4mr5fPiMgHROTA5ZbzYt+h\ni9XlNOWYGPZDIqIicvhq14e5BFW9qh3piW5fAJ4LVMCngVtnPI/rgZfm10vAXwG3Aj8NvC33fxvw\nU/n1a4DfBwT4BuCu3P8Q8GD+ezC/PriJ8rwV+C3gQ/n9e4Hb8+tfBv5Rfv2PgV/Or28H3pNf35rr\nqQXckuvPX2EZ3gn8d/l1BRzY7vogJb88BHQm6uFN21EfwLcALwXumeg3s+UHPp7HlfzZV19BOb4D\nKPLrn5ooxwWXk0t8hy5Wl9OUI/e/mfTkxS8Ch692fVh3iW32qs8AXg58ZOL9jwA/cpXn+XukoNT7\ngOtzv+uB+/LrfwO8fmL8+/Lw1wP/ZqL/OeNNOe+bgI8B3wp8KG+cpya+fOP6yF+Cl+fXRR5Pzq+j\nyfGmLMN+UiMo5/Xf1vpgI5rrUF6+DwHfuV31ATyHcxvBmSx/Hvb5if7njHe5cpw37LuBd13ouzFa\nTi7yHbrUtjVtOYD3AV8DPMxGY3xV68O6C3fbcZhiqqy8Wcn/2n4tcBdwRFVP5EGPA0cuU6ZZlPXn\ngR8GRk8ouQY4o6rNBaY5nl8efjaPv9Vy3AI8CfyapMMlvyIiC2xzfajqceBngS8BJ0jL9wm2vz5G\nZrX8N+bXWy0PwPeT9iQ3U45LbVuXJSK3AcdV9dPnDdrJ+njG2lMn8ERkEfhd4J+p6vLkME0/2Vf1\nOj4R+S7gpKp+4mrOZwoF6V/SX1LVrwXWSP+Wj21TfRwkJYbfAtwALAA7ev//yHYs/+WIyI8CDfCu\nHZh3F/hfgH+x3fM2F7YdjfG2ZOWJSElqiN+lqu/PvZ8Qkevz8OuBk5cp01bL+k3A3xaRh4HfJh2q\n+NfAAREZPSFvcprj+eXh+4GnZlCOR4FHVfWu/P59pMZ5u+vj24CHVPVJVa2B95PqaLvrY2RWy388\nv950eUTkTcB3Ad+Tfxg2U46nuHhdXs5XkH4kP52315uAvxSRo5sox5brw7Atx4wL0oH+W9g4+fCi\nGc9DgF8Hfv68/j/DuSdsfjq//luce4Li47n/IdKx1oO5ewg4tMkyvYKNE3i/w7knWf5xfv0Wzj1h\n9d78+kWceyLnQa78BN5/Bl6YX/94rottrQ/g64F7gW6e9juBf7Jd9cGXHzOe2fLz5SesXnMF5XgV\n8Fng2vPGu+Byconv0MXqcppynDfsYTaOGV/V+rDuIutnW2aSzs7+FemM8I9ehel/M+lfzs8An8rd\na0jH1D4G3A/8h4kNR4C35/L8V+DYxLS+H3ggd9+3hTK9go3G+Ll5Y30gf3lauX87v38gD3/uxOd/\nNJfvPjZxZhp4CXB3rpN/n788214fwL8EPg/cA/xGbmiuen0A7yYdp65J/ym8eZbLDxzLy/QF4P/m\nvJOllynHA6Rjr6Nt9Zcvt5xc5Dt0sbqcphznDX+Yjcb4qtWHdRfv7HZoY4yZA3vqBJ4xxuxW1hgb\nY8wcsMbYGGPmgDXGxhgzB6wxNsaYOWCNsTHGzAFrjI0xZg78/67oeGlcdq0+AAAAAElFTkSuQmCC\n", 182 | "text/plain": [ 183 | "" 184 | ] 185 | }, 186 | "metadata": {}, 187 | "output_type": "display_data" 188 | } 189 | ], 190 | "source": [ 191 | "\n", 192 | "\n", 193 | "mfcc = MFCC()\n", 194 | "spectrum = Spectrum()\n", 195 | "\n", 196 | "\n", 197 | "for frame in FrameGenerator(audio, frameSize = 2048, hopSize = 512):\n", 198 | " mfcc_bands, mfcc_coeffs = mfcc(spectrum(w(frame)))\n", 199 | " pool.add('lowlevel.mfcc', mfcc_coeffs)\n", 200 | "\n", 201 | "print \"Shape of the output array: \" + str(pool[\"lowlevel.mfcc\"].shape)\n", 202 | "plt.imshow(pool['lowlevel.mfcc'].T[1:,:], aspect = 'auto',origin='lower')\n", 203 | "plt.title(\"MFCC Essentia\")\n", 204 | "plt.colorbar()\n", 205 | "plt.show()" 206 | ] 207 | }, 208 | { 209 | "cell_type": "markdown", 210 | "metadata": {}, 211 | "source": [ 212 | "### base implementation of a one dimensional descriptor\n" 213 | ] 214 | }, 215 | { 216 | "cell_type": "code", 217 | "execution_count": null, 218 | "metadata": { 219 | "collapsed": true 220 | }, 221 | "outputs": [], 222 | "source": [ 223 | "def zero_crossing_rate(data):\n", 224 | " \"\"\"Zero crossing rate\n", 225 | "\n", 226 | " Parameters\n", 227 | " ----------\n", 228 | " data : numpy.ndarray\n", 229 | " Audio data\n", 230 | " params : dict\n", 231 | " Parameters\n", 232 | "\n", 233 | " Returns\n", 234 | " -------\n", 235 | "\n", 236 | " \"\"\"\n", 237 | "\n", 238 | " import librosa\n", 239 | "\n", 240 | " feature_matrix = []\n", 241 | " for channel in range(0, data.shape[0]):\n", 242 | " zero_crossing_rate = librosa.feature.zero_crossing_rate(y=data[channel, :],\n", 243 | " frame_length=2048,\n", 244 | " hop_length=512,\n", 245 | " center=True\n", 246 | " )\n", 247 | "\n", 248 | " zero_crossing_rate = zero_crossing_rate.reshape((-1, 1))\n", 249 | " feature_matrix.append(zero_crossing_rate)\n", 250 | "\n", 251 | " return feature_matrix" 252 | ] 253 | }, 254 | { 255 | "cell_type": "markdown", 256 | "metadata": { 257 | "collapsed": false 258 | }, 259 | "source": [ 260 | "### Descriptor class extension with essentia" 261 | ] 262 | }, 263 | { 264 | "cell_type": "code", 265 | "execution_count": null, 266 | "metadata": { 267 | "collapsed": true 268 | }, 269 | "outputs": [], 270 | "source": [ 271 | "from dcase_framework.features import FeatureExtractor\n", 272 | "\n", 273 | "class CustomFeatureExtractor(FeatureExtractor):\n", 274 | " def __init__(self, *args, **kwargs):\n", 275 | " kwargs['valid_extractors'] = [\n", 276 | " 'zero_crossing_rate',\n", 277 | " ]\n", 278 | " kwargs['default_parameters'] = {\n", 279 | " 'zero_crossing_rate': {\n", 280 | " 'mono': True,\n", 281 | " 'center': True,\n", 282 | " },\n", 283 | " }\n", 284 | "\n", 285 | "\n", 286 | "\n", 287 | " def _zero_crossing_rate(self, data, params):\n", 288 | " \"\"\"Zero crossing rate\n", 289 | "\n", 290 | " Parameters\n", 291 | " ----------\n", 292 | " data : numpy.ndarray\n", 293 | " Audio data\n", 294 | " params : dict\n", 295 | " Parameters\n", 296 | "\n", 297 | " Returns\n", 298 | " -------\n", 299 | "\n", 300 | " \"\"\"\n", 301 | "\n", 302 | " from essentia.standard import *\n", 303 | "\n", 304 | " feature_matrix = []\n", 305 | " w = Windowing(type = 'hann')\n", 306 | " zcr = ZeroCrossingRate()\n", 307 | " pool = essentia.Pool()\n", 308 | " for channel in range(0, data.shape[0]):\n", 309 | "\n", 310 | "\n", 311 | "\n", 312 | " for frame in FrameGenerator(data[channel, :], frameSize=params.get('win_length_samples'), hopSize=params.get('hop_length_samples'), startFromZero=False):\n", 313 | " win = w(frame)\n", 314 | " zcr_frame = zcr(win)\n", 315 | " pool.add(\"lowlevel.zcr\", zcr_frame)\n", 316 | "\n", 317 | "\n", 318 | " zero_crossing_rate = pool[\"lowlevel.zcr\"]\n", 319 | " feature_matrix.append(zero_crossing_rate)\n", 320 | "\n", 321 | " return feature_matrix" 322 | ] 323 | } 324 | ], 325 | "metadata": { 326 | "kernelspec": { 327 | "display_name": "Python 2", 328 | "language": "python", 329 | "name": "python2" 330 | }, 331 | "language_info": { 332 | "codemirror_mode": { 333 | "name": "ipython", 334 | "version": 2 335 | }, 336 | "file_extension": ".py", 337 | "mimetype": "text/x-python", 338 | "name": "python", 339 | "nbconvert_exporter": "python", 340 | "pygments_lexer": "ipython2", 341 | "version": "2.7.12" 342 | } 343 | }, 344 | "nbformat": 4, 345 | "nbformat_minor": 2 346 | } 347 | --------------------------------------------------------------------------------