{"cells":[{"metadata":{"trusted":true,"_kg_hide-output":true},"cell_type":"code","source":"!pip install nussl","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"import nussl\nimport IPython\nimport warnings\nimport IPython.display as ipd\nimport matplotlib.pyplot as plt\n\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"path = \"../input/birdsong-recognition/train_audio/aldfly/XC135454.mp3\"\n\nhistory = nussl.AudioSignal(path)\nhistory.embed_audio()\n\nplt.figure(figsize=(10, 3))\nnussl.utils.visualize_spectrogram(history)\nplt.title(str(history))\nplt.tight_layout()\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"repet = nussl.separation.primitive.Repet(history)\nestimates = repet()\nrepet.repeating_period","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"_estimates = {\n    'Background': estimates[0],\n    'Foreground': estimates[1]\n} # organize estimates into a dict\n\nplt.figure(figsize=(10, 7))\nplt.subplot(211)\nnussl.utils.visualize_sources_as_masks(\n    _estimates, db_cutoff=-60, y_axis='mel')\nplt.subplot(212)\nnussl.utils.visualize_sources_as_waveform(\n    _estimates, show_legend=False)\nplt.tight_layout()\nplt.show()\n\nnussl.play_utils.multitrack(_estimates)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"def foreground(data):\n    \"\"\"\n    params: data 1D numpy array of raw audio signal\n    returns: 1D numpy array of raw audio signal with background noise removed\n    \"\"\"\n    history = nussl.AudioSignal(path_to_input_file=None, audio_data_array=data)\n    estimates = nussl.separation.primitive.Repet(history)()\n    return estimates[1].audio_data[0]","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Another Example","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"path = \"../input/birdsong-recognition/train_audio/amerob/XC128490.mp3\"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"import librosa\n\ndata, SR = librosa.core.load(path, sr=None, duration=40)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Before","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"librosa.output.write_wav('before.wav', data, SR, norm=False)\nhistory = nussl.AudioSignal('before.wav')\nhistory.embed_audio()\n\nplt.figure(figsize=(10, 3))\nnussl.utils.visualize_spectrogram(history)\nplt.title(str(history))\nplt.tight_layout()\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## After","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"librosa.output.write_wav('after.wav', foreground(data), SR, norm=False)\nhistory = nussl.AudioSignal('after.wav')\nhistory.embed_audio()\n\nplt.figure(figsize=(10, 3))\nnussl.utils.visualize_spectrogram(history)\nplt.title(str(history))\nplt.tight_layout()\nplt.show()","execution_count":null,"outputs":[]}],"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}