This pvaes the way for parts of the pipeline that do not produce videos,
such as JSON, images, clips etc
TODO: rename module video_producers → producers
Take the mean of non-overlapping windows of scores
Input: list of tuples in the format (time, score)
Output: list of tuples in the format (time, mean_score)
(reduced set)
Drops lowest n% (default:33%) of scdet scores, since it scores every
frame
Python being what it is, this could be a single line in another method
but pulling it out into another function:
- makes explicit what we are doing and lets us document why
- makes for easier testing
Uses pyloudnorm under the hood to determine the loudness of the supplied
media file (handles videos transparently)
TBC: some sort of limiter on the number produced
BREAKING CHANGE: source now refers to a Source object, the FE that
created the Feature is now referred to by feature_extractor; path is
dropped
This should be more consistent, plus we needed a reference to the
original Source kept around anyway -- path worked but a Source object is
more consistent and explicit about intent
This adds functionality for getting laughter by using jrgillick's
laughter detection library
NB python expects all of the feature extractor's dependencies to be
available; perhaps in future we can do something even fancier like
activating another python env
[retroactive commit]
This composes an Interval with some ancillary data:
- source (what feature extractor did we get this from)
- path (where is it now on the FS)
- score (for ranking)
TODO double check we aren't overloading the word 'source' to have two
meanings