{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.12","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"}],"dockerImageVersionId":30918,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import pandas as pd\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport seaborn as sns\nimport sklearn as sk\nimport os","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T05:09:49.480362Z","iopub.execute_input":"2025-03-28T05:09:49.480715Z","iopub.status.idle":"2025-03-28T05:09:50.522545Z","shell.execute_reply.started":"2025-03-28T05:09:49.480670Z","shell.execute_reply":"2025-03-28T05:09:50.521467Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_data=  pd.read_csv('/kaggle/input/birdclef-2025/train.csv')\ntaxonomy = pd.read_csv('/kaggle/input/birdclef-2025/taxonomy.csv')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T05:09:50.524822Z","iopub.execute_input":"2025-03-28T05:09:50.525300Z","iopub.status.idle":"2025-03-28T05:09:50.665219Z","shell.execute_reply.started":"2025-03-28T05:09:50.525270Z","shell.execute_reply":"2025-03-28T05:09:50.664257Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_data","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T05:09:50.666633Z","iopub.execute_input":"2025-03-28T05:09:50.666890Z","iopub.status.idle":"2025-03-28T05:09:50.691572Z","shell.execute_reply.started":"2025-03-28T05:09:50.666868Z","shell.execute_reply":"2025-03-28T05:09:50.690593Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_data['scientific_name'].isnull().sum()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T05:09:50.692663Z","iopub.execute_input":"2025-03-28T05:09:50.693077Z","iopub.status.idle":"2025-03-28T05:09:50.701493Z","shell.execute_reply.started":"2025-03-28T05:09:50.693046Z","shell.execute_reply":"2025-03-28T05:09:50.700605Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_data['scientific_name'].value_counts()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T05:09:50.702462Z","iopub.execute_input":"2025-03-28T05:09:50.702864Z","iopub.status.idle":"2025-03-28T05:09:50.722757Z","shell.execute_reply.started":"2025-03-28T05:09:50.702824Z","shell.execute_reply":"2025-03-28T05:09:50.721277Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train_data['common_name'].value_counts()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T05:09:50.723971Z","iopub.execute_input":"2025-03-28T05:09:50.724354Z","iopub.status.idle":"2025-03-28T05:09:50.745664Z","shell.execute_reply.started":"2025-03-28T05:09:50.724313Z","shell.execute_reply":"2025-03-28T05:09:50.744489Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import librosa\nimport sklearn\nimport json\nimport matplotlib.pyplot as plt\nimport wandb\nimport torchaudio\nimport plotly.express as px\nfrom IPython.display import Audio\nfrom shapely.geometry import Point\nimport plotly.express as px","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T05:09:50.747080Z","iopub.execute_input":"2025-03-28T05:09:50.747534Z","iopub.status.idle":"2025-03-28T05:09:54.239182Z","shell.execute_reply.started":"2025-03-28T05:09:50.747489Z","shell.execute_reply":"2025-03-28T05:09:54.238207Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# Load with torch audio","metadata":{}},{"cell_type":"code","source":"base_dir = \"/kaggle/input/birdclef-2025/train_audio\"\ndata, sampling_rate = torchaudio.load(os.path.join(base_dir, train_data['filename'][3]))\ndata","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T05:09:54.242572Z","iopub.execute_input":"2025-03-28T05:09:54.243198Z","iopub.status.idle":"2025-03-28T05:09:54.392866Z","shell.execute_reply.started":"2025-03-28T05:09:54.243161Z","shell.execute_reply":"2025-03-28T05:09:54.391995Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"sampling_rate","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T05:09:54.394710Z","iopub.execute_input":"2025-03-28T05:09:54.395023Z","iopub.status.idle":"2025-03-28T05:09:54.411322Z","shell.execute_reply.started":"2025-03-28T05:09:54.394995Z","shell.execute_reply":"2025-03-28T05:09:54.410213Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"display(Audio(data[0, :sampling_rate*6], rate=sampling_rate))","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T05:09:54.412442Z","iopub.execute_input":"2025-03-28T05:09:54.412883Z","iopub.status.idle":"2025-03-28T05:09:54.442184Z","shell.execute_reply.started":"2025-03-28T05:09:54.412834Z","shell.execute_reply":"2025-03-28T05:09:54.440941Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"data.shape","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T05:09:54.443485Z","iopub.execute_input":"2025-03-28T05:09:54.443945Z","iopub.status.idle":"2025-03-28T05:09:54.450244Z","shell.execute_reply.started":"2025-03-28T05:09:54.443875Z","shell.execute_reply":"2025-03-28T05:09:54.449131Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plt.figure(figsize=(20, 5))\nplt.plot(data[0, :sampling_rate*6])\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T05:09:54.451275Z","iopub.execute_input":"2025-03-28T05:09:54.451676Z","iopub.status.idle":"2025-03-28T05:09:59.361691Z","shell.execute_reply.started":"2025-03-28T05:09:54.451632Z","shell.execute_reply":"2025-03-28T05:09:59.360517Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"px.line(y=data[0, :sampling_rate*6], title=train_data['common_name'][3])","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T05:09:59.363045Z","iopub.execute_input":"2025-03-28T05:09:59.363429Z","iopub.status.idle":"2025-03-28T05:10:00.958510Z","shell.execute_reply.started":"2025-03-28T05:09:59.363399Z","shell.execute_reply":"2025-03-28T05:10:00.956523Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# Load with librosa","metadata":{}},{"cell_type":"code","source":"base_dir = \"/kaggle/input/birdclef-2025/train_audio\"\nlib_data, sampling_rate = librosa.load(os.path.join(base_dir, train_data['filename'][3]), sr=None)\nlib_data","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T05:10:00.960021Z","iopub.execute_input":"2025-03-28T05:10:00.960381Z","iopub.status.idle":"2025-03-28T05:10:02.333126Z","shell.execute_reply.started":"2025-03-28T05:10:00.960351Z","shell.execute_reply":"2025-03-28T05:10:02.331856Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"lib_data.shape, sampling_rate","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T05:10:02.334257Z","iopub.execute_input":"2025-03-28T05:10:02.335159Z","iopub.status.idle":"2025-03-28T05:10:02.342283Z","shell.execute_reply.started":"2025-03-28T05:10:02.335111Z","shell.execute_reply":"2025-03-28T05:10:02.341045Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"display(Audio(lib_data[:sampling_rate*6], rate=sampling_rate))","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T05:10:02.343437Z","iopub.execute_input":"2025-03-28T05:10:02.343853Z","iopub.status.idle":"2025-03-28T05:10:02.371326Z","shell.execute_reply.started":"2025-03-28T05:10:02.343809Z","shell.execute_reply":"2025-03-28T05:10:02.370071Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plt.figure(figsize=(20, 5))\nplt.plot(lib_data[:sampling_rate*6])\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T05:10:02.372649Z","iopub.execute_input":"2025-03-28T05:10:02.373138Z","iopub.status.idle":"2025-03-28T05:10:02.686327Z","shell.execute_reply.started":"2025-03-28T05:10:02.373089Z","shell.execute_reply":"2025-03-28T05:10:02.685408Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"px.line(y=lib_data[ :sampling_rate*6], title=train_data['common_name'][3])","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T05:10:02.687274Z","iopub.execute_input":"2025-03-28T05:10:02.687606Z","iopub.status.idle":"2025-03-28T05:10:02.790365Z","shell.execute_reply.started":"2025-03-28T05:10:02.687579Z","shell.execute_reply":"2025-03-28T05:10:02.788989Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# CWT Scalogram","metadata":{}},{"cell_type":"code","source":"short_data = lib_data[ :sampling_rate*6]\nshort_data.shape","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T05:10:02.792290Z","iopub.execute_input":"2025-03-28T05:10:02.792829Z","iopub.status.idle":"2025-03-28T05:10:02.800178Z","shell.execute_reply.started":"2025-03-28T05:10:02.792778Z","shell.execute_reply":"2025-03-28T05:10:02.799027Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import pywt","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T05:10:02.801423Z","iopub.execute_input":"2025-03-28T05:10:02.801797Z","iopub.status.idle":"2025-03-28T05:10:02.828027Z","shell.execute_reply.started":"2025-03-28T05:10:02.801763Z","shell.execute_reply":"2025-03-28T05:10:02.826990Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"def calculate_scales(wavelet='morl',sr = sampling_rate):\n    sampling_period = 1/sampling_rate\n    scales = pywt.scale2frequency(wavelet, np.arange(1, 256))/sampling_period\n    target_scale = pywt.scale2frequency(wavelet, sr)/sampling_period\n    \n    return scales /target_scale","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T05:22:03.078712Z","iopub.execute_input":"2025-03-28T05:22:03.079130Z","iopub.status.idle":"2025-03-28T05:22:03.084333Z","shell.execute_reply.started":"2025-03-28T05:22:03.079096Z","shell.execute_reply":"2025-03-28T05:22:03.083080Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"\n\n\nscale = calculate_scales(wavelet = 'morl', sr=sampling_rate)\ncoefficients, frequencies = pywt.cwt(short_data, scales=scale, wavelet = 'morl', method='fft')\nplt.figure(figsize=(15, 4.5))\nplt.imshow(np.abs(coefficients), aspect='auto', cmap='jet')#,extent=[0, 5000, min(frequencies), max(frequencies)]\n          \n# print(frequencies)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T05:22:03.207044Z","iopub.execute_input":"2025-03-28T05:22:03.207430Z","iopub.status.idle":"2025-03-28T05:22:11.300414Z","shell.execute_reply.started":"2025-03-28T05:22:03.207395Z","shell.execute_reply":"2025-03-28T05:22:11.299290Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"\nscale = calculate_scales(wavelet = 'morl', sr=sampling_rate)\ncoefficients, frequencies = pywt.cwt(short_data, scales=scale, wavelet = 'morl', method='conv')\nplt.figure(figsize=(15, 4.5))\nplt.imshow(np.abs(coefficients), aspect='auto', cmap='jet')#,extent=[0, 5000, min(frequencies), max(frequencies)]\n          \n# print(frequencies)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T05:23:14.802260Z","iopub.execute_input":"2025-03-28T05:23:14.802735Z","iopub.status.idle":"2025-03-28T05:24:49.314384Z","shell.execute_reply.started":"2025-03-28T05:23:14.802700Z","shell.execute_reply":"2025-03-28T05:24:49.313207Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"\nscale = calculate_scales(wavelet = 'cmor1.5-1.0', sr=sampling_rate)\ncoefficients, frequencies = pywt.cwt(short_data, scales=scale, wavelet = 'cmor1.5-1.0', method='conv')\nplt.figure(figsize=(15, 4.5))\nplt.imshow(np.abs(coefficients), aspect='auto', cmap='jet')#,extent=[0, 5000, min(frequencies), max(frequencies)]\n          \n# print(frequencies)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T05:58:48.493640Z","iopub.execute_input":"2025-03-28T05:58:48.494726Z","iopub.status.idle":"2025-03-28T06:02:06.965539Z","shell.execute_reply.started":"2025-03-28T05:58:48.494679Z","shell.execute_reply":"2025-03-28T06:02:06.964173Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"scale = calculate_scales(wavelet = 'cmor1.5-1.0', sr=sampling_rate)\ncoefficients, frequencies = pywt.cwt(short_data, scales=scale, wavelet = 'cmor1.5-1.0', method='fft')\nplt.figure(figsize=(15, 4.5))\nplt.imshow(np.abs(coefficients), aspect='auto', cmap='jet')#,extent=[0, 5000, min(frequencies), max(frequencies)]\n          ","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T06:02:29.542492Z","iopub.execute_input":"2025-03-28T06:02:29.542913Z","iopub.status.idle":"2025-03-28T06:02:38.343953Z","shell.execute_reply.started":"2025-03-28T06:02:29.542865Z","shell.execute_reply":"2025-03-28T06:02:38.342473Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"scale = calculate_scales(wavelet = 'fbsp5-1.5-50', sr=sampling_rate)\ncoefficients, frequencies = pywt.cwt(short_data, scales=scale, wavelet = 'fbsp5-1.5-50', method='fft')\nplt.figure(figsize=(15, 4.5))\nplt.imshow(np.abs(coefficients), aspect='auto', cmap='jet')#,extent=[0, 5000, min(frequencies), max(frequencies)]\n          ","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T06:03:04.569047Z","iopub.execute_input":"2025-03-28T06:03:04.569416Z","iopub.status.idle":"2025-03-28T06:03:13.642956Z","shell.execute_reply.started":"2025-03-28T06:03:04.569383Z","shell.execute_reply":"2025-03-28T06:03:13.641754Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# STFT spectogram","metadata":{}},{"cell_type":"code","source":"def stft_plot(audio, rate):\n    \n    stft = librosa.stft(audio, n_fft =int(rate * 0.093), hop_length = 256 )\n\n    magnitude = np.abs(stft)\n    phase = np.angle(stft)\n\n    plt.figure(figsize=(15, 7))\n    librosa.display.specshow(librosa.amplitude_to_db(magnitude, ref=np.max), y_axis='log', x_axis='time')\n    plt.colorbar(format='%+2.0f dB')\n    plt.title('STFT Magnitude Spectrogram')\n    plt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T06:12:51.528989Z","iopub.execute_input":"2025-03-28T06:12:51.529366Z","iopub.status.idle":"2025-03-28T06:12:51.535390Z","shell.execute_reply.started":"2025-03-28T06:12:51.529335Z","shell.execute_reply":"2025-03-28T06:12:51.534324Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"stft_plot(short_data, rate=sampling_rate)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T06:12:51.768559Z","iopub.execute_input":"2025-03-28T06:12:51.769007Z","iopub.status.idle":"2025-03-28T06:12:53.169627Z","shell.execute_reply.started":"2025-03-28T06:12:51.768973Z","shell.execute_reply":"2025-03-28T06:12:53.168276Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# STFT spectrogram using tensorflow","metadata":{}},{"cell_type":"code","source":"turbo_data = [[[0.18995, 0.07176, 0.23217],\n               [0.19483, 0.08339, 0.26149],\n               [0.19956, 0.09498, 0.29024],\n               [0.20415, 0.10652, 0.31844],\n               [0.20860, 0.11802, 0.34607],\n               [0.21291, 0.12947, 0.37314],\n               [0.21708, 0.14087, 0.39964],\n               [0.22111, 0.15223, 0.42558],\n               [0.22500, 0.16354, 0.45096],\n               [0.22875, 0.17481, 0.47578],\n               [0.23236, 0.18603, 0.50004],\n               [0.23582, 0.19720, 0.52373],\n               [0.23915, 0.20833, 0.54686],\n               [0.24234, 0.21941, 0.56942],\n               [0.24539, 0.23044, 0.59142],\n               [0.24830, 0.24143, 0.61286],\n               [0.25107, 0.25237, 0.63374],\n               [0.25369, 0.26327, 0.65406],\n               [0.25618, 0.27412, 0.67381],\n               [0.25853, 0.28492, 0.69300],\n               [0.26074, 0.29568, 0.71162],\n               [0.26280, 0.30639, 0.72968],\n               [0.26473, 0.31706, 0.74718],\n               [0.26652, 0.32768, 0.76412],\n               [0.26816, 0.33825, 0.78050],\n               [0.26967, 0.34878, 0.79631],\n               [0.27103, 0.35926, 0.81156],\n               [0.27226, 0.36970, 0.82624],\n               [0.27334, 0.38008, 0.84037],\n               [0.27429, 0.39043, 0.85393],\n               [0.27509, 0.40072, 0.86692],\n               [0.27576, 0.41097, 0.87936],\n               [0.27628, 0.42118, 0.89123],\n               [0.27667, 0.43134, 0.90254],\n               [0.27691, 0.44145, 0.91328],\n               [0.27701, 0.45152, 0.92347],\n               [0.27698, 0.46153, 0.93309],\n               [0.27680, 0.47151, 0.94214],\n               [0.27648, 0.48144, 0.95064],\n               [0.27603, 0.49132, 0.95857],\n               [0.27543, 0.50115, 0.96594],\n               [0.27469, 0.51094, 0.97275],\n               [0.27381, 0.52069, 0.97899],\n               [0.27273, 0.53040, 0.98461],\n               [0.27106, 0.54015, 0.98930],\n               [0.26878, 0.54995, 0.99303],\n               [0.26592, 0.55979, 0.99583],\n               [0.26252, 0.56967, 0.99773],\n               [0.25862, 0.57958, 0.99876],\n               [0.25425, 0.58950, 0.99896],\n               [0.24946, 0.59943, 0.99835],\n               [0.24427, 0.60937, 0.99697],\n               [0.23874, 0.61931, 0.99485],\n               [0.23288, 0.62923, 0.99202],\n               [0.22676, 0.63913, 0.98851],\n               [0.22039, 0.64901, 0.98436],\n               [0.21382, 0.65886, 0.97959],\n               [0.20708, 0.66866, 0.97423],\n               [0.20021, 0.67842, 0.96833],\n               [0.19326, 0.68812, 0.96190],\n               [0.18625, 0.69775, 0.95498],\n               [0.17923, 0.70732, 0.94761],\n               [0.17223, 0.71680, 0.93981],\n               [0.16529, 0.72620, 0.93161],\n               [0.15844, 0.73551, 0.92305],\n               [0.15173, 0.74472, 0.91416],\n               [0.14519, 0.75381, 0.90496],\n               [0.13886, 0.76279, 0.89550],\n               [0.13278, 0.77165, 0.88580],\n               [0.12698, 0.78037, 0.87590],\n               [0.12151, 0.78896, 0.86581],\n               [0.11639, 0.79740, 0.85559],\n               [0.11167, 0.80569, 0.84525],\n               [0.10738, 0.81381, 0.83484],\n               [0.10357, 0.82177, 0.82437],\n               [0.10026, 0.82955, 0.81389],\n               [0.09750, 0.83714, 0.80342],\n               [0.09532, 0.84455, 0.79299],\n               [0.09377, 0.85175, 0.78264],\n               [0.09287, 0.85875, 0.77240],\n               [0.09267, 0.86554, 0.76230],\n               [0.09320, 0.87211, 0.75237],\n               [0.09451, 0.87844, 0.74265],\n               [0.09662, 0.88454, 0.73316],\n               [0.09958, 0.89040, 0.72393],\n               [0.10342, 0.89600, 0.71500],\n               [0.10815, 0.90142, 0.70599],\n               [0.11374, 0.90673, 0.69651],\n               [0.12014, 0.91193, 0.68660],\n               [0.12733, 0.91701, 0.67627],\n               [0.13526, 0.92197, 0.66556],\n               [0.14391, 0.92680, 0.65448],\n               [0.15323, 0.93151, 0.64308],\n               [0.16319, 0.93609, 0.63137],\n               [0.17377, 0.94053, 0.61938],\n               [0.18491, 0.94484, 0.60713],\n               [0.19659, 0.94901, 0.59466],\n               [0.20877, 0.95304, 0.58199],\n               [0.22142, 0.95692, 0.56914],\n               [0.23449, 0.96065, 0.55614],\n               [0.24797, 0.96423, 0.54303],\n               [0.26180, 0.96765, 0.52981],\n               [0.27597, 0.97092, 0.51653],\n               [0.29042, 0.97403, 0.50321],\n               [0.30513, 0.97697, 0.48987],\n               [0.32006, 0.97974, 0.47654],\n               [0.33517, 0.98234, 0.46325],\n               [0.35043, 0.98477, 0.45002],\n               [0.36581, 0.98702, 0.43688],\n               [0.38127, 0.98909, 0.42386],\n               [0.39678, 0.99098, 0.41098],\n               [0.41229, 0.99268, 0.39826],\n               [0.42778, 0.99419, 0.38575],\n               [0.44321, 0.99551, 0.37345],\n               [0.45854, 0.99663, 0.36140],\n               [0.47375, 0.99755, 0.34963],\n               [0.48879, 0.99828, 0.33816],\n               [0.50362, 0.99879, 0.32701],\n               [0.51822, 0.99910, 0.31622],\n               [0.53255, 0.99919, 0.30581],\n               [0.54658, 0.99907, 0.29581],\n               [0.56026, 0.99873, 0.28623],\n               [0.57357, 0.99817, 0.27712],\n               [0.58646, 0.99739, 0.26849],\n               [0.59891, 0.99638, 0.26038],\n               [0.61088, 0.99514, 0.25280],\n               [0.62233, 0.99366, 0.24579],\n               [0.63323, 0.99195, 0.23937],\n               [0.64362, 0.98999, 0.23356],\n               [0.65394, 0.98775, 0.22835],\n               [0.66428, 0.98524, 0.22370],\n               [0.67462, 0.98246, 0.21960],\n               [0.68494, 0.97941, 0.21602],\n               [0.69525, 0.97610, 0.21294],\n               [0.70553, 0.97255, 0.21032],\n               [0.71577, 0.96875, 0.20815],\n               [0.72596, 0.96470, 0.20640],\n               [0.73610, 0.96043, 0.20504],\n               [0.74617, 0.95593, 0.20406],\n               [0.75617, 0.95121, 0.20343],\n               [0.76608, 0.94627, 0.20311],\n               [0.77591, 0.94113, 0.20310],\n               [0.78563, 0.93579, 0.20336],\n               [0.79524, 0.93025, 0.20386],\n               [0.80473, 0.92452, 0.20459],\n               [0.81410, 0.91861, 0.20552],\n               [0.82333, 0.91253, 0.20663],\n               [0.83241, 0.90627, 0.20788],\n               [0.84133, 0.89986, 0.20926],\n               [0.85010, 0.89328, 0.21074],\n               [0.85868, 0.88655, 0.21230],\n               [0.86709, 0.87968, 0.21391],\n               [0.87530, 0.87267, 0.21555],\n               [0.88331, 0.86553, 0.21719],\n               [0.89112, 0.85826, 0.21880],\n               [0.89870, 0.85087, 0.22038],\n               [0.90605, 0.84337, 0.22188],\n               [0.91317, 0.83576, 0.22328],\n               [0.92004, 0.82806, 0.22456],\n               [0.92666, 0.82025, 0.22570],\n               [0.93301, 0.81236, 0.22667],\n               [0.93909, 0.80439, 0.22744],\n               [0.94489, 0.79634, 0.22800],\n               [0.95039, 0.78823, 0.22831],\n               [0.95560, 0.78005, 0.22836],\n               [0.96049, 0.77181, 0.22811],\n               [0.96507, 0.76352, 0.22754],\n               [0.96931, 0.75519, 0.22663],\n               [0.97323, 0.74682, 0.22536],\n               [0.97679, 0.73842, 0.22369],\n               [0.98000, 0.73000, 0.22161],\n               [0.98289, 0.72140, 0.21918],\n               [0.98549, 0.71250, 0.21650],\n               [0.98781, 0.70330, 0.21358],\n               [0.98986, 0.69382, 0.21043],\n               [0.99163, 0.68408, 0.20706],\n               [0.99314, 0.67408, 0.20348],\n               [0.99438, 0.66386, 0.19971],\n               [0.99535, 0.65341, 0.19577],\n               [0.99607, 0.64277, 0.19165],\n               [0.99654, 0.63193, 0.18738],\n               [0.99675, 0.62093, 0.18297],\n               [0.99672, 0.60977, 0.17842],\n               [0.99644, 0.59846, 0.17376],\n               [0.99593, 0.58703, 0.16899],\n               [0.99517, 0.57549, 0.16412],\n               [0.99419, 0.56386, 0.15918],\n               [0.99297, 0.55214, 0.15417],\n               [0.99153, 0.54036, 0.14910],\n               [0.98987, 0.52854, 0.14398],\n               [0.98799, 0.51667, 0.13883],\n               [0.98590, 0.50479, 0.13367],\n               [0.98360, 0.49291, 0.12849],\n               [0.98108, 0.48104, 0.12332],\n               [0.97837, 0.46920, 0.11817],\n               [0.97545, 0.45740, 0.11305],\n               [0.97234, 0.44565, 0.10797],\n               [0.96904, 0.43399, 0.10294],\n               [0.96555, 0.42241, 0.09798],\n               [0.96187, 0.41093, 0.09310],\n               [0.95801, 0.39958, 0.08831],\n               [0.95398, 0.38836, 0.08362],\n               [0.94977, 0.37729, 0.07905],\n               [0.94538, 0.36638, 0.07461],\n               [0.94084, 0.35566, 0.07031],\n               [0.93612, 0.34513, 0.06616],\n               [0.93125, 0.33482, 0.06218],\n               [0.92623, 0.32473, 0.05837],\n               [0.92105, 0.31489, 0.05475],\n               [0.91572, 0.30530, 0.05134],\n               [0.91024, 0.29599, 0.04814],\n               [0.90463, 0.28696, 0.04516],\n               [0.89888, 0.27824, 0.04243],\n               [0.89298, 0.26981, 0.03993],\n               [0.88691, 0.26152, 0.03753],\n               [0.88066, 0.25334, 0.03521],\n               [0.87422, 0.24526, 0.03297],\n               [0.86760, 0.23730, 0.03082],\n               [0.86079, 0.22945, 0.02875],\n               [0.85380, 0.22170, 0.02677],\n               [0.84662, 0.21407, 0.02487],\n               [0.83926, 0.20654, 0.02305],\n               [0.83172, 0.19912, 0.02131],\n               [0.82399, 0.19182, 0.01966],\n               [0.81608, 0.18462, 0.01809],\n               [0.80799, 0.17753, 0.01660],\n               [0.79971, 0.17055, 0.01520],\n               [0.79125, 0.16368, 0.01387],\n               [0.78260, 0.15693, 0.01264],\n               [0.77377, 0.15028, 0.01148],\n               [0.76476, 0.14374, 0.01041],\n               [0.75556, 0.13731, 0.00942],\n               [0.74617, 0.13098, 0.00851],\n               [0.73661, 0.12477, 0.00769],\n               [0.72686, 0.11867, 0.00695],\n               [0.71692, 0.11268, 0.00629],\n               [0.70680, 0.10680, 0.00571],\n               [0.69650, 0.10102, 0.00522],\n               [0.68602, 0.09536, 0.00481],\n               [0.67535, 0.08980, 0.00449],\n               [0.66449, 0.08436, 0.00424],\n               [0.65345, 0.07902, 0.00408],\n               [0.64223, 0.07380, 0.00401],\n               [0.63082, 0.06868, 0.00401],\n               [0.61923, 0.06367, 0.00410],\n               [0.60746, 0.05878, 0.00427],\n               [0.59550, 0.05399, 0.00453],\n               [0.58336, 0.04931, 0.00486],\n               [0.57103, 0.04474, 0.00529],\n               [0.55852, 0.04028, 0.00579],\n               [0.54583, 0.03593, 0.00638],\n               [0.53295, 0.03169, 0.00705],\n               [0.51989, 0.02756, 0.00780],\n               [0.50664, 0.02354, 0.00863],\n               [0.49321, 0.01963, 0.00955],\n               [0.47960, 0.01583, 0.01055]],\n              [[0.18995, 0.07176, 0.23217],\n               [0.19483, 0.08339, 0.26149],\n               [0.19956, 0.09498, 0.29024],\n               [0.20415, 0.10652, 0.31844],\n               [0.20860, 0.11802, 0.34607],\n               [0.21291, 0.12947, 0.37314],\n               [0.21708, 0.14087, 0.39964],\n               [0.22111, 0.15223, 0.42558],\n               [0.22500, 0.16354, 0.45096],\n               [0.22875, 0.17481, 0.47578],\n               [0.23236, 0.18603, 0.50004],\n               [0.23582, 0.19720, 0.52373],\n               [0.23915, 0.20833, 0.54686],\n               [0.24234, 0.21941, 0.56942],\n               [0.24539, 0.23044, 0.59142],\n               [0.24830, 0.24143, 0.61286],\n               [0.25107, 0.25237, 0.63374],\n               [0.25369, 0.26327, 0.65406],\n               [0.25618, 0.27412, 0.67381],\n               [0.25853, 0.28492, 0.69300],\n               [0.26074, 0.29568, 0.71162],\n               [0.26280, 0.30639, 0.72968],\n               [0.26473, 0.31706, 0.74718],\n               [0.26652, 0.32768, 0.76412],\n               [0.26816, 0.33825, 0.78050],\n               [0.26967, 0.34878, 0.79631],\n               [0.27103, 0.35926, 0.81156],\n               [0.27226, 0.36970, 0.82624],\n               [0.27334, 0.38008, 0.84037],\n               [0.27429, 0.39043, 0.85393],\n               [0.27509, 0.40072, 0.86692],\n               [0.27576, 0.41097, 0.87936],\n               [0.27628, 0.42118, 0.89123],\n               [0.27667, 0.43134, 0.90254],\n               [0.27691, 0.44145, 0.91328],\n               [0.27701, 0.45152, 0.92347],\n               [0.27698, 0.46153, 0.93309],\n               [0.27680, 0.47151, 0.94214],\n               [0.27648, 0.48144, 0.95064],\n               [0.27603, 0.49132, 0.95857],\n               [0.27543, 0.50115, 0.96594],\n               [0.27469, 0.51094, 0.97275],\n               [0.27381, 0.52069, 0.97899],\n               [0.27273, 0.53040, 0.98461],\n               [0.27106, 0.54015, 0.98930],\n               [0.26878, 0.54995, 0.99303],\n               [0.26592, 0.55979, 0.99583],\n               [0.26252, 0.56967, 0.99773],\n               [0.25862, 0.57958, 0.99876],\n               [0.25425, 0.58950, 0.99896],\n               [0.24946, 0.59943, 0.99835],\n               [0.24427, 0.60937, 0.99697],\n               [0.23874, 0.61931, 0.99485],\n               [0.23288, 0.62923, 0.99202],\n               [0.22676, 0.63913, 0.98851],\n               [0.22039, 0.64901, 0.98436],\n               [0.21382, 0.65886, 0.97959],\n               [0.20708, 0.66866, 0.97423],\n               [0.20021, 0.67842, 0.96833],\n               [0.19326, 0.68812, 0.96190],\n               [0.18625, 0.69775, 0.95498],\n               [0.17923, 0.70732, 0.94761],\n               [0.17223, 0.71680, 0.93981],\n               [0.16529, 0.72620, 0.93161],\n               [0.15844, 0.73551, 0.92305],\n               [0.15173, 0.74472, 0.91416],\n               [0.14519, 0.75381, 0.90496],\n               [0.13886, 0.76279, 0.89550],\n               [0.13278, 0.77165, 0.88580],\n               [0.12698, 0.78037, 0.87590],\n               [0.12151, 0.78896, 0.86581],\n               [0.11639, 0.79740, 0.85559],\n               [0.11167, 0.80569, 0.84525],\n               [0.10738, 0.81381, 0.83484],\n               [0.10357, 0.82177, 0.82437],\n               [0.10026, 0.82955, 0.81389],\n               [0.09750, 0.83714, 0.80342],\n               [0.09532, 0.84455, 0.79299],\n               [0.09377, 0.85175, 0.78264],\n               [0.09287, 0.85875, 0.77240],\n               [0.09267, 0.86554, 0.76230],\n               [0.09320, 0.87211, 0.75237],\n               [0.09451, 0.87844, 0.74265],\n               [0.09662, 0.88454, 0.73316],\n               [0.09958, 0.89040, 0.72393],\n               [0.10342, 0.89600, 0.71500],\n               [0.10815, 0.90142, 0.70599],\n               [0.11374, 0.90673, 0.69651],\n               [0.12014, 0.91193, 0.68660],\n               [0.12733, 0.91701, 0.67627],\n               [0.13526, 0.92197, 0.66556],\n               [0.14391, 0.92680, 0.65448],\n               [0.15323, 0.93151, 0.64308],\n               [0.16319, 0.93609, 0.63137],\n               [0.17377, 0.94053, 0.61938],\n               [0.18491, 0.94484, 0.60713],\n               [0.19659, 0.94901, 0.59466],\n               [0.20877, 0.95304, 0.58199],\n               [0.22142, 0.95692, 0.56914],\n               [0.23449, 0.96065, 0.55614],\n               [0.24797, 0.96423, 0.54303],\n               [0.26180, 0.96765, 0.52981],\n               [0.27597, 0.97092, 0.51653],\n               [0.29042, 0.97403, 0.50321],\n               [0.30513, 0.97697, 0.48987],\n               [0.32006, 0.97974, 0.47654],\n               [0.33517, 0.98234, 0.46325],\n               [0.35043, 0.98477, 0.45002],\n               [0.36581, 0.98702, 0.43688],\n               [0.38127, 0.98909, 0.42386],\n               [0.39678, 0.99098, 0.41098],\n               [0.41229, 0.99268, 0.39826],\n               [0.42778, 0.99419, 0.38575],\n               [0.44321, 0.99551, 0.37345],\n               [0.45854, 0.99663, 0.36140],\n               [0.47375, 0.99755, 0.34963],\n               [0.48879, 0.99828, 0.33816],\n               [0.50362, 0.99879, 0.32701],\n               [0.51822, 0.99910, 0.31622],\n               [0.53255, 0.99919, 0.30581],\n               [0.54658, 0.99907, 0.29581],\n               [0.56026, 0.99873, 0.28623],\n               [0.57357, 0.99817, 0.27712],\n               [0.58646, 0.99739, 0.26849],\n               [0.59891, 0.99638, 0.26038],\n               [0.61088, 0.99514, 0.25280],\n               [0.62233, 0.99366, 0.24579],\n               [0.63323, 0.99195, 0.23937],\n               [0.64362, 0.98999, 0.23356],\n               [0.65394, 0.98775, 0.22835],\n               [0.66428, 0.98524, 0.22370],\n               [0.67462, 0.98246, 0.21960],\n               [0.68494, 0.97941, 0.21602],\n               [0.69525, 0.97610, 0.21294],\n               [0.70553, 0.97255, 0.21032],\n               [0.71577, 0.96875, 0.20815],\n               [0.72596, 0.96470, 0.20640],\n               [0.73610, 0.96043, 0.20504],\n               [0.74617, 0.95593, 0.20406],\n               [0.75617, 0.95121, 0.20343],\n               [0.76608, 0.94627, 0.20311],\n               [0.77591, 0.94113, 0.20310],\n               [0.78563, 0.93579, 0.20336],\n               [0.79524, 0.93025, 0.20386],\n               [0.80473, 0.92452, 0.20459],\n               [0.81410, 0.91861, 0.20552],\n               [0.82333, 0.91253, 0.20663],\n               [0.83241, 0.90627, 0.20788],\n               [0.84133, 0.89986, 0.20926],\n               [0.85010, 0.89328, 0.21074],\n               [0.85868, 0.88655, 0.21230],\n               [0.86709, 0.87968, 0.21391],\n               [0.87530, 0.87267, 0.21555],\n               [0.88331, 0.86553, 0.21719],\n               [0.89112, 0.85826, 0.21880],\n               [0.89870, 0.85087, 0.22038],\n               [0.90605, 0.84337, 0.22188],\n               [0.91317, 0.83576, 0.22328],\n               [0.92004, 0.82806, 0.22456],\n               [0.92666, 0.82025, 0.22570],\n               [0.93301, 0.81236, 0.22667],\n               [0.93909, 0.80439, 0.22744],\n               [0.94489, 0.79634, 0.22800],\n               [0.95039, 0.78823, 0.22831],\n               [0.95560, 0.78005, 0.22836],\n               [0.96049, 0.77181, 0.22811],\n               [0.96507, 0.76352, 0.22754],\n               [0.96931, 0.75519, 0.22663],\n               [0.97323, 0.74682, 0.22536],\n               [0.97679, 0.73842, 0.22369],\n               [0.98000, 0.73000, 0.22161],\n               [0.98289, 0.72140, 0.21918],\n               [0.98549, 0.71250, 0.21650],\n               [0.98781, 0.70330, 0.21358],\n               [0.98986, 0.69382, 0.21043],\n               [0.99163, 0.68408, 0.20706],\n               [0.99314, 0.67408, 0.20348],\n               [0.99438, 0.66386, 0.19971],\n               [0.99535, 0.65341, 0.19577],\n               [0.99607, 0.64277, 0.19165],\n               [0.99654, 0.63193, 0.18738],\n               [0.99675, 0.62093, 0.18297],\n               [0.99672, 0.60977, 0.17842],\n               [0.99644, 0.59846, 0.17376],\n               [0.99593, 0.58703, 0.16899],\n               [0.99517, 0.57549, 0.16412],\n               [0.99419, 0.56386, 0.15918],\n               [0.99297, 0.55214, 0.15417],\n               [0.99153, 0.54036, 0.14910],\n               [0.98987, 0.52854, 0.14398],\n               [0.98799, 0.51667, 0.13883],\n               [0.98590, 0.50479, 0.13367],\n               [0.98360, 0.49291, 0.12849],\n               [0.98108, 0.48104, 0.12332],\n               [0.97837, 0.46920, 0.11817],\n               [0.97545, 0.45740, 0.11305],\n               [0.97234, 0.44565, 0.10797],\n               [0.96904, 0.43399, 0.10294],\n               [0.96555, 0.42241, 0.09798],\n               [0.96187, 0.41093, 0.09310],\n               [0.95801, 0.39958, 0.08831],\n               [0.95398, 0.38836, 0.08362],\n               [0.94977, 0.37729, 0.07905],\n               [0.94538, 0.36638, 0.07461],\n               [0.94084, 0.35566, 0.07031],\n               [0.93612, 0.34513, 0.06616],\n               [0.93125, 0.33482, 0.06218],\n               [0.92623, 0.32473, 0.05837],\n               [0.92105, 0.31489, 0.05475],\n               [0.91572, 0.30530, 0.05134],\n               [0.91024, 0.29599, 0.04814],\n               [0.90463, 0.28696, 0.04516],\n               [0.89888, 0.27824, 0.04243],\n               [0.89298, 0.26981, 0.03993],\n               [0.88691, 0.26152, 0.03753],\n               [0.88066, 0.25334, 0.03521],\n               [0.87422, 0.24526, 0.03297],\n               [0.86760, 0.23730, 0.03082],\n               [0.86079, 0.22945, 0.02875],\n               [0.85380, 0.22170, 0.02677],\n               [0.84662, 0.21407, 0.02487],\n               [0.83926, 0.20654, 0.02305],\n               [0.83172, 0.19912, 0.02131],\n               [0.82399, 0.19182, 0.01966],\n               [0.81608, 0.18462, 0.01809],\n               [0.80799, 0.17753, 0.01660],\n               [0.79971, 0.17055, 0.01520],\n               [0.79125, 0.16368, 0.01387],\n               [0.78260, 0.15693, 0.01264],\n               [0.77377, 0.15028, 0.01148],\n               [0.76476, 0.14374, 0.01041],\n               [0.75556, 0.13731, 0.00942],\n               [0.74617, 0.13098, 0.00851],\n               [0.73661, 0.12477, 0.00769],\n               [0.72686, 0.11867, 0.00695],\n               [0.71692, 0.11268, 0.00629],\n               [0.70680, 0.10680, 0.00571],\n               [0.69650, 0.10102, 0.00522],\n               [0.68602, 0.09536, 0.00481],\n               [0.67535, 0.08980, 0.00449],\n               [0.66449, 0.08436, 0.00424],\n               [0.65345, 0.07902, 0.00408],\n               [0.64223, 0.07380, 0.00401],\n               [0.63082, 0.06868, 0.00401],\n               [0.61923, 0.06367, 0.00410],\n               [0.60746, 0.05878, 0.00427],\n               [0.59550, 0.05399, 0.00453],\n               [0.58336, 0.04931, 0.00486],\n               [0.57103, 0.04474, 0.00529],\n               [0.55852, 0.04028, 0.00579],\n               [0.54583, 0.03593, 0.00638],\n               [0.53295, 0.03169, 0.00705],\n               [0.51989, 0.02756, 0.00780],\n               [0.50664, 0.02354, 0.00863],\n               [0.49321, 0.01963, 0.00955],\n               [0.47960, 0.01583, 0.01055]],\n              [[0.18995, 0.07176, 0.23217],\n               [0.19483, 0.08339, 0.26149],\n               [0.19956, 0.09498, 0.29024],\n               [0.20415, 0.10652, 0.31844],\n               [0.20860, 0.11802, 0.34607],\n               [0.21291, 0.12947, 0.37314],\n               [0.21708, 0.14087, 0.39964],\n               [0.22111, 0.15223, 0.42558],\n               [0.22500, 0.16354, 0.45096],\n               [0.22875, 0.17481, 0.47578],\n               [0.23236, 0.18603, 0.50004],\n               [0.23582, 0.19720, 0.52373],\n               [0.23915, 0.20833, 0.54686],\n               [0.24234, 0.21941, 0.56942],\n               [0.24539, 0.23044, 0.59142],\n               [0.24830, 0.24143, 0.61286],\n               [0.25107, 0.25237, 0.63374],\n               [0.25369, 0.26327, 0.65406],\n               [0.25618, 0.27412, 0.67381],\n               [0.25853, 0.28492, 0.69300],\n               [0.26074, 0.29568, 0.71162],\n               [0.26280, 0.30639, 0.72968],\n               [0.26473, 0.31706, 0.74718],\n               [0.26652, 0.32768, 0.76412],\n               [0.26816, 0.33825, 0.78050],\n               [0.26967, 0.34878, 0.79631],\n               [0.27103, 0.35926, 0.81156],\n               [0.27226, 0.36970, 0.82624],\n               [0.27334, 0.38008, 0.84037],\n               [0.27429, 0.39043, 0.85393],\n               [0.27509, 0.40072, 0.86692],\n               [0.27576, 0.41097, 0.87936],\n               [0.27628, 0.42118, 0.89123],\n               [0.27667, 0.43134, 0.90254],\n               [0.27691, 0.44145, 0.91328],\n               [0.27701, 0.45152, 0.92347],\n               [0.27698, 0.46153, 0.93309],\n               [0.27680, 0.47151, 0.94214],\n               [0.27648, 0.48144, 0.95064],\n               [0.27603, 0.49132, 0.95857],\n               [0.27543, 0.50115, 0.96594],\n               [0.27469, 0.51094, 0.97275],\n               [0.27381, 0.52069, 0.97899],\n               [0.27273, 0.53040, 0.98461],\n               [0.27106, 0.54015, 0.98930],\n               [0.26878, 0.54995, 0.99303],\n               [0.26592, 0.55979, 0.99583],\n               [0.26252, 0.56967, 0.99773],\n               [0.25862, 0.57958, 0.99876],\n               [0.25425, 0.58950, 0.99896],\n               [0.24946, 0.59943, 0.99835],\n               [0.24427, 0.60937, 0.99697],\n               [0.23874, 0.61931, 0.99485],\n               [0.23288, 0.62923, 0.99202],\n               [0.22676, 0.63913, 0.98851],\n               [0.22039, 0.64901, 0.98436],\n               [0.21382, 0.65886, 0.97959],\n               [0.20708, 0.66866, 0.97423],\n               [0.20021, 0.67842, 0.96833],\n               [0.19326, 0.68812, 0.96190],\n               [0.18625, 0.69775, 0.95498],\n               [0.17923, 0.70732, 0.94761],\n               [0.17223, 0.71680, 0.93981],\n               [0.16529, 0.72620, 0.93161],\n               [0.15844, 0.73551, 0.92305],\n               [0.15173, 0.74472, 0.91416],\n               [0.14519, 0.75381, 0.90496],\n               [0.13886, 0.76279, 0.89550],\n               [0.13278, 0.77165, 0.88580],\n               [0.12698, 0.78037, 0.87590],\n               [0.12151, 0.78896, 0.86581],\n               [0.11639, 0.79740, 0.85559],\n               [0.11167, 0.80569, 0.84525],\n               [0.10738, 0.81381, 0.83484],\n               [0.10357, 0.82177, 0.82437],\n               [0.10026, 0.82955, 0.81389],\n               [0.09750, 0.83714, 0.80342],\n               [0.09532, 0.84455, 0.79299],\n               [0.09377, 0.85175, 0.78264],\n               [0.09287, 0.85875, 0.77240],\n               [0.09267, 0.86554, 0.76230],\n               [0.09320, 0.87211, 0.75237],\n               [0.09451, 0.87844, 0.74265],\n               [0.09662, 0.88454, 0.73316],\n               [0.09958, 0.89040, 0.72393],\n               [0.10342, 0.89600, 0.71500],\n               [0.10815, 0.90142, 0.70599],\n               [0.11374, 0.90673, 0.69651],\n               [0.12014, 0.91193, 0.68660],\n               [0.12733, 0.91701, 0.67627],\n               [0.13526, 0.92197, 0.66556],\n               [0.14391, 0.92680, 0.65448],\n               [0.15323, 0.93151, 0.64308],\n               [0.16319, 0.93609, 0.63137],\n               [0.17377, 0.94053, 0.61938],\n               [0.18491, 0.94484, 0.60713],\n               [0.19659, 0.94901, 0.59466],\n               [0.20877, 0.95304, 0.58199],\n               [0.22142, 0.95692, 0.56914],\n               [0.23449, 0.96065, 0.55614],\n               [0.24797, 0.96423, 0.54303],\n               [0.26180, 0.96765, 0.52981],\n               [0.27597, 0.97092, 0.51653],\n               [0.29042, 0.97403, 0.50321],\n               [0.30513, 0.97697, 0.48987],\n               [0.32006, 0.97974, 0.47654],\n               [0.33517, 0.98234, 0.46325],\n               [0.35043, 0.98477, 0.45002],\n               [0.36581, 0.98702, 0.43688],\n               [0.38127, 0.98909, 0.42386],\n               [0.39678, 0.99098, 0.41098],\n               [0.41229, 0.99268, 0.39826],\n               [0.42778, 0.99419, 0.38575],\n               [0.44321, 0.99551, 0.37345],\n               [0.45854, 0.99663, 0.36140],\n               [0.47375, 0.99755, 0.34963],\n               [0.48879, 0.99828, 0.33816],\n               [0.50362, 0.99879, 0.32701],\n               [0.51822, 0.99910, 0.31622],\n               [0.53255, 0.99919, 0.30581],\n               [0.54658, 0.99907, 0.29581],\n               [0.56026, 0.99873, 0.28623],\n               [0.57357, 0.99817, 0.27712],\n               [0.58646, 0.99739, 0.26849],\n               [0.59891, 0.99638, 0.26038],\n               [0.61088, 0.99514, 0.25280],\n               [0.62233, 0.99366, 0.24579],\n               [0.63323, 0.99195, 0.23937],\n               [0.64362, 0.98999, 0.23356],\n               [0.65394, 0.98775, 0.22835],\n               [0.66428, 0.98524, 0.22370],\n               [0.67462, 0.98246, 0.21960],\n               [0.68494, 0.97941, 0.21602],\n               [0.69525, 0.97610, 0.21294],\n               [0.70553, 0.97255, 0.21032],\n               [0.71577, 0.96875, 0.20815],\n               [0.72596, 0.96470, 0.20640],\n               [0.73610, 0.96043, 0.20504],\n               [0.74617, 0.95593, 0.20406],\n               [0.75617, 0.95121, 0.20343],\n               [0.76608, 0.94627, 0.20311],\n               [0.77591, 0.94113, 0.20310],\n               [0.78563, 0.93579, 0.20336],\n               [0.79524, 0.93025, 0.20386],\n               [0.80473, 0.92452, 0.20459],\n               [0.81410, 0.91861, 0.20552],\n               [0.82333, 0.91253, 0.20663],\n               [0.83241, 0.90627, 0.20788],\n               [0.84133, 0.89986, 0.20926],\n               [0.85010, 0.89328, 0.21074],\n               [0.85868, 0.88655, 0.21230],\n               [0.86709, 0.87968, 0.21391],\n               [0.87530, 0.87267, 0.21555],\n               [0.88331, 0.86553, 0.21719],\n               [0.89112, 0.85826, 0.21880],\n               [0.89870, 0.85087, 0.22038],\n               [0.90605, 0.84337, 0.22188],\n               [0.91317, 0.83576, 0.22328],\n               [0.92004, 0.82806, 0.22456],\n               [0.92666, 0.82025, 0.22570],\n               [0.93301, 0.81236, 0.22667],\n               [0.93909, 0.80439, 0.22744],\n               [0.94489, 0.79634, 0.22800],\n               [0.95039, 0.78823, 0.22831],\n               [0.95560, 0.78005, 0.22836],\n               [0.96049, 0.77181, 0.22811],\n               [0.96507, 0.76352, 0.22754],\n               [0.96931, 0.75519, 0.22663],\n               [0.97323, 0.74682, 0.22536],\n               [0.97679, 0.73842, 0.22369],\n               [0.98000, 0.73000, 0.22161],\n               [0.98289, 0.72140, 0.21918],\n               [0.98549, 0.71250, 0.21650],\n               [0.98781, 0.70330, 0.21358],\n               [0.98986, 0.69382, 0.21043],\n               [0.99163, 0.68408, 0.20706],\n               [0.99314, 0.67408, 0.20348],\n               [0.99438, 0.66386, 0.19971],\n               [0.99535, 0.65341, 0.19577],\n               [0.99607, 0.64277, 0.19165],\n               [0.99654, 0.63193, 0.18738],\n               [0.99675, 0.62093, 0.18297],\n               [0.99672, 0.60977, 0.17842],\n               [0.99644, 0.59846, 0.17376],\n               [0.99593, 0.58703, 0.16899],\n               [0.99517, 0.57549, 0.16412],\n               [0.99419, 0.56386, 0.15918],\n               [0.99297, 0.55214, 0.15417],\n               [0.99153, 0.54036, 0.14910],\n               [0.98987, 0.52854, 0.14398],\n               [0.98799, 0.51667, 0.13883],\n               [0.98590, 0.50479, 0.13367],\n               [0.98360, 0.49291, 0.12849],\n               [0.98108, 0.48104, 0.12332],\n               [0.97837, 0.46920, 0.11817],\n               [0.97545, 0.45740, 0.11305],\n               [0.97234, 0.44565, 0.10797],\n               [0.96904, 0.43399, 0.10294],\n               [0.96555, 0.42241, 0.09798],\n               [0.96187, 0.41093, 0.09310],\n               [0.95801, 0.39958, 0.08831],\n               [0.95398, 0.38836, 0.08362],\n               [0.94977, 0.37729, 0.07905],\n               [0.94538, 0.36638, 0.07461],\n               [0.94084, 0.35566, 0.07031],\n               [0.93612, 0.34513, 0.06616],\n               [0.93125, 0.33482, 0.06218],\n               [0.92623, 0.32473, 0.05837],\n               [0.92105, 0.31489, 0.05475],\n               [0.91572, 0.30530, 0.05134],\n               [0.91024, 0.29599, 0.04814],\n               [0.90463, 0.28696, 0.04516],\n               [0.89888, 0.27824, 0.04243],\n               [0.89298, 0.26981, 0.03993],\n               [0.88691, 0.26152, 0.03753],\n               [0.88066, 0.25334, 0.03521],\n               [0.87422, 0.24526, 0.03297],\n               [0.86760, 0.23730, 0.03082],\n               [0.86079, 0.22945, 0.02875],\n               [0.85380, 0.22170, 0.02677],\n               [0.84662, 0.21407, 0.02487],\n               [0.83926, 0.20654, 0.02305],\n               [0.83172, 0.19912, 0.02131],\n               [0.82399, 0.19182, 0.01966],\n               [0.81608, 0.18462, 0.01809],\n               [0.80799, 0.17753, 0.01660],\n               [0.79971, 0.17055, 0.01520],\n               [0.79125, 0.16368, 0.01387],\n               [0.78260, 0.15693, 0.01264],\n               [0.77377, 0.15028, 0.01148],\n               [0.76476, 0.14374, 0.01041],\n               [0.75556, 0.13731, 0.00942],\n               [0.74617, 0.13098, 0.00851],\n               [0.73661, 0.12477, 0.00769],\n               [0.72686, 0.11867, 0.00695],\n               [0.71692, 0.11268, 0.00629],\n               [0.70680, 0.10680, 0.00571],\n               [0.69650, 0.10102, 0.00522],\n               [0.68602, 0.09536, 0.00481],\n               [0.67535, 0.08980, 0.00449],\n               [0.66449, 0.08436, 0.00424],\n               [0.65345, 0.07902, 0.00408],\n               [0.64223, 0.07380, 0.00401],\n               [0.63082, 0.06868, 0.00401],\n               [0.61923, 0.06367, 0.00410],\n               [0.60746, 0.05878, 0.00427],\n               [0.59550, 0.05399, 0.00453],\n               [0.58336, 0.04931, 0.00486],\n               [0.57103, 0.04474, 0.00529],\n               [0.55852, 0.04028, 0.00579],\n               [0.54583, 0.03593, 0.00638],\n               [0.53295, 0.03169, 0.00705],\n               [0.51989, 0.02756, 0.00780],\n               [0.50664, 0.02354, 0.00863],\n               [0.49321, 0.01963, 0.00955],\n               [0.47960, 0.01583, 0.01055]]]","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T06:14:31.697304Z","iopub.execute_input":"2025-03-28T06:14:31.697728Z","iopub.status.idle":"2025-03-28T06:14:31.779244Z","shell.execute_reply.started":"2025-03-28T06:14:31.697699Z","shell.execute_reply":"2025-03-28T06:14:31.777945Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import tensorflow as tf\n\nflat_turbo_data = [item for sublist in turbo_data for item in sublist]\nprint(len(flat_turbo_data))\ntf_turbo_data = tf.constant(flat_turbo_data, dtype=tf.float32)\nprint(tf_turbo_data.shape)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T06:14:47.745640Z","iopub.execute_input":"2025-03-28T06:14:47.746026Z","iopub.status.idle":"2025-03-28T06:15:02.679422Z","shell.execute_reply.started":"2025-03-28T06:14:47.745993Z","shell.execute_reply":"2025-03-28T06:15:02.678276Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"\n\nreshaped_tensor = tf.expand_dims(short_data, axis=0)\nreshaped_tensor = tf.expand_dims(reshaped_tensor, axis=-1)\nprint(short_data.shape)\nprint(reshaped_tensor.shape)\n\nx = tf.squeeze(reshaped_tensor, axis=-1)\nstft_result = tf.signal.stft(x, frame_length=256, frame_step=16)\nprint(stft_result.shape)\n    # Extract magnitude and phase\nmagnitude = tf.abs(stft_result)\n\n    # Convert the magnitude to decibels for better visualization\ndwt_magn = tf.math.log(magnitude + 1e-6)\ndwt_magn = tf.transpose(dwt_magn,perm=[1,2,0])\n    # magnitude_db = tf.expand_dims(magnitude_db,axis=-1)\nprint(dwt_magn.shape)\n    # Resize the magnitude_db tensor to shape [256, 256, batch_size]\ndwt_magn_resized = tf.image.resize(dwt_magn, [1024, 256])\nprint(dwt_magn_resized.shape)\ndwt_magn_resized = tf.transpose(dwt_magn_resized,perm=[2,1,0])\ndwt_magn_resized = tf.expand_dims(dwt_magn_resized,axis=-1)\nprint(dwt_magn_resized.shape)\n#dwt_magn_resized = tf.tile( dwt_magn_resized, [1,1, 1, 3])\n    \n    \ndwt_magn_resized = (dwt_magn_resized - tf.reduce_min(dwt_magn_resized)) / (tf.reduce_max(dwt_magn_resized) - tf.reduce_min(dwt_magn_resized))\nprint(dwt_magn_resized.dtype)\ndwt_squeezed = tf.squeeze(dwt_magn_resized, axis=-1)\nprint(dwt_squeezed.shape)\ndwt_indices = tf.cast(tf.math.round(dwt_squeezed * 255), dtype=tf.int32)\ndwt_image = tf.gather(tf_turbo_data, dwt_indices)\nprint(dwt_image.shape)\n\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T06:15:16.852015Z","iopub.execute_input":"2025-03-28T06:15:16.852356Z","iopub.status.idle":"2025-03-28T06:15:16.999543Z","shell.execute_reply.started":"2025-03-28T06:15:16.852328Z","shell.execute_reply":"2025-03-28T06:15:16.998403Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plt.imshow(dwt_magn_resized[0], aspect='auto', cmap='turbo')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T06:15:29.133799Z","iopub.execute_input":"2025-03-28T06:15:29.134250Z","iopub.status.idle":"2025-03-28T06:15:29.480789Z","shell.execute_reply.started":"2025-03-28T06:15:29.134216Z","shell.execute_reply":"2025-03-28T06:15:29.479528Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plt.imshow(dwt_image[0], aspect='auto')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T06:15:47.668537Z","iopub.execute_input":"2025-03-28T06:15:47.668981Z","iopub.status.idle":"2025-03-28T06:15:48.079400Z","shell.execute_reply.started":"2025-03-28T06:15:47.668944Z","shell.execute_reply":"2025-03-28T06:15:48.077870Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"# Apply different filter","metadata":{}},{"cell_type":"markdown","source":"### Original signal","metadata":{}},{"cell_type":"code","source":"base_dir = \"/kaggle/input/birdclef-2025/train_audio\"\nlib_data, sampling_rate = librosa.load(os.path.join(base_dir, train_data['filename'][3]), sr=None)\nlib_data","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T06:17:54.829984Z","iopub.execute_input":"2025-03-28T06:17:54.830437Z","iopub.status.idle":"2025-03-28T06:17:54.960792Z","shell.execute_reply.started":"2025-03-28T06:17:54.830402Z","shell.execute_reply":"2025-03-28T06:17:54.959349Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"sampling_rate","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T06:33:41.933473Z","iopub.execute_input":"2025-03-28T06:33:41.933813Z","iopub.status.idle":"2025-03-28T06:33:41.939947Z","shell.execute_reply.started":"2025-03-28T06:33:41.933786Z","shell.execute_reply":"2025-03-28T06:33:41.938948Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"display(Audio(lib_data[:sampling_rate*6], rate=sampling_rate))","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T06:17:54.962400Z","iopub.execute_input":"2025-03-28T06:17:54.962823Z","iopub.status.idle":"2025-03-28T06:17:54.979119Z","shell.execute_reply.started":"2025-03-28T06:17:54.962782Z","shell.execute_reply":"2025-03-28T06:17:54.978116Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plt.figure(figsize=(20, 5))\nplt.plot(lib_data[:sampling_rate*6])\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T06:21:46.585513Z","iopub.execute_input":"2025-03-28T06:21:46.585933Z","iopub.status.idle":"2025-03-28T06:21:46.878569Z","shell.execute_reply.started":"2025-03-28T06:21:46.585886Z","shell.execute_reply":"2025-03-28T06:21:46.877461Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## High pass filter","metadata":{}},{"cell_type":"code","source":"import scipy\nfrom scipy import signal as sp_signal\ndef butter_highpass_filter(data, cutoff=300, fs=sampling_rate, order=10):\n    normal_cutoff = cutoff / (fs / 2)\n    b, a = sp_signal.butter(order, normal_cutoff, btype=\"high\", analog=False)\n    y = sp_signal.filtfilt(b, a, data)\n    return y\n\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T06:37:44.281453Z","iopub.execute_input":"2025-03-28T06:37:44.281813Z","iopub.status.idle":"2025-03-28T06:37:44.287970Z","shell.execute_reply.started":"2025-03-28T06:37:44.281785Z","shell.execute_reply":"2025-03-28T06:37:44.286524Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"high_filtered_data  = butter_highpass_filter(lib_data[:sampling_rate*6])\nplt.figure(figsize=(20, 5))\nplt.plot(high_filtered_data)\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T06:37:44.447493Z","iopub.execute_input":"2025-03-28T06:37:44.447919Z","iopub.status.idle":"2025-03-28T06:37:44.750955Z","shell.execute_reply.started":"2025-03-28T06:37:44.447871Z","shell.execute_reply":"2025-03-28T06:37:44.749797Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"display(Audio(high_filtered_data, rate=sampling_rate))","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T06:37:45.779636Z","iopub.execute_input":"2025-03-28T06:37:45.780042Z","iopub.status.idle":"2025-03-28T06:37:45.800305Z","shell.execute_reply.started":"2025-03-28T06:37:45.780009Z","shell.execute_reply":"2025-03-28T06:37:45.799102Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## Notch filter","metadata":{}},{"cell_type":"code","source":"def notch_filter(data, cutoff=600, fs=sampling_rate, q=100):\n    normal_cutoff = cutoff / (fs / 2)\n    b, a = sp_signal.iirnotch(normal_cutoff, Q=q, fs=fs)\n    y = sp_signal.filtfilt(b, a, data)\n    return y","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T06:32:53.257814Z","iopub.execute_input":"2025-03-28T06:32:53.258226Z","iopub.status.idle":"2025-03-28T06:32:53.263576Z","shell.execute_reply.started":"2025-03-28T06:32:53.258195Z","shell.execute_reply":"2025-03-28T06:32:53.262333Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"notch_filtered_data  = notch_filter(lib_data[:sampling_rate*6])\nplt.figure(figsize=(20, 5))\nplt.plot(notch_filtered_data)\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T06:32:53.462383Z","iopub.execute_input":"2025-03-28T06:32:53.462746Z","iopub.status.idle":"2025-03-28T06:32:53.768827Z","shell.execute_reply.started":"2025-03-28T06:32:53.462719Z","shell.execute_reply":"2025-03-28T06:32:53.767755Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"display(Audio(high_filtered_data, rate=sampling_rate))","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T06:31:06.708517Z","iopub.execute_input":"2025-03-28T06:31:06.708936Z","iopub.status.idle":"2025-03-28T06:31:06.726072Z","shell.execute_reply.started":"2025-03-28T06:31:06.708888Z","shell.execute_reply":"2025-03-28T06:31:06.724749Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## Low pass filter","metadata":{}},{"cell_type":"code","source":"def low_pass_filter(signal_data, fs, cutoff, order=4):\n    \n    b, a = sp_signal.butter(order, cutoff / (fs / 2), btype='low', analog=False)\n    filtered_signal = sp_signal.filtfilt(b, a, signal_data)\n    \n    return filtered_signal","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T06:41:56.097043Z","iopub.execute_input":"2025-03-28T06:41:56.097466Z","iopub.status.idle":"2025-03-28T06:41:56.102317Z","shell.execute_reply.started":"2025-03-28T06:41:56.097435Z","shell.execute_reply":"2025-03-28T06:41:56.101208Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"low_filtered = low_pass_filter(lib_data[:sampling_rate*6], fs= sampling_rate, cutoff=2800)\nlow_filtered_data = np.array(lib_data[:sampling_rate*6]) - np.array(low_filtered)\nplt.figure(figsize=(20, 5))\nplt.plot(notch_filtered_data)\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T06:45:00.266329Z","iopub.execute_input":"2025-03-28T06:45:00.266828Z","iopub.status.idle":"2025-03-28T06:45:00.569772Z","shell.execute_reply.started":"2025-03-28T06:45:00.266775Z","shell.execute_reply":"2025-03-28T06:45:00.568311Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"display(Audio(low_filtered_data, rate=sampling_rate))","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T06:45:01.722072Z","iopub.execute_input":"2025-03-28T06:45:01.722418Z","iopub.status.idle":"2025-03-28T06:45:01.738666Z","shell.execute_reply.started":"2025-03-28T06:45:01.722390Z","shell.execute_reply":"2025-03-28T06:45:01.737252Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## FFT based low pass filtering","metadata":{}},{"cell_type":"code","source":"def fft_low_pass(data, cutoff, rate):\n    stft = librosa.stft(data,  n_fft =int(rate * 0.093), hop_length = 128 )\n    print(stft.shape)\n    freqs = librosa.fft_frequencies(sr=rate, n_fft=stft.shape[0] * 2 - 1)\n    stft[freqs > cutoff, :] = 0  \n    \n    filtered_audio = librosa.istft(stft)\n    \n    return filtered_audio\n    ","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T06:47:52.092807Z","iopub.execute_input":"2025-03-28T06:47:52.093189Z","iopub.status.idle":"2025-03-28T06:47:52.099075Z","shell.execute_reply.started":"2025-03-28T06:47:52.093161Z","shell.execute_reply":"2025-03-28T06:47:52.097931Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"low_fft_filtered_data  = fft_low_pass(lib_data[:sampling_rate*6], rate= sampling_rate, cutoff=2800)\nplt.figure(figsize=(20, 5))\nplt.plot(low_fft_filtered_data)\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T06:47:53.066142Z","iopub.execute_input":"2025-03-28T06:47:53.066526Z","iopub.status.idle":"2025-03-28T06:47:53.688335Z","shell.execute_reply.started":"2025-03-28T06:47:53.066494Z","shell.execute_reply":"2025-03-28T06:47:53.687208Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"display(Audio(low_fft_filtered_data, rate=sampling_rate))","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T06:47:24.078532Z","iopub.execute_input":"2025-03-28T06:47:24.078912Z","iopub.status.idle":"2025-03-28T06:47:24.149403Z","shell.execute_reply.started":"2025-03-28T06:47:24.078863Z","shell.execute_reply":"2025-03-28T06:47:24.147830Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"## FFT based noise removal","metadata":{}},{"cell_type":"code","source":"def fft_noise_removal(data, cutoff, rate, noise_duration):\n    stft = librosa.stft(data,  n_fft =int(rate * 0.093), hop_length = 128 )\n    magnitude = np.abs(stft)\n    phase =  np.angle(stft)\n    noise_frames = int(noise_duration * rate / (magnitude.shape[1] / len(data)))\n    noise_estimate = np.mean(magnitude[:, :noise_frames], axis=1, keepdims=True)\n    magnitude_denoised = np.maximum(magnitude - noise_estimate, 0)\n    denoised_audio = librosa.istft(magnitude_denoised * np.exp(1j * phase))\n\n    return denoised_audio","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T06:53:19.297789Z","iopub.execute_input":"2025-03-28T06:53:19.298182Z","iopub.status.idle":"2025-03-28T06:53:19.304318Z","shell.execute_reply.started":"2025-03-28T06:53:19.298151Z","shell.execute_reply":"2025-03-28T06:53:19.303015Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"fft_noise_removed  = fft_noise_removal(lib_data[:sampling_rate*6], rate= sampling_rate, cutoff=2800, noise_duration=6)\nplt.figure(figsize=(20, 5))\nplt.plot(fft_noise_removed)\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T06:53:19.462527Z","iopub.execute_input":"2025-03-28T06:53:19.462875Z","iopub.status.idle":"2025-03-28T06:53:20.161634Z","shell.execute_reply.started":"2025-03-28T06:53:19.462849Z","shell.execute_reply":"2025-03-28T06:53:20.160555Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"display(Audio(fft_noise_removed, rate=sampling_rate))","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-03-28T06:53:34.887546Z","iopub.execute_input":"2025-03-28T06:53:34.887929Z","iopub.status.idle":"2025-03-28T06:53:34.941447Z","shell.execute_reply.started":"2025-03-28T06:53:34.887880Z","shell.execute_reply":"2025-03-28T06:53:34.939913Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null}]}