د نندارتون څیړونکي اتومات سیستمونه کاروي ترڅو لوی اکوسیسټمونه مطالعه کړي. د جنگل او جنگلی سيمو په صورت کې، دا معلومات د غږ ریکارډولو لپاره کارول کیږي چې کولی شي د مختلفو حیواناتو او حشراتو ډولونو شناسولو لپاره کارول شي. دا معلومات کولی شي د ځانګړي چاپیریال کې د ډولونو ترانسپورت ښه درکولو لپاره کارول شي. په ځینو چاپیریالونو کې، Google Research په خپل مقاله کې اشاره کوي نور، دوی د غږ په اساس د شناخت د ارزښت په یاد ولرئ: "[چې] پرندې د خوړو سیسټمونو او د جنگل د روغتیا د درک لپاره کاروي - د مثال په توګه، که په جنگل کې ډیری woodpeckers شتون لري، دا معنی لري چې ډیری کشته لرګیو شتون لري." autonomous recording units (ARUs) Separating Birdsong in the Wild د ټولګي لپاره Separating Birdsong in the Wild د ټولګي لپاره په وروستيو کې، د د رقابتي پرانیستې د ټاپو لاندې د سازمان. ImageCLEF په مختلفو ډومینونو کې د لغوي نندارتونونو څیړنې او انځورونه ترلاسه کولو کې ملاتړ کوي. د رقابتی هدف مستقیم دی: د ټولګي ماډل ډیزاین کول چې د غږ ریکارډ څخه د پرانستونو ډولونه په دقیق ډول پیژندل کیدی شي. BirdCLEF + 2025 Kaggle انځورونه BirdCLEF + 2025 انځورونه په لومړي وخت کې، دا کار د وړتیا په لټه کې نږدې نږدې نږدې نږدې نږدې نږدې نږدې نږدې نږدې نږدې ، هم د مشهور په توګه د GBV کټګوریوټر د تقریبا 11،000 پرندې ډولونو په اړه روزل کیږي او له دې امله د کټګوریو ماډل په توګه یو واضح انتخاب دی. د Google Bird Vocalization (GBV) کټګورۍ Perch د Google Bird Vocalization (GBV) کټګورۍ له دې امله، د GBV کټګورر یوازې د BirdCLEF+ 2025 د رقابتي ازموینې ډاټاټا په اړه ~60٪ دقت ترلاسه کوي. په پایله کې، يو ګمرک ماډل باید پراختیا شي. دا لارښوونې د خپل ځان د پرندې vocalization classifier جوړولو لارښوونه تفصيلات چې د GBV classifier سره په ګډه کارول کیدی شي د پرندې ډولونو په پراخه انتخاب کې رامینځته کړي. دا لارښوونې د Google تحقیق کې بیان شوي ورته بنسټیز تکنیکونه کاروي په دې ډیزاین کې د روزنې لپاره د BirdCLEF+ 2025 رقابتي ډاټا سیټ کارول کیږي. مقالې د روزنې معلوماتو د ، د ملاتړ فایلونو په شمول ، د 12 GB په اړه دی. د ډاټا سیټ جوړښت د اصلي لیږدونه او فایلونه دي: BirdCLEF+ 2025 د روزنې ډاټا سیټ birdclef_2025 |__ train_audio |__ train_soundscapes |__ test_soundscapes recording_location.txt taxonomy.csv train.csv train_audio د دی د ډاټا سیټ ترټولو لوی برخې، د 28،564 روزنې آډیو ریکارډونه شامل دي. د آډیو ریکارډونه په زیربنا کې رامینځته شوي دي، کوم چې هر یو ځانګړي پرندې ډول رامینځته کوي، د مثال په توګه: train_audio .ogg train_audio |__amakin1 |__ [AUDIO FILES] |__amekes |__ [AUDIO FILES] ... د دا فایل کولی شي د ناقانونه نومونو لخوا د پرانسانو ډولونو واقعي علمی او عام نومونو په لټه کې وکارول شي، د مثال په توګه: taxonomy.csv SUB-DIRECTORY NAME SCIENTIFIC NAME COMMON NAME amakin1 Chloroceryle amazona Amazon Kingfisher amekes Falco sparverius American Kestrel ... د رقابتي ډاټا سیټ کې 206 انفرادي پرندې ډولونه شامل دي، یعنی 206 ټولګي. لکه څنګه چې په 63 د دې ټولګي له خوا د د دې ټولګيونه په عمومي توګه د شمیره ټولګي شناختر په کارولو سره لیبل شوي دي: Introduction نه GBV Classifier Non-GBV 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, 65349, 65373, 65419, 65448, 65547, 65962, 66016, 66531, 66578, 66893, 67082, 67252, 714022, 715170, 787625, 81930, 868458, 963335, grasal4, verfly, y00678 ځینې د د کلاسونو ځانګړتیاوې: Non-GBV Limited training data. Class , for example, only contains 2 audio recordings. By contrast, class , which is a “known” class, contains 89 recordings. 1139490 amakin1 GBV Poor recording quality. Highlighting class again, both training recordings are of poor quality with one being particularly difficult to discern. 1139490 دا د 2 شرایطو له امله د وړاندیز شوي غږونو او غږونو کیفیت په اړه د ټولګي ترمنځ مهم بیلابیلو بیلابیلو سبب کیږي. په هر دوو کې د روزنې آډیو ریکارډونو ډیری او ټولګي هم د بشري خبرې شامل دي، په داسې حال کې چې د غږونکي د ریکارډ سره د معلوماتو لکه د پرنس ډول چې ریکارډ شوي او د ریکارډ د ځای په توګه. په ډیری - - په مواردو کې، نندارتونونه د ریکارډ شوي پرنس vocalizations پیژندل کیږي. GBV Non-GBV نه ټول د ټولګي بیلابیلو او د بشري خبرې نوټونو شتون کولو لپاره کارول شوي تاکتیکونه په موضوع کې بحث شوي دي په برخه کې Building the Classifier train_soundscapes د د کتابتون د تقریبا 10،000 شامل دي د آډیو نندارتونونه. لکه څنګه چې به په په برخه کې، دا آډیو ریکارډونه کولی شي د روزنې ډاټا کې د . train_soundscapes unlabeled Building the Classifier pseudo-labeling test_soundscapes د د کټګوریو پرته پرته د A دا ډاټاګرام سره پوښل شوي دي سره یو مخکښ ټولګه ازموينه غږونه کله چې د پیشکشو پایلو ته د BirdCLEF+ 2025 رقابتي وړاندې کړي. test_soundscapes readme.txt د Classifiers جوړولو د بنسټیز لارښوونې او背景 د بنسټیز لارښوونې کارول ستاسو د پرندې vocalization classifier روزنه کولو لپاره دا ده لکه څنګه: د Google څیړنې په 5 ثانیو برخو کې ریکارډ شوي آډیو تقسیم کړئ. د آډیو سیګنونو په mel spectrograms بدل کړئ. په mel spectrograms کې د انځور klasifier زده کړئ. په دې لارښوونې کې د ورته لارښوونې به ترسره شي. د انځور ټولنيزو چې د روزنې به وي د Google د د نمونوي. که تاسو د د ماډلونو کورنۍ، تاسو پوه شئ چې دوی د اغیزمن انځور پروسس لپاره ډیزاین شوي دي. EfficientNet B0 EfficientNet اغیزمنې B0 په هرصورت، مخکې له دې چې د صوتی نمونې کولی شي برخه واخلئ او په موم سپیکټروګرامونو کې بدل شي، موږ باید د ټولګي بیلابیلو او د انسان نندارتونونو ستونزو سره حل شي چې په دې کتاب کې ذکر شوي دي. په پراخه کچه، دا ستونزو به د ډاټا اضافي کولو او د غږ نمونې قطع کولو له الرې حل شي. Training Data مخکې په واقعي ډیزاین کې پوښل، د لاندې زیربنا د ځينو مختصر پیژندنې معلومات وړاندې کوي. اغیزمن ماډلونه د گوگل څیړنې د هغې د کورنۍ د نندارتون په 2019 کال کې د نمونې په توګه د موډلونه چې په دې وخت کې په اندازه او کړنو په اړه د پرمختللي موډلونو څخه لوړه وي. EfficientNet convolutional neural network ماډلونه، چې په 2021 کال کې اعلان شوي دي، نور ښه کړنو او پارامتره اغیزمنتیا وړاندې کوي. اغیزمنې2 که څه هم د روزنې د معلوماتو، EfficientNet ماډلونه د نورو ډاټا سیټونو ته لیږدول شي چې دوی د دې پروژې لپاره د ټولګي تکنالوژۍ په توګه یو جذاب انتخاب وي. انځورونه Mel سپیکټروګرامونه A mel spectrogram ده د صوتی سیگنال د بصری نمونې. دا کولای شي په غوره توګه د غږ لپاره د تودوخې نقشه analogized شي. د mel spectrogram x-axis د آډیو سیگنال د وخت اندازه رامینځته کوي، او د y-axis د سیگنال په کې د غږونو ټیټونه رامینځته کوي. په هرصورت، د ټولو ټیټونو په اوږدو کې د ټیټونو ټیټونو ښودلو لپاره، ټیټونه په ټیټونو کې ګروپ شوي دي. . دا بانډونه، په عوض، د کارولو سره د . د مینو کچه ده a د سپیکټروګرام رنګونه د ګرځنده ګرځنده ګرځنده ګرځنده ګرځنده ګرځنده ګرځنده ګرځنده ګرځنده ګرځنده ګرځنده ګرځنده ګرځنده ګرځنده ګرځنده ګرځنده ګرځنده ګرځنده ګرځنده ګرځنده ګرځنده ګرځنده ګرځنده ګرځنده ګرځنده ګرځنده ګرځنده ګرځنده ګرځنده ګرځنده ګرځنده ګرځنده ګرځنده ګرځنده mel bands mel scale logarithmic ډیزاین زما هدف د ډیزاین په بحث کې دا ده چې د لارښوونې په لوړ کچه څیړنه ورکړي چې د تفصيلاتو په اړه ډیر تفصيل نلري. د اصلي روزنې (فینټینګ) منطق په دې کې راټول کیږي ("د روزنې نوټ") چې په 4 اصلي برخو کې جوړ شوی دی: د نوټ کڅوړه برخه 1: د آډیو ډاټا لوډول. : Audio data processing. Section 2 برخه 3: د Mel سپیکټروګرام توليد او د انټرنېټ تیریدو. برخه 4: د نمونوي روزنې. تاسو به په یاد ولرئ چې د هر اصلي برخه لومړی 2 سلنه (1) د دې برخه په کارولو کې د وارداتو دي او (2) a د سلول چې په دې برخو او وروسته برخو کې کارول شوي ثابتونه تعریف کوي. Config د روزنې نندارتون په واقعیت کې پیل کیږي په دې برخه کې د اصلي Python پکونه چې په ټوله نوټ کې کارول کیږي وارد شوي دي. دا برخه هم شامل دي چې د لاسلیک لپاره منطق ("WandB") د روزنې چلولو لپاره. تاسو به خپل WandB اړتیا لرئ په نوټ کې د A د نوم استعمال . Section 0 Weights & Biases API key Kaggle Secret WANDB_API_KEY لکه څنګه چې په په برخه کې، د نښلول شوي روزنې soundcapes کولی شي د pseudo-labeling له لارې د روزنې ډاټا کې شامل شي. د نښلول شوي ډاټا کارولو په موضوع کې بحث کیږي په یاد ولرئ چې Kaggle غیر GPU چاپیریالونه د 30 GiB حافظه ته محدود دي. Training Data Section 3.5 - Pseudo-Labeling یو زده کړې ماډل وروسته د تجربې ترتیب په لاندې برخو کې بیان شوی دی دلته په Kaggle کې نشر شوي دي. که تاسو غواړئ، تاسو کولی شئ د دې ماډل په کارولو پرته خپل ځان د زده کړې او په مستقیم ډول په Running Inference برخه کې ګټه واخلئ په پرندې آوازونو غږ. یو زده کړې ماډل وروسته د تجربې ترتیب په لاندې برخو کې بیان شوی دی دلته په Kaggle کې نشر شوي دي. که تاسو غواړئ، تاسو کولی شئ د دې ماډل په کارولو پرته خپل ځان د زده کړې او په مستقیم ډول په Running Inference برخه کې ګټه واخلئ په پرندې آوازونو غږ. برخه 1 - د آډیو ډاټا لوډ د د نوټونو برخه: Audio Data Loading په BirdCLEF+ 2025 رقابتي ډاټاټا کې هغه ټولګي راټول کیږي چې د GBV ټولګي لخوا نه پوښل کیږي. د load_training_audio method له لارې خام آډیو ډاټا لیږدوي. د processed_audio لابراتوار جوړوي او د لوډ شوي آډیو ډاټا کاپی په دې لابراتوار کې د .wav فایلونو په توګه ذخیره کوي. د په دې برخه کې شامل دي a اټکل. دا اټکل د یو ډاټا ټولګي څخه لوستل شي د آډیو فایبرونو حداکثر شمېر مشخصوي. دا اټکل به د لوی ارزښت ته د اټکل په لټه کې تنظیم شي. د اطمینان لپاره چې ټول آډیو فایلونه د تاسو کولی شئ د خپل تجربې ترتیبات لپاره دا ثابت تنظیم وکړئ. د مثال په توګه، که تاسو د صوتی ډاټا له په ټولګي کې، تاسو کولی شئ اړتیا لرئ چې دا باثباته ته د وړیا حافظه خوندي کولو لپاره لږ ارزښت ته تنظیم کړئ. Config MAX_FILES 1000 non-GBV all د Method کولای شي سره د پارامتر، کوم چې د ټولګي لیست دی چې د غږونه لوستل شي. د دې پروژې لپاره، د ټولګي د لیست په توګه ذخیره شوي او د متغیر ته تادیه شوي کوم چې وروسته به د د طریقې له لارې پارامترونه load_training_audio classes non-GBV missing_classes load_training_audio classes # `missing_classes` list ['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', '65349', '65373', '65419', '65448', '65547', '65962', '66016', '66531', '66578', '66893', '67082', '67252', '714022', '715170', '787625', '81930', '868458', '963335', 'grasal4', 'verfly', 'y00678'] تاسو کولی شئ د 206 BirdCLEF+ 2025 ټولې ټولګي د ټولګي پارامتر په توګه یو خالی لیست ته ورسیږي. تاسو کولی شئ د 206 BirdCLEF+ 2025 ټولې ټولګي د ټولګي پارامتر په توګه یو خالی لیست ته ورسیږي. د load_training_audio موډل هم د اختیاري boolean use_slice پارامتر تایید کوي. دا پارامتر د LOAD_SLICE پایله سره کار کوي چې په Config سلول کې تعریف شوی دی. د use_slice پارامتر او LOAD_SLICE پایله د دې تطبیق سره کار نه کیږي. په هرصورت، دوی کولی شي د هر فایل څخه د صوتی مقدار مشخصولو لپاره کارول شي. د مثال په توګه، د هر صوتی فایل څخه یوازې 5 ثانیو صوتی لوستل، LOAD_SLICE د 160000 ته تنظیم کړئ، کوم چې د 32000 د نمونې کچه د 5 ځلې په توګه محاسبه کیږي؛ او د use_slice پارامتر ته True انتقال کړئ. د load_training_audio موډل هم د اختیاري boolean use_slice پارامتر تایید کوي. دا پارامتر د LOAD_SLICE پایله سره کار کوي چې په Config سلول کې تعریف شوی دی. د use_slice پارامتر او LOAD_SLICE پایله د دې تطبیق سره کار نه کیږي. په هرصورت، دوی کولی شي د هر فایل څخه د صوتی مقدار مشخصولو لپاره کارول شي. د مثال په توګه، د هر صوتی فایل څخه یوازې 5 ثانیو صوتی لوستل، LOAD_SLICE د 160000 ته تنظیم کړئ، کوم چې د 32000 د نمونې کچه د 5 ځلې په توګه محاسبه کیږي؛ او د use_slice پارامتر ته True انتقال کړئ. د Method accepts د Boolean parameter. کله چې دا پارامتر د منطق جوړوي a د کټګوریو او د هر غږ نمونې یو کاپی د فایل به د لیبل ته ورسيږي. د آډیو کاپیونه په زیر لیبلونو کې ذخیره شوي دي چې د ټولګي چې دوی شامل دي. په بل برخه کې کارول کیږي چې د ترمیم شوي آډیو نمونې په ډیزاین کې ذخیره کړي د BirdCLEF+ 2025 ډاټاټاټاټاټاټاټاټاټاټاټاټاټونو پرته اغیز نه کوي. load_training_audio make_copy True processed_audio .wav processed_audio د Method returns a dictionary of loaded audio data using the class names as keys. په dictionary کې هر ارزښت د فورمه د tuples لیست دی. : load_training_audio (AUDIO_FILENAME, AUDIO_DATA) {'1139490': [('CSA36389.ogg', tensor([[-7.3379e-06, 1.0008e-05, -8.9483e-06, ..., 2.9978e-06, 3.4201e-06, 3.8700e-06]])), ('CSA36385.ogg', tensor([[-2.9545e-06, 2.9259e-05, 2.8138e-05, ..., -5.8680e-09, -2.3467e-09, -2.6546e-10]]))], '1192948': [('CSA36388.ogg', tensor([[ 3.7417e-06, -5.4138e-06, -3.3517e-07, ..., -2.4159e-05, -1.6547e-05, -1.8537e-05]])), ('CSA36366.ogg', tensor([[ 2.6916e-06, -1.5655e-06, -2.1533e-05, ..., -2.0132e-05, -1.9063e-05, -2.4438e-05]])), ('CSA36373.ogg', tensor([[ 3.4144e-05, -8.0636e-06, 1.4903e-06, ..., -3.8835e-05, -4.1840e-05, -4.0731e-05]])), ('CSA36358.ogg', tensor([[-1.6201e-06, 2.8240e-05, 2.9543e-05, ..., -2.9203e-04, -3.1059e-04, -2.8100e-04]]))], '1194042': [('CSA18794.ogg', tensor([[ 3.0655e-05, 4.8817e-05, 6.2794e-05, ..., -5.1450e-05, -4.8535e-05, -4.2476e-05]])), ('CSA18802.ogg', tensor([[ 6.6640e-05, 8.8530e-05, 6.4143e-05, ..., 5.3802e-07, -1.7509e-05, -4.8914e-06]])), ('CSA18783.ogg', tensor([[-8.6866e-06, -6.3421e-06, -3.1125e-05, ..., -1.7946e-04, -1.6407e-04, -1.5334e-04]]))] ...} دا روش هم د بنسټیز اټکلونه راټولوي چې د هر ټولګي لپاره لوستل شوي معلوماتو په توګه د کچه د کڅوړې د کڅوړې د کڅوړې د کڅوړې د کڅوړې د کڅوړې د کڅوړې د کڅوړې د کڅوړې د کڅوړې د کڅوړې د کڅوړې د کڅوړې د کڅوړې. You can optionally export these statistics to inspect the data. class,sampling_rate,num_files,num_secs_loaded,num_files_loaded 1139490,32000,2,194,2 1192948,32000,4,420,4 1194042,32000,3,91,3 ... برخه 2 - د آډیو ډاټا پروسس The section of the notebook: Audio Data Processing په اختیاري ډول، د سکون برخو او غږ برخو لرې کوي ترڅو ډیری بشري نوټونه د خام آډیو څخه پاک کړي. د سکون برخو لرې کولو د آډیو سیگنال غیرقانوني برخو څخه راټول کیږي. په اختیاري ډول د کمېسيون ټولګيونو لپاره غږونه زیاتوي ترڅو د ټولګي بیلابیلو حل کې مرسته وکړي. غږونه زیاتوي (1) د تصادفي توګه تولید شوي غږ سیگنال اضافه کول، (2) د خام غږ سرعت بدلون، یا (3) د تصادفي توګه تولید شوي غږ سیگنال اضافه کول او د خام غږ سرعت بدلون. Section 2.1 - Detecting Silent Segments The method is used to "slide" over each raw audio sample and identify silent segments by comparing the value of a given segment to a specified threshold. If the RMS is below the threshold, the segment is identified as a silent segment. The following constants specified in the د دې برخه د سلول د چلند د کنټرول د نمونوي: detect_silence root-mean square (RMS) Config detect_silence SIL_FRAME_PCT_OF_SR = 0.25 SIL_FRAME = int(SR * SIL_FRAME_PCT_OF_SR) SIL_HOP = int(1.0 * SIL_FRAME) SIL_THRESHOLD = 5e-5 SIL_REPLACE_VAL = -1000 # Value used to replace audio signal values within silent segments The او د اټکلونه کولی شي بدل شي ترڅو تنظیم کړي چې څنګه د طریقې د خام آډیو په پرتله "سړک" کوي. همدارنګه، د د ارزښت کولی شي بدل شي ترڅو د سټیټ سیګنونو شناسایی په اړه د طریقې اغیزمن یا محافظه کړي. SIL_FRAME SIL_HOP SIL_THRESHOLD The method outputs a dictionary of silent segment markers for each file in each class. Audio files with no detected silent segments are identified by empty lists. {'1139490': {'CSA36389.ogg': [0, 8000, 16000, 272000, 280000, 288000, 296000, 304000], 'CSA36385.ogg': [0, 8000, 16000, 24000, 240000, 248000, 256000]}, '1192948': {'CSA36388.ogg': [0, 8000, 16000, 24000, 256000, 264000, 272000, 288000], 'CSA36366.ogg': [0, 8000, 16000, 24000, 256000, 264000, 272000, 280000, 288000], 'CSA36373.ogg': [0, 8000, 16000, 24000, 256000, 264000, 272000, 288000], 'CSA36358.ogg': [8000]}, '1194042': {'CSA18794.ogg': [], 'CSA18802.ogg': [], 'CSA18783.ogg': [0, 8000, 16000, 24000, 600000, 608000, 616000]}, '126247': {'XC941297.ogg': [], 'iNat1109254.ogg': [], 'iNat888527.ogg': [], 'iNat320679.ogg': [0], 'iNat888729.ogg': [], 'iNat146584.ogg': []}, '1346504': {'CSA18803.ogg': [0, 8000, 16000, 24000, 3000000, 3008000, 3016000], 'CSA18791.ogg': [], 'CSA18792.ogg': [], 'CSA18784.ogg': [0, 8000, 16000, 1232000, 1240000, 1248000], 'CSA18793.ogg': [0, 8000, 16000, 24000, 888000]} ...} Section 2.2 - Removing Silent Segments and Eliminating Human Annotations The په پایله کې defined cell of this section specifies if audio should be stripped of silent segments sliced to remove د انسانانو نندارتونونه USE_REMOVE_SILENCE_AND_HUMAN_ANNOT Config and ډیری USE_REMOVE_SILENCE_AND_HUMAN_ANNOT = True د method strips silent segments from audio samples using the output from the نور، دا منطق کاروي چې د یو ساده نظر په اساس د انسان نندارتونونه کاروي: ډیری غږ نمونې، د انسان نندارتونونو سره، باید د لاندې جوړښت لري: remove_silence_and_human_annot detect_silence tend | < 10s | ~1s | | | BIRDSONG | SILENCE | HUMAN ANNOTATION | The birdsong and human annotation sections themselves may contain silent segments. However, as seen in the diagram above, the bird vocalization recordings often occur within the first few seconds of audio. Therefore, a simple, if imperfect, approach to deal with human annotations is to slice audio samples at the first silent segment marker that occurs outside of a specified window, under the assumption that a human annotation follows that silent segment. The د منطق کاروي په پایله کې cell to check if a silent segment marker lies outside the window specified by , expressed in number of seconds. If it does, the logic slices the raw audio at that marker and only retains the data that occurs before it. A manual inspection of processed audio during experimentation revealed this approach to be satisfactory. However, as mentioned in the برخه، دلته دي audio recordings where the human annotation the birdsong recording. The logic described here does ځینې آډیو نمونهونه د ریکارډ شوي پرندې آوازونو اوږد سیسټمونه شتون لري او دا نمونهونه اغیزمنه نه لري. دا نمونهونه د مخکښ منطق له خوا اغیزمن نه دي او په بشپړه توګه خوندي دي. remove_silence_and_human_annot ANNOT_BREAKPOINT Config ANNOT_BREAKPOINT Training Data some مخکښ not د دوهم پایلې، ، په اختیاري ډول په پایله پروسس مرحله کې کارول کیدی شي چې د پروسس شوي آډیو يو هم ډیر پاک شوي ټوټه راټول شي. د پروسس شوي آډیو ثانیو شمیره چې تاسو غواړئ خوندي کړئ. SLICE_FRAME SLICE_FRAME د Method د پروسس شوي آډیو په ډیزاین کې د میټرو کې ذخیره کوي via the parameter, which is passed as . The method returns a dictionary of the seconds of processed audio for each class. remove_silence_and_human_annot processed_audio save_audio True total {'1139490': 14, '1192948': 29, '1194042': 24, '126247': 48, '1346504': 40, '134933': 32, '135045': 77, ...} د د پروژې په لاندې ډول کارول په ټولو ټولګيونو کې د صوتا ثانیو کچه ترلاسه کړي. get_audio_stats remove_silence_and_human_annot برخه 2.3 - د کمیتونو ټولګي لپاره د اضافي کچه محاسبه کول لکه څنګه چې په section, the classes are not balanced. Augmentation is used in this notebook section to help address the imbalance leveraging the average number of seconds of audio across all classes, as provided by the method. Classes with total seconds of processed audio the average are augmented. The method determines the number of augmentation turns for each minority class using the average number of seconds per processed audio sample. Training Data get_audio_stats لاندې get_augmentation_turns_per_class TURNS = (AVG_SECS_AUDIO_ACROSS_CLASSES - TOTAL_SECS_AUDIO_FOR_CLASS)/AVG_SECS_PER_AUDIO_SAMPLE Minority classes further below the average will have more augmentation turns versus minority classes nearer the average which will have fewer augmentation turns. The includes a constant which can be used to adjust the value for get_augmentation_turns_per_class AVG_SECS_FACTOR average number of seconds of audio across all classes. The constant can be used to make the logic more conservative or aggressive when calculating the number of augmentation turns. The includes a constant which can be used to adjust the value for get_augmentation_turns_per_class AVG_SECS_FACTOR average number of seconds of audio across all classes. The constant can be used to make the logic more conservative or aggressive when calculating the number of augmentation turns. Section 2.4 - Running Augmentations The په پایله کې defined په دې برخه کې د سلول مشخصوي که اډیو باید اضافي شي. USE_AUGMENTATIONS Config USE_AUGMENTATIONS = True لکه څنګه چې مخکې اشاره شوې ده، د آډیو اضافي کول (1) د تصادفي لګول سیگنال اضافه کولو، (2) د خام آډیو سرعت بدلولو، یا (3) د تصادفي لګول سیگنال اضافه کولو او د خام آډیو سرعت بدلولو شامل دي. او methods encapsulate the logic for adding a noise signal and changing the tempo respectively. The noise signal range and tempo change range can be adjusted via the following constants in the د سیل: add_noise change_tempo Config NOISE_RNG_LOW = 0.0001 NOISE_RNG_HIGH = 0.0009 TEMPO_RNG_LOW = 0.5 TEMPO_RNG_HIGH = 1.5 د method د augmentations کاروي چې د output څخه کاروي method. For those classes that will be augmented, the logic: run_augmentations get_augmentations_turns_per_class Randomly selects a processed audio sample (i.e. silent segments already removed) for augmentation. د لګولو لپاره د لګولو انتخاب کړئ: (1) د صدا اضافه کولو، (2) د سرعت بدلولو، یا (3) د صدا اضافه کولو او د سرعت بدلولو. په processed_audio لیږد کې د مناسب ټولګي لاندې د اضافي آډیو په ډیسک کې ذخیره کوي. While the notebook logic augments minority classes with total seconds of audio below the average, it ignores those classes with total seconds of audio above the average. This approach was taken to manage available memory and with the understanding that the class imbalance is further addressed through choice of the loss function. برخه 3 - Mel Spectrogram توليد او د انټرنېټ تیاری د section of the notebook: Mel Spectrogram Generation and Input Preparation د پروسس شوي آډیو ډاټا په روزنې او تصدیق لیستونو کې تقسیم کړئ. Splits audio into 5 second frames. Generates mel spectrograms for each 5 second audio frame. Resizes mel spectrograms to a target size of . (224, 224) Optionally loads pseudo-labeled data samples to augment training data. One-hot encodes training data and validation data labels. Constructs TensorFlow objects from training and validation data lists. Dataset Optionally uses MixUp logic to augment training data. Section 3.1 - Splitting Processed Audio Data Processed audio data is loaded from the folder. The data is split into 4 lists: processed_audio training_audio training_labels validation_audio validation_labels لیبلونه، البته، د ټولګي نومونه دي چې د آډیو مثالونو سره تړاو لري. constant defined in the cell controls the split ratio between the training and validation data lists. Processed audio data is shuffled before splitting. SPLIT Config Section 3.2 - Splitting Audio into Frames Audio is split into 5 second segments using the method, which itself uses the TensorFlow د هر آډیو مثال تقسیم کولو پروسه. په لاندې پایلې کې د cell control the split operation: frame_audio signal.frame Config FRAME_LENGTH = 5 FRAME_STEP = 5 Section 3.3 - Generating Mel Spectrograms Mel spectrograms د هر 5 ثانیو آډیو فریم تولید شوي په via the method. The following constants in the د سلول د پارامترونو ځانګړتیاوې چې د میلو سپیکټروګرامونه جوړولو لپاره کارول کیږي، لکه د میلو باندونو شمیره، د کمېسيون ټیټ، او د اعظمي ټیټ: Section 3.2 audio2melspec Config # Mel spectrogram parameters N_FFT = 1024 # FFT size HOP_SIZE = 256 N_MELS = 256 FMIN = 50 # minimum frequency FMAX = 14000 # maximum frequency The frequency band was chosen to reflect the range of most bird vocalizations. However, some bird species can vocalize outside this range. potential Section 3.4 - Resizing Mel Spectrograms د Method کارول کیږي چې د هر mel spectrogram په a Object. هر ډول object is subsequently resized to which is the input dimension expected by the EfficientNet B0 model. to_melspectrogram_image pillow Image Image (224, 224) د 3.5 برخه - د Pseudo-Labeled معلوماتو لوډول As mentioned in the section, the directory contains nearly 10,000 د پرندې آوازونو غږونه. دا غږونه کولی شي د روزنې ډاټا کې د یو ساده پروسه pseudo-labeled معلوماتو د جوړولو ده لکه څنګه: Training Data train_soundscapes unlabeled pseudo-labeling Train a classifier pseudo-labeled data. without Load training soundcape آډیو فایلونه. د هر آډیو soundscape په 5 ثانیو فریمونو کې رامینځته کړئ. Generate mel spectrograms for each 5 second frame and resize to . (224, 224) په هر re-sized مړ سپیکټروګرام کې د پیژندنې چلولو په کارولو سره چې تاسو په لومړي مرحله کې روزل شوي. Keep the predictions above a desired confidence level and save the mel spectrograms for those predictions to disk under the predicted class label. Train your classifier again using the psuedo-labeled data. Pseudo-labeled معلوماتو کولی شي ستاسو د classifier فعالیت ښه کړي. که تاسو غواړئ ستاسو د ځان د pseudo-labeled معلوماتو د توليد لپاره، تاسو باید د کاري برخو سره د classifier روزنه وکړي pseudo-labeled data. Then, use your classifier to create your own set of pseudo-labeled data using the process outlined above. Finally, re-train your classifier using your pseudo-labeled data. د د دې پیژندل کولو لپاره د pseudolabeled معلوماتو کارول نه کوي. که څه هم، تاسو کولی شئ د پایلې نندارې چې په د Pseudo-Labeled معلوماتو جوړولو لپاره. Running Inference د نصب په پایله کې د سیل د Pseudo-Labeled معلوماتو د کارولو پرته. USE_PSEUDO_LABELS Config False Section 3.6 - Encoding Labels د method is used to one-hot encode labels. One-hot encoded labels are returned as NumPy arrays and added to the training label and validation label lists. process_labels Section 3.7 - Converting Training and Validation Data Lists to TensorFlow Objects Dataset د معلوماتو The TensorFlow د TensorFlow جوړولو لپاره کارول کیږي objects from the training and validation data lists. The method is called on the training د batching مخکې د روزنې ډاټا shuffle. method is called on both Objects ته د روزنې او تصدیق ډاټا سیټونه بیلګه کړي. د constant in the د cell د batch اندازه کنترول کوي. data.Dataset.from_tensor_slices Dataset shuffle Dataset batch Dataset BATCH_SIZE Config Section 3.8 - Using MixUp to Augment Training Data As you may already know, MixUp is a data augmentation technique that effectively mixes two images together to create a new data sample. The class for the blended image is a blend of the classes associated with the original 2 images. The method, along with the Method، د اختیاري MixUp منطق encapsulates. mix_up sample_beta_distribution This implementation uses MixUp to augment the training data. To use MixUp, set the په پایله کې cell to . USE_MIXUP Config True برخه 4 - د نمونوي روزنې The د نوټونو برخه: Model Training یو WandB پروژې رامینځته کوي او رامینځته کوي ترڅو د روزنې چلولو ډاټا راټول کړي. د EfficientNet B0 ماډل جوړ او کمپلیس کوي. Trains the model. په ډیزاین کې د زده کړې ماډل ذخیره کړئ. برخه 4.1 - Initializing او configuring WandB پروژې ډاډه وکړئ چې تاسو خپل WandB API کلیدونه د Kaggle Secret په توګه د نوټ نوټ سره تړل شوي دي او چې د نوټ نوټ په 0 برخه کې د WandB لاس ریکارډ لارښوونې لارښوونې لارښوونې لارښوونې د سچ سره ورسیږي. ډاډه وکړئ چې تاسو خپل WandB API کلیدونه د Kaggle Secret په توګه د نوټ نوټ سره تړل شوي دي او چې د نوټ نوټ په 0 برخه کې د WandB لاس ریکارډ لارښوونې لارښوونې لارښوونې لارښوونې د سچ سره ورسیږي. د cell in this section includes logic to initialize and configure a new WandB project (if the project doesn't already exist) that will capture training run data: Config wandb.init(project="my-bird-vocalization-classifier") config = wandb.config config.batch_size = BATCH_SIZE config.epochs = 30 config.image_size = IMG_SIZE config.num_classes = len(LABELS) البته، تاسو کولی شئ د پروژې نوم بدل کړئ ستاسو د WandB پروژې نوم ته اړتیا. my-bird-vocalization-classifier Section 4.2 - Building and Compiling the EfficientNet B0 Model د د پروژې کارول کیږي چې له ImageNet وزنونو سره او پرته د اوپر کټګورۍ سره د Pre-trained EfficientNet B0 ماډل لوډ کړي: build_model model = EfficientNetB0(include_top=False, input_tensor=inputs, weights="imagenet") د نمونوي ته د ImageNet مخکښ وزنونو څخه ګټه واخلئ چې په هدف کې یوازې (i.e. train) layers in the final stage of the model: نندارتون # Unfreeze last `unfreeze_layers` layers and add regularization for layer in model.layers[-unfreeze_layers:]: if not isinstance(layer, layers.BatchNormalization): layer.trainable = True layer.kernel_regularizer = tf.keras.regularizers.l2(L2_RATE) د مداخله in the د سلول د لګولو لپاره کچه کچه مشخصوي. UNFREEZE_LAYERS Config د ماډل ترټولو ډیزاین شوی سره د پایلې کچه چې د شمیره پرندې ډولونو ټولګي ته وده ورکوي. د کڅوړې دنده په توګه انتخاب شوی چې د ټولګي بیلابیلو حل کې مرسته کوي. او په پایله کې د ګازو د ګازو په کارولو سره کارول کیږي. Dense Categorical focal cross-entropy LOSS_ALPHA LOSS_GAMMA Config برخه 4.3 - د نمونوي روزنې د د پروګرام د پروګرام د پروګرام د پروګرام د پروګرام د د روزنې لپاره. یادونه چې a د تلیفون، ، کارول کیږي په ځای کې د تعلیق نرخ ثابت. د لومړنۍ تعلیق نرخ د زده کړې کچه په 2 مرحلهونو کې په اساس د انعام حساب کې کم کیږي. د زده کړې کچه د زده کړې کچه د په پایله کې د سلګون fit model Section 4.2 learning rate scheduler lr_scheduler 4.0e-4 EPOCHS Config برخه 4.4 - د سپارلو موډل د د پروګرام د پروګرام د پروګرام د پروګرام د پروګرام د روزنې وروسته د موډل په ډیسک کې ذخیره کړي. save model model.save("bird-vocalization-classifier.keras") د روزنې پایلې Running the notebook should produce the following training results, assuming you used the experimental setup that was described in the section: Building the Classifier لکه څنګه چې وګورئ، د دقت د 90٪ څخه ډیر دی او د تصدیق دقت د 30 عمرونو وروسته په اړه 70٪ دی. په هرصورت، لکه څنګه چې وګورئ، د تصدیق دقت په عمده توګه بدل کیږي. دا بدلون په برخه کې د ټولګي بیلابیلو سره د موجودې یادښت سره د اضافي افزایشاتو کارولو محدودیت لري چې په بشپړه توګه د بیلابیلو حل کړي. پایلې ښيي چې د ماډل د روزنې ډاټا په اړه د بیلابیلو څخه رسیږي او نه عمده کوي او همدارنګه به امید وي. په هرصورت، د ماډل کولی شي د GBV کټګورر سره د اصل هدف سره سم د پیژندنې لپاره کارول شي. Running Inference دا ("inference notebook") can be used for running inference. The inference notebook logic uses both the GBV classifier model and the model that you trained in the preceding section. It runs inference on the unlabeled soundscapes files in the directory. Each soundscapes audio file is split into 5 second frames. The په پایله کې defined د سیل د نوټ نوټ کنټرول د soundcapes آډیو فایلونو شمېر چې د پایلو لپاره لوستل کیږي. د نوټ کڅوړه train_soundscapes MAX_FILES Config Section 0 د پایلو نوټ لومړی د GBV کټګوریو کارولو په کارولو سره پیژندل کیږي. د 143 BirdCLEF+ 2025 رقابتي ډاټاټاټ کلاسونو لپاره پیژندل کیږي چې د GBV کټګوریو لپاره معلوم شوي دي. که د 143 "تقریبا" کټګوریو په منځ کې د عالي احتمال په پرتله یا برابر دی ، نو د GBV مخکښ ټولګي به د حقیقت ټولګي په توګه انتخاب شي. که د 143 "تولید شوی" ټولګيونو تر منځ د حداکثریت لاندې دی ، دا فرض کیږي چې د حقیقت ټولګي د 63 ټولګيونو په منځ کې دی چې د GBV ټولګي لپاره "غیر معلوم" دي - دا دی چې د مخکښ برخه کې د ماډل روزنې لپاره کارول شوي ټولګي. د منطق وروسته د finetuned ماډل په کارولو سره پیژندل کیږي. د دې پیژندنې ټولګه څخه پیژندل شوي ټولګي وروسته به د حقیقت ټولګي په توګه انتخاب شي. GBV_CLASSIFIER_THRESHOLD GBV_CLASSIFIER_THRESHOLD د constant is defined in the د سیل د پیژندنې نوټ. پیژندنې د 2 فایلونو ته د محصول دي: GBV_CLASSIFIER_THRESHOLD Config Section 5 د preds.csv فایل چې د هر 5 ثانیو soundscape ټیټ لپاره د پیژندنې او پیژندنې احتمالي راټولوي. A file that captures all class probabilities in the format for the BirdCLEF+ 2025 competition. submission.csv Set the path to your finetuned model in the first cell of of the inference notebook. Section 4 په لومړي سلول کې ستاسو د finetuned ماډل ته راهیسې تنظیم کړئ د Inference نوټ څخه. Section 4 د راتلونکي کار د روزنې نوټ کولی شي د 206 BirdCLEF+ 2025 ټولګيونو کې د يو موډل روزنې لپاره کارول شي، چې د GBV ټولګي اړتیا ته اړتیا نلري، لږ تر لږه د رقابتي ډاټا سیټ په اړه. لکه څنګه چې مخکې ذکر شوي، د خالی لیست له لارې، ، د method به د ټول کلاسونو څخه آډیو ډاټا لوستل شي. and پایلې کولی شي د لوډ شوي آډیو مقدار محدودولو لپاره کارول شي ترڅو د Kaggle نوټونه چاپیریال په محدودیتونو کې کار وکړي. [] load_training_audio MAX_FILES LOAD_SLICE البته، یو دقیق تر ماډل کولی شي د روزنې ډاټا د لوی مقدار په کارولو سره روزل شي. په عادي توګه، د ټولګي بیلابیلو د حل لپاره د اضافي تعداد کارول شي. برسېره پر دې، نور اضافي تکنیکونه، لکه CutMix، کولی شي د روزنې ډاټا اضافي وده ورکړي. په هرصورت، دا ستراتیژۍونه د پرمختګ چاپیریال ډیر قوي ته اړتيا لري.