Allow absubmit to run high-level extraction locally #4249
Replies: 9 comments 5 replies
-
Ah, neat!! I actually didn't know that the software for high-level feature extraction was readily available; I thought the only expedient way was server-side. Seems like a great idea to add this to enable fully-local feature extraction. |
Beta Was this translation helpful? Give feedback.
-
For anyone lost: https://beets.readthedocs.io/en/stable/plugins/absubmit.html |
Beta Was this translation helpful? Give feedback.
-
Sounds like this will soon become the only way to get acoustic data: https://blog.metabrainz.org/2022/02/16/acousticbrainz-making-a-hard-decision-to-end-the-project/ |
Beta Was this translation helpful? Give feedback.
-
Hello, |
Beta Was this translation helpful? Give feedback.
-
It looks like BeetsPluginXtractor already implements this high-level extraction. |
Beta Was this translation helpful? Give feedback.
-
Yes BeetsPluginXtractor does that already. It would be wonderful to see some contribution there. @adamjakab gave me permission a couple of months ago. I can merge stuff. The only drawback is that the Essentia extractors are required to be built manually by the user. There are pre-built binaries by @doctorfree for several Linux derivates though, which he provides since he requires them as a dependency for his own project https://github.com/doctorfree/MusicPlayerPlus Download a release here to get the pre-built extractors: https://github.com/doctorfree/mpplus-essentia They are provided for Arch, Debian, Fedora and CentOS distros. |
Beta Was this translation helpful? Give feedback.
-
As for your original idea in this thread @jackwilsdon: I had that thought a couple of months ago when I tried to get BeetsPluginXtractor running on my Mac. The high-level extractors (SVM models) need to fit with the low-level streaming_extractor_music binary. Unfortunately the Essentia project does not provide the fitting ones. AcousticBrainz used extractor binary 2.1 beta2, which we can still download here: https://essentia.upf.edu/extractors/ But unfortunately the SVM models for the high level extractions are not available in that version. What we can download though, is SVM models version 2.1 beta5 which we could get here: https://essentia.upf.edu/svm_models/ but as tried to explain above, we are missing an extractor binary for that version. I have not managed to build the extractor on macOS though, I think I hit a bug back then.... If anyone's interested I can try to find post my progress and details about that here... I hope I remember all this correctly, it's been some time.... The main message is though: I'm very happy @doctorfree ships a pre-built package, at least for Linux, which I'm very thankful for and use every day. HTH |
Beta Was this translation helpful? Give feedback.
-
I've just added a chapter to the https://github.com/adamjakab/BeetsPluginXtractor README explaining how the precompiled BTW as of the time of writing, these packages are available for Arch-like, Debian-like and RPMish Linux distros! 👍 |
Beta Was this translation helpful? Give feedback.
-
I've just released a new version of BeetsPluginXtractor. It's available via A couple of fixes and some handy new features. Read the release notes here: https://github.com/adamjakab/BeetsPluginXtractor/releases/tag/v0.4 |
Beta Was this translation helpful? Give feedback.
-
It'd be nice if
absubmit
could run high-level extraction locally (like AcousticBrainz does when we submit them the low-level data extracted bystreaming_extractor_music
).The main goal I'd have for this is the ability to tag tracks without MBIDs, as that currently isn't possible (to upload to AcousticBrainz all tracks must have MBIDs).
Another benefit is that we wouldn't need to round-trip the data up to AcousticBrainz (via
absubmit
) and then download it again (viaacousticbrainz
) to tag music with the extracted data, as it could all be done locally instead.The user would need a copy of the SHM high-level extractor and accompanying models, but these seem readily available online: https://github.com/metabrainz/acousticbrainz-server/blob/b1722e4791b7767a0d9f7e4e2f3d5843c3ad1d9e/Dockerfile#L62-L80
For reference, here's the code that AcousticBrainz uses at the moment to extract the high-level data from the low-level data we currently send them: https://github.com/metabrainz/acousticbrainz-server/blob/24494db50fe45f1610ee47bd6f49769519f80d79/hl_extractor/hl_calc.py
Would this be a welcome feature in the
absubmit
plugin? It's something we'd obviously leave disabled by default, but it seems like a useful option to have.Beta Was this translation helpful? Give feedback.
All reactions