{ "cells": [ { "cell_type": "markdown", "metadata": { "code_folding": [ 0 ] }, "source": [ "## Cocktail party problem\n", "### original file by Kevin Hughes\n", "\n", "\n", "**Problem setup:** A number of people are talking simultaneously and we want to separate each persons speech so we can listen to it separately. Now the caveat with this type of approach is that we need as many mixtures as we have source signals or in terms of the cocktail party problem we need as many microphones as people talking in the room.\n", "\n", "First, some technical stuff for loading audio\n", "\n" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "code_folding": [ 0 ], "collapsed": true }, "outputs": [], "source": [ "#Tech stuff\n", "from scipy.io import wavfile\n", "from scipy.signal import resample\n", "import numpy as np\n", "%matplotlib inline\n", "import sys\n", "def load_wav(filename,samplerate=44100):\n", " \n", " # load file\n", " rate, data = wavfile.read(filename)\n", "\n", " # convert stereo to mono\n", " if len(data.shape) > 1:\n", " data = data[:,0]/2 + data[:,1]/2\n", "\n", " # re-interpolate samplerate \n", " ratio = float(samplerate) / float(rate)\n", " data = resample(data, len(data) * ratio)\n", " \n", " return samplerate, data.astype(np.int16)\n" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "code_folding": [], "collapsed": true }, "outputs": [], "source": [ "#Reading the wavefile\n", "import StringIO\n", "import base64\n", "import struct \n", "\n", "from IPython.core.display import HTML\n", "from IPython.core.display import display\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. and\n", " github.com/Carreau/posts/blob/master/07-the-sound-of-hydrogen.ipynb\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", "\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", " # return buffer.getvalue()\n", " # Determine file size and place it in correct\n", " # position at start of the file.\n", " size = buffer.tell()\n", " buffer.seek(4)\n", " buffer.write(struct.pack('\n", " \n", " Simple Test\n", " \n", " \n", " \n", " \n", " \n", " \"\"\".format(base64=base64.encodestring(val))\n", " display(HTML(src))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can test the audio reading stuff. Following the original .ipynb file, I will use Starcraft sounds (that is from my childhood, yea as well, how many of you remembers what it is?), but you can use your own wave files for fun. The files are downloaded from http://wavs.unclebubby.com/computer/starcraft/" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nDmmnTu5aRMfJ9t5bUu/pc5kuc44ew7eaO3dOVYC+5aiuc1U6meqPqltVlxpUo653/S9GjgT231/W\n58yRpVqvel+++64k8PjVr8STsXChjDUed5wo1kmTxCqOjsvWAtViAeYcR7Z2rfSMNAKrIamrcw3Q\n6tVuPCRbV8OWW0qvrU0bU4BRWrWSh3HVKmc1bNggjWCcAvzqK7kXfvrThpUzE0nJsAvBv1eWLhW3\noY53ZWLXXWXflSudpRA3dpdEpkonuaYVSyIuiKmuLjx3My6d2PLlblxT+eqrcFo4373rj/sBTrHo\nM5yupFR0CsKKFXJtk1yggLPS1qyRa5kpUEU79zo2etNN0tZp9LH/LLz0kvyn2jFQN7wG4DzyiFj4\nRx8tCR0GD5Z7adw4+c5228k0j912k2eOSJTjuecC//u/8r6hvBzFploUYLSKRFeE6wcG3PDN64sv\npmH9+tQE1cXixBOTP1u71s39U6JjIOlo314UZ/v2DTuOWQ2oAly5MtygdeiQOj7VqZNTgBp0VAns\nuWf+SRjS4SuHZcukcY92upKuQ/Pmco9OnizJxYHwPbvddm4MKY5MFksu9386/IQJuVBfH24LttpK\n7o2oUtSxOF8B/eY3qUptyZLUaFdA3Mf+fdikibMAFy1KzQgTnTICpMoUx5o1opQAF+jUrZts963N\nI46QoKQuXUSp+dHT8+dLcoKxY0XpafYk//z+WK5OD+rQQRTt11/L77vxxvhrUQjTpk3DDTfc8M2r\nZDBzxb8grtoPAOwEoAWAGQB6RvZhGfKV17e+JcuePTm0vVivH/+YuUWL7PdXebJ57bEH8zbbuGUp\n5K/W17bbMu+4I3Pz5uHtu+2Wum+vXm794YfLL7u+Dj6YebvtSn+eLl1StzVtGr/vLrsw77mnrB9x\nhCx/8IPwPr/8Zf6yfPe7DXuNu3ZN3bbffm797ruZW7Vi3n338D4bNoSvXefOzMuXy3qTJrLs1EmW\n/rPZuXN4qa+tt5bliSfKslu38Oft27v1nXeWZdy97O8XvabXXSfL44+X5V57yXLbbZkvuii8jz4T\n++8vy1NPleWLLzK/956sT5vGPH68rF95JfO6dczMzF9/zWVDVFXxdUtVWIAsleB/AuB5SCWJscz8\nXrrvqJlfip42ID2pXMz+XCzR9u3FJdKhQ/rgisbIZ59Jrzn6v2pv2KdzZ/dZJeVUbdeuYSLv4qo+\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " \n", " \n", " Simple Test\n", " \n", " \n", " \n", " \n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#The first sound\n", "import pylab as pl\n", "import numpy as np\n", "# load\n", "fs1,s1 = load_wav('tbawht02.wav') # Terran Battlecruiser - \"Good day, commander.\"\n", "\n", "# plot\n", "pl.figure(figsize=(6.75,2))\n", "pl.plot(s1)\n", "pl.title('Signal 1')\n", "pl.show()\n", "\n", "# player\n", "wavPlayer(s1, fs1)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " \n", " \n", " Simple Test\n", " \n", " \n", " \n", " \n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# load\n", "fs2,s2 = load_wav('TMaRdy00.wav') # Terran Marine - \"You want a piece of me, boy?\"\n", "\n", "# plot\n", "pl.figure(figsize=(6.75,2))\n", "pl.plot(s2)\n", "pl.title('Signal 2')\n", "pl.show()\n", "\n", "# player\n", "wavPlayer(s2, fs2)\n" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nrkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " \n", " \n", " Simple Test\n", " \n", " \n", " \n", " \n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# load\n", "fs3,s3 = load_wav('PDrPss02.wav') # Protoss Zealot - \"Drop your weapon. You have 15 seconds to comply\"\n", "\n", "# plot\n", "pl.figure(figsize=(6.75,2))\n", "pl.plot(s3)\n", "pl.title('Signal 3')\n", "pl.show()\n", "\n", "# player\n", "wavPlayer(s3, fs3)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The signals are mixed by creating a mixing matrix A and taking the dot product of A with the signals S.\n", "\n", "Afterwards I plot the mixed signals and create the wavPlayers, so you can listen!\n", "The code below uses scikit-learn package, which can be installed (if it is not installed)\n", "\n", "```\n", " conda install scikit-learn\n", "```\n", "(Anaconda Python distribution assumed)\n", "\n" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mixing Matrix:\n", "[[ 1. 0.5 0.5]\n", " [ 0.5 1. 0.5]\n", " [ 0.5 0.5 1. ]]\n" ] }, { "data": { "image/png": "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\nSBf/DLx9uMG6PTapmdn48tBDjTk7HIuxSeu5Z/inkt4EDJHCNF0E4KgVZmbWdpodI2qsJmjfeIav\ne13r6zCW06WXNrf8E08cedmUKa3ff4i44oo9P3/2s62v03g/Dk86qXlln3VW6/dvrKZKZd/Ljztu\n77T3vGd023rqqWiI1FU1tw85oEI4RQRbt8LMmTBpEgwOwtAQTJ2a5idNgoEBkKCnp5pv40Y46CCY\nMaNa3u7d6Umonp70tR56aDV9YABmzarm7e9Pefr60r9DQ/Dyy3DMMdWnqbZtg0oFZs9O2x8cTOX0\n9aW0bdvS9idNgl274DWvScsjYMoU2LEjLZ8woZr3uedg/vw0X3yNlUrKs317qkdE2rcJE1K5U6ak\n9Bkz0rYnTUp1HBpK+zFtWqpfb29KmzkzlTs0lMrYvTvV5bWvTfWbPDkt7+lJ6ZMnw/TpaTvFsqJO\nfX0pbcKEVF5fX/q33JZF+ZUKvO511fSurrTuzJlpfUj7M316KmfatOp3NnkybN2a2rXQ25vy7ktx\njESksnbuTMfOE0/AscemZRMmpLocfnj6XKnAhg2pjYvvoK8vlTVvXrXM4RTHzdSp6XNEtZ47dqR/\nn38+/Xv44dV1KpU0zZiRyt+6NR2fL7yQ8m3dmo6/N74xlbNjRzpOILXP4GBKmz0bXnwxrdPXl8ob\nGEjLDjkk5evuTt/PtGkpferU1AbFcd3VVf1tDA2l+s+YAVu2pO9h92447LCUf/v2dFxMnQqbN6f1\niu9ywwaYOzdtQ6p+rxMmpH2tPU4KPfkFr1mz0rrFcVe82Vwce7X6+tK+zZ1bzdvVBXPmpP2ePLn6\nO543r/pbLJe9di0ccUT197pxY9qn9etTGUcfnb6vwcG0/xMnVo+FnTvTOtu2pbrX1rGvr/o7rFTS\n8bV1a2rb4jjevj3Vp1JJ25k5M60zcWK1jpDqV/7bVij+Zk2bVv08NFStY+3fuv7+1N6TJ6d1pkxJ\nn3fvTsdSd/eev9nNm9N33whjcZn0gOsMzczswOJ4hmZmZmPAnaGZmXU8d4ZmZtbx6u4MJf1nSZX8\nTmCR5qgVZmbWNurqDHPYpvcBz5fSHLWig4z1KBGWuN1bw+1+4Kr3zPDPgc/XpDlqRQfxH4fWcLu3\nhtv9wFVPcN8PA2sj4tGaRSNFmqhNHzFqBeCoFWZmNmb2ORybpBXAvGEWfRG4HHh/OXsD62VmZjZ2\nRjn02e8AG4Hn8jQArAHmApcBl5Xy3gWcQupUnyylfxy4oZTn1Dw/CXg5zy8F/rq0zjeAJSPUKTx5\n8uTJ04E5tcVwbJKeAxZFGli7JVErzMzMRquuSPclr/So4agVZmbWZg6YsUnNzMxGq+1HoJG0OL/c\nv1rSpa2uT7uStEbSo5IelrQyp82RtCIPeHB3+R3PRg6s0EkkfUvSRkmPldLGpJ07eQCLEdr9Sklr\n8zH/sKQzS8vc7g0g6UhJ90p6XNKvJV2c08ffMd/sm5LNnICJpPcYjwImA6uA41pdr3acSA9CzalJ\nuxb4fJ6/FLg6zx+f23pybvtnqF5lWAmcnOfvBBbn+WXA9Xl+CbC81fvconZ+J/A24LGxbGdgDikI\n9+w8PQvMbnV7tLjdrwD+0zB53e6Na/d5wIl5fibwr8Bx4/GYb/czw5OBZyJiTUQMAMtJL/3b6NS+\nHlMeDOFmqoMkNHJghY4SEb8AumuSx6KdO3oAixHaHYZ/Jczt3iARsSEiVuX5HcCTpAcrx90x3+6d\n4Ssv62d+KX/0Avi5pIck/cecNjciNub5jaRXZ6BxAyvMwaD57ewBLEb2OUmPSLqpdKnO7d4Eko4i\nnZ0/yDg85tu9M/TTP41zWkS8DTgT+Iykd5YXRrru4PZuMrfzmLoBOBo4EVgP/Flrq3PgkjSTdNZ2\nSUT0lJeNl2O+3TvDl4AjS5+PZM//Cdh+ioj1+d+XgR+SLkFvlDQPIF+m2JSz17b7fFK7v5Tna9OL\ndRbksiYBB0fElqbsTPtpdjt3DVNWx/9WImJTZMA3Scc8uN0bStJkUkd4S0TckZPH3THf7p3hQ6To\nF0dJmkK6efqjFtep7UiaIWlWnn8NaZi9x0hteUHOdgFQHMg/ApZKmiLpaGAhsDIiNgDbJZ0iScB5\nwN+V1inK+ihwT5N3q52MRTvfDbxf0mxJh5CizfysmTs13uU/woWPkI55cLs3TG6nm4AnIuIvSovG\n3zHf6qeNGvC00pmkJ5SeAS5vdX3acSJdKlqVp18X7Uh6GuvnwNP5wJpdWucLuc2fAj5QSl9E+qPy\nDGmEoSJ9KvB9YDXwAHBUq/e7RW19G7AO6Cfd5/jkWLVz3tbqPF3Q6rZocbt/ivQQxqPAI6Q/xnPd\n7g1v998FKvlvy8N5Wjwej3m/dG9mZh2v3S+TmpmZ1c2doZmZdTx3hmZm1vHcGZqZWcdzZ2hmZh3P\nnaGZmXU8d4ZmZtbx3BmamVnH+//Om/jKC3BWwwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " \n", " \n", " Simple Test\n", " \n", " \n", " \n", " \n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\nHo4wa4UkZ60wM7MRc8gzQ0kr8jW+gdMHASLisxFxKvC3wF+MRIPNzMxqraqsFSV3Ucln6KwVZmbG\nBRccfp3BNCJrxbDHJpU0JyLW5vlPAvMi4rJ8A81dpJ9NTwEeAt4SESFpFXAVsBq4H/hqRCyXtBQ4\nMyKulLQYWBgRi/MNNI8BZ5MyXfwMOHuwwbo9NqmZ2ehSq6GvR2Js0mquGf6ppLcBfaQ0TVcCOGuF\nmZk1G2etAD7yEbjrrur2/4Y3wNat1dVhtbN9O7S1NboVh3beefDjHze6FTZcp58OL75Ym7oWLYJ7\n761NXSNh4UK4777Dr9dMZ4ZHVTDs6Aj6+2HcuPQmjB0LY8bAhAnp9SuvwPTpsHNn+kM5Zgx0dMCJ\nJ0JfH+zbB5Mnp/ra22Hq1FRHV1eaj4AdO6C/H44/PpX39qb5ss7OtN5xx6Wx+SZOTPscMyaVdXfD\nrl2pDTt2pO0j0jrHHw/PPw9ve1s6jq4uePXVFGynTk376+1Nf+xPPDHtb98+mDIFXnst7a+rK+1r\n0qR0XBGVPgHo6amk35w0Ke1v2rRU/zHHwO7dsGcPjB+fyiZOrBzbtm2pD/fsSf3a1wfHHltZvnlz\nak9R1tubtp8wYehxCot+bWtLfTd2bNpu4LGMH5/W37079SNUjnkwXV3w8svp2E48EfbuTXUX73HR\n95s2Vd7DiHQMs2alf2fOTO/LCSccXP+mTanfp01Lrzs6Ut39/el4i76WUv8X70VHRzqmadNS+8eM\nSW075hjYsCH1eVtbKps0KX1eenvTvnbsSP1w3HHpPejsTMcmpbp6eyt9v21b2j4i7Xv79jRwck9P\nqrOjIx2fVPksT5yY1h8zJvVzdzecfHJaNm5c5SHqiFQ2ZkzlO9LVlY6peJ8gHcPAz0hh69bUT1Jq\nZ/E9LfbR3l7p9z17Uj39/Wn+lFNgy5Z0jHPnVtry2mtp++I97u9PfVbU09l5cFv6+tI2xTH39aXt\nOzrSZ727u9KmKVPScU6YUDn27u7Kd6Snp3L8/f2pXVu3pn7euhVmzEj9uG1bqmP8+EpbN25MxzZx\nIpx00oHfu/7+yudh7NjK53fy5HRMY8Yc+J+/4jvV2QmzZ1c+e+PHVz73nZ0pmM+YUXmfJ0xIx9DV\nlY51797UD21tB7bz5JMP7MPdu9NxFd/Z/v7Kd7QWHAxfB0lxtByLmZlVOJ+hmZnZCHAwNDOzludg\naGZmLa/qYCjpv0rqz88EFmXOWmFmZk2jqmCY0za9F3ipVOasFS1kpEeJsMT93hju96NXtWeG/wP4\n9IAyZ61oIf7j0Bju98Zwvx+9qknuewnwSkQ8OWDRUJkmBpYPmbUCcNYKMzMbMYccjk3SCmDmIIs+\nC1wLXFhevYbtMjMzGzkR8bon4NeAzcCLeeoB1gMnAcuAZaV1lwPzSUH1uVL5h4HbSuu8O8+PA7bm\n+cXA10rb/DWwaIg2hSdPnjx5Ojqn4cSq1zPVZAQaSS8C5+SBtRuStcLMzGy4qsp0X7I/ojprhZmZ\nNZujZmxSMzOz4Wr6EWgkLcgP96+VdE2j29OsJK2X9KSkxyWtzmVtklbkAQ8eLD/jWcuBFVqJpL+R\ntFnSU6WyEennVh7AYoh+v17SK/kz/7iki0rL3O81IGm2pEckPSPpaUlX5fLR95mv90XJek7AWNJz\njKcB44E1wBmNblczTqQbodoGlN0EfDrPXwN8Oc/PzX09Pvf9Oiq/MqwG5uX5B4AFeX4pcGueXwTc\n0+hjblA//xbwTuCpkexnoI2UhHt6nn4BTG90fzS4368DPjXIuu732vX7TOCsPH8s8Dxwxmj8zDf7\nmeE8YF1ErI+IHuAe0kP/NjwDH48pD4ZwB5VBEmo5sEJLiYifADsGFI9EP7f0ABZD9DsM/kiY+71G\nIuLViFiT5zuB50g3Vo66z3yzB8P9D+tnfih/+AJ4SNJjkv5TLjspIjbn+c2kR2egdgMrjPJc9COm\n3v3sASyG9klJT0i6vfRTnfu9DiSdRjo7X8Uo/Mw3ezD03T+1856IeCdwEfAJSb9VXhjpdwf3d525\nn0fUbcDpwFnAJuDmxjbn6CXpWNJZ29UR0VFeNlo+880eDDcAs0uvZ3Pg/wTsCEXEpvzvVuB7pJ+g\nN0uaCZB/ptiSVx/Y77NI/b4hzw8sL7Y5Ndc1DpgWEdvrcjDNp9793D5IXS3/XYmILZEB3yB95sH9\nXlOSxpMC4Z0RcV8uHnWf+WYPho+Rsl+cJmkC6eLp9xvcpqYjaYqkqXn+GNIwe0+R+nJJXm0JUHyQ\nvw8sljRB0unAHGB1RLwK7JY0X5KAy4B/KG1T1HUp8HCdD6uZjEQ/PwhcKGm6pONJ2WZ+VM+DGu3y\nH+HCh0ifeXC/10zup9uBZyPiL0qLRt9nvtF3G9XgbqWLSHcorQOubXR7mnEi/VS0Jk9PF/1Iuhvr\nIeCF/MGaXtrmM7nPfw68r1R+DumPyjrSCENF+UTg28BaYCVwWqOPu0F9fTewEdhHus7xH0eqn/O+\n1uZpSaP7osH9fjnpJowngSdIf4xPcr/XvN9/E+jPf1sez9OC0fiZ90P3ZmbW8pr9Z1IzM7OqORia\nmVnLczA0M7OW52BoZmYtz8HQzMxanoOhmZm1PAdDMzNreQ6GZmbW8v4/HXa2AjBeE0wAAAAASUVO\nRK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " \n", " \n", " Simple Test\n", " \n", " \n", " \n", " \n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " \n", " \n", " Simple Test\n", " \n", " \n", " \n", " \n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "\n", "# Adjust for different clip lengths\n", "fs = fs1\n", "length = max([len(s1), len(s2), len(s3)])\n", "s1 = np.resize(s1, (length,1))\n", "s2 = np.resize(s2, (length,1))\n", "s3 = np.resize(s3, (length,1))\n", "\n", "S = (np.c_[s1, s2, s3]).T\n", "\n", "# Mixing Matrix\n", "#A = np.random.uniform(size=(3,3))\n", "#A = A / A.sum(axis=0)\n", "A = np.array([[1, 0.5, 0.5],\n", " [0.5, 1, 0.5], \n", " [0.5, 0.5, 1]]) \n", "print 'Mixing Matrix:'\n", "print A.round(2)\n", "\n", "# Mix Signals\n", "X = np.dot(A,S)\n", "#Some noise as well\n", "X = X * (1 + 10 * np.random.randn(X.shape[0], X.shape[1]))\n", "# Mixed Signal i\n", "for i in range(X.shape[0]):\n", " pl.figure(figsize=(6.75,2))\n", " pl.plot((X[i]).astype(np.int16))\n", " pl.title('Mixed Signal %d' % (i+1))\n", " pl.show()\n", " wavPlayer((X[i]).astype(np.int16), fs)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we have to separate the mixtures. For this we use the ``FastICA`` method from the ``sklearn`` module. Presumably, we will discuss it later on, when we will talk about matrix decompositions. The idea is to find a matrix $W$ that unmixes the mixture\n", "$$X=WY,$$\n", "such that $X$ are as independent, as possible. There are different criteria of independence. Independent of two random variables requires infinite number of equations to be solved, and there are many variants for doing this, and this is still an active research topic.\n", "\n" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sklearn.decomposition import FastICA\n", "ica = FastICA(n_components=3)\n", "S_ = ica.fit_transform(X.T).T # Reconstruct signals\n", "A_ = ica.mixing_ # Get estimated mixing matrix\n" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " \n", " \n", " Simple Test\n", " \n", " \n", " \n", " \n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\nOHBQgk2vAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " \n", " \n", " Simple Test\n", " \n", " \n", " \n", " \n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\nRq5s2FD6oe3//hc+/tg12mbNKm3ZRnxcfjlstVXxy/nkE/jwQ3jooZrX1qwpfvm1lUI390VEGuAU\n4aOq6u9ov1xEWqrqMm8I9AsvfgnQNnB7G1yPcIkXTo3379kB+FxENgGaePsl1uCGG274X7hz585l\n327lT38qa/E5cfnl0LMn1PUdapo2hV//Gu66q3Rl7ruvM4wAWLQI9t67dGVXMx98AN9+C0ccUW5J\nHNOnww8/FL+cf/8b/vzn4pdTTsaPH8/48eNLWmZBytAzfhkKzFbV4OvjRaAPztilD/B8IP4JEbkD\nN/zZDpiiqioi34pIR2AKcDZwd0pek4BTcAY5oQSVYalZsgS23DK8ZagKr7/urh18cOlly4a77oLP\nPzdluHo1TJ1a2jLXrk30RjduhF69YMSI0spQLtaudXNgBx6Y+73HH++e2bq4c9s335RbguKS2pkZ\nNGhQ0cssdJj0MOAsoIuITPOO7sAtwHEiMg842jtHVWcDI4DZwCigf2ATwv7Av4D5wAJV9Y18hwJb\ni8h84DI8y9RKo00b6N07+vqxx8IvflE3/7jVRjl/o7Vr4emny1d+qbn9djjooNzvW73aKcJKIm7b\nhFReeikRtvdI/BRqTfq2qtZT1QNU9UDvGK2qK1X1WFXdXVW7quo3gXsGq+puqrqnqo4JxE9V1X29\na5cE4tepai9Vbaeqh3pWqDmxdCksX545XaEsWeLmfqL44gs44YTiyxHk9ddhZeigslFqiv2yjIN7\n74UnnkicH3wwPPBA8crLd1hx4MB45YiDTL/vww8XNh8dfHf4ytCWbsVHnfBA8//+HxxwQPHLmTED\ndtstfZp//7v4cgQ59li48cbSllntFKvVXQ2t+YsugosvTpy/915yj6RSWL263BLUZMWK9NfPO881\nmOPAf49cf308+Rl1RBkCfPll+coOvgTL8UKcOhUWLix9udVKMX6jefMKz+Pzz+GeewrPp5Koht5y\nJkaNgi22gJkz48vztdeyS5eN9fHq1eGWpz59+sCTT2ZXXm2mVivDSlnXFXy5fvdd6Yct3347u+HZ\nr78uvizVQDGU4R57wFtvufAOOyTiN27MfqjrgQeSe23pWLEi/yHI1OdT1R1XX50cf+ON7tmq60ya\nFG9Pdd06uOACF47jWXzppZprEoM88gj861+Fl1Pt1GplWIp5QnCm+Ol4+OHk8112KZookWTzp1q7\n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\nAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " \n", " \n", " Simple Test\n", " \n", " \n", " \n", " \n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Show separation results\n", "\n", "# Separated Signal i\n", "gain = 1000000\n", "for i in range(S_.shape[0]):\n", " pl.figure(figsize=(6.75,2))\n", " pl.plot((gain*S_[i]).astype(np.int16))\n", " pl.title('Separated Signal %d' % (i+1))\n", " pl.show()\n", " wavPlayer((gain*S_[i]).astype(np.int16), fs)\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.10" } }, "nbformat": 4, "nbformat_minor": 0 }