{"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"}],"dockerImageVersionId":30673,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import numpy as np\nimport pandas as pd \nimport matplotlib.pyplot as plt\nimport tensorflow as tf\nimport librosa\n\nimport os","metadata":{"_uuid":"c3130695-647c-4cfe-b284-b235fa5d4fd5","_cell_guid":"af0885ad-8236-4e01-b660-fa9cee567ad0","trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def count_files_in_directories(directory):\n    folder_file_counts = []\n    foulders_count = 0\n    for root, dirs, files in os.walk(directory):\n        file_count = len(files)\n        foulders_count += 1\n        # If the directory is root directory, where all folders located\n        if root != \"/kaggle/input/birdclef-2024/train_audio\":\n            folder_file_counts.append((root, file_count))\n        else:\n            print(f\"The directory '{root}' has 0 files. because this directory contain all folders\")\n    print(\"foulders_count = \", foulders_count)\n    return folder_file_counts\n\n\ndirectory_path = '/kaggle/input/birdclef-2024/train_audio'\nfile_counts = count_files_in_directories(directory_path)\n\n\naudio_count = []\nfor files_dir in file_counts:\n    if files_dir[1] != '/birdclef-2024/train_audio':\n        audio_count.append(files_dir[1])\n\nprint(audio_count)\n","metadata":{"_uuid":"6ade5672-b105-4ace-8004-adaa5fe6dbc2","_cell_guid":"fd4c014e-976d-4d28-a733-760e8889a566","collapsed":false,"jupyter":{"outputs_hidden":false},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Checking number of files for each class in base data","metadata":{}},{"cell_type":"code","source":"audio_count_np = np.array(audio_count)\nprint(np.sum(audio_count)/183)\nprint(np.max(audio_count_np))\nplt.hist(audio_count_np, bins=50, range=(0, np.max(audio_count_np)))","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def load_audio_features(file_path, n_mfcc=5, n_fft=1024, hop_length=512):\n    audio, sample_rate = librosa.load(file_path, sr=32000)  # Using sr=None to preserve the native sample rate\n    mfcc = librosa.feature.mfcc(y=audio, sr=sample_rate, n_mfcc=n_mfcc, n_fft=n_fft, hop_length=hop_length)\n    mfcc = mfcc.T\n    return mfcc","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def plot_mfcc_features(mfcc_features):\n    plt.figure(figsize=(10, 4))\n    plt.imshow(mfcc_features, cmap='viridis', origin='lower', aspect='auto')\n    plt.xlabel('MFCC Coefficients')\n    plt.ylabel('Time')\n    plt.title('MFCC Features')\n    plt.colorbar(label='Magnitude')\n    plt.tight_layout()\n    plt.show()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"mfcc_features = load_audio_features('/kaggle/input/birdclef-2024/train_audio/asbfly/XC134896.ogg')\nplot_mfcc_features(mfcc_features)\nprint(mfcc_features)","metadata":{"trusted":true},"execution_count":null,"outputs":[]}]}