{ "metadata": { "name": "Audio File IO" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Python wave module" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import wave" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 200 }, { "cell_type": "markdown", "metadata": {}, "source": [ "http://docs.python.org/2/library/wave.html" ] }, { "cell_type": "code", "collapsed": false, "input": [ "fp = wave.open(\"passport.wav\", 'r')\n", "print fp" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\n" ] } ], "prompt_number": 201 }, { "cell_type": "code", "collapsed": false, "input": [ "print fp.getframerate(), fp.getnchannels(), fp.getnframes(), fp.getsampwidth(), fp.getcomptype(), fp.getcompname()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "44100 1 331098 2 NONE not compressed\n" ] } ], "prompt_number": 202 }, { "cell_type": "code", "collapsed": false, "input": [ "fp.getparams()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 203, "text": [ "(1, 2, 44100, 331098, 'NONE', 'not compressed')" ] } ], "prompt_number": 203 }, { "cell_type": "code", "collapsed": false, "input": [ "bytes = fp.readframes(8)\n", "print bytes" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Y\u0000\ufffd\u0000\ufffd\u0000\ufffd\u0000\ufffd\u0000\ufffd\u0000\ufffd\ufffd\ufffd\ufffd\n" ] } ], "prompt_number": 204 }, { "cell_type": "code", "collapsed": false, "input": [ "for byte in bytes:\n", " print ord(byte), " ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "89 0 225 0 182 0 137 0 188 0 129 0 252 255 179 255\n" ] } ], "prompt_number": 205 }, { "cell_type": "code", "collapsed": false, "input": [ "for byte in bytes:\n", " print bin(ord(byte))," ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "0b1011001 0b0 0b11100001 0b0 0b10110110 0b0 0b10001001 0b0 0b10111100 0b0 0b10000001 0b0 0b11111100 0b11111111 0b10110011 0b11111111\n" ] } ], "prompt_number": 206 }, { "cell_type": "code", "collapsed": false, "input": [ "import struct" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 207 }, { "cell_type": "markdown", "metadata": {}, "source": [ "http://docs.python.org/2/library/struct.html#format-characters" ] }, { "cell_type": "code", "collapsed": false, "input": [ "struct.unpack(\"hhhhhhhh\", bytes)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 208, "text": [ "(89, 225, 182, 137, 188, 129, -4, -77)" ] } ], "prompt_number": 208 }, { "cell_type": "code", "collapsed": false, "input": [ "fp.rewind()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 209 }, { "cell_type": "code", "collapsed": false, "input": [ "samples = []\n", "for i in range(fp.getnframes()):\n", " s = fp.readframes(1)\n", " samples.append(struct.unpack('h', s))" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 210 }, { "cell_type": "code", "collapsed": false, "input": [ "plot(samples)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 211, "text": [ "[]" ] }, { "output_type": "display_data", "png": "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\nyRAEQRCa8f8BmoyZPSQLXLoAAAAASUVORK5CYII=\n" } ], "prompt_number": 211 }, { "cell_type": "code", "collapsed": false, "input": [ "samples = np.array(samples)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 212 }, { "cell_type": "code", "collapsed": false, "input": [ "samplesnorm = samples/2**15" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 213 }, { "cell_type": "code", "collapsed": false, "input": [ "plot(samplesnorm)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 214, "text": [ "[]" ] }, { "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAD9CAYAAACiLjDdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAE85JREFUeJzt3V9s1Xf9x/HXme2FitIB6ylp0UpP/1NOMUDNki1gOcWt\noVbLGNOxkwVQSebELIuNMdl+JoWDRg0KF7q4rfMCNi8GjSslxXlc1XQE6ZwZLEVpQ/+esJ52G2NQ\nKO/fhayha/uBnVPO6YHnIzlJe/o55/ve95ud5/r9ntN5zMwEAMA07kj2AACA2Y1QAACcCAUAwIlQ\nAACcCAUAwIlQAACc4g5FS0uLioqKlJ+fr127dk255vHHH1d+fr78fr86Ojri3SQAIIHiCsXY2Jge\ne+wxtbS06MSJE9q3b59Onjw5YU1zc7P+85//6NSpU/rd736nbdu2xTUwACCx4grF0aNH5fP5lJub\nq/T0dG3cuFEHDx6csKapqUnBYFCSVFFRoZGREUUikXg2CwBIoLhC0dfXp0WLFo1/n5OTo76+vuuu\n6e3tjWezAIAESovnwR6P54bWffyvhEz1uBt9LgDARDf7LzHF9RtFdna2enp6xr/v6elRTk6Oc01v\nb6+ys7OneUZL4dtTs2CG23F25k/+jfljub3zjsks/lsixBWK5cuX69SpU+ru7tbo6KhefPFF1dTU\nTFhTU1OjF154QZLU3t6ujIwMeb3eeDYLAEiguE49paWlac+ePVq7dq3Gxsa0efNmFRcX67e//a0k\n6bvf/a7uv/9+NTc3y+fz6bOf/ayee+65GRkcAJAYntnyZ8b/d41iVowSo7CkVUmeIVZhpe7sEvMn\nW1jM/8m98440f378z+PxeG76KShCAQBJkEqh4E94AACcCAUAwIlQAACcCAUAwIlQAACcCAUAwIlQ\nAACcCAUAwIlQAACcCAUAwIlQAACcCAUAwIlQAACcCAUAwIlQAACcCAUAwIlQAACcCAUAwIlQAACc\nCAUAwIlQAACcCAUAwIlQAACcCAUAwIlQAACcCAUAwIlQAACcCAUAwIlQAACcCAUAwIlQAACcCAUA\nwIlQAACcCAUAwIlQAACc4gpFNBpVIBBQQUGBqqqqNDIyMmlNT0+PVq9erdLSUi1ZskS//vWv49kk\nACDB4gpFKBRSIBBQZ2enKisrFQqFJq1JT0/Xr371K7311ltqb2/X3r17dfLkyXg2CwBIoLhC0dTU\npGAwKEkKBoM6cODApDVZWVkqLy+XJM2ZM0fFxcXq7++PZ7MAgARKi+fBkUhEXq9XkuT1ehWJRJzr\nu7u71dHRoYqKimlWPH3N16uu3gDg1mMW2+PC4bDC4fCMznI9HjP3uIFAQIODg5Pub2hoUDAY1PDw\n8Ph98+bNUzQanfJ5zp07p1WrVuknP/mJamtrJw/i8UiKcc8BQIo5e1ZasCD+5/F4PLrOy3jcrvsb\nRWtr67Q/83q9GhwcVFZWlgYGBpSZmTnlukuXLqmurk4PP/zwlJEAAMxecV2jqKmpUWNjoySpsbFx\nygiYmTZv3qySkhJt3749ns0BAJLguqeeXKLRqDZs2KAzZ84oNzdXL730kjIyMtTf36+tW7fqlVde\n0d/+9jfde++9Wrp06dXTS9LOnTv1ta99beIgnHoCcBtJpVNPcYViJhEKALeTVAoFn8wGADgRCgCA\nE6EAADgRCgCAE6EAADgRCgCAE6EAgCS4+rGylEAoAABOhAIA4EQoAABOhAIA4EQoAABOhAIA4EQo\nAABOhAIA4EQoAABOhAIA4EQoAABOhAIA4EQoAABOhAIA4EQoAABOhAIA4EQoAABOhAIA4EQoAABO\nhAIA4EQoAABOhAIA4EQoAABOhAIA4EQoAABOhAIA4EQoAABOhAIA4BRzKKLRqAKBgAoKClRVVaWR\nkZFp146NjWnZsmVat25drJsDACRJzKEIhUIKBALq7OxUZWWlQqHQtGt3796tkpISeTyeWDcHAEiS\nmEPR1NSkYDAoSQoGgzpw4MCU63p7e9Xc3KwtW7bIzGLdHAAgSWIORSQSkdfrlSR5vV5FIpEp1/3w\nhz/Uz3/+c91xB5dDACAVpbl+GAgENDg4OOn+hoaGCd97PJ4pTyv96U9/UmZmppYtW6ZwOHwD4zx9\nzderrt4A4NYT6wmWcDh8g6+nM8djMZ4PKioqUjgcVlZWlgYGBrR69Wq9/fbbE9b8+Mc/1h/+8Ael\npaXpwoULeu+991RXV6cXXnhh8iAejyROTQG4PZw9Ky1YEP/zeDyem35aP+bzQTU1NWpsbJQkNTY2\nqra2dtKaHTt2qKenR11dXdq/f7+++tWvThkJAMDsFXMo6uvr1draqoKCAr366quqr6+XJPX396u6\nunrKx/CuJwBIPTGfepppnHoCcDu5LU49AQBuD4QCAOBEKAAAToQCAOBEKAAAToQCAOBEKAAAToQC\nAOBEKAAAToQCAOBEKAAAToQCAOBEKAAAToQCAOBEKAAAToQCAOBEKAAAToQCAOBEKAAgCTyeZE9w\n4wgFAMCJUAAAnAgFAMCJUAAAnAgFAMCJUAAAnAgFAMCJUAAAnAgFAMCJUAAAnAgFAMCJUAAAnAgF\nAMCJUAAAnAgFAMCJUAAAnAgFAMAp5lBEo1EFAgEVFBSoqqpKIyMjU64bGRnR+vXrVVxcrJKSErW3\nt8c8LAAg8WIORSgUUiAQUGdnpyorKxUKhaZc94Mf/ED333+/Tp48qTfffFPFxcUxDwsASDyPmVks\nDywqKtJf//pXeb1eDQ4OatWqVXr77bcnrHn33Xe1bNkynT59+vqDeDySYhoFAFLOO+9I8+fH/zwe\nj0cxvozfsJh/o4hEIvJ6vZIkr9erSCQyaU1XV5fuuusuPfroo/ryl7+srVu36vz587FPCwC3iJv8\n2j6j0lw/DAQCGhwcnHR/Q0PDhO89Hs/V3wgmunz5so4fP649e/ZoxYoV2r59u0KhkH76059Os8Wn\nr/l61dUbAOAj4XBY4XA4sRu1GBUWFtrAwICZmfX391thYeGkNQMDA5abmzv+fVtbm1VXV0/5fJLs\nf43lxo0bt1v/dvZsrK++k187b7aYTz3V1NSosbFRktTY2Kja2tpJa7KysrRo0SJ1dnZKko4cOaLS\n0tJYNwkASIKYL2ZHo1Ft2LBBZ86cUW5url566SVlZGSov79fW7du1SuvvCJJ+te//qUtW7ZodHRU\neXl5eu655zR37tzJg3AxG8Bt5OxZacGC+J8nERezYw7FTCMUAG4nqRQKPpkNAHAiFAAAJ0IBAHAi\nFAAAJ0IBAHAiFAAAJ0IBAHAiFAAAJ0IBAHAiFAAAJ0IBAHAiFAAAJ0IBAHAiFAAAJ0IBAHAiFAAA\nJ0IBAHAiFAAAJ0IBAHAiFAAAJ0IBAHAiFAAAJ0IBAHAiFAAAJ0IBAHAiFAAAJ0IBAHAiFAAAJ0IB\nAHAiFACQBB5Psie4cYQCAOBEKAAAToQCAOBEKAAAToQCAOBEKAAATjGHIhqNKhAIqKCgQFVVVRoZ\nGZly3c6dO1VaWqqysjJ961vf0sWLF2MeFgCQeDGHIhQKKRAIqLOzU5WVlQqFQpPWdHd365lnntHx\n48f173//W2NjY9q/f39cAwMAEivmUDQ1NSkYDEqSgsGgDhw4MGnN5z//eaWnp+v8+fO6fPmyzp8/\nr+zs7NinBQAkXFqsD4xEIvJ6vZIkr9erSCQyac28efP0xBNP6Atf+II+/elPa+3atVqzZo3jWZ++\n5utVV28AcOsxi+1x4XBY4XB4Rme5Ho/Z9OMGAgENDg5Our+hoUHBYFDDw8Pj982bN0/RaHTCuv/+\n979at26d2traNHfuXD3wwANav369vv3tb08exOORFOOeA4AUc/astGBB/M/j8XjkeBmfEc7fKFpb\nW6f9mdfr1eDgoLKysjQwMKDMzMxJa44dO6a7775b8+fPlyR985vf1D/+8Y8pQwEAmJ1ivkZRU1Oj\nxsZGSVJjY6Nqa2snrSkqKlJ7e7s+/PBDmZmOHDmikpKS2KcFACRczKGor69Xa2urCgoK9Oqrr6q+\nvl6S1N/fr+rqakmS3+/XI488ouXLl2vp0qWSpO985zszMDYAIFGc1ygSiWsUAG4nqXSNgk9mA0AS\nzI7/RL8xhAIA4EQoAABOhAIA4EQoAABOhAIA4EQoAABOhAIA4EQoACAJ+BwFAOCWQSgAAE6EAgDg\nRCgAAE6EAgDgRCgAAE6EAgCSgLfHAgBuGYQCAOBEKAAAToQCAOBEKAAAToQCAOBEKAAAToQCAJKA\nz1EAAG4ZhAIA4EQoAABOhAIA4EQoAABOhAIA4EQoAABOhAIAkoDPUQAAbhmEAgDgRCgAAE4xh+KP\nf/yjSktL9alPfUrHjx+fdl1LS4uKioqUn5+vXbt2xbq5FBBO9gBxCCd7gDiFkz1AnMLJHiBO4WQP\nEKdwsgeY9WIORVlZmV5++WXde++9064ZGxvTY489ppaWFp04cUL79u3TyZMnY93kLBdO9gBxCCd7\ngDiFkz1AnMLJHiBO4WQPEKdwsgeY9dJifWBRUdF11xw9elQ+n0+5ubmSpI0bN+rgwYMqLi6OdbMA\ngAS7qdco+vr6tGjRovHvc3Jy1NfXdzM3CQApweNJ9gQ3zvkbRSAQ0ODg4KT7d+zYoXXr1l33yT2f\neE+k0J6b0v8le4A4pPLsEvMnG/N/UgsXJnyTMXOGorW1Na4nz87OVk9Pz/j3PT09ysnJmXKtpdKn\nTwDgNjIjp56me5Ffvny5Tp06pe7ubo2OjurFF19UTU3NTGwSAJAgMYfi5Zdf1qJFi9Te3q7q6mrd\nd999kqT+/n5VV1dLktLS0rRnzx6tXbtWJSUlevDBB7mQDQCpxpLs0KFDVlhYaD6fz0KhULLHsS9+\n8YtWVlZm5eXltmLFCjMzGxoasjVr1lh+fr4FAgEbHh4eX79jxw7z+XxWWFhohw8fHr//2LFjtmTJ\nEvP5fPb444+P33/hwgXbsGGD+Xw+q6iosO7u7phnffTRRy0zM9OWLFkyfl+iZn3++ectPz/f8vPz\nrbGxccbmf+qppyw7O9vKy8utvLzcmpubZ+38Z86csVWrVllJSYmVlpba7t27zSx1jsF086fCMfjw\nww9t5cqV5vf7rbi42Orr680sdfb9dPPP1n2f1FBcvnzZ8vLyrKury0ZHR83v99uJEyeSOZLl5uba\n0NDQhPuefPJJ27Vrl5mZhUIh+9GPfmRmZm+99Zb5/X4bHR21rq4uy8vLsytXrpiZ2YoVK+z11183\nM7P77rvPDh06ZGZme/futW3btpmZ2f79++3BBx+MedbXXnvNjh8/PuGFNhGzDg0N2eLFi214eNiG\nh4fHv56J+Z9++mn7xS9+MWntbJx/YGDAOjo6zMzs/ffft4KCAjtx4kTKHIPp5k+VY/DBBx+Ymdml\nS5esoqLC2traUmbfTzf/bN33Sf0THtd+ziI9PX38cxbJZh+75tLU1KRgMChJCgaDOnDggCTp4MGD\neuihh5Senq7c3Fz5fD69/vrrGhgY0Pvvv6+VK1dKkh555JHxx1z7XHV1dfrzn/8c85z33HOP7rzz\nzoTPevjwYVVVVSkjI0MZGRkKBAJqaWmZkfmlqa95zcb5s7KyVF5eLkmaM2eOiouL1dfXlzLHYLr5\npdQ4Bp/5zGckSaOjoxobG9Odd96ZMvt+uvml2bnvkxqK2fg5C4/HozVr1mj58uV65plnJEmRSERe\nr1eS5PV6FYlEJP3vesy17+L6aP6P35+dnT3+z3XtP3NaWprmzp2raDQ6Y/Pf7FmHhoamfa6Z8pvf\n/EZ+v1+bN2/WyMhISszf3d2tjo4OVVRUpOQx+Gj+r3zlK5JS4xhcuXJF5eXl8nq9Wr16tUpLS1Nq\n3081vzQ7931SQ/HJP2dx8/39739XR0eHDh06pL1796qtrW3Czz0ez6yceyqpNOtHtm3bpq6uLr3x\nxhtauHChnnjiiWSPdF3nzp1TXV2ddu/erc997nMTfpYKx+DcuXNav369du/erTlz5qTMMbjjjjv0\nxhtvqLe3V6+99pr+8pe/TPj5bN/3H58/HA7P2n2f1FB8ks9ZJMrCq5+Cueuuu/SNb3xDR48eldfr\nHf/g4cDAgDIzMyVNnr+3t1c5OTnKzs5Wb2/vpPs/esyZM2ckSZcvX9a7776refPmzdj8N3vW+fPn\n39TjlpmZOf4v+JYtW3T06NFZPf+lS5dUV1enTZs2qba2VlJqHYOP5n/44YfH50+1YzB37lxVV1fr\nn//8Z0rt+4/Pf+zYsdm77z/xFZgZdOnSJVu8eLF1dXXZxYsXk34x+4MPPrD33nvPzMzOnTtnd999\ntx0+fNiefPLJ8Xdk7dy5c9IFsosXL9rp06dt8eLF4xeYVq5cae3t7XblypVJF5i+973vmZnZvn37\n4rqYbWbW1dU16WL2zZ51aGjIvvSlL9nw8LBFo9Hxr2di/v7+/vGvf/nLX9pDDz00a+e/cuWKbdq0\nybZv3z7h/lQ5BtPNnwrH4OzZs+Prz58/b/fcc48dOXIkZfb9dPMPDAzMyn2f9LfHNjc3W0FBgeXl\n5dmOHTuSOsvp06fN7/eb3++30tLS8XmGhoassrJyyrfcNTQ0WF5enhUWFlpLS8v4/R+9ZS0vL8++\n//3vj99/4cIFe+CBB8bfstbV1RXzvBs3brSFCxdaenq65eTk2LPPPpuwWZ999lnz+Xzm8/ns+eef\nn5H5f//739umTZusrKzMli5dal//+tdtcHBw1s7f1tZmHo/H/H7/+NsZDx06lDLHYKr5m5ubU+IY\nvPnmm7Zs2TLz+/1WVlZmP/vZz8wscf+uxrvvp5t/tu57jxl/OwMAMD3+D3cAACdCAQBwIhQAACdC\nAQBwIhQAACdCAQBw+n/w2LWzNPYJMAAAAABJRU5ErkJggg==\n" } ], "prompt_number": 214 }, { "cell_type": "code", "collapsed": false, "input": [ "plot(samplesnorm)\n", "xlim((0, 100))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 215, "text": [ "(0, 100)" ] }, { "output_type": "display_data", "png": "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\nRU5ErkJggg==\n" } ], "prompt_number": 215 }, { "cell_type": "code", "collapsed": false, "input": [ "samplesnorm = samples/2.0**15" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 216 }, { "cell_type": "code", "collapsed": false, "input": [ "plot(samplesnorm)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 217, "text": [ "[]" ] }, { "output_type": "display_data", "png": "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\nTkSuQmCC\n" } ], "prompt_number": 217 }, { "cell_type": "code", "collapsed": false, "input": [ "print samples.dtype\n", "print samplesnorm.dtype" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "int64\n", "float64\n" ] } ], "prompt_number": 218 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Writing audio files" ] }, { "cell_type": "code", "collapsed": false, "input": [ "outfile = wave.open('testout.wav','w')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 219 }, { "cell_type": "code", "collapsed": false, "input": [ "outfile.getframerate()" ], "language": "python", "metadata": {}, "outputs": [ { "ename": "Error", "evalue": "frame rate not set", "output_type": "pyerr", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0moutfile\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgetframerate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;32m/usr/lib/python2.7/wave.pyc\u001b[0m in \u001b[0;36mgetframerate\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 361\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mgetframerate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 362\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_framerate\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 363\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mError\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'frame rate not set'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 364\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_framerate\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 365\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mError\u001b[0m: frame rate not set" ] } ], "prompt_number": 220 }, { "cell_type": "code", "collapsed": false, "input": [ "sr = 44100\n", "outfile.setframerate(sr)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 221 }, { "cell_type": "code", "collapsed": false, "input": [ "outfile.getnchannels()" ], "language": "python", "metadata": {}, "outputs": [ { "ename": "Error", "evalue": "number of channels not set", "output_type": "pyerr", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0moutfile\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgetnchannels\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;32m/usr/lib/python2.7/wave.pyc\u001b[0m in \u001b[0;36mgetnchannels\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 337\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mgetnchannels\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 338\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_nchannels\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 339\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mError\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'number of channels not set'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 340\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_nchannels\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 341\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mError\u001b[0m: number of channels not set" ] } ], "prompt_number": 222 }, { "cell_type": "code", "collapsed": false, "input": [ "outfile.setnchannels(1)\n", "outfile.getnchannels()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 223, "text": [ "1" ] } ], "prompt_number": 223 }, { "cell_type": "code", "collapsed": false, "input": [ "outfile.getsampwidth()" ], "language": "python", "metadata": {}, "outputs": [ { "ename": "Error", "evalue": "sample width not set", "output_type": "pyerr", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0moutfile\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgetsampwidth\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;32m/usr/lib/python2.7/wave.pyc\u001b[0m in \u001b[0;36mgetsampwidth\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 349\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mgetsampwidth\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 350\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_sampwidth\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 351\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mError\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'sample width not set'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 352\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_sampwidth\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 353\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mError\u001b[0m: sample width not set" ] } ], "prompt_number": 224 }, { "cell_type": "code", "collapsed": false, "input": [ "outfile.setsampwidth(2)\n", "outfile.getsampwidth()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 225, "text": [ "2" ] } ], "prompt_number": 225 }, { "cell_type": "code", "collapsed": false, "input": [ "dur = 1.0\n", "phase = linspace(0, 2*pi, dur*sr)\n", "out = sin(phase)*2**15\n", "\n", "for sample in out:\n", " outfile.writeframes(struct.pack('h', int(sample)))\n", " \n", "outfile.close()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 226 }, { "cell_type": "code", "collapsed": false, "input": [ "outfile = wave.open('testout2.wav','w')\n", "sr = 44100\n", "outfile.setframerate(sr)\n", "outfile.setnchannels(1)\n", "outfile.setsampwidth(2)\n", "\n", "freq = 440\n", "dur = 1.0\n", "phase = linspace(0, 2*pi, dur*sr)\n", "out = sin(phase*freq)*2**15\n", "\n", "for sample in out:\n", " outfile.writeframes(struct.pack('h', int(sample)))\n", " \n", "outfile.close()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 227 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Pros:\n", "\n", "- it doesn't require installing anything beyond Python\n", "\n", "Cons:\n", "\n", "- Returns bytes which need to be \"decoded\" \n", "- Can't open compressed files or files with greater depth than 16-bit integers" ] }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Embedded player" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Great audio player for ipython notebook I found at http://nbviewer.ipython.org/github/Carreau/posts/blob/master/07-the-sound-of-hydrogen.ipynb\n", "# The original source is here: https://github.com/Carreau/posts\n", "\n", "import StringIO\n", "import base64\n", "import struct\n", "from IPython.core.display import HTML\n", "\n", "def wavPlayer(data, rate):\n", " \"\"\" will display html 5 player for compatible browser\n", " The browser need to know how to play wav through html5.\n", " there is no autoplay to prevent file playing when the browser opens\n", " Adapted from SciPy.io.\n", " \"\"\"\n", " \n", " buffer = StringIO.StringIO()\n", " buffer.write(b'RIFF')\n", " buffer.write(b'\\x00\\x00\\x00\\x00')\n", " buffer.write(b'WAVE')\n", " buffer.write(b'fmt ')\n", " if data.ndim == 1:\n", " noc = 1\n", " else:\n", " noc = data.shape[1]\n", " bits = data.dtype.itemsize * 8\n", " sbytes = rate*(bits // 8)*noc\n", " ba = noc * (bits // 8)\n", " buffer.write(struct.pack('' or (data.dtype.byteorder == '=' and sys.byteorder == 'big'):\n", " data = data.byteswap()\n", "\n", " buffer.write(data.tostring())\n", " size = buffer.tell()\n", " buffer.seek(4)\n", " buffer.write(struct.pack('\n", " \n", " \n", " \"\"\".format(base64=base64.encodestring(val))\n", " display(HTML(src))" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 228 }, { "cell_type": "markdown", "metadata": {}, "source": [ "A better option, but too new:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from IPython.display import Audio\n", "Audio(url=\"http://www.nch.com.au/acm/8k16bitpcm.wav\")" ], "language": "python", "metadata": {}, "outputs": [ { "ename": "ImportError", "evalue": "cannot import name Audio", "output_type": "pyerr", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mImportError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mIPython\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdisplay\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mAudio\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0mAudio\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0murl\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"http://www.nch.com.au/acm/8k16bitpcm.wav\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mImportError\u001b[0m: cannot import name Audio" ] } ], "prompt_number": 229 }, { "cell_type": "code", "collapsed": false, "input": [ "rate = 44100 #44.1 khz\n", "duration = 2.5 # in sec\n", "\n", "def normedsin(f,t):\n", " return 2**14*sin(2*pi*f*t)\n", "\n", "time = np.linspace(0,duration, num=rate*duration)\n", "wavPlayer(normedsin(440, time).astype(np.int16), rate)\n" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", " \n", " \n", " \n", " " ], "output_type": "display_data", "text": [ "" ] } ], "prompt_number": 230 }, { "cell_type": "code", "collapsed": false, "input": [ "rate = 44100 #44.1 khz\n", "duration = 1 # in sec\n", "time = np.linspace(0,duration, num=rate*duration)\n", "wavPlayer(normedsin(880, time).astype(np.int16), rate)\n" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", " \n", " \n", " \n", " " ], "output_type": "display_data", "text": [ "" ] } ], "prompt_number": 231 }, { "cell_type": "code", "collapsed": false, "input": [ "wavPlayer(samples.astype(np.int16), fp.getframerate())" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", " \n", " \n", " \n", " " ], "output_type": "display_data", "text": [ "" ] } ], "prompt_number": 232 }, { "cell_type": "code", "collapsed": false, "input": [ "wavPlayer(samples.astype(np.int16), 48000)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", " \n", " \n", " \n", " " ], "output_type": "display_data", "text": [ "" ] } ], "prompt_number": 233 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Scipy.io.wavfile" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from scipy.io import wavfile" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 234 }, { "cell_type": "code", "collapsed": false, "input": [ "sr, frames = wavfile.read('passport.wav')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 235 }, { "cell_type": "code", "collapsed": false, "input": [ "print sr" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "44100\n" ] } ], "prompt_number": 236 }, { "cell_type": "code", "collapsed": false, "input": [ "plot(frames)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 237, "text": [ "[]" ] }, { "output_type": "display_data", "png": "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\nyRAEQRCa8f8BmoyZPSQLXLoAAAAASUVORK5CYII=\n" } ], "prompt_number": 237 }, { "cell_type": "code", "collapsed": false, "input": [ "frames.dtype" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 238, "text": [ "dtype('int16')" ] } ], "prompt_number": 238 }, { "cell_type": "code", "collapsed": false, "input": [ "wavPlayer(frames, sr)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", " \n", " \n", " \n", " " ], "output_type": "display_data", "text": [ "" ] } ], "prompt_number": 239 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Pros:\n", " \n", "- Returns numpy arrays\n", "\n", "Cons:\n", " \n", "- Only supports wav files" ] }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Using Essentia" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from essentia.standard import AudioLoader" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 240 }, { "cell_type": "code", "collapsed": false, "input": [ "loader = AudioLoader(filename='passport.wav')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 241 }, { "cell_type": "code", "collapsed": false, "input": [ "audio, sr, nchnls = loader()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 242 }, { "cell_type": "code", "collapsed": false, "input": [ "plot(audio);" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAD9CAYAAACiLjDdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnXlYVdX6x7/HoLLMAQdQoFABwQkop7plmKJihZVjN4ef\noZll5S0rb5PYvSpa2TW18pYDTQ53EkrFKxVpmeKYFqZUkKDCTdCcBWH9/tgeOMPe++x5OOf9PA8P\n5+yz9lrv2Wfv9a7hHRyMMQaCIAiCEKCR2QIQBEEQ1oYUBUEQBCEKKQqCIAhCFFIUBEEQhCikKAiC\nIAhRSFEQBEEQoqhWFLm5uYiLi0NMTAzmzZvn9fmJEycwePBgJCYmomvXrli5cqXaJgmCIAgDcajx\no6itrUWnTp2Ql5eH8PBw9OzZE6tWrUJ8fHx9mYyMDFy6dAlz587FiRMn0KlTJ1RUVCAoKEiTL0AQ\nBEHoi6oZRUFBAaKjoxEVFYXg4GCMHj0a2dnZbmXatm2L06dPAwBOnz6Nli1bkpIgCIKwEap67KNH\njyIyMrL+fUREBHbs2OFWZtKkSbjrrrvQrl07nDlzBmvXrlXTJEEQBGEwqhSFw+HwWWbOnDlITExE\nfn4+fv75Z6SkpOC7777DDTfcILsugiAIwhu9IzGpWnoKDw9HaWlp/fvS0lJERES4ldm2bRtGjBgB\nAOjYsSPat2+PQ4cO8dbHGLPt38yZM02XIRBlJ/nN/yP5zf0zAlWKokePHigqKkJJSQmqq6uxZs0a\npKWluZWJi4tDXl4eAKCiogKHDh1Chw4d1DRLEARBGIiqpaegoCAsXrwYgwYNQm1tLdLT0xEfH4+l\nS5cCACZPnowXXngBEyZMQEJCAurq6jB//nyEhIRoIjxBEAShP6rNj1JTU5Gamup2bPLkyfWvW7Vq\nhU8//VRtM5YnOTnZbBEUY2fZAZLfbEh+/0eVH4WWOBwOw9bbCIIg/AUj+k4K4UEQBEGIQoqCIAiC\nEIUUBUEQBCEKKQqCIAhCFFIUBEEQhCikKAiCIAhRSFEQBEEQopCiIAiCIEQhRWEAJSVmS0AQBKEc\nUhQG0L49IBAwlyAIwvKQojCIixfNloAgCEIZpCgIgiAIUUhREARBEKKQotCB334DKivNloIgCEIb\nVOejILxp04b7T1HTCYLwB2hGQRAEQYhCioIgCIIQhRSFCOfOAfv2qavj1CltZCGM4ZZbgO++M1sK\ngrAWqhVFbm4u4uLiEBMTg3nz5vGWyc/PR1JSErp27Wqr/LSvvgokJamrgzodfrZuBRwOs6XwZs8e\nYMsWs6UgCGuhajO7trYWU6dORV5eHsLDw9GzZ0+kpaUhPj6+vsypU6fw+OOPY9OmTYiIiMCJEydU\nC20UdnCSO3yY2zxv3px7v3EjMHiwNTthV/bvN1sCYaqqzJaAIKyFqhlFQUEBoqOjERUVheDgYIwe\nPRrZ2dluZT755BMMGzYMERERAIBWrVqpaZLwoFMn4OGHudeMAUOGAGVl5spkdzIyzJZAGxgDvvnG\nbCkIf0DVjOLo0aOIjIysfx8REYEdO3a4lSkqKkJNTQ369euHM2fO4KmnnsLYsWN568tweUKTk5NN\nXaZatgw4dsy05mXhDDr45ZemikFYjJIS4PbbyUzb38jPz0d+fr6hbapSFA4J6xs1NTXYs2cPPv/8\nc5w/fx633nor+vTpg5iYGK+yGRYayk2caLYE0tm7l/t/8qS5chDWoq7ObAkIPfAcRM+aNUv3NlUp\nivDwcJSWlta/Ly0trV9ichIZGYlWrVqhcePGaNy4Mfr27YvvvvuOV1EQgYPV91AIgmhA1R5Fjx49\nUFRUhJKSElRXV2PNmjVIS0tzKzN06FB8/fXXqK2txfnz57Fjxw507txZldAEQRCEcaiaUQQFBWHx\n4sUYNGgQamtrkZ6ejvj4eCxduhQAMHnyZMTFxWHw4MHo3r07GjVqhEmTJpGi0JnaWrMlIAh9+PZb\noHdvoBF5gBmKgzFrbHU5HA5YRBQA7ksjcsQ6cADo3r3hvK++ApKTOce9hARNRQTQICdjwL/+BQwf\nDkydCixapH1bYjJkZwMek0lR3n4bePxx6220ul5Pu/Pzz0B0tH98FycOB7B5MzBggNmSWAcj+k7S\nyxpz+LDZEgDHjxvf5sGD8srTHoW1OXcOOH3abCn4MWPGfPAgsGaN8e1aBVIUfog/jSAJc+jfH4iL\nM1sKfsrLjW9z+nRg9Gjj27UKpCgITThyxGwJCC05dMicmakU/vEPsyUIPEhREJrw9ttmS0AQ+nHo\nkNkSmAspCoMwcjnIDh7ltEdB2Imff+b+X7hgrhxmQYrCD9m+Xdl5H37Y4OVN2J/ffjNbAsJfIEVB\n1DNuHLdpR/gH58+bLQHhL5CiINyorjbnXIIgrAspCo2xu2lqZaXyc48elV6W9ij05/JlsyUg/AXb\nKIovvtDHs1lPzp4F3nnHbCkIo/n6a7Ml4DBy4zU6GmjXzpi2yBTbeGyjKDZvtnZWND62bgU+/9xs\nKfTFyjOoI0eAEyeMzVR4/jxwxx2AwekCTOXFFzmrIFe/i3ffBZo00ae9Awf0qZcQxjaKwo4MGcJ1\nVHZg925l51l5X+Kmm4DWrYF77wUyM43Z3HUqzvXrfZfdsAH4z3/0lccI5szxPvbtt1wYEMI/IEXh\nwooV8nwQunQBPv1UP3mMpEcP7r+avYNLl9TLceutQE2N+npc2bYN+POfuc7LSgwbBjzwgNlSEL6g\n5WMbKYrMTHnl//hH+bmjH34YWLJEevnCQiAvT1rZH3+UJ4sdkZOgUEghbd8ODB2qiTj1BKqZaKCP\n6J95BiguVl/PP/+pvg67YxtFIZdVq5TlkOabRmuBAdkK3WjeXNl5amYU//uf8nNd2bjRGlF47U6g\np8ZdsEB9J3/xImdIE+j4paIoKOA/fvkyN903A6PNQX//Xdl5ajanlShmITp10q4uM7CSaeqBA8rl\nkWsIoGZ5r6YG2LVL3jkTJ+q7/LtihX512wm/VBS9e/MfP3MG+Pe/5ddnl5FZXZ2y82bPll523z5t\nLJ3sssmvlL/9zWwJGujeHejXT9m5CxfKK3/bbdx/JffIihVAz57Ac89JP2fZMuD99+W3JRWlz5S/\n4ZeKwhdyI0FaaXQohtIR/UsveR/LygKioryPJyVpY6as58NNeCPVt+P4ceC99xo6+vJyZZ3lhx/K\nP8dpDOEvBiL+hG0VxZQpwM6d4mU8l3ucppxaJGSxov+AVgrt0iVuXfbXX/k/18IqiUZq1uTdd4FH\nHmlYuvzb34C33jJXJsJ8VCuK3NxcxMXFISYmBvPmzRMst3PnTgQFBeHfCtZ+9uzxPvbuu8AHH3Ad\n9jvvAF27epfxTJkotXM3I9WiHlRWcsttcnA4gGuvBXJy9JHJiZASsgpam+jaGTmhWQj/RJWiqK2t\nxdSpU5Gbm4vCwkKsWrUKB3mSJ9fW1uL555/H4MGDFSUBF8polZ0NfPYZ8NhjwA8/eH+u1BnM05yy\npMS7w922jf9cIZPEgweVO7VJxfPStmrVsGYst45Tp7SRya7QjMd4rOy8GeioUhQFBQWIjo5GVFQU\ngoODMXr0aGRnZ3uVW7RoEYYPH47WrVsrasfTCe6777j/paXiCeAfeURRc1706gWEhbkfW7WKv+zE\nifrLU1wMXHON9/GqKu9j338vr+6SEkUi6cKWLWZL0MDFi+L3mlReeYW7b+3E66/LK6/UZ8hqIe6H\nD/ef1QW1BKk5+ejRo4iMjKx/HxERgR07dniVyc7OxhdffIGdO3fCIWInmuHisZWcnIzk5GQA7lZH\nFy4AiYkN742K4yPVacuIje8ff+QffWlhnWWlvRcrLXmMGMHFG1N7v/3lL0CzZpwzmBWYNQt4+WWg\n0ZUhoxa/f3y8uvPlyqDXPfuvf3GDRKuRn5+PfIODialSFGKdvpNp06YhMzMTDocDjDHRpacMCa69\nnmGwZ8zweYqurF4t34TQyohFHK2oME4Os/noIyA9veF9UZFwiBLGOI/yW281RjYtycjgRvLXX6/s\nfKX+OlqydWvDa4eD218KutKzKVUizgCHVho4OXEdRAPALAO8eVUpivDwcJS6zKNLS0sRERHhVmb3\n7t0YPXo0AODEiRPYuHEjgoODkZaWpqjNDRvc33va44utc2oRi8gTrbyR7YCQf4o/InXJbvVqrqN6\n+23fnYrRG+RKOrm//EVeeSt4LXs+11p07kIh07/9FrjrLvX12w1ViqJHjx4oKipCSUkJ2rVrhzVr\n1mCVx+L9L7/8Uv96woQJuPfeexUrCSmIjYjfe6/hNWPyvaXr6hqm6IHGd981WCpt394QRNAqnDjB\nbd474bP2+sc/gP79G96XlHChsF3Pk8vYsdKWG+vqgKuvVt6OElzv90BF6+VLNYm97Iyqbi8oKAiL\nFy/GoEGD0LlzZ4waNQrx8fFYunQpli5dqpWMmuH6QCuxarGKk5jSEdOoUdzIVwkjRza8fuIJ6ecZ\ntYfUurX7Rvzixd5lPvqo4TVjQPv2XAhyKaidDZixhFFUZHybZnDhgnAAUK19QITCA/k7qmYUAJCa\nmorU1FS3Y5MnT+Ytu0Jh4BQjHjIpy1KuiVmsiK8Z0tq1XGf62GOGiAMAaNyYU8pGxLqSEy113Tru\nv5AZsKe8LhNj2yD1uZHzfJWVcbMwpUEnlfLSS+LLXN2781v9Edpgi4UU1xtZ7KZu2xbwMLqSjOsM\nw4obWFoh11xWLnJt4bUIA83H6tXinzvTaSqNOVVby3WYShSgne+vyEhzAmt++ql4wEGjNtWtsCdj\nBrZQFFLXBcvLufVzJbg+vGfPyjvXiFwTWtjwA5yZr55mp3yjes+O0dU2Xavv5QlfPCo+E2chReHL\nHPryZe672rnTV4reAR2V5Po2ykGSL0pEIGALReHa+fsawc2cKfyZ67kvvSSsVMLDpcsG6D+aqa3l\nbO+1Qomvh5KR8969/MfFnBI9y8lJWOWr05bTqUvdYnO9lmLhUowOM8/HggX81jwnT/JHNjAL52xP\njG++8T6mx/KgFX43K2ALRaEVrj96Zibw2mvyzlc7elQ6GvEcLal1rKutNcZU8913+Y+vXCnt/PPn\n9UtDqbYD4Dv/qafU1ak3X33Fv8+Wns4fK82V778H+vbVR65ff+XCi8uBbwAh5ueilECcMfLh94pC\nzCHP1SpEyg2hd6A8qYwZw39cauc3YQLg4e4iyqFD8kOzAw3X1KiHTer3P3dOWqculkSHry2pARiN\nGqVKve6bN/su8/nn7o5tTrT4LgUF8hMWySFQl4u0xHaKQm6nI/YQHDggry5f69Z6bxT7QupDu3u3\nPEdBscCCnilLfVmPyf39pCxDyMXTaVNoz0YoGCUg7Vq7muvymQkbZTrsD6jJgUIBHtVjO0Uhd6PZ\nFbGHW8qD79rJ8ZXXw/NbD7Qc0S5b5v7e1SrE2Y5rBj09ncCUmi+Xl8s/R4rCe/ZZbl/gxRfdk0P9\n/LP89qyKUitDPaBlIv1Q7UdhNHItIvbs4abNrh65fMi9yfRaOzcCNcpWDk4LKNcEU3rmoUhJ0baz\nkFuX59LTP/8J5OVxvhrjxjUcN2smsXGj9nXKMTbQGiEnOy1RMojwR2w3o1AyGtYq0KKrjwCFH/bN\nxx9rU49dZmp6OLipwXPJxZcBg5iPgBWtfzy/j5DZrhrZrZT73ExspygKC5WfK3bDSHl4S0r4Hzaj\nIth6KqcmTaSdx2dKKAcxc1rPyLl811Gqw6SQ8uULx+GK2qi2WnXc//0v/4avlm3IQa5l20MP6SOH\nL5Rem3373N8798s8n3M9rv1DD9nTW18ptlMUn3yi/FwtTEL5OiW9Q8M7ZzKjRrkf93RuE1KE06er\nc5KS4xT3f/+nfLoutOnoa6lGTv6Dy5f1Xfr57399l5FqHuxwGBuETux3M2q5ko+vv/Y+xpi3JZ6R\nyviTT4D1641rz2xspyiU4LyB5s/Xri4+9MrX4JRbzcahXDt1pVy+zIVS0ZKXXhJPzSrHr2TyZPf9\nAkDbZRW1nRVj7oMhz+yOWiIng+CLL+onhy/+9CfvY2IWhp6/wY4d+qRZffJJ7eu0KpZXFHICvRmB\nWEegl5+FUNpVOZi5KSe18xTzQ+jSRRtZ1Jow//gjN7qWOsty7q94KiPP2aGTqirjloDWrDGmHTWM\nGcN///gyinCNlvDEE9JncQQ/llcUesUCUoqYTbZeU1+nY6AvKw8lTnG+MDKHttj+k1Yja74w0XJ+\nt/h44LnnhHNYeCoEISu9tWult6kHZ8/yL+lYDTkGEa65yD1TAhidNMrfsLyi0Bu5U1Irr0sKOadt\n3658Xb59e+XyOLGrfbuQ3GKz3Dff1KZtPZecAG45U40Tm5Z89ZX451ItDOVm5yOkExCKwtN72JUF\nC7h1dan+GVOn8h+3a2dICONUCGb4PcgNTCkXK5l3CyXTcj5TntZNTtQ60BLSCQhFIRaK4dQpblOq\nTRt1bTRqBPznP77LeSqUI0f8X8nY9fs5nSqVhL1WitXiYlmZOXPMliBwCAhF4QutQiz/9pvvMl9+\n6f7+ppuA7Gxt2rcDYh2hWQrFSp1m69bGtKNmlmSV6yW0f2lURsVAghSFwfBFsjQqOxcfUiOe8iGW\nenLSJP7jCxa4v3c1KfZl3aWXT4FTQemZgMpqaTrfeEP5uXIU+vPPG9OOKwsWGJNMDAicwI6qFUVu\nbi7i4uIQExODefPmeX3+8ccfIyEhAd27d8cf/vAH7Je5g6b3yOD0aWNHH1ZbhvEVEVeI3bvFLUmW\nL+c/7mk8MHx4w2vXsO98OC2w5ES+lYOeptiffaZf3UYjx29FC98luZSUAH//uzFt6XUvWg1ViqK2\nthZTp05Fbm4uCgsLsWrVKhw8eNCtTIcOHbBlyxbs378fL7/8Mh555BFZbejdseqd1tET1++jZlRn\nNnPmiJvO8pkR840RXGc0eXm+2/3xRyA01Hc5JUi914wcWBi5PyIVVzNUvVAzA+NTEnr1I5s26VOv\n1VClKAoKChAdHY2oqCgEBwdj9OjRyPZYcL/11lvR7Eoez969e6PMiJCPMhDb6NYD1xt2+nRj29aS\nf/8b6NNHWtncXO5/QoK6Nh0OdUtlvpBqKm3krFAPRzE9vJS1pmVL82bfctoNlHhPqsKMHz16FJGR\nkfXvIyIisEMkzsSyZcswZMgQwc8zMjLqXycnJyM5OVmNeJLxZcetJXxrp0bG87EzdXXGO05ZyYxU\nKyZPNlsCaQRpmAThiSeETds98ZXxz1U5mLFpnp+fj3y9A8x5oOqncMi4Sl9++SWWL1+Ob0RCmboq\nCid28B6Vw9693sdefBF4+ml19YpFePUX0tONdxL75BPgnnvcj9ndouann8yWwNr4Mi555hlj5BDC\ncxA9a9Ys3dtUpSjCw8NR6rJgWVpaigieZMz79+/HpEmTkJubixYtWshqQ4s4R1aCb/agRcejdORr\n8MBEFWZ4Ep8/z3m2E96YGVHWTMQceP0VVXsUPXr0QFFREUpKSlBdXY01a9YgLS3NrcyRI0fwwAMP\n4KOPPkJ0dLTkun/9FbjrLvfsaGrQchQ4dqzyc/nWP83csDRiY9JI9JhZvf669nW64lz6NMqkUyse\nfVRaOYfDO0+5GezZIz/lMR9WC1RqBKoURVBQEBYvXoxBgwahc+fOGDVqFOLj47F06VIsXboUAPDq\nq6/i5MmTmDJlCpKSktCrVy9JdW/bxjmnWWzvG4C6nBhOayCrmcnaDaHgjFqPcvl+p6wsbdv461+5\n/3aauTAmz2KQb8nVaL77Tlo5XznNXXOzB8pzrHq7KDU1FampqW7HJrvslr3//vt43zOUowSsPLoS\niyDrC+dNpkf+4kAiOxu4/37v40oe3KlTuU5ayD9A71SsO3dymfF43JAsi1jaVLvzwgvin9vBakxr\nLOuZ/eGHZkugL4E4fdUSLa+f01BPSMns3q1dW3z8/jvQt69xa/5abGar6SxPn3YflRuFHqbVVo4m\nrSWWVRT+PqXz/H5Sl9iEwk/7oxmnGEZ53r7yiv+FaTAziRUAjBwJtGsnnF9cL556Svs6DxzwXYYx\ndasQVsCyiiLQkLppX1zMf1xpKA6rIPS9hBAakWo9wJAS6FEr7DY4UuqV7Ix35tyb8Xf++ldtfULM\ngBSFSXhaX6hdB9+2Td35ZtOhg7zy/ugLYLXAgXphpPLlQytLSqns2WO/QYAnpChMwvPGcfpXMCZu\nnSF0w+m94aoWoxwn7fxA8plJW9W5T4v77b//VV+HEiQaXmqG3ZedAFIUpuFMiuPEGXNq2zYgMVF+\nfUo7SKM6Vs88HHphZ0XBh5xcKTk5xg0Y+CzOxFi0iN+jORDSl+bkmC2BeiyrKPztgffk++/d3zs7\nBKOn5UaZOfr776kXUuOQ1dQAQ4daNwlWRQWXJ8LzfnvlFXPkIeRh2S2WX381WwJjOXGCi/nkq2MQ\nMkv89FNl7RplkilmTqnl1FyNQrLqMo8UnCHfrf4d+vc3WwJCCZZVFP4OX4cmJQewULgPsdwQQugR\nwlqI2bOFP9MynhfNXAhCeyy39LRuHdC1q9lS6I/SDk3IYkOJA9OECdYYgfqbn4LW8DmK7drlbhLt\nvJ8CMWCdFjz6KDBtmtlSWBfLKYpNm+Rt4AUaQsHVfMWnsTJazgLUxEtSEGnGEJo29c613rMn8Npr\n3mWlOIAR3uFali71NjBRwq+/cp7n/oblFEWgoHQkr7UNuBVM97T0Hxg6VPm5RtvXy4EvPL3rvo9T\nQaxZI+y9TzSgZZRhh6NhRh8VpS66tFWxnKJ4912zJTAGq6yli+SRMoznnzdbAg6r/CZ88MnmmmnN\nNSxH797+OarVEk+rQ7UUFDT8RkLmsK7xyczyIVGK5RRFoOBrFO2PnseEcgoKvPehVq/m/n//vXtw\nurIyoEsX42SzIytXes/q1QwUKiuBRj560+7dG14PGmSvKLQOxqwxjnI4HGCMWWJzVW+ysoDx48XL\nhIU1dAyBcE2U4LxzPa/PhQtA48by6rr/fi6KrNWXba6/njNppntCGzzvoYsXgWuv1a7ey5eB4OCG\n43V1nFJp3ZpTFK6fKcXZd+oJzShMoKjIdxmzI3zagbff5j8uV0kAwH/+o04Wozh3ztyMiP6Iazpg\nLZSEK56K4NlnOSVhNyw1owAsIYplEBoxEw0wFnjX57HHhJUkIY8bbtAnTwVjQHKyuAPtpUvA1Ver\nb8uIGQUpCgtz5gzQpEngdYRyqKwEWrY0WwqCcOfTT4F77xUvYydFQUtPFiYvz2wJrA8pCcKK+FIS\ndkO1osjNzUVcXBxiYmIwTyDp75NPPomYmBgkJCRgrxWyrNuE+++XnvmOIAh7YaeslKoURW1tLaZO\nnYrc3FwUFhZi1apVOHjwoFuZDRs24KeffkJRURH+/ve/Y8qUKaoEDjQiI82WgCAIPTAqIKcWqAoK\nWFBQgOjoaERFRQEARo8ejezsbMTHx9eXycnJwfgrtqC9e/fGqVOnUFFRgdDQUO8KYxWGQCUIgrAZ\nNbWDAWhgH2sAqhTF0aNHEeky5I2IiMCOHTt8likrK+NXFFdPb3jdpiUQSgvQBEH4J+yqu6BEUeTn\n5yPf1abXAFQpCodEcxzPHXnB874/pEYcgiAI29BCYRDK5ORkJCcn17+fNWuWNgKJoGqPIjw8HKWl\npfXvS0tLERERIVqmrKwM4eHhapolCIKwPXbao1ClKHr06IGioiKUlJSguroaa9asQVpamluZtLQ0\nfPDBBwCA7du3o3nz5vzLTgQvhYVmS2BtZswwWwKC8H9ULT0FBQVh8eLFGDRoEGpra5Geno74+Hgs\nXboUADB58mQMGTIEGzZsQHR0NK6//nqsWLFCE8EDgbvuAtq3N1sKa/P880BmptlSEIR82rQxWwLp\nkGe2haEQHuK88grwpz8BLVqYLQlByEernjfgPLO1jhFP+DePPAIEBWDW9yefNFsC/+Gxx9zfJyZq\nU2+vXsDnn/N/1qOHNm0YiaUUBcXQb4D2+33TrBkXC8uTJUuMl8VIaItPO55+2j3AotLAEZ57ZTt2\ncEvHrmzezIWx/+ILZW2YCrMITlG4CZl//731lu8y33/vem3oj++vro7/+lRVya8rKoqxuXPN/05i\nf4wxVl7OWE2N+/HXXjNfNrv9Pf10wzV1vYeUPm/nzjG2ahX3un17/mf32DHu2MWL7m1r1XfqiaVm\nFIFCaqrvMkbNrh5+2Jh29EBo70bJnsVPP3FJgayKM8dzaKj3ctv06UBsrPuxggJj5LIrjzzifezr\nr5XXd911wOjR3GtfqX2vuYZTHXYiAFd4zSc62mwJGujUyWwJrMFVV1lbUQjhzJv97bfukXR79jRH\nHrvQqRPwww8N77XsuF3rKisDnK5lTZtq14bRWG5GERJitgSBw1VXAbffbrYUhC8++ID7rfhwmk+7\nzq7I90YanTtrU8/OncKfue412nEg4sRyimL9eoACzBrDffeZLQHHoEFmS2BtbrxRXnmXmJyEAXha\nMfmjObvlFEWfPoGR5nHOHGXnvfmmdjLExlpjrfTll7WrS00nadUHXI5cDz2knxxE4GI5RREoCD38\nvkaP99yjnQz9+mlXlxr4TFyVcvfd2tVlFYTulVatvI999JG+sqhlxAizJfCNR7g62bRtq40cVoIU\nhUkIjeSHDDFOhptvtsYoWmj9neAQ+o3suDm6YIHZEujL6dP+lwYVIEVhOf78Z2DXLvnnzZ6tvSxG\nQY6W4niavvLRtCnw+OPS6uvVS508anAdFDzwgDlLn05LMT244QZrDL60hhSFSQjdTKGhwC23yK9P\n6TKSUQ/qmDHCn2n5YD3zjHZ1GYWYuXR4uLTgcVddBSxeLK09q1gWXnutOe36CrRJIVK8sayiMHPU\nYxaFhZwzjhL8cV1UCWFhys+100gwPh644w5l51rBgAGw7vUmHxRvLKsocnLMlkBfPB+Su++WtsQg\n9HBZ9aGTSlmZ2RIAvXub0+6qVZxZOB9CnXphIbBypW4i+WTrVuDOO+WfZ+Z+lFbe6sXF2tRjJyyr\nKLS0hLHUgvyAAAAcGklEQVQinh3ASy8Z/xBdfbVxCubRR8U/t0IQRLXWLkrp0cNYIwYtuP12LsS7\nHA4ccF9GM/p+1+oei4rSph47YVlFcf31wIULZkvh39xwg3Ft/eEP2tYXF6dtfYR8hg6VXjYxEeja\n1f3Y669rK49WWGVpzkpYVlEA5m12GYHnSF7qzdmhA//x4GBlctj1oUhK0r5OoftNShBHLeD7bZs1\n074dIwcITvgssozeVNfjeyvdJ7IbllYUhDdCS0X+vlTnydy52tfJp2wffJBbojMCzyQ6gPYzMUBb\n734phIQAEyca26ZRSAk3NHiw/nLoDSkKBegxilC7VxBomd6M2lv55BN9RvV8DBxoTDtG78V4zlrv\nvx8YO9b4PYomTaR5rstZ1hwwwHeZ++7jnFvtjCpFUVVVhZSUFMTGxmLgwIE4deqUV5nS0lL069cP\nXbp0QdeuXfHWW2+padJvMWsJSK8Ol8+mny/khFKMtPIaO9aYdrp18z5md2s2Pv79by4irtE4HNJi\nYWltaj55MrB7t7Z1Go0qRZGZmYmUlBQcPnwY/fv3R2ZmpleZ4OBgvPnmm/jhhx+wfft2LFmyBAcP\nHlTTrCJeecXwJnlRGgxQL/RSUHxr0nxmhUqXQYxMB2qmSacUk2nCPAJlJq9KUeTk5GD8+PEAgPHj\nx2PdunVeZcLCwpB4JWN5kyZNEB8fj2PHjqlpVhGTJhneJC+NG3P/9Rgp+vI41RIlG4N8+yhyEs2H\nhXFmxIC2+wZyA9XddJN2bfviyuNFWBQl2RTtiCp9WFFRgdArQ7vQ0FBUVFSIli8pKcHevXvRW8Cz\nKSMjo/51cnIykpOT1Yjnhpbrsnp08nzLDoQ7S5dyKUu1Rq7F2Lx5DWkv9cYflp7sallnVfLz85Gf\nn29omz4VRUpKCsrLy72Oz/aIQudwOOAQuavPnj2L4cOHY+HChWgiYKLjqigCiY0btbFaMrJTGTIE\nWLPGuPYAIC0NqKnhNkPNxMgZBXWyhCeeg+hZs2bp3qZPRbF582bBz0JDQ1FeXo6wsDAcP34cbQSi\nl9XU1GDYsGEYM2YM7jMhrRrP1okqtH54tTCfM9rnROna+eOPA0uWKG83OFj7JTY5vyd13NoTHa3P\nTJHQDlV7FGlpacjKygIAZGVl8SoBxhjS09PRuXNnTJs2TU1zijHCvNGEbRc3GtnE0FlqhFNCH5xG\nAEblTBg4kJsJisG33xQRAbRrp7xdCuynLaq6lxkzZmDz5s2IjY3FF198gRkzZgAAjh07hruvpBr7\n5ptv8NFHH+HLL79EUlISkpKSkJubK7mNoiI1EvomIUGbetq2pX0GIVavNlsCcXwlvRfyhjcCpdGE\nhVDqwa+UTZuAK2NJQfjS15aWKg8UeeiQsoCFhDCqNrNDQkKQl5fndbxdu3ZYfyUc5u233466ujrF\nbYjF6peK2HLB3LnyA7IJ7QVMmwakp6urwx8ZNcpsCcTxlbPbyD0JV955R78sdna4/+wgY6BgkwUL\nffEMVqYUKQ5lztGTmrwJVmD6dLMl0I7rrtOurqlTtamHMd8Rd5XgtBdRs6dlRqwoNfhr+BAjCXhF\n0bo1l3r0vfeMac/pvCWW8c2TP/7R/b3QSEvORutf/yq9LB9WzNf8wANmS2D9Tsk541Vj4GFUqBGt\nULGgQVwhIBSF2MZdjx7cOrBRgd+cKJlWv/gi9//jj9W3b/fYM3xISRnKh1mWTGamJFVjOab1kpAe\nS0yus8RAC5ipBwGhKKQ428npLNSkaVXjyensCB98UHkdTqwS0TImRru6/GFN226jdSvCGHDFrgYA\nt9xmQtQgvyIgFIWWnDsHzJ+v/PxbbtFOFqm8915D6BAnVulUjYzZZCaeMYEGDeIv99pr+sviREqI\nbCMQG6QpzTvier9fd532ia4yMsw3iTeSgFIUWqyrOxzadrJSNgbVpsmcOBH43//U1aElegW6s4ry\nk4KQhbiR3+Evf1F2nlE+GACwZw8wciT/Z0LHnddQwwhAXsycqX2UWSvj94pC6lKP1AfUuRnNF432\nSuxDWUixa5cSGtkXQuu0Ru/NAMDy5ca3aSWsYgjQvLn8c5YtA8aN01YOz2fP02/lmWe4//37Nxxr\n3Ni3k2kgdeR643eKwtOaqHXrhtdiewtS9yjEOtYbb5RWh1Juv137Oj2jt0pJxKIWvbxmrTajcHXm\ndL2/PvvMeFkAb8u+q66S76f08MPaySOE5/6Z87l1vYYtWgg/sxRmRXv8TlGIOUe98IL+7cuxo1+3\nDli7Vnp51+92663SzxPDs3M1orOVO4u57TZ95HCi5Du7DkCE8JXGdMsWoKBAfttKMSoBk1UghaEd\ntlMUYiENTp1qcChyolfHJ3QTPvec9DqGDnWfTsuBb5PPCg9GeHjDcl+fPsa2beSMQotr3aWLcTGJ\nZszgf3aiooxpXwy9Alpa4XnwF2ynKFzjDnrGVmrWTHrGqY8/Bv71L3ltO9dKxYiMlFenlnTsqL4O\nz4fr3Dl55xcXA0ePcq9nzrReRj8+pHYoSk2bmza13rKYk3XrgMpKc2V46y1g3z5zZSDEsXUiv5tu\nAg4ckF7eVYn07Oluw+9pPsqH6yabFR/8jAzg88+1rVMsvEVUFFBS4n4sOLhhg37wYG38Nd54Aygs\n9F1O799EiuGB2lGsXqk1heS6/nrfQRGdKHVo9EWLFvKVsMPh+1pb8Rm1K7abUQBAVRW3Ru8rfLEn\nf/hDQ2Yyz+nu8OG+z7fSVJZvGcHo/L2PPGJMO336GLOJ6klOjvFtxsUBO3dqU5fWPhkygj6bgtMK\nymlU4lQUZlj2+Ru2UxQDBnCjj23b5OfBbtSoIQex5xKRXfI5OJk1i4tRZSSvv25se4C8jWytR5Bi\n/gJyBw1SI9A6HPLyiGuN2J6ZUuc3uQjN7n158TsjMFjVudTO2Kx7BFJT5ZX3vEnMmhVosX/g9OEA\nOEc9o728tYyyKoXmzYGvv5ZeXstoq1o7BX74obb1+TN8mT3PnuVSAjhxOIB77hGvx0orAHbHdooi\nPNz9vRQzRT0w+iYsKlLmIOWJL29cOaOvhx/WN9dETo40eZzhGbQM0+BrQCJ3lCplD8zfkJskyakg\n+PZMrr/efaAE+Db3JUWhHbZTFJ7ItTLq3p0zS7QbWiRwkoKchys01BrZ6/QI+KZ11l4zlj/M7ij3\n7pVXXssAkYS22NrqSQnh4cD33xvfrt2SvfDh3Cz/xz/MlcMItOrYv/pKPz8BrbnmGvOVi1T4fh+p\n1luEfGw/o2jWzGwJhIOTufLYY8CPP+orh5SH3NdyAN9mpnPK7+zw1OQyEEOtz4UVO7m+fbkQFGbL\nJkXxiS1Lqk10pTfx8drkaSH4UawoqqqqkJKSgtjYWAwcOBCnTp0SLFtbW4ukpCTcq0PYyX/+09gw\nCHxIie4aHAx06qS/LL5ITwe++Ub4c9fR7+zZ3H/XTiY4WD+nQjWhOgoKzLFcW7TI+DbN4PHHzZZA\nXNkWFnJBOV3jaCkJ0knwo/jRyszMREpKCg4fPoz+/fsjUyS34sKFC9G5c2c4dFioDQnx9tA2Ateb\n1jNVqZW55hrpHTLfg1ldrZ/jlZqgikaFwnDivDZa5cjWA7uZhcpZHeD7bg4HcPfdDe9dozgQ6lCs\nKHJycjD+ilPC+PHjsW7dOt5yZWVl2LBhAyZOnAim0/z72mvNndrLte6wG0ZdW892PMNNGwmtd7sj\n9R5QM6tLTfX29BdCSqh2s5f7/AnFm9kVFRUIvZKeLDQ0FBUVFbzl/vSnP+G1117D6dOnfdaZ4RLR\nLzk5GckKM4/k5Mj32paC62hFLp5mvVbF9eEye0Sq5zWLiADKyoQ/b9VK/Hy7hbj29VtmZHBRCzy9\nr19/HZg+XXo77dpx13XcOPmK3uGQ5piYmgqsWCGvbn8iPz8f+fn5hrYpqihSUlJQXl7udXy2c/H6\nCg6Hg3dZ6bPPPkObNm2QlJQk6YtleIZ+VYgeeSEaN1YXadMuli9ieNqx25kPPwT69TOuPbOVrq/w\nLjNncv/VKrqZM7m8KVqnHnUlKipwUujy4TmInsXnoagxorfP5s2bBT8LDQ1FeXk5wsLCcPz4cbTh\nWbjetm0bcnJysGHDBly8eBGnT5/GuHHj8MEHH6iXXAQrhE62Kko6rJYtuVSqI0ZoL4/RzJ0L/PnP\n8q/DVVe5782o6fi7dlV+rhksXy7s7Hn11dy+lZPGjfVVEoB1Z23+jOIVxbS0NGRlZQEAsrKycB/P\nztGcOXNQWlqK4uJirF69GnfddZfuSgIw1mRWbT5rIzlwQDglKh/OznDjRiAry/57MUOHKrfYKi0F\ntJrtKw1XLhclHSpfit8JE4QV46pV7u99JWsi7IliRTFjxgxs3rwZsbGx+OKLLzBjxgwAwLFjx3C3\nwGK+HlZPZmHHUY3SkezNN2ufJ9lutG3Lzayc8A0Q5s83Th69kGtB6LkEZMRs3o+6EdugeDM7JCQE\neXl5XsfbtWuH9evXex2/8847ceeddyptjpAAn/IyIge2lenbl0s5CvB3MFdd5Xvjmo8XX/QO9OdP\nezhO9DAKsRO33ALs3m22FOZje89ss3n5ZbMlEEdJ0ETn8oE/jNx8zYT699f2e+rltW4GvXpZM/6S\n5+/VuTN/ueho9aHxhw5Vd76/QIpCIkLJT7p3N1YOvXnwQSAsTNm5L72krSx2w+EQ3vQ1K8qxXIwO\nJa8nwcHS0hcTvrGFoujb12wJgE2bzJbAN3wjYznJnZ5+WrmSsBpC4RsGDjROhpSUhtft2hnXrhpc\nw6EnJJgnBx9mGFPYcS9SD2yhKKzgiu/MnuXEeQOJ3UjLlplvUqrEVNGpcOy89PTEE9x/181Zh0O7\nkX14OBeIToi33rLGfauGd94xWwJ3nLMdMztvf/CHUoKtwoyLxB20JDfcYH7CGjlxmZyKwZ9GUc7I\nrVorvSZNuEB0rowZo20balH7naVszktN8aoX779vrN+U2QM/s7DFjMKJEv8IM6fPZo8oc3OVWeKk\np3P/J06Ud56WqUjNRO4G7saN3H+77ENoietM+6uvjG8/PV08z7daPC39/dGyTQq2UhRyGTsW+Ogj\n9fUMGCDfhLJpU/s5qDlHoH36cP9d/QakYPV4VlIVgFxfAqMj10rF6JmhFfYStcbTOMGKVmBG4NeK\n4tprfce4kcLmzVx4boIfLXJ5A/p3bLffLq2cXBPXli39a7mOEOaKX3HA4deKIpCZPVt+OIWnn9ZH\nFqtx000NSaQCdYSoNSEhZktgDGYkx7ICAfq11TNlirRyzz6rrxyuOEe1HToAL7wgL64TwIWp8BfE\nNnJLSjgz4DNngDffNEwkU9Hbgk1KfgjCvtjK6slKeJrLCmG3SKGA/A27++8Hjh/XRxY9katI5aAk\nLAhBWBVbKAqlJqbDh2srh11QO3ps2hT46Sfp5Zcvl99GUBBw+bL884xA7X5Debl+6WIJY3juOf8I\n8qgVtlh6Sk8H9u6Vdw5jxnrh+sLqFkGedOyob/333ON9zM4Ofq6EhvrPdwlUJkwwWwJrYQtFERws\nHJLBDjBmbP5nMY9hq+Aru5weWQoJQip6J1+yG7ZQFIQ87Bqcz3XJ59VXzZPDX2YDSpe/AsWCSQp0\nLThIUfghgWrCR7gzbhxQUWG2FPaFMeOyEVod6lIIv8RqkU/NwOHwz011uREDCPWQonBh/HizJSC0\n4uabyVvaKPr25TdO0ItBg4xry5VAvp8UK4qqqiqkpKQgNjYWAwcOxCmB0K6nTp3C8OHDER8fj86d\nO2P79u2KhdWblSvNlkAZzuRJzhtZydKTZ1pPwn947TXg4Yf1q/+rr4BFi/Sr3xN/2UOyE4oVRWZm\nJlJSUnD48GH0798fmZmZvOWeeuopDBkyBAcPHsT+/fsRbweTHJvhmX3v5pvl1xGIkU8DhenTzQ8H\nTtgbxYoiJycH46+s1YwfPx7r1q3zKvP7779j69atePjKcCYoKAjNlMQKJ2RBIy6CILREsaKoqKhA\naGgoACA0NBQVPOYVxcXFaN26NSZMmICbb74ZkyZNwvnz55VLazE++MC/cgybjVXiBZGiJQh3REN4\npKSkoLy83Ov47Nmz3d47HA44eJ6uy5cvY8+ePVi8eDF69uyJadOmITMzE68KGMlnZGTUv05OTkZy\ncrKEr6A9zz/PZSvzlZdg7Fj+42PG2M8ywwo5nWn5iyB8k5+fj/z8fEPbFFUUmzdvFvwsNDQU5eXl\nCAsLw/Hjx9GGxw4vIiICERER6Hkls8vw4cMF9zIAd0VhJj17qgvmZ7eN4UC25iDsh57BHO2A5yB6\n1qxZurepeOkpLS0NWVlZAICsrCzcx5P3MywsDJGRkTh8+DAAIC8vD126dFHaJMFDt25ASorZUmjH\np5+aLQHRtSsQGWm2FPwcPUo+MmagOHrsjBkzMHLkSCxbtgxRUVFYu3YtAODYsWOYNGkS1q9fDwBY\ntGgRHnroIVRXV6Njx45YsWKFNpITAID9+82WQFucOYqjo82VI5DZtAmoqzNbCn6ssEQaiChWFCEh\nIcjLy/M63q5du3olAQAJCQnYuXOn0mZMwW6RXv0Jh4OWwszm2mvNloCwGuSZ7UF1NdCnT8N7O0Ux\ntZMFVv/+nEevkUjNex4bq0/7N95IgxA78sADZktgPrZIXGQkwcHu7+2UoS4pCfj5Z7OlkEaXLpxH\nr1Hs29fgwS5GdTWXVEkP9u6l2ZIdCfTNc4AUhd9hZN4LOyF1A9RzoKAlFLKasCukKAiCIES47z7g\nl1/MlsJcHIxZYzLscDhgEVHqmTGDW0v3J/NTgiD8CyP6TlIUBEEQNsaIvpOsngiCIAhRSFEQBEEQ\nopCiIAiCIEQhRUEQBEGIQoqCIAiCEIUUBUEQBCEKKQqCIAhCFFIUBEEQhCikKAiCIAhRSFEQBEEQ\nopCiIAiCIEQhRUEQBEGIQoqCIAiCEEWxoqiqqkJKSgpiY2MxcOBAnDp1irfc3Llz0aVLF3Tr1g1/\n/OMfcenSJcXCWpn8/HyzRVCMnWUHSH6zIfn9H8WKIjMzEykpKTh8+DD69++PzMxMrzIlJSV47733\nsGfPHhw4cAC1tbVYvXq1KoGtip1vNjvLDpD8ZkPy+z+KFUVOTg7Gjx8PABg/fjzWrVvnVaZp06YI\nDg7G+fPncfnyZZw/fx7hlF2eIAjCVihWFBUVFQgNDQUAhIaGoqKiwqtMSEgInnnmGdx4441o164d\nmjdvjgEDBiiXliAIgjAc0Qx3KSkpKC8v9zo+e/ZsjB8/HidPnqw/FhISgqqqKrdyP//8M+69915s\n3boVzZo1w4gRIzB8+HA89NBD3oI4HGq+B0EQRMCid4a7ILEPN2/eLPhZaGgoysvLERYWhuPHj6NN\nmzZeZXbt2oXbbrsNLVu2BAA88MAD2LZtG6+ioDSoBEEQ1kTx0lNaWhqysrIAAFlZWbjvvvu8ysTF\nxWH79u24cOECGGPIy8tD586dlUtLEARBGI7o0pMYVVVVGDlyJI4cOYKoqCisXbsWzZs3x7FjxzBp\n0iSsX78eADB//nxkZWWhUaNGuPnmm/H+++8jODhY0y9BEARB6AgzmY0bN7JOnTqx6OholpmZabY4\n7KabbmLdunVjiYmJrGfPnowxxiorK9mAAQNYTEwMS0lJYSdPnqwvP2fOHBYdHc06derENm3aVH98\n165drGvXriw6Opo9+eST9ccvXrzIRo4cyaKjo1nv3r1ZSUmJYlknTJjA2rRpw7p27Vp/zChZV65c\nyWJiYlhMTAzLysrSTP6ZM2ey8PBwlpiYyBITE9mGDRssK/+RI0dYcnIy69y5M+vSpQtbuHAhY8w+\nv4GQ/Hb4DS5cuMB69erFEhISWHx8PJsxYwZjzD7XXkh+q157UxXF5cuXWceOHVlxcTGrrq5mCQkJ\nrLCw0EyRWFRUFKusrHQ79uyzz7J58+YxxhjLzMxkzz//PGOMsR9++IElJCSw6upqVlxczDp27Mjq\n6uoYY4z17NmT7dixgzHGWGpqKtu4cSNjjLElS5awKVOmMMYYW716NRs1apRiWbds2cL27Nnj1tEa\nIWtlZSXr0KEDO3nyJDt58mT9ay3kz8jIYG+88YZXWSvKf/z4cbZ3717GGGNnzpxhsbGxrLCw0Da/\ngZD8dvkNzp07xxhjrKamhvXu3Ztt3brVNtdeSH6rXntTQ3gUFBQgOjoaUVFRCA4OxujRo5GdnW2m\nSAC8N9aFfEays7Px4IMPIjg4GFFRUYiOjsaOHTtw/PhxnDlzBr169QIAjBs3rv4c17qGDRuGzz//\nXLGcd9xxB1q0aGG4rJs2bcLAgQPRvHlzNG/eHCkpKcjNzdVEfoDfsMGK8oeFhSExMREA0KRJE8TH\nx+Po0aO2+Q2E5Afs8Rtcd911AIDq6mrU1taiRYsWtrn2QvID1rz2piqKo0ePIjIysv59RERE/Y1q\nFg6HAwMGDECPHj3w3nvvARD2GTl27BgiIiLqz3XK73k8PDy8/nu5fuegoCA0a9bMy6xYDXrLWllZ\nKViXVixatAgJCQlIT0+vDw1jdflLSkqwd+9e9O7d25a/gVP+Pn36ALDHb1BXV4fExESEhoaiX79+\n6NKli62uPZ/8gDWvvamKwoq+E9988w327t2LjRs3YsmSJdi6davb5w6Hw5Jy82EnWZ1MmTIFxcXF\n2LdvH9q2bYtnnnnGbJF8cvbsWQwbNgwLFy7EDTfc4PaZHX6Ds2fPYvjw4Vi4cCGaNGlim9+gUaNG\n2LdvH8rKyrBlyxZ8+eWXbp9b/dp7yp+fn2/Za2+qoggPD0dpaWn9+9LSUjdNZwZt27YFALRu3Rr3\n338/CgoK6n1GALj5jHjKX1ZWhoiICISHh6OsrMzruPOcI0eOAAAuX76M33//HSEhIZrJr7esLVu2\n1PV3a9OmTf0DPnHiRBQUFFha/pqaGgwbNgxjx46tNxG302/glH/MmDH18tvtN2jWrBnuvvtu7N69\n21bX3lP+Xbt2Wffay96B0ZCamhrWoUMHVlxczC5dumT6Zva5c+fY6dOnGWOMnT17lt12221s06ZN\n7Nlnn623yJo7d67XBtmlS5fYL7/8wjp06FC/wdSrVy+2fft2VldX57XB9OijjzLGGFu1apWqzWzG\nGCsuLvbazNZb1srKSta+fXt28uRJVlVVVf9aC/mPHTtW/3rBggXswQcftKz8dXV1bOzYsWzatGlu\nx+3yGwjJb4ff4Lfffqsvf/78eXbHHXewvLw821x7IfmPHz9uyWtvunnshg0bWGxsLOvYsSObM2eO\nqbL88ssvLCEhgSUkJLAuXbrUy1NZWcn69+/Pa3I3e/Zs1rFjR9apUyeWm5tbf9xpstaxY0f2xBNP\n1B+/ePEiGzFiRL3JWnFxsWJ5R48ezdq2bcuCg4NZREQEW758uWGyLl++nEVHR7Po6Gi2cuVKTeRf\ntmwZGzt2LOvWrRvr3r07Gzp0KCsvL7es/Fu3bmUOh4MlJCTUmzNu3LjRNr8Bn/wbNmywxW+wf/9+\nlpSUxBISEli3bt3Y/PnzGWPGPatqr72Q/Fa99ood7giCIIjAgDLcEQRBEKKQoiAIgiBEIUVBEARB\niEKKgiAIghCFFAVBEAQhCikKgiAIQpT/B/3hTmatMqttAAAAAElFTkSuQmCC\n" } ], "prompt_number": 243 }, { "cell_type": "markdown", "metadata": {}, "source": [ "A numpy array, already normalized!" ] }, { "cell_type": "code", "collapsed": false, "input": [ "audio.shape, audio.dtype" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 244, "text": [ "((331098, 2), dtype('float32'))" ] } ], "prompt_number": 244 }, { "cell_type": "code", "collapsed": false, "input": [ "wavPlayer(audio.astype(int16), sr)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", " \n", " \n", " \n", " " ], "output_type": "display_data", "text": [ "" ] } ], "prompt_number": 245 }, { "cell_type": "code", "collapsed": false, "input": [ "wavPlayer((audio*2**15).astype(int16), sr)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", " \n", " \n", " \n", " " ], "output_type": "display_data", "text": [ "" ] } ], "prompt_number": 246 }, { "cell_type": "code", "collapsed": false, "input": [ "wavPlayer((audio[:,0]*2**15).astype(int16), sr)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", " \n", " \n", " \n", " " ], "output_type": "display_data", "text": [ "" ] } ], "prompt_number": 247 }, { "cell_type": "markdown", "metadata": {}, "source": [ " Essentia has a selection of audio loaders:\n", "\n", " - *AudioLoader*: the basic one, returns the audio samples, sampling rate and number of channels\n", " - *MonoLoader*: which returns audio, down-mixed and resampled to a given sampling rate\n", " - *EasyLoader*: a MonoLoader which can optionally trim start/end slices and rescale according\n", " to a ReplayGain value\n", " - *EqloudLoader*: an EasyLoader that applies an equal-loudness filtering on the audio\n", "\n", "Essentia in Python tutorial:\n", "http://essentia.upf.edu/documentation/python_tutorial.html" ] }, { "cell_type": "code", "collapsed": false, "input": [ "loader = AudioLoader(filename='/home/andres/Music/Jose Vicente Asuar/Obra Electroacustica I/01. Variaciones espctrales (1959).flac')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 248 }, { "cell_type": "code", "collapsed": false, "input": [ "audio, sr, nchnls = loader()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 249 }, { "cell_type": "code", "collapsed": false, "input": [ "plot(audio[:44100])" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 250, "text": [ "[,\n", " ]" ] }, { "output_type": "display_data", "png": "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\n" } ], "prompt_number": 250 }, { "cell_type": "code", "collapsed": false, "input": [ "wavPlayer(audio, sr)" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Fails! Too big!" ] }, { "cell_type": "code", "collapsed": false, "input": [ "wavPlayer((audio[:444100]*2.0**15).astype(int16), sr)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", " \n", " \n", " \n", " " ], "output_type": "display_data", "text": [ "" ] } ], "prompt_number": 251 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Pros:\n", "\n", "- (almost) any format\n", "- Numpy arrays\n", "\n", "Cons:\n", "\n", "- Requires the essentia library which has a lot of dependencies" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "By Andr\u00e9s Cabrera mantaraya36@gmail.com\n", "\n", "For course MAT 240E at UCSB\n", "\n", "This ipython notebook is licensed under the CC-BY-NC-SA license: http://creativecommons.org/licenses/by-nc-sa/4.0/\n", "\n", "![http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png](http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png)" ] } ], "metadata": {} } ] }