{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.13","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":70203,"databundleVersionId":8068726,"sourceType":"competition"},{"sourceId":181022813,"sourceType":"kernelVersion"},{"sourceId":61081,"sourceType":"modelInstanceVersion","isSourceIdPinned":true,"modelInstanceId":51061},{"sourceId":61519,"sourceType":"modelInstanceVersion","isSourceIdPinned":true,"modelInstanceId":51411},{"sourceId":61645,"sourceType":"modelInstanceVersion","isSourceIdPinned":true,"modelInstanceId":51510}],"dockerImageVersionId":30715,"isInternetEnabled":false,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"from transformers import AutoModelForAudioClassification, AutoFeatureExtractor# AutoModelForTokenClassification\n\n# model_path_or_name = '/kaggle/input/distilhubert/transformers/thanhanh/1'\nmodel     = AutoModelForAudioClassification.from_pretrained('/kaggle/input/acc40/transformers/thanhanh/1')\ntokenizer = AutoFeatureExtractor.from_pretrained('/kaggle/input/acc40/transformers/thanhanh/1/config.json')","metadata":{"execution":{"iopub.status.busy":"2024-06-06T10:11:45.026700Z","iopub.execute_input":"2024-06-06T10:11:45.027109Z","iopub.status.idle":"2024-06-06T10:11:45.133742Z","shell.execute_reply.started":"2024-06-06T10:11:45.027079Z","shell.execute_reply":"2024-06-06T10:11:45.132545Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from transformers import pipeline\n\npipe = pipeline(\"audio-classification\", model=model, feature_extractor=tokenizer, batch_size=4)","metadata":{"execution":{"iopub.status.busy":"2024-06-06T10:11:45.136094Z","iopub.execute_input":"2024-06-06T10:11:45.136475Z","iopub.status.idle":"2024-06-06T10:11:45.142492Z","shell.execute_reply.started":"2024-06-06T10:11:45.136443Z","shell.execute_reply":"2024-06-06T10:11:45.141326Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import pandas as pd\nimport os\nimport librosa\nfrom tqdm import tqdm\n\ntest_dir = '/kaggle/input/birdclef-2024/test_soundscapes'\n# exp_dir = '/kaggle/input/birdclef-2024/train_audio/asbfly'\n\nsample_submission = pd.read_csv('/kaggle/input/birdclef-2024/sample_submission.csv')\nsubmission = pd.DataFrame(columns = sample_submission.columns)\nfile_list = [f for f in sorted(os.listdir(test_dir))]\nfile_list = [file for file in file_list if file.endswith('.ogg')]\n\nlabel_list = sample_submission.columns[1:]\nresults = {\"row_id\": []}\nfor label in label_list:\n    results[label] = []\n\nnum = 0\nsampling_rate = 4000\n\nfor e, file_name in tqdm(enumerate(file_list)):\n    file = os.path.join(test_dir, file_name)\n    audio, sr = librosa.load(file, sr=sampling_rate)\n    frame_length = 5 * sampling_rate\n    \n    audio_input = []\n    for start in range(0, len(audio), frame_length):\n        end = start + frame_length\n        if end > len(audio):\n            continue\n        row_id = file_name.replace('.ogg', '') + '_' + str(end // sampling_rate)\n        results['row_id'].append(row_id)\n        \n        audio_input.append(audio[start:end])\n#         preds = pipe(audio[start:end], top_k=182)\n#         for predict in preds:\n#             results[predict['label']].append(predict['score'])\n\n    preds = pipe(audio_input, top_k=len(label_list))\n    for pred in preds:\n        for predict in pred:\n            results[predict['label']].append(predict['score'])\n    \n#     num += 1\n#     if (num == 100):\n#         break\n\nsubmission = pd.DataFrame.from_dict(results)\nsubmission.to_csv('submission.csv', index=False)","metadata":{"execution":{"iopub.status.busy":"2024-06-06T10:11:45.143925Z","iopub.execute_input":"2024-06-06T10:11:45.144241Z","iopub.status.idle":"2024-06-06T10:11:45.219323Z","shell.execute_reply.started":"2024-06-06T10:11:45.144214Z","shell.execute_reply":"2024-06-06T10:11:45.218189Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# import pandas as pd\n# import os\n# import librosa\n# from tqdm import tqdm\n\n# test_dir = '/kaggle/input/birdclef-2024/unlabeled_soundscapes'\n# # exp_dir = '/kaggle/input/birdclef-2024/train_audio/asbfly'\n\n# sample_submission = pd.read_csv('/kaggle/input/birdclef-2024/sample_submission.csv')\n# submission = pd.DataFrame(columns = sample_submission.columns)\n# file_list = [f for f in sorted(os.listdir(test_dir))]\n# file_list = [file for file in file_list if file.endswith('.ogg')]\n\n# label_list = sample_submission.columns[1:]\n# results = {\"row_id\": []}\n# for label in label_list:\n#     results[label] = []\n\n# def data():    \n#     num = 0\n#     for e, file_name in tqdm(enumerate(file_list)):\n#         file = os.path.join(test_dir, file_name)\n#         audio, sr = librosa.load(file, sr=16000)\n#         frame_length = 5 * 16000\n\n#         audio_input = []\n#         for start in range(0, len(audio), frame_length):\n#             end = start + frame_length\n#             if end > len(audio):\n#                 break\n# #             row_id = file_name.replace('.ogg', '') + '_' + str(end // 16000)\n\n#             yield audio[start:end]\n        \n#         num += 1\n#         if num == 4:\n#             break\n\n# for out in pipe(data(), batch_size = 1, top_k=5):\n#     \"\"\"\n#     \"\"\"\n\n# # submission = pd.DataFrame.from_dict(results)\n# # submission.to_csv('submission.csv', index=False)","metadata":{"execution":{"iopub.status.busy":"2024-06-06T10:11:45.221387Z","iopub.execute_input":"2024-06-06T10:11:45.221859Z","iopub.status.idle":"2024-06-06T10:11:45.228933Z","shell.execute_reply.started":"2024-06-06T10:11:45.221819Z","shell.execute_reply":"2024-06-06T10:11:45.227503Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}