{"cells":[{"metadata":{},"cell_type":"markdown","source":"## Important imports"},{"metadata":{"trusted":true},"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\nimport IPython.display as ipd\nimport librosa\nimport librosa.display\nimport os\nfrom tqdm import tqdm\nimport sklearn\nimport seaborn as sns\nimport plotly.express as px\n\n\nimport geopandas as gpd\nfrom shapely.geometry import Point, Polygon","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## EDA for Audio "},{"metadata":{"trusted":true},"cell_type":"code","source":"filename = '../input/birdclef-2021/train_short_audio/annhum/XC151103.ogg'","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Visualizing Audio"},{"metadata":{"trusted":true},"cell_type":"code","source":"plt.figure(figsize=(18, 5))\n\n# by default librosa.load returns a sample rate of 22050\n# librosa converts input to mono, hence always \ndata, sample_rate = librosa.load(filename)\nlibrosa.display.waveplot(data, sr=sample_rate)\nprint(\"Sample Rate: \", sample_rate)\nipd.Audio(filename)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Spectrogram\nA spectrogram is a visual way of representing the signmal strength, or **\"loudness\"** of a signal over time at various frequencies present in a particular waveform."},{"metadata":{"trusted":true},"cell_type":"code","source":"plt.figure(figsize=(18, 5))\nX = librosa.stft(data)\nXdb = librosa.amplitude_to_db(abs(X))\nlibrosa.display.specshow(Xdb, sr=sample_rate, x_axis='time', y_axis='hz')\nplt.colorbar()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Converting frequency axis into log scale"},{"metadata":{"trusted":true},"cell_type":"code","source":"plt.figure(figsize=(18, 5))\nlibrosa.display.specshow(Xdb, sr=sample_rate, x_axis='time', y_axis='log')\nplt.colorbar()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Feature Extraction"},{"metadata":{},"cell_type":"markdown","source":"### 1. Spectral Centroid\nThe spectral centroid indicates at which frequency the energy of a spectrum is centered upon or in other words It indicates where the ” center of mass” for a sound is located. This is like a weighted mean:\n    ![image.png](attachment:image.png)\n    where S(k) is the spectral magnitude at frequency bin k, f(k) is the frequency at bin k.","attachments":{"image.png":{"image/png":"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"}}},{"metadata":{"trusted":true},"cell_type":"code","source":"spectral_centroids = librosa.feature.spectral_centroid(data, sr=sample_rate)[0]\nplt.figure(figsize=(25, 9))\nframes = range(len(spectral_centroids))\nt = librosa.frames_to_time(frames)\n\n# Normalising the spectral centroid for visualisation\ndef normalize(x, axis=0):\n    return sklearn.preprocessing.minmax_scale(x, axis=axis)\n\n#Plotting the Spectral Centroid along the waveform\nlibrosa.display.waveplot(data, sr=sample_rate, alpha=0.4)\nplt.plot(t, normalize(spectral_centroids), color='b')","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### 2. Spectral Rolloff\nIt is a measure of the shape of the signal. It represents the frequency at which high frequencies decline to 0."},{"metadata":{"trusted":true},"cell_type":"code","source":"plt.figure(figsize=(25, 9))\nspectral_rolloff = librosa.feature.spectral_rolloff(data+0.01, sr=sample_rate)[0]\nlibrosa.display.waveplot(data, sr=sample_rate, alpha=0.4)\nplt.plot(t, normalize(spectral_rolloff), color='r')","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### 3. Spectral bandwidth\nThe spectral bandwidth is defined as the width of the band of light at one-half the peak maximum (or full width at half maximum [FWHM]) and is represented by the two vertical red lines and λSB on the wavelength axis.\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"spectral_bandwidth_2 = librosa.feature.spectral_bandwidth(data+0.01, sr=sample_rate)[0]\nspectral_bandwidth_3 = librosa.feature.spectral_bandwidth(data+0.01, sr=sample_rate, p=3)[0]\nspectral_bandwidth_4 = librosa.feature.spectral_bandwidth(data+0.01, sr=sample_rate, p=4)[0]\nplt.figure(figsize=(25, 9))\nlibrosa.display.waveplot(data, sr=sample_rate, alpha=0.4)\nplt.plot(t, normalize(spectral_bandwidth_2), color='r')\nplt.plot(t, normalize(spectral_bandwidth_3), color='g')\nplt.plot(t, normalize(spectral_bandwidth_4), color='y')\nplt.legend(('p = 2', 'p = 3', 'p = 4'))  # p: order of spectral bandwidth","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### 4. Zero-Crosing Rate\nA very simple way for measuring the smoothness of a signal is to calculate the number of zero-crossing within a segment of that signal. A voice signal oscillates slowly — for example, a 100 Hz signal will cross zero 100 per second — whereas an unvoiced fricative can have 3000 zero crossings per second.\n\n![image.png](attachment:image.png)","attachments":{"image.png":{"image/png":"iVBORw0KGgoAAAANSUhEUgAAA3cAAAFECAYAAACEQsc8AAAgAElEQVR4AeydB7QsRfV3VUBEwIckAZEMkpSkKCA5ZxGQICAgSM4ZySBZkjyQnJEMIhnJOUtGyRkk50x9a9f61/369uuZ6Qn33p65u9bqNam7umpXd0/96pw69Y1gkoAEJCABCUhAAhKQgAQkIIGuJ/CNrq+BFZCABCQgAQlIQAISkIAEJCCBoLjzIpCABCQgAQlIQAISkIAEJNADBBR3PdCIVkECEpCABCQgAQlIQAISkIDizmtAAhKQgAQkIAEJSEACEpBADxBQ3PVAI1oFCUhAAhKQgAQkIAEJSEACijuvAQlIQAISkIAEJCABCUhAAj1AQHHXA41oFSQgAQlIQAISkIAEJCABCSjuvAYkIAEJSEACEpCABCQgAQn0AAHFXQ80olWQgAQkIAEJSEACEpCABCSguPMakIAEJCABCUhAAhKQgAQk0AMEFHc90IhWQQISkIAEJCABCUhAAhKQgOLOa0ACEpCABCQgAQlIQAISkEAPEFDc9UAjWgUJSEACEpCABCQgAQlIQAKKO68BCUhAAhKQgAQkIAEJSEACPUBAcdcDjWgVJCABCUhAAhKQgAQkIAEJKO68BiQgAQlIQAISkIAEJCABCfQAAcVdDzSiVZCABCQgAQlIQAISkIAEJKC48xqQgAQkIAEJSEACEpCABCTQAwQUdz3QiFZBAhKQgAQkIAEJSEACEpCA4s5rQAISkIAEJCABCUhAAhKQQA8QUNz1QCNaBQlIQAISkIAEJCABCUhAAoo7rwEJSEACEpCABCQgAQlIQAI9QEBx1wONaBUkIAEJSEACEpCABCQgAQko7rwGJCABCUhAAhKQgAQkIAEJ9AABxV0PNKJVkIAEJCABCUhAAhKQgAQkoLjzGpCABCQgAQlIQAISkIAEJNADBBR3PdCIVkECEpBAFQk89thj4aKLLgpXXXVVuOmmm8Jtt90WbrzxxvjdJZdcEu6444643XrrreG6664LF1xwQXjkkUc6WpXnn38+XHPNNYHXjz76qKN5m5kEJCABCUigagQUd1VrEcsjAQlIoMsJfP311+HLL78Mhx56aJhmmmnCwgsvHNZYY42w/vrrh9/85jdhiimmCDPMMEPYeOON47buuuuG5ZdfPkw++eTh4IMPbrv2X331Vfj888/DZ599Fs4+++zwq1/9Kpx33nnhpZdeajtvM5CABCQgAQlUmYDirsqtY9kkIAEJdCEBRBUWuOOPPz7suuuu0Sr3wAMPRAvabrvtFmabbbaw4oorhocffjhuDz74YNxnvfXWi2Ks3Sq/+OKL4dxzzw0jR44Ma665ZhSYZ555puKuXbAeLwEJSEAClSeguKt8E1lACUhAAt1F4MMPP4yulwgsXDE//vjjWIHHH388bLPNNmHeeecNW2yxRb9KvfHGG2HfffcNl19+eb/vW/nw2muvRVfQc845J1oLJ5lkknD66acr7lqB6TESkIAEJNBVBBR3XdVcFlYCEpBA9Qm899574bjjjgvXX399v8LefffdYZFFFonb/vvv3++3t99+OxxzzDFxbl6/H9r8gPVQcdcmRA+XgAQkIIGuIaC465qmsqASkIAEuoPAF198EV5++eWAYMsmgqpMNdVUYbXVVgt///vfsz/FOXLMiXvnnXf6fd/uB8VduwQ9XgISkIAEuomA4q6bWsuySkACEuhSAp9++mm47LLLwnjjjRd22mmncN999w1KTRR3g4LZk0hAAhKQQEUIKO4q0hAWQwISkEAvE2Ae3CmnnBLGHnvs6LL57rvv1qwukS6Zg/fKK6/EeXJY9Opt5E1+RMnMJ8VdnoifJSABCUiglwko7nq5da2bBCQggYoQILDKdtttF0aMGBFdMnHdrJWIdsmSCJtvvnkMiMISCvW2XXbZJeaZArdk81XcZWn4XgISkIAEep2A4q7XW9j6SUACEqgAAdabW3nllcOMM84Y3TPrFYm5eix8zjGnnnpqw42F0gnWgsUvnxR3eSJ+loAEJCCBXiaguOvl1rVuEpBATxBgQfD3338/PPXUU4FIlN2YDjnkkLiY+HLLLdfxiJj1eCju6tHxNwlIQAIS6DUCirtea1HrIwEJ9BwBhB1ujeuuu264+eabu7J+O+64Y1y8nEXMH3rooUGrg+Ju0FB7IglIQAISqAABxV0FGsEiSEACEigigJshQUXOPPPMsN5664U555wzXHrppUW7VvK7J554Ii5mjmvlEkssEaaYYoqw9tprh5EjR4Z77713wMr81ltvhTvvvDP84x//CBtuuGGc57fBBhuEE088Mdx11119i6oPWAHMWAISkIAEJDBEBBR3QwTe00pAAhIoIvD111/3rfl2xx13hIsvvjisvvrqcSHuqaeeOoqlouOq+B3z4A4//PCAtY617ZZddtmw2WabhQMOOCBcffXVA1bkV199Nc7rO/roo8Mmm2wSF03/wx/+EA488MBw+eWXhw8++GDAzm3GEpCABCQggaEkoLgbSvqeWwISkECOAPPr3nzzzfC3v/0tLLzwwmGppZYKs846a1eKu88++ywKKeYJYk2jXixSjpvpJ598kqt55z7CkPwRcZyPZRUI0pLOW7RkQufObk4SkIAEJCCBoSOguBs69p5ZAhKQwCgEEB4Ik4cffjhceOGF0Q0Tl8LpppsudJvlbpTK+YUEJCABCUhAAgNKQHE3oHjNXAISkED7BA499NBovZtmmmm6yi2z/ZqbgwQkIAEJSEACzRBQ3DVDy30lIAEJDAEBxd0QQPeUEpCABCQggS4koLjrwkazyBKQwPAioLgbXu1tbSUgAQlIQAKtElDctUrO4yQgAQkMEgHF3SCB9jQSkIAEJCCBLieguOvyBrT4EpBA7xNQ3PV+G1tDCUhAAhKQQCcIKO46QdE8JCABCQwgAcXdAMI1awlIQAISkEAPEVDc9VBjWhUJSKA3CXSruHvwwQfDqaeeGk4++eRw0kknDdl22mmnhRtvvDG8+OKLvXmBWCsJSEACEpDA/xFQ3HkpSEACEqg4gW4Vd5T7+9//fhhjjDHCaKON1reNO+64YYIJJggTTjhh29v4448fzzFixIgwzjjjhLHGGiuMOeaYYfTRR+87H9//9re/Df/85z8r3tIWTwISkIAEJNAeAcVde/w8WgISkMCAE+hWcXf55ZeH1VZbLSC8suJuu+22i0ILa1o723XXXRcuueSScPrpp4fDDjssbLbZZmG55ZYLP/3pT8N4440Xvv3tb8fzIi6nmGKKuM+AN5YnkIAEJCABCQwhAcXdEML31BKQgATKEOhWcffMM89EV8yZZ545jD322H0Cb6211uqIFe3LL78M77//fnjttdfCf/7zn3DDDTeEc845Jxx55JFh1113DZxn7rnnjuISi96mm24annrqqfDZZ5+Vwe4+EpCABCQgga4joLjruiazwBKQwHAj0K3ijnZCTK2zzjph6qmn7hN3uGXy3RtvvDFgQuvrr78OzPk76KCDwi9+8Yvwgx/8IFr1sPK9++67w+0Ssr4SkIAEJDBMCCjuhklDW00JSKB7CXSzuPvkk0/Cf//737DuuuvGuXC4Z+ImOcsss4Sdd945/jYQLYO4+/DDD8NLL70Ubrvttmi1W2yxxcLaa68dXn755YE4pXlKQAISkIAEhpyA4m7Im8ACSEACEqhPoJvFXaoZFrPFF1+8L7gKc+LmmGOOcOGFF4b//e9/abcBef3444/D9ddfH7bffvs4B/CBBx4IH3zwwYCcq1amiM233nor3HfffeHcc88NZ5xxRmDO4PPPPx8+//zzWof5fY8R+Oijj6I1m7mml156aWBeKtcAgyAmCUhAAp0goLjrBEXzkIAEJNBhAu+9917s9D377LNhl112CdNPP32YfPLJw7HHHhv47oUXXogChXln3ZBwz/zrX/8aJplkkvCd73wnumjyuvXWW4ebb745fPHFFwEBNJDpqquuCrvttlvgFYtePnF+XDZZMoE5fI8++mh4/PHH43s+P/bYY/E73iNIy3bImeOHsENgItSxYv7+97+PAV7uvffegPg0dR8B7j3a7tVXXw3PPfdcvKa4rrh+eP30009HqdTbb78dbrnllngv7LjjjmGrrbaKYp9rDUtzt9zPo1TMLyQggcoQUNxVpiksiAQkIIH/TwABstFGG8W5aUR/TCH+f/WrX0VxsPnmm0d3QwKKdEOio3vXXXeFNdZYI0auxD2T5QqYC0cn98033xxwCxasnnjiiXDBBRdE0ZbnhgUNS8oOO+wQFlxwwTDrrLOGn//852GRRRaJ25xzzhlmm222sPDCC0eRjfArk+jon3feeWHZZZeNSzKcf/75USQiELHkfPXVV2WycZ+KEcD6i+A/4IADwoYbbhgHYRiI2XbbbaPLMYIvnxBviDjmm959993h8MMPD4suumjYeOONw5133jnoFuV8+fwsAQl0PwHFXfe3oTWQgAR6kEASIX//+9/DMcccEwODEBzkhBNOiBEhL7roomjBK7IOVBUHHVpEKyKHoCppeYRf/vKX4S9/+Uu0gAx02bG0IMooSz7R8aazznp4dNiZF8j6eEcccUR06VxyySXDMsssE0aOHBluv/328Prrr+ezKPyMK+b6668fZp999tiJx/Ja1upXmKFfDjkB2g/33i233DL8+c9/jstxMDDA9re//S1ss802Yd99941W6VqFfeedd+KAB+7KCyywQLzmnA9ai5bfS0ACZQko7sqScj8JSEACEugIAUQqVrAk7hB6P/vZz8K//vWvykSyxNqGkDvqqKNimZgfh1Vmn332iS6kzYCgXlgBscByvKlaBHAJZpAEi1rZ+Y8I9OOPPz5MOeWUccAFN+qUcNtlAIAorXvttVd0ya3lbonl9ne/+128PlZZZZXw5JNPpmx8lYAEJNASAcVdS9g8SAISkIAEWiVAAImDDz64T9zhnjnRRBPFiJY33XRTq9l29LhOirurr746TDvttNESqLjraDN1JDPcdZkn99BDD0X34DKZYlH/zW9+E910L7744n6utQhEIsQi7lZdddVwxRVXROFYlG8SdzPOOGO0aCMMTRKQgATaIaC4a4eex0pAAhKQQNMEcGljwXHm30022WR9wVVmmmmm6OL29NNPl7agNH3ykgd0WtxNM800iruS7AdjNyxtuOCedNJJMcjO7rvvHq688srSy2RgfcbNFusultl8euWVV2J0WObIIuiL3IA5JivuyEtxlyfpZwlIoFkCirtmibm/BCQgAQm0TYDO7yWXXBIWWmih8L3vfa/Pise8tlNPPXXIA0so7tpu4splQNRS5rlhobvsssvC0UcfHTbYYIM4r3KLLbaI0UzLzqNkjcapppoqBlIhEEo+vfbaa2GllVaK7pYMYtSaS6e4y5PzswQk0C4BxV27BD1eAhKQgASaJkCESNzh6CQTuCTNvxt77LEDi40TXn4ok+JuKOkPzLmJyEogHJaiYM4ngXwIhnLHHXdECxrulGUjlxJRFWvsnnvuGcVivsSIREQd7rhEV2XpkqKkuCui4ncSkEA7BBR37dDzWAl0GQFGrf/xj3+EPfbYI/zhD3+Ic5xYTDcFEiDS22233VZYK9yKbr311hjRjfXKTjnllHD22WfH7f7774+WFvLiO37HzYk1vJjLkvYjyAAR5FjvC8uNaXgTIMgEEQcJHU9QFebesU0xxRRx/S+WThiqNNTijjD7BNc466yzwnHHHdd3D3EvEXEUUdBKYvkF7nEigGbvYfL997//3UqWlT6GAQQsdQTGIbLlpptuGp9NPIuIivrwww/HgCdlK4H1j2faH//4xyjc9t5775hH/ng4EyEVccfcu6JlEThGcZcn52cJSKBdAoq7dgl6vAS6hACLM9NZpiO99NJLx+iEc801VzjwwAPjhH+EHR0V1gDLJqLI0ZlBFDLPZPvtt4/HHHbYYXHUe+211w5HHnlkePDBB+Pr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oZWtowQk0FECiDlcMiebbLIYTAWx12tJcddrLWp9JCABCUhgOBBQ3A2HVraOEpBAWwSY/8Zi2USgPPbYY8Nuu+0WrXasb8fi3My/O/XUU8M111zTcnTKtgrYoYPvvvvucNZZZ8W6LLroonEJA9bx23PPPcMZZ5wR/vnPf8YooZ999lmHzmg2EpCABCQgAQl0koDirpM0zUsCEuhJAvfff3+cY7fhhhtGd8z5558/zDnnnGH22WcP8847b1zLbf311w+HHnpoINpltyYE7GabbRaoy4ILLhhmm222MNdcc4VVV101bLTRRmGfffYJjz/+eAz40kodWZbh448/Du+++2744IMPWsmi4TEsUfHCCy/EMra6DETDk7iDBCQgAQlIoKIEFHcVbRiLJQEJVIcAggTXSxYGRzg888wz4amnnorb008/HefcvfTSS+GNN95oedHwKtQW0UU9qUu2jtSZur/++usxcEyrETjff//98PDDDweii95xxx0DUuXDDz887LjjjvE8nM8kAQlIQAISGE4EFHfDqbWtqwQkIIEhJIAg3m+//eJ2ySWXdKwk5Hv11VeH8847L6ywwgphpZVWCvfee2+0EHbsJGYkAQlIQAIS6AICirsuaCSLKAEJSKAXCNx5550xEM2mm24aOinuWA/wxBNPDAcccECcA7nYYosp7nrhgrEOEpCABCTQNAHFXdPIPEACEpCABFohcMMNN4RJJ500/PnPf45z91rJo+gYArwwh++9996L8x8Vd0WU/E4CEpCABIYDAcXdcGhl6ygBCUhgiAh8+OGH4Z577okukyyvMM4444R11lknnHLKKXHe3TvvvNPRkhEMRnHXUaRmJgEJSEACXURAcddFjWVRJSABCXQbAaxpN954Y7TWLb300mGCCSYI6623XjjhhBPCtdde2xfAhWUYmtmeffbZwuAuirtuu0IsrwQkIAEJdJKA4q6TNM1LAhKQgAT6Efj666/DF198EQOebLnllmGOOeYIl156acCVko0Io6eddlpYcsklm9pYW5DoneSdTYq7LA3fS0ACEpDAcCOguBtuLW59JSABCQwBARZ5X2ONNcKaa64Zbr/99lgChN+nn34al5RgAfhmtsceeyx88sknIb8sg+JuCBrXU0pAAhKQQGUIKO4q0xQWRAISkEDvEiCS5RJLLBHdMxFmLDCOOOv0QuOK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u+mmm8Lll1/ed43ecMMNdauIsOb6WWqppeIxvSzu4HLAAQdEAcz9e/TRR9dl0+6PX331Vbj99tvDRx991G5WHi8BCUhgyAgo7oYMvSeWgAQGg8Duu+/e13E+/PDDB+OUYeWVVw4XXHBB3XNhgaHDOsEEE9Tdr2o/vvfee2HssceOZf/+97/fleIuMf31r38d6zHY4u68886L511uueViUXA5nGqqqcL0008fXn/99VS8uq///ve/Yx7dLO7uv//+MPvss9etJz8uvfTSsa5//etfG+7bzg6HHnpoPM++++7bTjYeKwEJSGBICSjuhhS/J5eABAaawJtvvhnd3jbYYIPA+8FIdFjPOeecuqd66KGHYkey2yx3VIo5YliOECndnNZYY43YBoMt7nbYYYd43n322adlfP/5z39iHt0s7i655JIw44wzNmTwm9/8JtZ1oC13WFMZcDnmmGMalskdJCABCVSVgOKuqi1juSQgga4kgNvct771rZ4Wd13ZMAWFHipx9/vf/z6KiHbchHtB3G266aaVEXdvv/12vG8Rd48++mjB1eJXEpCABLqDgOKuO9rJUkpAAl1CILmB9rLlrkuaomExFXcNEQ3YDrif4pJcFcvdP/7xjyi4J5544gGrsxlLQAISGAwCirvBoOw5JCCBfgQIaY5bIvPOBjK8OdEx33rrrYCV47bbbguvvPJKv3LwgQAhd999dzjzzDPDkUceGS677LIYGv/vf/97YDS/bCKc/sknn9w3+t+KuMPqR0CNxx9/vBSXd955J0YCPeqoo8JFF10UPv7447LFHWW/shwIBvLiiy+GBx54IAafGCWjzBfPP/98uO6668LDDz/cNzfvv//9bwySsdNOOwUiRpI+/PDDwL4sB8C+Kb3wwgvh+uuvL8WDtr711ltjsBHa4Z577oltm/Iqeu2UuKPt77333kA0x7POOqtfHYrOO1iWO5g88sgj8bo89thjw2OPPTZKcbj//ve//0XGRHKlLUhcS7THzTffXPo+KNve7DfvvPNGMdWKuPvss88Ccw6bKdsoFc99sd1228Xy/Pa3v8394kcJSEAC3UVAcddd7WVpJdDVBOgwMvdtvPHGC7/85S/D4osvHpcF+OMf/9iwI95KxVOIeVyt2PJzqxAos846a/jZz34W9txzz7D33nuHJZZYInzve9+L+xM5r0xCNBJc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4n/mQgstFPifoYN86qmn9u1Ox5nf+K9iX/67eOV4rCWmgSOw9tprB/7reA7R5/jLX/4ycCeraM701S688MJw5ZVXBgbeaiXE7wwzzBCvTwaATRJIBBR3iUQXvTJKc9ZZZ4Wjjz46ii0egGzrr79+FCcXXXRRYW1aPY7MGCXmHCxIXDY9+OCD4ZRTTgmrrbZaPDaVc5VVVgnnn39+v2wee+yx8Otf/7pvvymmmCJssMEG8fhaI3evv/56n/C56667+uXX7AcejJNNNlk8/w9/+MNKCISXX345nHjiibETArsJJ5yw2Wp1fP+h4PTkk08GrMZ0rOAw++yzj1KvkSNH9l07WJRN5QjgYg3TJZdcMo6QI5z5vOCCC5bLoIv2Goprt9N4dt999zDGGGOE22+/vdNZN8yP/w+e/6OPPnp8Njc8oM4OZdrik08+CbPNNlv45je/GW666aZw+eWX993jN9xwQ53ci3/inAxSMpgx0UQT9eXF837vvfcOzz//fL8DefYy6MH9MNpoo4Ulllgi1v/f//53v/380FkCDNIx7SKxH07i7tZbb41ibYIJJgiIXAYyELmbb755wGulKDHY/t3vfjfstttuRT/73TAloLjr8oZnBJc/nx//+MeB0cayqdnj6FBzHqwozSZGm6effvq+P9MnnniiMIu//vWv8Y/8T3/6U2lLHH/+lOvSSy8tzLPsl1g6xx577JgX1smsVbFsHq3st/LKKzdkinCljjzwhzoNFSfqzaAFHGjzfKLTy29sdN6GMpVp06EsX/bcM888c2R27733xq9hh5XkwAMPzO7WFe8bcR/Ka7cTAJ9++unoEr/NNtt0IrtSefCsXmuttfo6mekeYyCxnVSmLc4777x4bS633HLxVFgpsODzX8LAXjvptNNO63teMPhYlHD/nnLKKcNMM80U7rnnnqJdmvoOa0zRwFRTmQyjndNg73ARdzfffHMUclwj3B8pMUDOAMfSSy+dvhrlddttt43PBgZCTRKAgOKui68D/uzTny03d9nUynFJ3NWyCjY6N53GVNYttthilN2vvvrq+HBq1urSbrmyBWFOBxZKOhWDlSj/OeecU/d0Dz30UGRXBcsdBR0KTpz3iiuuiBxglk+4ruC2hbW3nhtL/riB+FymTQfivM3mSVCOb33rW9ESxABMt6cy3Ifq2u0E29/+9rexvXBV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"}}},{"metadata":{"trusted":true},"cell_type":"code","source":"#Plot the signal:\nplt.figure(figsize=(25, 9))\n# librosa.display.waveplot(data, sr=sample_rate)\n# Zooming in\nn0 = 9000\nn1 = 9100\n\nplt.plot(data[n0:n1])\nplt.grid()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"There are 57 zero crossing. Below if the code to verify it with librosa"},{"metadata":{"trusted":true},"cell_type":"code","source":"zero_crossings = librosa.zero_crossings(data[n0:n1], pad=False)\nprint(sum(zero_crossings)) #57","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### 5. Mel-Frequency Cepstral Coefficients (MFCCs)\nThe Mel frequency cepstral coefficients (MFCCs) of a signal are a small set of features (usually about 10–20) which concisely describe the overall shape of a spectral envelope. "},{"metadata":{"trusted":true},"cell_type":"code","source":"mfccs = librosa.feature.mfcc(data, sr=sample_rate)\n\n#Displaying  the MFCCs:\nplt.figure(figsize=(15, 7))\nlibrosa.display.specshow(mfccs, sr=sample_rate, x_axis='time')\nplt.colorbar()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### 6. Chrome features\nA chroma feature or vector is typically a 12-element feature vector indicating how much energy of each pitch class, {C, C#, D, D#, E, …, B}, is present in the signal. "},{"metadata":{"trusted":true},"cell_type":"code","source":"hop_length=512\nchromagram = librosa.feature.chroma_stft(data, sr=sample_rate, hop_length=hop_length)\nplt.figure(figsize=(20, 8))\nlibrosa.display.specshow(chromagram, x_axis='time', y_axis='chroma', hop_length=hop_length, cmap='coolwarm')\nplt.colorbar()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"*References:* I've used [this](https://www.kdnuggets.com/2020/02/audio-data-analysis-deep-learning-python-part-1.html) blog for EDA."},{"metadata":{},"cell_type":"markdown","source":"## EDA for data"},{"metadata":{"trusted":true},"cell_type":"code","source":"path = '../input/birdclef-2021/'\ntrain_metadata = pd.read_csv(path + 'train_metadata.csv',)\ntrain_csv = pd.read_csv(path + \"train_soundscape_labels.csv\")\ntest_csv = pd.read_csv(path + \"test.csv\")\nsample_sub= pd.read_csv(path + \"sample_submission.csv\")\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_metadata.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"print(\"There are total {} species\".format(train_metadata['primary_label'].nunique()))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Top 25 species\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"def plotbar(series, pal):\n    plt.figure(figsize=(20, 9))\n    chart = sns.barplot(x=series.index, y=series.values, edgecolor=(0,0,0), linewidth=2, palette=(pal))\n    chart.set_xticklabels(chart.get_xticklabels(), rotation=45)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"species = train_metadata['primary_label'].value_counts()[:25]\nplotbar(species, \"Blues_r\") # series, palette","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"sns.set(rc={'figure.figsize':(20,6)})\nsns.countplot(x='rating', data=train_metadata, edgecolor=(0,0,0), linewidth=2, palette=('cubehelix'))\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"From above it is clear that there are only few files with low ratings"},{"metadata":{"trusted":true},"cell_type":"code","source":"authors = train_metadata['author'].value_counts()[:10]\nplotbar(authors, \"YlOrBr_r\") # series, palette","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Richard E. Webster is author having maximum file entries."},{"metadata":{},"cell_type":"markdown","source":"Top 25 training samples per species"},{"metadata":{"trusted":true},"cell_type":"code","source":"print(\"Common Name\")\ncommon = train_metadata['common_name'].value_counts()[:25]\nplotbar(authors, \"light:b_r\") # series, palette","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"print(\"Scientific Name\")\nscien = train_metadata['scientific_name'].value_counts()[:25]\nplotbar(scien, \"Greens_r\") # series, palette","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Plot on Map\n*References:* [Blog](https://towardsdatascience.com/geopandas-101-plot-any-data-with-a-latitude-and-longitude-on-a-map-98e01944b972)"},{"metadata":{"trusted":true},"cell_type":"code","source":"# SHP file\nworld_map = gpd.read_file(\"../input/world-countries-shp-file/TM_WORLD_BORDERS-0.3.shp\")\ncrs={'init': 'epsg:4326'}\ngeometry = [Point(xy) for xy in zip(train_metadata[\"longitude\"], train_metadata['latitude'])]\n\ngeo_df = gpd.GeoDataFrame(train_metadata, crs=crs, geometry=geometry)\n\n# top 15 most species\nspecies_list = species.reset_index()['index'].values[:15]\n\nspecies_id = geo_df[\"primary_label\"].value_counts().reset_index()\nspecies_id.insert(0, 'ID', range(0, 0 + len(species_id)))\n\nspecies_id.columns = [\"ID\", \"primary_label\", \"count\"]\n\n# Add ID to geo_df\ngeo_df = pd.merge(geo_df, species_id, how=\"left\", on=\"primary_label\")\n\n\nfig, ax = plt.subplots(figsize=(25, 15))\nworld_map.plot(ax=ax, alpha=0.7)\n\npalette = iter(sns.hls_palette(len(species_list), h=.5))\nfor i in range(len(species_list)):\n    geo_df[geo_df[\"ID\"] == i].plot(ax=ax, \n                                   markersize=20, \n                                   color=next(palette), \n                                   marker=\"o\", \n                                   label = species_id['primary_label'].values[i])\n    \nax.legend()\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# SHP file\nworld_map = gpd.read_file(\"../input/world-countries-shp-file/TM_WORLD_BORDERS-0.3.shp\")\ncrs={'init': 'epsg:4326'}\ngeometry = [Point(xy) for xy in zip(train_metadata[\"longitude\"], train_metadata['latitude'])]\n\ngeo_df = gpd.GeoDataFrame(train_metadata, crs=crs, geometry=geometry)\n\n# top 15 most species\nspecies_list = species.reset_index()['index'].values[:25]\n\nspecies_id = geo_df[\"primary_label\"].value_counts().reset_index()\nspecies_id.insert(0, 'ID', range(0, 0 + len(species_id)))\n\nspecies_id.columns = [\"ID\", \"primary_label\", \"count\"]\n\n# Add ID to geo_df\ngeo_df = pd.merge(geo_df, species_id, how=\"left\", on=\"primary_label\")\n\n\nfig, ax = plt.subplots(figsize=(25, 15))\nworld_map.boundary.plot(ax=ax, alpha=0.7)\n\npalette = iter(sns.hls_palette(len(species_list), h=.5))\nfor i in range(len(species_list)):\n    geo_df[geo_df[\"ID\"] == i].plot(ax=ax, \n                                   markersize=20, \n                                   color=next(palette), \n                                   \n                                   label = species_id['primary_label'].values[i])\n    \nax.legend()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Recordings are very few from India (and other asian countries). Mostly recordings are from Europe and America"},{"metadata":{},"cell_type":"markdown","source":"## To be continued .. .  ."}],"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat":4,"nbformat_minor":4}