MTG / essentia

C++ library for audio and music analysis, description and synthesis, including Python bindings
http://essentia.upf.edu
GNU Affero General Public License v3.0
2.77k stars 525 forks source link

output from streaming_extractor_music is sometimes missing data #444

Open alastair opened 8 years ago

alastair commented 8 years ago

These two files should be submissions for the same recording, but the ?n=3 one is missing some data. https://acousticbrainz.org/13d80abb-bd9e-497e-964e-068890675d2a/low-level?n=2 https://acousticbrainz.org/13d80abb-bd9e-497e-964e-068890675d2a/low-level?n=3

This causes an error message during high level computation:

Descriptor rhythm.beats_loudness_band_ratio.median could not be found in pool

but it's probably bad that this is being skipped, and we should work out what is happening.

dbogdanov commented 7 years ago

There were only two beats in this example with the equal rhythm.beats_loudness_band_ratio vector values in both beats. I can not reproduce the issue for this case:

import essentia.standard as es
import essentia

p = essentia.Pool()
p.add('beats_loudness_band_ratio', [0.831027269363, 0.0475060530007, 0.0289933905005, 0.0272559877485, 0.0305270217359, 0.0438187196851])
p.add('beats_loudness_band_ratio', [0.831027269363, 0.0475060530007, 0.0289933905005, 0.0272559877485, 0.0305270217359, 0.0438187196851])

stats = es.PoolAggregator(defaultStats=["mean", "var", "median", "min", "max", "dmean", "dmean2", "dvar", "dvar2"])(p)

print p.descriptorNames()
print stats.descriptorNames()
print stats['beats_loudness_band_ratio.median']

['beats_loudness_band_ratio']
['beats_loudness_band_ratio.dmean', 'beats_loudness_band_ratio.dmean2', 'beats_loudness_band_ratio.dvar', 'beats_loudness_band_ratio.dvar2', 'beats_loudness_band_ratio.max', 'beats_loudness_band_ratio.mean', 'beats_loudness_band_ratio.median', 'beats_loudness_band_ratio.min', 'beats_loudness_band_ratio.var']
[ 0.83102727  0.04750605  0.02899339  0.02725599  0.03052702  0.04381872]
dbogdanov commented 7 years ago

We'll need to find out more examples with missing median value.

alastair commented 7 years ago

Here are some more: http://acousticbrainz.org/b17215b7-bb57-4913-8b7c-d59a2eded521/low-level?n=1 http://acousticbrainz.org/c7cf4cf0-9b20-4b84-97a9-04f7ebd797b8/low-level?n=0 http://acousticbrainz.org/7160ccfd-89a6-4b79-8d91-be198058c6a0/low-level?n=0 http://acousticbrainz.org/2c1347ca-6621-4dc0-8921-595ca0e73d73/low-level?n=0 http://acousticbrainz.org/79b4f94f-f583-44ef-aa0b-562d687b294c/low-level?n=0 http://acousticbrainz.org/6ec6f9b7-833a-4ffa-9cd8-7cccd7bd3900/low-level?n=0 http://acousticbrainz.org/469725e4-63dd-4be3-853e-2d8949e4dbd4/low-level?n=0 http://acousticbrainz.org/d641e3f5-4756-40e6-ab50-009c8f71680f/low-level?n=0 http://acousticbrainz.org/3f4adb1a-bd28-4b25-bff3-72ca7ce638db/low-level?n=1 http://acousticbrainz.org/3f4adb1a-bd28-4b25-bff3-72ca7ce638db/low-level?n=8 http://acousticbrainz.org/13d80abb-bd9e-497e-964e-068890675d2a/low-level?n=0 http://acousticbrainz.org/13d80abb-bd9e-497e-964e-068890675d2a/low-level?n=3

dbogdanov commented 7 years ago

All these examples except the last two contain zero number of beats, therefore median was missing. This was recently fixed. We need more examples with non-zero amount of beats.

alastair commented 7 years ago

http://acousticbrainz.org/eac6bcb8-325c-4f6e-8ead-408067251da9/low-level?n=0 http://acousticbrainz.org/eac6bcb8-325c-4f6e-8ead-408067251da9/low-level?n=1 http://acousticbrainz.org/67666ed6-f2f4-4b0f-a8f6-6308e3b0e745/low-level?n=0 http://acousticbrainz.org/25ad0ed6-9c97-4742-94d3-40fa60375ae2/low-level?n=0 http://acousticbrainz.org/32e8ba0a-8316-4527-bec2-33fd1e41363f/low-level?n=1 http://acousticbrainz.org/69af64a9-8a01-4916-87c6-06a53297d22b/low-level?n=0 http://acousticbrainz.org/baf0deb1-911f-498d-8299-bc9d3ff531f6/low-level?n=0 http://acousticbrainz.org/90fc782f-b9fc-4119-a673-873fa62a3a3d/low-level?n=0