{"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.10.12"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":91844,"databundleVersionId":11361821,"sourceType":"competition"}],"dockerImageVersionId":30918,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false},"papermill":{"default_parameters":{},"duration":2690.020694,"end_time":"2025-03-12T09:24:15.312509","environment_variables":{},"exception":null,"input_path":"__notebook__.ipynb","output_path":"__notebook__.ipynb","parameters":{},"start_time":"2025-03-12T08:39:25.291815","version":"2.6.0"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"This notebook crop the audio for a random 5s","metadata":{}},{"cell_type":"code","source":"import os\nimport pandas as pd\nimport numpy as np\nimport torch\nimport torchaudio\nimport random\nfrom tqdm import tqdm","metadata":{"execution":{"iopub.status.busy":"2025-06-04T05:10:42.727437Z","iopub.execute_input":"2025-06-04T05:10:42.727758Z","iopub.status.idle":"2025-06-04T05:10:49.192650Z","shell.execute_reply.started":"2025-06-04T05:10:42.727728Z","shell.execute_reply":"2025-06-04T05:10:49.191535Z"},"papermill":{"duration":7.341238,"end_time":"2025-03-12T08:39:35.59324","exception":false,"start_time":"2025-03-12T08:39:28.252002","status":"completed"},"tags":[],"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"wav_sec = 10\nsample_rate = 32000\nmin_segment = sample_rate*wav_sec","metadata":{"execution":{"iopub.status.busy":"2025-06-04T05:10:49.193838Z","iopub.execute_input":"2025-06-04T05:10:49.194377Z","iopub.status.idle":"2025-06-04T05:10:49.198505Z","shell.execute_reply.started":"2025-06-04T05:10:49.194347Z","shell.execute_reply":"2025-06-04T05:10:49.197592Z"},"papermill":{"duration":0.009611,"end_time":"2025-03-12T08:39:35.605914","exception":false,"start_time":"2025-03-12T08:39:35.596303","status":"completed"},"tags":[],"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"root_path = \"../input/birdclef-2025/\"\ninput_path = root_path + '/train_audio/'\nout_path = \"./train_raw\" + str(wav_sec) +\"/\"\nbackend='soundfile'\n\ntry:\n    os.mkdir(out_path)\nexcept FileExistsError:\n    pass\n\ntrain_meta = pd.read_csv(root_path + 'train.csv')","metadata":{"execution":{"iopub.status.busy":"2025-06-04T05:10:49.200440Z","iopub.execute_input":"2025-06-04T05:10:49.200693Z","iopub.status.idle":"2025-06-04T05:10:49.414131Z","shell.execute_reply.started":"2025-06-04T05:10:49.200671Z","shell.execute_reply":"2025-06-04T05:10:49.413226Z"},"papermill":{"duration":0.212968,"end_time":"2025-03-12T08:39:35.821436","exception":false,"start_time":"2025-03-12T08:39:35.608468","status":"completed"},"tags":[],"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"def crop_and_save(index):\n    sig, _ = torchaudio.load(input_path + train_meta.iloc[index].filename, backend=backend)\n    \n    if sig.shape[1] <= min_segment:\n        sig = torch.concat([sig, torch.zeros(1, min_segment - sig.shape[1])], dim=1)\n    else:\n        start_idx = random.randint(0, sig.shape[1] - min_segment)\n        sig = sig[:, start_idx:start_idx + min_segment]  # Extract the random chunk\n        \n    dir_path = out_path + train_meta.iloc[index].filename.split('/')[0] + '/'\n    if not os.path.exists(dir_path):\n        os.mkdir(dir_path)\n        \n    tmp_savename = out_path + train_meta.iloc[index].filename\n    torchaudio.save(uri=tmp_savename, src=sig, sample_rate=sample_rate, backend=backend)","metadata":{"execution":{"iopub.status.busy":"2025-06-04T05:10:49.415344Z","iopub.execute_input":"2025-06-04T05:10:49.415680Z","iopub.status.idle":"2025-06-04T05:10:49.422253Z","shell.execute_reply.started":"2025-06-04T05:10:49.415653Z","shell.execute_reply":"2025-06-04T05:10:49.421001Z"},"papermill":{"duration":0.012082,"end_time":"2025-03-12T08:39:35.836095","exception":false,"start_time":"2025-03-12T08:39:35.824013","status":"completed"},"tags":[],"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"for index in tqdm(range(len(train_meta))):\n    crop_and_save(index)","metadata":{"execution":{"iopub.status.busy":"2025-06-04T05:10:49.423236Z","iopub.execute_input":"2025-06-04T05:10:49.423480Z","iopub.status.idle":"2025-06-04T05:10:58.378515Z","shell.execute_reply.started":"2025-06-04T05:10:49.423459Z","shell.execute_reply":"2025-06-04T05:10:58.377056Z"},"papermill":{"duration":2676.806144,"end_time":"2025-03-12T09:24:12.644723","exception":false,"start_time":"2025-03-12T08:39:35.838579","status":"completed"},"tags":[],"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null}]}