{"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_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"## Update","metadata":{}},{"cell_type":"code","source":"import cv2\nimport audioread\nimport logging\nimport os\nimport random\nimport time\nimport warnings\n\nimport librosa\nimport librosa.display as display\nimport numpy as np\nimport pandas as pd\nimport soundfile as sf\nimport torch\nimport torch.nn as nn\nimport torch.nn.functional as F\nimport torch.optim as optim\nimport torch.utils.data as data\n\nfrom contextlib import contextmanager\nfrom IPython.display import Audio\nfrom pathlib import Path\nfrom typing import Optional, List\n\nfrom catalyst.dl import SupervisedRunner, State, CallbackOrder, Callback, CheckpointCallback\nfrom fastprogress import progress_bar\nfrom sklearn.model_selection import StratifiedKFold\nfrom sklearn.metrics import f1_score, average_precision_score","metadata":{"_kg_hide-input":true,"scrolled":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"pip install audiomentations","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"pip install acoustics","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import acoustics\nbrown_noise = acoustics.generator.brown(120*48000)\npink_noise = acoustics.generator.pink(120*48000)\n\n# define directories\nos.mkdir('../noise')\nnoise_dir = ROOT / 'noise'\n\nsf.write(noise_dir / \"brown_noise.wav\", brown_noise, samplerate=48000)\nsf.write(noise_dir / \"pink_noise.wav\", pink_noise, samplerate=48000)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"PERIOD = 10\n\nfrom audiomentations import Compose, AddGaussianNoise\nfrom audiomentations import AddGaussianSNR, Gain\nfrom audiomentations import AddShortNoises, AddBackgroundNoise\n\naugmenter = Compose([AddGaussianNoise(min_amplitude=0.001, max_amplitude=0.015, p=0.5),\n                     AddGaussianSNR(min_SNR=0.001, max_SNR=0.5, p=0.5),\n                     Gain(min_gain_in_db=-12, max_gain_in_db=12, p=0.5),\n                     AddBackgroundNoise(sounds_path=noise_dir, min_snr_in_db=3, max_snr_in_db=30, p=0.5),\n                     AddShortNoises(noise_dir)\n                    ])\n\n# modify with noise\nclass PANNsDataset(data.Dataset):\n    def __init__(\n            self,\n            file_list: List[List[str]],\n            phase):\n        self.file_list = file_list  # list of list: [file_path, ebird_code]\n        self.phase = phase\n\n    def __len__(self):\n        return len(self.file_list)\n    \n    def __getitem__(self, idx: int):\n        wav_path, target, t_begin, t_end = self.file_list[idx]\n        wav_path = str(TRAIN_AUDIO_ROOT / wav_path) + \".flac\"\n\n        y = augmenter(samples=y, sample_rate=48000).astype(np.float32)\n\n        return {\"waveform\": y}","metadata":{"_kg_hide-input":true,"scrolled":true,"trusted":true},"execution_count":null,"outputs":[]}]}