{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.11.11","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":91844,"databundleVersionId":11361821,"sourceType":"competition"},{"sourceId":11747323,"sourceType":"datasetVersion","datasetId":7374555}],"dockerImageVersionId":31012,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"set1=['1139490', '1192948', '1194042', '126247', '1346504', '134933', '135045', '1462711', '1462737', '1564122', '21038', '21116', '21211', '22333', '22973', '22976', '24272', '24292', '24322', '41663', '41778', '41970', '42007', '42087', '42113', '46010', '47067', '476537', '476538', '48124', '50186', '517119', '523060', '528041', '52884', '548639', '555086', '555142', '566513', '64862', '65336', '65344']","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-09T10:16:05.034715Z","iopub.execute_input":"2025-05-09T10:16:05.035064Z","iopub.status.idle":"2025-05-09T10:16:05.043188Z","shell.execute_reply.started":"2025-05-09T10:16:05.035037Z","shell.execute_reply":"2025-05-09T10:16:05.041605Z"}},"outputs":[],"execution_count":3},{"cell_type":"code","source":"INPUT_DIR = \"/kaggle/input/birdclef-2025/train_audio\"","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-09T10:16:05.595958Z","iopub.execute_input":"2025-05-09T10:16:05.596382Z","iopub.status.idle":"2025-05-09T10:16:05.605599Z","shell.execute_reply.started":"2025-05-09T10:16:05.596345Z","shell.execute_reply":"2025-05-09T10:16:05.603545Z"}},"outputs":[],"execution_count":4},{"cell_type":"code","source":"import os\nall_files=[]\nfor names in set1:\n    print(os.path.join(\"/kaggle/input/birdclef-2025/train_audio\",names))\n    all_files.append(os.path.join(\"/kaggle/input/birdclef-2025/train_audio\",names))","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-09T10:16:06.100778Z","iopub.execute_input":"2025-05-09T10:16:06.101081Z","iopub.status.idle":"2025-05-09T10:16:06.109325Z","shell.execute_reply.started":"2025-05-09T10:16:06.101056Z","shell.execute_reply":"2025-05-09T10:16:06.107645Z"}},"outputs":[{"name":"stdout","text":"/kaggle/input/birdclef-2025/train_audio/1139490\n/kaggle/input/birdclef-2025/train_audio/1192948\n/kaggle/input/birdclef-2025/train_audio/1194042\n/kaggle/input/birdclef-2025/train_audio/126247\n/kaggle/input/birdclef-2025/train_audio/1346504\n/kaggle/input/birdclef-2025/train_audio/134933\n/kaggle/input/birdclef-2025/train_audio/135045\n/kaggle/input/birdclef-2025/train_audio/1462711\n/kaggle/input/birdclef-2025/train_audio/1462737\n/kaggle/input/birdclef-2025/train_audio/1564122\n/kaggle/input/birdclef-2025/train_audio/21038\n/kaggle/input/birdclef-2025/train_audio/21116\n/kaggle/input/birdclef-2025/train_audio/21211\n/kaggle/input/birdclef-2025/train_audio/22333\n/kaggle/input/birdclef-2025/train_audio/22973\n/kaggle/input/birdclef-2025/train_audio/22976\n/kaggle/input/birdclef-2025/train_audio/24272\n/kaggle/input/birdclef-2025/train_audio/24292\n/kaggle/input/birdclef-2025/train_audio/24322\n/kaggle/input/birdclef-2025/train_audio/41663\n/kaggle/input/birdclef-2025/train_audio/41778\n/kaggle/input/birdclef-2025/train_audio/41970\n/kaggle/input/birdclef-2025/train_audio/42007\n/kaggle/input/birdclef-2025/train_audio/42087\n/kaggle/input/birdclef-2025/train_audio/42113\n/kaggle/input/birdclef-2025/train_audio/46010\n/kaggle/input/birdclef-2025/train_audio/47067\n/kaggle/input/birdclef-2025/train_audio/476537\n/kaggle/input/birdclef-2025/train_audio/476538\n/kaggle/input/birdclef-2025/train_audio/48124\n/kaggle/input/birdclef-2025/train_audio/50186\n/kaggle/input/birdclef-2025/train_audio/517119\n/kaggle/input/birdclef-2025/train_audio/523060\n/kaggle/input/birdclef-2025/train_audio/528041\n/kaggle/input/birdclef-2025/train_audio/52884\n/kaggle/input/birdclef-2025/train_audio/548639\n/kaggle/input/birdclef-2025/train_audio/555086\n/kaggle/input/birdclef-2025/train_audio/555142\n/kaggle/input/birdclef-2025/train_audio/566513\n/kaggle/input/birdclef-2025/train_audio/64862\n/kaggle/input/birdclef-2025/train_audio/65336\n/kaggle/input/birdclef-2025/train_audio/65344\n","output_type":"stream"}],"execution_count":5},{"cell_type":"code","source":"from kaggle_secrets import UserSecretsClient\nuser_secrets = UserSecretsClient()\nsecret_value_0 = user_secrets.get_secret(\"HF_TOKEN\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-09T10:16:07.035308Z","iopub.execute_input":"2025-05-09T10:16:07.035644Z","iopub.status.idle":"2025-05-09T10:16:07.254433Z","shell.execute_reply.started":"2025-05-09T10:16:07.035617Z","shell.execute_reply":"2025-05-09T10:16:07.253429Z"}},"outputs":[],"execution_count":6},{"cell_type":"code","source":"import os\nfrom kaggle_secrets import UserSecretsClient\n\n# Load Hugging Face token\nuser_secrets = UserSecretsClient()\nos.environ[\"HF_TOKEN\"] = user_secrets.get_secret(\"HF_TOKEN\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-09T10:16:10.004492Z","iopub.execute_input":"2025-05-09T10:16:10.004801Z","iopub.status.idle":"2025-05-09T10:16:10.179158Z","shell.execute_reply.started":"2025-05-09T10:16:10.004778Z","shell.execute_reply":"2025-05-09T10:16:10.178331Z"}},"outputs":[],"execution_count":7},{"cell_type":"code","source":"!pip install pyannote.audio librosa soundfile numpy huggingface_hub tqdm","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-09T10:16:10.541756Z","iopub.execute_input":"2025-05-09T10:16:10.542239Z","iopub.status.idle":"2025-05-09T10:18:07.754227Z","shell.execute_reply.started":"2025-05-09T10:16:10.542207Z","shell.execute_reply":"2025-05-09T10:18:07.752832Z"}},"outputs":[{"name":"stdout","text":"Collecting pyannote.audio\n  Downloading pyannote.audio-3.3.2-py2.py3-none-any.whl.metadata (11 kB)\nRequirement already satisfied: librosa in /usr/local/lib/python3.11/dist-packages (0.10.2.post1)\nRequirement already satisfied: soundfile in /usr/local/lib/python3.11/dist-packages (0.13.1)\nRequirement already satisfied: numpy in /usr/local/lib/python3.11/dist-packages (1.26.4)\nRequirement already satisfied: huggingface_hub in /usr/local/lib/python3.11/dist-packages (0.30.2)\nRequirement already satisfied: tqdm in /usr/local/lib/python3.11/dist-packages (4.67.1)\nCollecting asteroid-filterbanks>=0.4 (from pyannote.audio)\n  Downloading asteroid_filterbanks-0.4.0-py3-none-any.whl.metadata (3.3 kB)\nRequirement already satisfied: einops>=0.6.0 in /usr/local/lib/python3.11/dist-packages (from pyannote.audio) (0.8.1)\nCollecting lightning>=2.0.1 (from pyannote.audio)\n  Downloading lightning-2.5.1.post0-py3-none-any.whl.metadata (39 kB)\nRequirement already satisfied: omegaconf<3.0,>=2.1 in /usr/local/lib/python3.11/dist-packages (from pyannote.audio) (2.3.0)\nCollecting pyannote.core>=5.0.0 (from pyannote.audio)\n  Downloading pyannote.core-5.0.0-py3-none-any.whl.metadata (1.4 kB)\nCollecting pyannote.database>=5.0.1 (from pyannote.audio)\n  Downloading pyannote.database-5.1.3-py3-none-any.whl.metadata (1.1 kB)\nCollecting pyannote.metrics>=3.2 (from pyannote.audio)\n  Downloading pyannote.metrics-3.2.1-py3-none-any.whl.metadata (1.3 kB)\nCollecting pyannote.pipeline>=3.0.1 (from pyannote.audio)\n  Downloading pyannote.pipeline-3.0.1-py3-none-any.whl.metadata (897 bytes)\nCollecting pytorch-metric-learning>=2.1.0 (from pyannote.audio)\n  Downloading pytorch_metric_learning-2.8.1-py3-none-any.whl.metadata (18 kB)\nRequirement already satisfied: rich>=12.0.0 in /usr/local/lib/python3.11/dist-packages (from pyannote.audio) (14.0.0)\nRequirement already satisfied: semver>=3.0.0 in /usr/local/lib/python3.11/dist-packages (from pyannote.audio) (3.0.4)\nCollecting speechbrain>=1.0.0 (from pyannote.audio)\n  Downloading speechbrain-1.0.3-py3-none-any.whl.metadata (24 kB)\nCollecting tensorboardX>=2.6 (from pyannote.audio)\n  Downloading tensorboardX-2.6.2.2-py2.py3-none-any.whl.metadata (5.8 kB)\nRequirement already satisfied: torch>=2.0.0 in /usr/local/lib/python3.11/dist-packages (from pyannote.audio) (2.5.1+cu124)\nCollecting torch-audiomentations>=0.11.0 (from pyannote.audio)\n  Downloading torch_audiomentations-0.12.0-py3-none-any.whl.metadata (15 kB)\nRequirement already satisfied: torchaudio>=2.2.0 in /usr/local/lib/python3.11/dist-packages (from pyannote.audio) (2.5.1+cu124)\nRequirement already satisfied: torchmetrics>=0.11.0 in /usr/local/lib/python3.11/dist-packages (from pyannote.audio) (1.7.1)\nRequirement already satisfied: audioread>=2.1.9 in /usr/local/lib/python3.11/dist-packages (from librosa) (3.0.1)\nRequirement already satisfied: scipy>=1.2.0 in /usr/local/lib/python3.11/dist-packages (from librosa) (1.15.2)\nRequirement already satisfied: scikit-learn>=0.20.0 in /usr/local/lib/python3.11/dist-packages (from librosa) (1.2.2)\nRequirement already satisfied: joblib>=0.14 in /usr/local/lib/python3.11/dist-packages (from librosa) (1.4.2)\nRequirement already satisfied: decorator>=4.3.0 in /usr/local/lib/python3.11/dist-packages (from librosa) (4.4.2)\nRequirement already satisfied: numba>=0.51.0 in /usr/local/lib/python3.11/dist-packages (from librosa) (0.60.0)\nRequirement already satisfied: pooch>=1.1 in /usr/local/lib/python3.11/dist-packages (from librosa) (1.8.2)\nRequirement already satisfied: soxr>=0.3.2 in /usr/local/lib/python3.11/dist-packages (from librosa) (0.5.0.post1)\nRequirement already satisfied: typing-extensions>=4.1.1 in /usr/local/lib/python3.11/dist-packages (from librosa) (4.13.1)\nRequirement already satisfied: lazy-loader>=0.1 in /usr/local/lib/python3.11/dist-packages (from librosa) (0.4)\nRequirement already satisfied: msgpack>=1.0 in /usr/local/lib/python3.11/dist-packages (from librosa) (1.1.0)\nRequirement already satisfied: cffi>=1.0 in /usr/local/lib/python3.11/dist-packages (from soundfile) (1.17.1)\nRequirement already satisfied: mkl_fft in /usr/local/lib/python3.11/dist-packages (from numpy) (1.3.8)\nRequirement already satisfied: mkl_random in /usr/local/lib/python3.11/dist-packages (from numpy) (1.2.4)\nRequirement already satisfied: mkl_umath in /usr/local/lib/python3.11/dist-packages (from numpy) (0.1.1)\nRequirement already satisfied: mkl in /usr/local/lib/python3.11/dist-packages (from numpy) (2025.1.0)\nRequirement already satisfied: tbb4py in /usr/local/lib/python3.11/dist-packages (from numpy) (2022.1.0)\nRequirement already satisfied: mkl-service in /usr/local/lib/python3.11/dist-packages (from numpy) (2.4.1)\nRequirement already satisfied: filelock in /usr/local/lib/python3.11/dist-packages (from huggingface_hub) (3.18.0)\nRequirement already satisfied: fsspec>=2023.5.0 in /usr/local/lib/python3.11/dist-packages (from huggingface_hub) (2025.3.2)\nRequirement already satisfied: packaging>=20.9 in /usr/local/lib/python3.11/dist-packages (from huggingface_hub) (24.2)\nRequirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.11/dist-packages (from huggingface_hub) (6.0.2)\nRequirement already satisfied: requests in /usr/local/lib/python3.11/dist-packages (from huggingface_hub) (2.32.3)\nRequirement already satisfied: pycparser in /usr/local/lib/python3.11/dist-packages (from cffi>=1.0->soundfile) (2.22)\nRequirement already satisfied: lightning-utilities<2.0,>=0.10.0 in /usr/local/lib/python3.11/dist-packages (from lightning>=2.0.1->pyannote.audio) (0.14.3)\nRequirement already satisfied: pytorch-lightning in /usr/local/lib/python3.11/dist-packages (from lightning>=2.0.1->pyannote.audio) (2.5.1)\nRequirement already satisfied: llvmlite<0.44,>=0.43.0dev0 in /usr/local/lib/python3.11/dist-packages (from numba>=0.51.0->librosa) (0.43.0)\nRequirement already satisfied: antlr4-python3-runtime==4.9.* in /usr/local/lib/python3.11/dist-packages (from omegaconf<3.0,>=2.1->pyannote.audio) (4.9.3)\nRequirement already satisfied: platformdirs>=2.5.0 in /usr/local/lib/python3.11/dist-packages (from pooch>=1.1->librosa) (4.3.7)\nRequirement already satisfied: sortedcontainers>=2.0.4 in /usr/local/lib/python3.11/dist-packages (from pyannote.core>=5.0.0->pyannote.audio) (2.4.0)\nRequirement already satisfied: pandas>=0.19 in /usr/local/lib/python3.11/dist-packages (from pyannote.database>=5.0.1->pyannote.audio) (2.2.3)\nRequirement already satisfied: typer>=0.12.1 in /usr/local/lib/python3.11/dist-packages (from pyannote.database>=5.0.1->pyannote.audio) (0.15.1)\nCollecting docopt>=0.6.2 (from pyannote.metrics>=3.2->pyannote.audio)\n  Downloading docopt-0.6.2.tar.gz (25 kB)\n  Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\nRequirement already satisfied: tabulate>=0.7.7 in /usr/local/lib/python3.11/dist-packages (from pyannote.metrics>=3.2->pyannote.audio) (0.9.0)\nRequirement already satisfied: matplotlib>=2.0.0 in /usr/local/lib/python3.11/dist-packages (from pyannote.metrics>=3.2->pyannote.audio) (3.7.5)\nRequirement already satisfied: sympy>=1.1 in /usr/local/lib/python3.11/dist-packages (from pyannote.metrics>=3.2->pyannote.audio) (1.13.1)\nRequirement already satisfied: optuna>=3.1 in /usr/local/lib/python3.11/dist-packages (from pyannote.pipeline>=3.0.1->pyannote.audio) (4.2.1)\nRequirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.11/dist-packages (from requests->huggingface_hub) (3.4.1)\nRequirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.11/dist-packages (from requests->huggingface_hub) (3.10)\nRequirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.11/dist-packages (from requests->huggingface_hub) (2.3.0)\nRequirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.11/dist-packages (from requests->huggingface_hub) (2025.1.31)\nRequirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.11/dist-packages (from rich>=12.0.0->pyannote.audio) (3.0.0)\nRequirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.11/dist-packages (from rich>=12.0.0->pyannote.audio) (2.19.1)\nRequirement already satisfied: threadpoolctl>=2.0.0 in /usr/local/lib/python3.11/dist-packages (from scikit-learn>=0.20.0->librosa) (3.6.0)\nCollecting hyperpyyaml (from speechbrain>=1.0.0->pyannote.audio)\n  Downloading HyperPyYAML-1.2.2-py3-none-any.whl.metadata (7.6 kB)\nRequirement already satisfied: sentencepiece in /usr/local/lib/python3.11/dist-packages (from speechbrain>=1.0.0->pyannote.audio) (0.2.0)\nRequirement already satisfied: protobuf>=3.20 in /usr/local/lib/python3.11/dist-packages (from tensorboardX>=2.6->pyannote.audio) (3.20.3)\nRequirement already satisfied: networkx in /usr/local/lib/python3.11/dist-packages (from torch>=2.0.0->pyannote.audio) (3.4.2)\nRequirement already satisfied: jinja2 in /usr/local/lib/python3.11/dist-packages (from torch>=2.0.0->pyannote.audio) (3.1.6)\nRequirement already satisfied: nvidia-cuda-nvrtc-cu12==12.4.127 in /usr/local/lib/python3.11/dist-packages (from torch>=2.0.0->pyannote.audio) (12.4.127)\nRequirement already satisfied: nvidia-cuda-runtime-cu12==12.4.127 in /usr/local/lib/python3.11/dist-packages (from torch>=2.0.0->pyannote.audio) (12.4.127)\nRequirement already satisfied: nvidia-cuda-cupti-cu12==12.4.127 in /usr/local/lib/python3.11/dist-packages (from torch>=2.0.0->pyannote.audio) (12.4.127)\nCollecting nvidia-cudnn-cu12==9.1.0.70 (from torch>=2.0.0->pyannote.audio)\n  Downloading nvidia_cudnn_cu12-9.1.0.70-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\nCollecting nvidia-cublas-cu12==12.4.5.8 (from torch>=2.0.0->pyannote.audio)\n  Downloading nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\nCollecting nvidia-cufft-cu12==11.2.1.3 (from torch>=2.0.0->pyannote.audio)\n  Downloading nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\nCollecting nvidia-curand-cu12==10.3.5.147 (from torch>=2.0.0->pyannote.audio)\n  Downloading nvidia_curand_cu12-10.3.5.147-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\nCollecting nvidia-cusolver-cu12==11.6.1.9 (from torch>=2.0.0->pyannote.audio)\n  Downloading nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\nCollecting nvidia-cusparse-cu12==12.3.1.170 (from torch>=2.0.0->pyannote.audio)\n  Downloading nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\nRequirement already satisfied: nvidia-nccl-cu12==2.21.5 in /usr/local/lib/python3.11/dist-packages (from torch>=2.0.0->pyannote.audio) (2.21.5)\nRequirement already satisfied: nvidia-nvtx-cu12==12.4.127 in /usr/local/lib/python3.11/dist-packages (from torch>=2.0.0->pyannote.audio) (12.4.127)\nCollecting nvidia-nvjitlink-cu12==12.4.127 (from torch>=2.0.0->pyannote.audio)\n  Downloading nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\nRequirement already satisfied: triton==3.1.0 in /usr/local/lib/python3.11/dist-packages (from torch>=2.0.0->pyannote.audio) (3.1.0)\nRequirement already satisfied: mpmath<1.4,>=1.1.0 in /usr/local/lib/python3.11/dist-packages (from sympy>=1.1->pyannote.metrics>=3.2->pyannote.audio) (1.3.0)\nCollecting julius<0.3,>=0.2.3 (from torch-audiomentations>=0.11.0->pyannote.audio)\n  Downloading julius-0.2.7.tar.gz (59 kB)\n\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m59.6/59.6 kB\u001b[0m \u001b[31m2.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n\u001b[?25h  Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\nCollecting torch-pitch-shift>=1.2.2 (from torch-audiomentations>=0.11.0->pyannote.audio)\n  Downloading torch_pitch_shift-1.2.5-py3-none-any.whl.metadata (2.5 kB)\nRequirement already satisfied: intel-openmp<2026,>=2024 in /usr/local/lib/python3.11/dist-packages (from mkl->numpy) (2024.2.0)\nRequirement already satisfied: tbb==2022.* in /usr/local/lib/python3.11/dist-packages (from mkl->numpy) (2022.1.0)\nRequirement already satisfied: tcmlib==1.* in /usr/local/lib/python3.11/dist-packages (from tbb==2022.*->mkl->numpy) (1.2.0)\nRequirement already satisfied: intel-cmplr-lib-rt in /usr/local/lib/python3.11/dist-packages (from mkl_umath->numpy) (2024.2.0)\nRequirement already satisfied: aiohttp!=4.0.0a0,!=4.0.0a1 in /usr/local/lib/python3.11/dist-packages (from fsspec[http]<2026.0,>=2022.5.0->lightning>=2.0.1->pyannote.audio) (3.11.16)\nRequirement already satisfied: intel-cmplr-lib-ur==2024.2.0 in /usr/local/lib/python3.11/dist-packages (from intel-openmp<2026,>=2024->mkl->numpy) (2024.2.0)\nRequirement already satisfied: setuptools in /usr/local/lib/python3.11/dist-packages (from lightning-utilities<2.0,>=0.10.0->lightning>=2.0.1->pyannote.audio) (75.1.0)\nRequirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.11/dist-packages (from markdown-it-py>=2.2.0->rich>=12.0.0->pyannote.audio) (0.1.2)\nRequirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib>=2.0.0->pyannote.metrics>=3.2->pyannote.audio) (1.3.1)\nRequirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.11/dist-packages (from matplotlib>=2.0.0->pyannote.metrics>=3.2->pyannote.audio) (0.12.1)\nRequirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.11/dist-packages (from matplotlib>=2.0.0->pyannote.metrics>=3.2->pyannote.audio) (4.56.0)\nRequirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib>=2.0.0->pyannote.metrics>=3.2->pyannote.audio) (1.4.8)\nRequirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.11/dist-packages (from matplotlib>=2.0.0->pyannote.metrics>=3.2->pyannote.audio) (11.1.0)\nRequirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib>=2.0.0->pyannote.metrics>=3.2->pyannote.audio) (3.2.1)\nRequirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.11/dist-packages (from matplotlib>=2.0.0->pyannote.metrics>=3.2->pyannote.audio) (2.9.0.post0)\nRequirement already satisfied: alembic>=1.5.0 in /usr/local/lib/python3.11/dist-packages (from optuna>=3.1->pyannote.pipeline>=3.0.1->pyannote.audio) (1.15.2)\nRequirement already satisfied: colorlog in /usr/local/lib/python3.11/dist-packages (from optuna>=3.1->pyannote.pipeline>=3.0.1->pyannote.audio) (6.9.0)\nRequirement already satisfied: sqlalchemy>=1.4.2 in /usr/local/lib/python3.11/dist-packages (from optuna>=3.1->pyannote.pipeline>=3.0.1->pyannote.audio) (2.0.38)\nRequirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.11/dist-packages (from pandas>=0.19->pyannote.database>=5.0.1->pyannote.audio) (2025.2)\nRequirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.11/dist-packages (from pandas>=0.19->pyannote.database>=5.0.1->pyannote.audio) (2025.2)\nCollecting primePy>=1.3 (from torch-pitch-shift>=1.2.2->torch-audiomentations>=0.11.0->pyannote.audio)\n  Downloading primePy-1.3-py3-none-any.whl.metadata (4.8 kB)\nRequirement already satisfied: click>=8.0.0 in /usr/local/lib/python3.11/dist-packages (from typer>=0.12.1->pyannote.database>=5.0.1->pyannote.audio) (8.1.8)\nRequirement already satisfied: shellingham>=1.3.0 in /usr/local/lib/python3.11/dist-packages (from typer>=0.12.1->pyannote.database>=5.0.1->pyannote.audio) (1.5.4)\nCollecting ruamel.yaml>=0.17.28 (from hyperpyyaml->speechbrain>=1.0.0->pyannote.audio)\n  Downloading ruamel.yaml-0.18.10-py3-none-any.whl.metadata (23 kB)\nRequirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.11/dist-packages (from jinja2->torch>=2.0.0->pyannote.audio) (3.0.2)\nRequirement already satisfied: aiohappyeyeballs>=2.3.0 in /usr/local/lib/python3.11/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<2026.0,>=2022.5.0->lightning>=2.0.1->pyannote.audio) (2.6.1)\nRequirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.11/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<2026.0,>=2022.5.0->lightning>=2.0.1->pyannote.audio) (1.3.2)\nRequirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.11/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<2026.0,>=2022.5.0->lightning>=2.0.1->pyannote.audio) (25.3.0)\nRequirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.11/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<2026.0,>=2022.5.0->lightning>=2.0.1->pyannote.audio) (1.5.0)\nRequirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.11/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<2026.0,>=2022.5.0->lightning>=2.0.1->pyannote.audio) (6.2.0)\nRequirement already satisfied: propcache>=0.2.0 in /usr/local/lib/python3.11/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<2026.0,>=2022.5.0->lightning>=2.0.1->pyannote.audio) (0.3.1)\nRequirement already satisfied: yarl<2.0,>=1.17.0 in /usr/local/lib/python3.11/dist-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<2026.0,>=2022.5.0->lightning>=2.0.1->pyannote.audio) (1.19.0)\nRequirement already satisfied: Mako in /usr/local/lib/python3.11/dist-packages (from alembic>=1.5.0->optuna>=3.1->pyannote.pipeline>=3.0.1->pyannote.audio) (1.3.9)\nRequirement already satisfied: six>=1.5 in /usr/local/lib/python3.11/dist-packages (from python-dateutil>=2.7->matplotlib>=2.0.0->pyannote.metrics>=3.2->pyannote.audio) (1.17.0)\nCollecting ruamel.yaml.clib>=0.2.7 (from ruamel.yaml>=0.17.28->hyperpyyaml->speechbrain>=1.0.0->pyannote.audio)\n  Downloading ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.7 kB)\nRequirement already satisfied: greenlet!=0.4.17 in /usr/local/lib/python3.11/dist-packages (from sqlalchemy>=1.4.2->optuna>=3.1->pyannote.pipeline>=3.0.1->pyannote.audio) (3.1.1)\nDownloading pyannote.audio-3.3.2-py2.py3-none-any.whl (898 kB)\n\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m898.7/898.7 kB\u001b[0m \u001b[31m24.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m:00:01\u001b[0m\n\u001b[?25hDownloading asteroid_filterbanks-0.4.0-py3-none-any.whl (29 kB)\nDownloading lightning-2.5.1.post0-py3-none-any.whl (819 kB)\n\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m819.0/819.0 kB\u001b[0m \u001b[31m20.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m:00:01\u001b[0m\n\u001b[?25hDownloading pyannote.core-5.0.0-py3-none-any.whl (58 kB)\n\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m58.5/58.5 kB\u001b[0m \u001b[31m2.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n\u001b[?25hDownloading pyannote.database-5.1.3-py3-none-any.whl (48 kB)\n\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m48.1/48.1 kB\u001b[0m \u001b[31m1.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n\u001b[?25hDownloading pyannote.metrics-3.2.1-py3-none-any.whl (51 kB)\n\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m51.4/51.4 kB\u001b[0m \u001b[31m2.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n\u001b[?25hDownloading pyannote.pipeline-3.0.1-py3-none-any.whl (31 kB)\nDownloading pytorch_metric_learning-2.8.1-py3-none-any.whl (125 kB)\n\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m125.9/125.9 kB\u001b[0m \u001b[31m4.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n\u001b[?25hDownloading speechbrain-1.0.3-py3-none-any.whl (864 kB)\n\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m864.1/864.1 kB\u001b[0m \u001b[31m13.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n\u001b[?25hDownloading tensorboardX-2.6.2.2-py2.py3-none-any.whl (101 kB)\n\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m101.7/101.7 kB\u001b[0m \u001b[31m4.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n\u001b[?25hDownloading nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_x86_64.whl (363.4 MB)\n\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m363.4/363.4 MB\u001b[0m \u001b[31m4.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m0:00:01\u001b[0m00:01\u001b[0m\n\u001b[?25hDownloading nvidia_cudnn_cu12-9.1.0.70-py3-none-manylinux2014_x86_64.whl (664.8 MB)\n\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m664.8/664.8 MB\u001b[0m \u001b[31m2.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m:00:01\u001b[0m00:01\u001b[0mm\n\u001b[?25hDownloading nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_x86_64.whl (211.5 MB)\n\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m211.5/211.5 MB\u001b[0m \u001b[31m6.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m0:00:01\u001b[0m00:01\u001b[0m\n\u001b[?25hDownloading nvidia_curand_cu12-10.3.5.147-py3-none-manylinux2014_x86_64.whl (56.3 MB)\n\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m56.3/56.3 MB\u001b[0m \u001b[31m25.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m:00:01\u001b[0m0:01\u001b[0mm\n\u001b[?25hDownloading nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_x86_64.whl (127.9 MB)\n\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m127.9/127.9 MB\u001b[0m \u001b[31m2.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m0:00:01\u001b[0m00:01\u001b[0m\n\u001b[?25hDownloading nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_x86_64.whl (207.5 MB)\n\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m207.5/207.5 MB\u001b[0m \u001b[31m3.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m0:00:01\u001b[0m00:01\u001b[0m\n\u001b[?25hDownloading nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (21.1 MB)\n\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m21.1/21.1 MB\u001b[0m \u001b[31m61.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m:00:01\u001b[0m00:01\u001b[0m\n\u001b[?25hDownloading torch_audiomentations-0.12.0-py3-none-any.whl (48 kB)\n\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m48.5/48.5 kB\u001b[0m \u001b[31m1.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n\u001b[?25hDownloading torch_pitch_shift-1.2.5-py3-none-any.whl (5.0 kB)\nDownloading HyperPyYAML-1.2.2-py3-none-any.whl (16 kB)\nDownloading primePy-1.3-py3-none-any.whl (4.0 kB)\nDownloading ruamel.yaml-0.18.10-py3-none-any.whl (117 kB)\n\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m117.7/117.7 kB\u001b[0m \u001b[31m3.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0meta \u001b[36m0:00:01\u001b[0m\n\u001b[?25hDownloading ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (739 kB)\n\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m739.1/739.1 kB\u001b[0m \u001b[31m20.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m:00:01\u001b[0m\n\u001b[?25hBuilding wheels for collected packages: docopt, julius\n  Building wheel for docopt (setup.py) ... \u001b[?25l\u001b[?25hdone\n  Created wheel for docopt: filename=docopt-0.6.2-py2.py3-none-any.whl size=13706 sha256=2d47419794fa87f04436166ffbb71624c0f2fc9bdc2f2da97872c6e003065f89\n  Stored in directory: /root/.cache/pip/wheels/1a/b0/8c/4b75c4116c31f83c8f9f047231251e13cc74481cca4a78a9ce\n  Building wheel for julius (setup.py) ... \u001b[?25l\u001b[?25hdone\n  Created wheel for julius: filename=julius-0.2.7-py3-none-any.whl size=21869 sha256=35be0e5cb0b5377430a24fd3fe0f3bf676e88888c5ca79c770019bcd94cc5040\n  Stored in directory: /root/.cache/pip/wheels/16/15/d4/edd724cefe78050a6ba3344b8b0c6672db829a799dbb9f81ff\nSuccessfully built docopt julius\nInstalling collected packages: primePy, docopt, ruamel.yaml.clib, nvidia-nvjitlink-cu12, nvidia-curand-cu12, nvidia-cufft-cu12, nvidia-cublas-cu12, ruamel.yaml, nvidia-cusparse-cu12, nvidia-cudnn-cu12, nvidia-cusolver-cu12, hyperpyyaml, julius, torch-pitch-shift, torch-audiomentations, pyannote.core, pyannote.database, tensorboardX, speechbrain, pytorch-metric-learning, pyannote.pipeline, pyannote.metrics, lightning, asteroid-filterbanks, pyannote.audio\n  Attempting uninstall: nvidia-nvjitlink-cu12\n    Found existing installation: nvidia-nvjitlink-cu12 12.8.93\n    Uninstalling nvidia-nvjitlink-cu12-12.8.93:\n      Successfully uninstalled nvidia-nvjitlink-cu12-12.8.93\n  Attempting uninstall: nvidia-curand-cu12\n    Found existing installation: nvidia-curand-cu12 10.3.9.90\n    Uninstalling nvidia-curand-cu12-10.3.9.90:\n      Successfully uninstalled nvidia-curand-cu12-10.3.9.90\n  Attempting uninstall: nvidia-cufft-cu12\n    Found existing installation: nvidia-cufft-cu12 11.3.3.83\n    Uninstalling nvidia-cufft-cu12-11.3.3.83:\n      Successfully uninstalled nvidia-cufft-cu12-11.3.3.83\n  Attempting uninstall: nvidia-cublas-cu12\n    Found existing installation: nvidia-cublas-cu12 12.8.4.1\n    Uninstalling nvidia-cublas-cu12-12.8.4.1:\n      Successfully uninstalled nvidia-cublas-cu12-12.8.4.1\n  Attempting uninstall: nvidia-cusparse-cu12\n    Found existing installation: nvidia-cusparse-cu12 12.5.8.93\n    Uninstalling nvidia-cusparse-cu12-12.5.8.93:\n      Successfully uninstalled nvidia-cusparse-cu12-12.5.8.93\n  Attempting uninstall: nvidia-cudnn-cu12\n    Found existing installation: nvidia-cudnn-cu12 9.3.0.75\n    Uninstalling nvidia-cudnn-cu12-9.3.0.75:\n      Successfully uninstalled nvidia-cudnn-cu12-9.3.0.75\n  Attempting uninstall: nvidia-cusolver-cu12\n    Found existing installation: nvidia-cusolver-cu12 11.7.3.90\n    Uninstalling nvidia-cusolver-cu12-11.7.3.90:\n      Successfully uninstalled nvidia-cusolver-cu12-11.7.3.90\n\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\npylibcugraph-cu12 24.12.0 requires pylibraft-cu12==24.12.*, but you have pylibraft-cu12 25.2.0 which is incompatible.\npylibcugraph-cu12 24.12.0 requires rmm-cu12==24.12.*, but you have rmm-cu12 25.2.0 which is incompatible.\u001b[0m\u001b[31m\n\u001b[0mSuccessfully installed asteroid-filterbanks-0.4.0 docopt-0.6.2 hyperpyyaml-1.2.2 julius-0.2.7 lightning-2.5.1.post0 nvidia-cublas-cu12-12.4.5.8 nvidia-cudnn-cu12-9.1.0.70 nvidia-cufft-cu12-11.2.1.3 nvidia-curand-cu12-10.3.5.147 nvidia-cusolver-cu12-11.6.1.9 nvidia-cusparse-cu12-12.3.1.170 nvidia-nvjitlink-cu12-12.4.127 primePy-1.3 pyannote.audio-3.3.2 pyannote.core-5.0.0 pyannote.database-5.1.3 pyannote.metrics-3.2.1 pyannote.pipeline-3.0.1 pytorch-metric-learning-2.8.1 ruamel.yaml-0.18.10 ruamel.yaml.clib-0.2.12 speechbrain-1.0.3 tensorboardX-2.6.2.2 torch-audiomentations-0.12.0 torch-pitch-shift-1.2.5\n","output_type":"stream"}],"execution_count":8},{"cell_type":"code","source":"import os\nimport numpy as np\nimport librosa\nimport soundfile as sf\nfrom pyannote.audio import Pipeline\nfrom tqdm import tqdm\n\n# Initialize the PyAnnote VAD pipeline\nvad_pipeline = Pipeline.from_pretrained(\"pyannote/voice-activity-detection\")\n\ndef clean_audio(input_path, output_path):\n    # Load and resample\n    waveform, sr = librosa.load(input_path, sr=16000, mono=True)\n    duration = len(waveform) / sr\n\n    # Detect speech using file path\n    try:\n        vad_output = vad_pipeline(input_path)\n        speech_segments = list(vad_output.get_timeline().support())\n    except Exception as e:\n        print(f\"VAD failed on {input_path}: {e}\")\n        speech_segments = []\n\n    # If no speech, save original audio\n    if not speech_segments:\n        os.makedirs(os.path.dirname(output_path), exist_ok=True)\n        sf.write(output_path, waveform, sr)\n        return\n\n    # Extract non-speech segments\n    non_speech_segments = []\n    prev_end = 0.0\n    for seg in sorted(speech_segments, key=lambda x: x.start):\n        if seg.start > prev_end:\n            non_speech_segments.append((prev_end, seg.start))\n        prev_end = max(prev_end, seg.end)\n    if prev_end < duration:\n        non_speech_segments.append((prev_end, duration))\n\n    # Concatenate and trim\n    cleaned_waveform = []\n    for start, end in non_speech_segments:\n        start_sample = int(start * sr)\n        end_sample = int(end * sr)\n        cleaned_waveform.append(waveform[start_sample:end_sample])\n    \n    if len(cleaned_waveform) == 0:\n        cleaned_waveform = np.zeros(0)\n    else:\n        cleaned_waveform = np.concatenate(cleaned_waveform)\n        trim_samples = 3 * sr\n        if len(cleaned_waveform) > trim_samples:\n            cleaned_waveform = cleaned_waveform[:-trim_samples]\n        else:\n            cleaned_waveform = np.zeros(0)\n\n    # Save only if non-empty\n    os.makedirs(os.path.dirname(output_path), exist_ok=True)\n    if len(cleaned_waveform) > 0:\n        sf.write(output_path, cleaned_waveform, sr)\n    else:\n        print(f\"Skipping empty file: {output_path}\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-09T10:18:07.756222Z","iopub.execute_input":"2025-05-09T10:18:07.756736Z","iopub.status.idle":"2025-05-09T10:18:35.974977Z","shell.execute_reply.started":"2025-05-09T10:18:07.756693Z","shell.execute_reply":"2025-05-09T10:18:35.974015Z"}},"outputs":[{"output_type":"display_data","data":{"text/plain":"config.yaml:   0%|          | 0.00/277 [00:00<?, ?B/s]","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"6d79ad90d1c04805ad9f257aa979ab1b"}},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"pytorch_model.bin:   0%|          | 0.00/17.7M [00:00<?, ?B/s]","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"d9f2e7fab6c24ad2849474cdd1b4b47d"}},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"config.yaml:   0%|          | 0.00/1.98k [00:00<?, ?B/s]","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"4df2b9728ac946a383b76823446f01b4"}},"metadata":{}},{"name":"stdout","text":"Model was trained with pyannote.audio 0.0.1, yours is 3.3.2. Bad things might happen unless you revert pyannote.audio to 0.x.\nModel was trained with torch 1.7.1, yours is 2.5.1+cu124. Bad things might happen unless you revert torch to 1.x.\n","output_type":"stream"},{"name":"stderr","text":"/usr/local/lib/python3.11/dist-packages/pytorch_lightning/utilities/migration/migration.py:208: You have multiple `ModelCheckpoint` callback states in this checkpoint, but we found state keys that would end up colliding with each other after an upgrade, which means we can't differentiate which of your checkpoint callbacks needs which states. At least one of your `ModelCheckpoint` callbacks will not be able to reload the state.\n","output_type":"stream"}],"execution_count":9},{"cell_type":"code","source":"OUTPUT_DIR = \"/kaggle/working/cleaned_dataset\"  ","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-09T10:18:35.975807Z","iopub.execute_input":"2025-05-09T10:18:35.976042Z","iopub.status.idle":"2025-05-09T10:18:35.982297Z","shell.execute_reply.started":"2025-05-09T10:18:35.976025Z","shell.execute_reply":"2025-05-09T10:18:35.980895Z"}},"outputs":[],"execution_count":10},{"cell_type":"code","source":"import os\n\n# all_files contains subfolder paths like:\n# /kaggle/input/birdclef-2025/train_audio/abythr1\n# /kaggle/input/birdclef-2025/train_audio/amewig\n\nall_audio_files = []\n\nfor folder in all_files:  # these are subfolders from set1\n    for root, _, files in os.walk(folder):\n        for file in files:\n            if file.endswith(\".ogg\"):\n                full_path = os.path.join(root, file)\n                all_audio_files.append(full_path)\n\nprint(f\"Total audio files found: {len(all_audio_files)}\")\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-09T10:18:35.984313Z","iopub.execute_input":"2025-05-09T10:18:35.984723Z","iopub.status.idle":"2025-05-09T10:18:36.744383Z","shell.execute_reply.started":"2025-05-09T10:18:35.98469Z","shell.execute_reply":"2025-05-09T10:18:36.743438Z"}},"outputs":[{"name":"stdout","text":"Total audio files found: 688\n","output_type":"stream"}],"execution_count":11},{"cell_type":"code","source":"for input_path in tqdm(all_audio_files, desc=\"Cleaning all audio files\"):\n    # Preserve subdirectory structure\n    relative_path = os.path.relpath(input_path, INPUT_DIR)\n    output_path = os.path.join(OUTPUT_DIR, os.path.splitext(relative_path)[0] + \".wav\")\n    clean_audio(input_path, output_path)\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-09T10:18:36.7457Z","iopub.execute_input":"2025-05-09T10:18:36.746365Z","iopub.status.idle":"2025-05-09T10:49:37.908814Z","shell.execute_reply.started":"2025-05-09T10:18:36.746324Z","shell.execute_reply":"2025-05-09T10:49:37.907686Z"}},"outputs":[{"name":"stderr","text":"Cleaning all audio files:  18%|█▊        | 122/688 [05:03<06:48,  1.38it/s] ","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/21211/XC896861.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  19%|█▉        | 133/688 [05:15<11:18,  1.22s/it]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/22333/iNat516995.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  20%|█▉        | 136/688 [05:17<07:29,  1.23it/s]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/22333/iNat943181.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  20%|█▉        | 137/688 [05:17<07:07,  1.29it/s]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/22333/XC890507.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  21%|██        | 146/688 [05:25<07:28,  1.21it/s]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/22333/iNat1274792.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  22%|██▏       | 151/688 [05:30<06:47,  1.32it/s]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/22333/iNat575726.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  23%|██▎       | 159/688 [05:38<07:45,  1.14it/s]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/22333/iNat1005729.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  25%|██▌       | 173/688 [05:45<03:10,  2.71it/s]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/22333/iNat867912.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  25%|██▌       | 174/688 [05:45<02:57,  2.90it/s]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/22333/iNat54095.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  27%|██▋       | 188/688 [06:08<14:37,  1.76s/it]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/22973/iNat28982.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  28%|██▊       | 191/688 [06:11<10:36,  1.28s/it]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/22973/iNat992788.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  28%|██▊       | 195/688 [06:16<11:14,  1.37s/it]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/22973/iNat581610.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  30%|██▉       | 206/688 [06:33<10:15,  1.28s/it]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/22973/iNat879832.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  30%|███       | 208/688 [06:36<11:15,  1.41s/it]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/22973/iNat1257590.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  31%|███       | 211/688 [06:41<10:45,  1.35s/it]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/22973/XC929100.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  31%|███       | 213/688 [06:43<09:10,  1.16s/it]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/22973/iNat348441.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  31%|███▏      | 215/688 [06:51<22:39,  2.87s/it]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/22973/iNat630711.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  32%|███▏      | 217/688 [06:54<17:14,  2.20s/it]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/22973/iNat348440.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  32%|███▏      | 219/688 [06:56<13:26,  1.72s/it]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/22973/iNat331404.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  32%|███▏      | 220/688 [06:57<11:39,  1.49s/it]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/22973/iNat157085.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  32%|███▏      | 221/688 [06:58<09:27,  1.22s/it]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/22973/iNat343840.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  32%|███▏      | 223/688 [07:02<12:59,  1.68s/it]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/22973/XC929101.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  33%|███▎      | 228/688 [07:11<09:17,  1.21s/it]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/22973/XC892932.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  34%|███▍      | 234/688 [07:18<05:56,  1.28it/s]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/22976/iNat270309.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  34%|███▍      | 236/688 [07:27<22:52,  3.04s/it]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/22976/iNat630710.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  35%|███▌      | 243/688 [07:34<06:42,  1.11it/s]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/22976/iNat523345.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  35%|███▌      | 244/688 [07:35<05:07,  1.44it/s]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/22976/iNat27239.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  36%|███▌      | 246/688 [07:35<03:57,  1.86it/s]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/22976/XC893972.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  36%|███▋      | 250/688 [07:39<05:17,  1.38it/s]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/22976/iNat502474.wav\nSkipping empty file: /kaggle/working/cleaned_dataset/22976/iNat77271.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  37%|███▋      | 254/688 [07:44<06:57,  1.04it/s]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/22976/iNat583735.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  38%|███▊      | 259/688 [07:50<06:04,  1.18it/s]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/22976/iNat48797.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  38%|███▊      | 260/688 [07:51<05:15,  1.36it/s]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/22976/iNat1112338.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  38%|███▊      | 263/688 [07:52<03:43,  1.90it/s]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/22976/XC893971.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  41%|████▏     | 284/688 [08:33<28:14,  4.19s/it]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/24322/iNat440404.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  66%|██████▌   | 454/688 [13:59<19:52,  5.10s/it]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/476538/iNat955999.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files:  66%|██████▋   | 457/688 [14:04<10:25,  2.71s/it]","output_type":"stream"},{"name":"stdout","text":"Skipping empty file: /kaggle/working/cleaned_dataset/476538/iNat955998.wav\n","output_type":"stream"},{"name":"stderr","text":"Cleaning all audio files: 100%|██████████| 688/688 [31:01<00:00,  2.71s/it]\n","output_type":"stream"}],"execution_count":12},{"cell_type":"code","source":"print(\"hello\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-09T11:15:52.232813Z","iopub.execute_input":"2025-05-09T11:15:52.234389Z","iopub.status.idle":"2025-05-09T11:15:52.24105Z","shell.execute_reply.started":"2025-05-09T11:15:52.234347Z","shell.execute_reply":"2025-05-09T11:15:52.239922Z"}},"outputs":[{"name":"stdout","text":"hello\n","output_type":"stream"}],"execution_count":13},{"cell_type":"code","source":"import json\nimport os\n\ndataset_metadata = {\n    \"title\": \"Cleaned BirdCLEF Audio Set1\",  # Name of your dataset\n    \"id\": \"venkateshshukla2023/cleaned-birdclef-audio\",  # your Kaggle username/dataset-name (must be unique!)\n    \"licenses\": [{\"name\": \"CC0-1.0\"}]\n}\n\n# Save this in the same directory as the folder you want to upload\nos.makedirs(\"cleaned_audio_upload\", exist_ok=True)\nwith open(\"cleaned_audio_upload/dataset-metadata.json\", \"w\") as f:\n    json.dump(dataset_metadata, f, indent=4)\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-09T11:47:18.271827Z","iopub.execute_input":"2025-05-09T11:47:18.27276Z","iopub.status.idle":"2025-05-09T11:47:18.282644Z","shell.execute_reply.started":"2025-05-09T11:47:18.27273Z","shell.execute_reply":"2025-05-09T11:47:18.281283Z"}},"outputs":[],"execution_count":14},{"cell_type":"code","source":"# Make the Kaggle directory\n!mkdir -p ~/.kaggle\n\n# Copy and rename the file (handle spaces and parentheses safely)\n!cp \"/kaggle/input/dataset-upload-api/kaggle (1).json\" ~/.kaggle/kaggle.json\n\n# Set the correct permissions\n!chmod 600 ~/.kaggle/kaggle.json\n\n# Test if Kaggle CLI works now\n!kaggle datasets list -s birdclef\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-09T12:29:26.636815Z","iopub.execute_input":"2025-05-09T12:29:26.637153Z","iopub.status.idle":"2025-05-09T12:29:28.293554Z","shell.execute_reply.started":"2025-05-09T12:29:26.637131Z","shell.execute_reply":"2025-05-09T12:29:28.292299Z"}},"outputs":[{"name":"stdout","text":"ref                                                          title                                                      size  lastUpdated                 downloadCount  voteCount  usabilityRating  \n-----------------------------------------------------------  --------------------------------------------------  -----------  --------------------------  -------------  ---------  ---------------  \nricholson/birdclef-2024-mel-spectrograms                     BirdCLEF 2024 Mel Spectrograms                        485838378  2024-04-05 04:04:12.263000             83         14  0.875            \nkadircandrisolu/birdclef25-mel-spectrograms                  BirdCLEF'25 | Mel Spectrograms                       6270747658  2025-03-16 20:41:27.810000            637         21  0.6875           \nkneroma/kkiller-birdclef-2021                                Kkiller BirdClef 2021                               13195616748  2021-04-16 18:35:20.053000           1292         30  0.3529412        \nkneroma/kkiller-birdclef-models-public                       Kkiller BirdCLEF Models [Public]                       98049176  2021-04-17 20:12:36.640000            306         35  0.3125           \nzijiangyang1116/birdclef24-spectrograms-via-cupy             BirdCLEF'24 | Spectrograms via CuPy                  5391124726  2024-04-11 12:22:12.330000            170         22  0.8125           \nludovick/birdclef2024-additional-mp3                         BirdClef2024_additional_mp3                          6515446099  2024-04-06 22:53:55.327000            358         28  0.5294118        \nmidcarryhz/efficientnet-b0-birdclef-finetuned                EfficientNet B0-BirdCLEF-Finetuned                     54657810  2025-04-09 14:55:04.807000             12         23  0.625            \ntatamikenn/birdclef-2022-train-metadata-with-audio-metadata  BirdCLEF 2022: Metadata                                 3268615  2022-04-22 11:05:32.207000             64          4  0.64705884       \nimoore/birdclef2020-validation-audio-and-ground-truth        BirdCLEF2020 Validation Audio and Ground Truth        834922713  2021-04-01 17:21:48.153000            213         18  0.8235294        \nforbo7/spectrograms-birdclef-2023                            Spectrogram Images BirdCLEF – 2023                  19451838056  2023-04-02 01:57:25.220000             97          9  0.875            \nkaerunantoka/birdclef2022-audio-image-dataset                [BirdCLEF2022] Audio Image Data (from first 5 sec)   1217733726  2022-02-17 15:48:13.860000            182         18  0.4375           \nkneroma/kkiller-birdclef-mels-computer-d7-part3              Kkiller BirdCLEF Mels Computer D7 Part3              4742782434  2021-04-18 15:09:17.070000            521         14  0.3529412        \nkneroma/kkiller-birdclef-mels-computer-d7-part1              Kkiller BirdCLEF Mels Computer D7 Part1              4980445965  2021-04-18 15:07:58.037000            738         13  0.3529412        \nollypowell/cleaned-training-labels-21-23-for-birdclef2023    Cleaned Training Labels (21-23) for BirdCLEF2023        1183825  2023-03-27 01:45:51.273000             77         11  1.0              \nsamvelkoch/birdclef-2025-species-images                      BirdCLEF+ 2025 Species Images                          66636427  2025-03-11 10:42:08.787000             23          6  0.8125           \nsamvelkoch/bird-clef-2024-species-images                     BirdCLEF 2024 Species Images                           59149026  2024-04-04 17:57:54.933000             48         21  0.6875           \nchristofhenkel/birdclef2021-background-noise                 BirdCLEF2021 background noise                         607619580  2021-06-08 18:58:35.797000            552         21  0.29411766       \nsamvelkoch/birdclef-2025-melspecs-5-sec                      BirdCLEF+ 2025, MelSPECs (5 sec)                    13998105719  2025-03-12 05:14:08.420000             10         10  0.8125           \nusharengaraju/birdclef-tfrecords                             BirdClef TFRecords                                   5746234095  2022-06-17 11:15:55.967000              8         34  0.125            \nforbo7/birdclef-2022-spectrograms                            Spectrograms – BirdCLEF 2022                        28116046536  2023-02-20 04:59:37.577000            113          6  0.8125           \n","output_type":"stream"}],"execution_count":20},{"cell_type":"code","source":"import os\nimport json\n\nfolder_path = \"/kaggle/working/cleaned_audio_upload/cleaned_audio\"\ndataset_slug = \"birdclef-cleaned-part1\"  # Change if already taken\nusername = \"venkateshshukla2023\"  # Replace with your Kaggle username\n\nmetadata = {\n    \"title\": \"BirdCLEF Cleaned Part 1\",\n    \"id\": f\"{username}/{dataset_slug}\",\n    \"licenses\": [{\"name\": \"CC0-1.0\"}]\n}\n\nwith open(os.path.join(folder_path, \"dataset-metadata.json\"), \"w\") as f:\n    json.dump(metadata, f, indent=4)\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-05-09T12:34:03.648788Z","iopub.execute_input":"2025-05-09T12:34:03.649158Z","iopub.status.idle":"2025-05-09T12:34:03.656894Z","shell.execute_reply.started":"2025-05-09T12:34:03.649131Z","shell.execute_reply":"2025-05-09T12:34:03.655804Z"}},"outputs":[],"execution_count":22},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null}]}