Analyze recordings from colony before swarming using "audiohealth"

About

This is about the progress of the OSBH audio analyzer related to different parametrizations regarding filter coefficients and feature extraction algorithms. We use our wrapper program audiohealth for comfortable comparison of different classifier strategies.

Dear @Jabors: We turned back to the audio samples from Tim Williams as analyzed in our first steps about one month ago, see also Rate vitality of bee colony via analysing its sound. The audio sample “Sound Inside a Swarming Bee Hive -25 to -15 minutes” is obviously of special interest, as it reflects a colony in pre-swarm state.

Results

The former decision tree based classifier strategy successfully detects the pre-swarm state, while the newer logistic regression based classifier strategies don’t.

Reproduce

Download audio file

$ youtube-dl --extract-audio --audio-format vorbis 'https://www.youtube.com/watch?v=sE02T8B2LfA'
# [download] Destination: Sound Inside a Swarming Bee Hive  -25 to -15 minutes-sE02T8B2LfA.ogg

Analyze using decision tree classifier (1.0)

$ audiohealth analyze --analyzer tools/osbh-audioanalyzer/bin/test --audiofile samples/Sound\ Inside\ a\ Swarming\ Bee\ Hive\ \ -25\ to\ -15\ minutes-sE02T8B2LfA.ogg --strategy dt-1.0

Duration: 600s
Strategy: dt-1.0

==================
Sequence of states
==================
pre-swarm, pre-swarm, pre-swarm, pre-swarm, pre-swarm, pre-swarm, pre-swarm, pre-swarm, active, active, active, active, active, active, active, active, active, active, active, active, pre-swarm, pre-swarm, pre-swarm, pre-swarm, pre-swarm, pre-swarm, pre-swarm, pre-swarm, pre-swarm, pre-swarm, pre-swarm, pre-swarm, active, active, active, active, active, active, active, active, active, pre-swarm, pre-swarm, active, pre-swarm, active, active, active, active, active, pre-swarm, active, active, active, active, active, active, active, active, active

===================
Compressed timeline
===================
  0s -  80s   pre-swarm       ========
 80s - 200s   active          ============
200s - 320s   pre-swarm       ============
320s - 410s   active          =========
410s - 430s   pre-swarm       ==
430s - 440s   active          =
440s - 450s   pre-swarm       =
450s - 500s   active          =====
500s - 510s   pre-swarm       =
510s - 600s   active          =========

==============
Total duration
==============
       360s   active          ====================================
       240s   pre-swarm       ========================

Analyze using logistic regression classifier (2.0: Jun 29, 2017)

Duration: 600s
Strategy: lr-2.0

==================
Sequence of states
==================
swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, active, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm, swarm

===================
Compressed timeline
===================
  0s - 360s   swarm           ====================================
360s - 370s   active          =
370s - 600s   swarm           =======================

==============
Total duration
==============
       590s   swarm           ===========================================================
        10s   active          =

Analyze using logistic regression classifier (2.1: Jul 7, 2017)

Duration: 600s
Strategy: lr-2.1

==================
Sequence of states
==================
collapsed, collapsed, collapsed, collapsed, collapsed, collapsed, collapsed, collapsed, swarm, swarm, swarm, swarm, collapsed, collapsed, collapsed, collapsed, collapsed, collapsed, collapsed, collapsed, missing_queen, collapsed, collapsed, collapsed, collapsed, collapsed, collapsed, collapsed, collapsed, collapsed, collapsed, collapsed, collapsed, collapsed, collapsed, missing_queen, collapsed, collapsed, collapsed, collapsed, collapsed, collapsed, collapsed, collapsed, collapsed, collapsed, collapsed, collapsed, swarm, collapsed, collapsed, collapsed, swarm, collapsed, collapsed, collapsed, swarm, collapsed, collapsed, collapsed

===================
Compressed timeline
===================
  0s -  80s   collapsed       ========
 80s - 120s   swarm           ====
120s - 200s   collapsed       ========
200s - 210s   missing_queen   =
210s - 350s   collapsed       ==============
350s - 360s   missing_queen   =
360s - 480s   collapsed       ============
480s - 490s   swarm           =
490s - 520s   collapsed       ===
520s - 530s   swarm           =
530s - 560s   collapsed       ===
560s - 570s   swarm           =
570s - 600s   collapsed       ===

==============
Total duration
==============
       510s   collapsed       ===================================================
        70s   swarm           =======
        20s   missing_queen   ==
1 Like

Hi Andreas,

The Pre-Swarm state was removed from the first version of the logistic
regression classifier. We do not have enough data for the classifier to
be accurate in this stage, since we also trained it using Tim Williams
audio.

1 Like

Dear Javier,

thank you for giving us a look behind the scenes. Good luck for gathering more audio data!

With kind regards,
Andreas.

Thanks!

If you guys want me to retrain using your data ping me when someone
updates something new and I’ll be sure to include it in latest versions.
I also meant that we don’t have enough data for Pre-Swarming,
specifically. For the rest we do have a good chunk as of now :).

Best regards,

Javier