Solution to 6th place of audio classification competition (
zindi.africa)
This repo contains solution for 6th place of GIZ NLP Agricultural Keyword Spotter competiton
(
zindi.africa)
### **Final solution overview:**
Geometric mean of several models trained on 3-fold cross-validation.
Final submission includes:
- resnet50 trained with augmentations (gaussian noise, pitch shift, time stretch) and mixup;
- densenet161 trained with mixup;
- densenet161 trained with mixup and augmentations (gaussian noise and pitch shift)
- resneXt50 also trained with mixup and noise/pitch shift augmentations
- geometric mean of several simpler/worse-performing models (models from notebooks starting with `lvl_0_*`)
I've also used post-processing based on pretrained PANNs to replace predictions for junk test audios with simple constant based on class frequency.
### A bit more details on models:
lvl_0_resnet50_augmented.ipynb -- resnet50 with baseline spectrograms and added augmentations, training time ~1hour (all training time is measured on my machine with one 1080Ti); **Public leaderboard score 1.29**
lvl_0_densenet161_augmented.ipynb -- densenet161 trained with about the same params as the resnet50 above, training time ~1hour. **Public leaderboard score 1.36**
lvl_0_SK_custom_specs.ipynb -- a model architecture taken from here, dubbed simple_kaggle model. Uses different algorithm for generating spectrograms. Training time ~1.5hours. **Public leaderboard score 1.33**
lvl_0_resnet_melspec_mixup.ipynb -- use resnet34 to train on mel-spectrograms. Added mixup. Also started using torchaudio, so training time is reduced significantly. This model is trained on 3 folds with further test predictions averaging. Training time is ~10 minutes per fold, 30 minutes in total. **Public lb score 1.14**
lvl_1_densenet161.ipynb -- densenet161 trained on custom spectrograms with mixup. Train on 3 folds, average test predictions. Training time is ~2.15hours per fold, ~6.5hours in total. **Public lb score …