Vak 0.8.0 + TweetyNet 0.9.0 released; vak 1.0 in development

Hi all!

Just a heads up we released vak version 0.8.0 last week.

The main feature this adds is the ability to run eval + learncurve with and without post-processing transforms that clean up the model output before converting to labeled segments.
This helps to understand how these clean-ups improve model performance.

We did this in the TweetyNet paper but it required a script.
You can now just add an option post_tfm_kwargs to the [EVAL] or [LEARNCURVE] section of a .toml config file and you will get the metrics computed with and without the post-processing steps as you configure them. If you don’t specify this option, then eval and learncurve run as before.

Reminder that you can already apply these clean-ups to predictions with the options majority_vote and min_segment_dur in the [PREDICT] section of a config; the new feature is just to better assess how they change performance.

Since this required adding a a new parameter to the Model.from_config method, we also released a new version of TweetyNet that has this parameter.

The new version of vak also includes the ability to control how generation of spectrograms is parallelized with dask. You can add the option audio_dask_bag_kwargs to the [PREP] section of a config file that lets you specify keyword arguments that uses when it calls dask.bag to parallelize. E.g., audio_dask_bag_kwargs = { npartitions = 20}. For more detail see discussion here:

This was added for some work with marmoset vocalizations: GitHub - kalleknast/MarmosetCallClassification: Classification of marmoset vocalizations. Might be helpful for anyone else with large files e.g. due to high sampling rates.

Both the new vak and TweetyNet can already be installed from pip and conda-forge.

In version 1.0 we will improve the configuration format so that it will be consistent across [EVAL] and [PREDICT].
Speaking of which, version 1.0 is under development (thanks to support from @yardenc as this is helping ongoing experiments in his group).
See meta-issue / to-do list here: DEV: Version 1.0 to-do list · Issue #614 · vocalpy/vak · GitHub
And branch here: GitHub - vocalpy/vak at version-1.0
We’re trying to do as much of it in the open as possible so you can give us feedback. Please let us know what you think especially if any changes impact your workflows (@therese.koch @kaiyaprovost :grimacing: :grin: )