essentia
essentia copied to clipboard
A prebuild streaming_extractor_music with Gaia high level features support
Thanks for the amazing work. But it is extremely hard to make things working.
I just want streaming_extractor_music static binary that supports high-level Gaia models in https://essentia.upf.edu/svm_models/, preferably the lastest versions. My attempts to build in my system have already failed. I couldn't find a docker image that has gaia2. And I couldn't make my image from https://github.com/MTG/essentia-docker/blob/master/nightly/Dockerfile.ubuntu18.04-nightly.
I will thank you a lot if you give us a docker image / prebuild binary with gaia2 and models and a simple profile.yml file like this:
highlevel:
compute: 1
svm_models: ['models/danceability.history', 'models/genre_electronic.history', 'models/ismir04_rhythm.history', 'models/mood_electronic.history', 'models/mood_relaxed.history', 'models/timbre.history', 'models/gender.history', 'models/genre_rosamerica.history', 'models/mood_acoustic.history', 'models/mood_happy.history', 'models/mood_sad.history', 'models/tonal_atonal.history', 'models/genre_dortmund.history', 'models/genre_tzanetakis.history', 'models/mood_aggressive.history', 'models/mood_party.history', 'models/moods_mirex.history','models/voice_instrumental.history']
My dockerfile so far:
FROM ubuntu:18.04
ENV LANG C.UTF-8
RUN apt-get update \
&& apt-get -y upgrade \
&& apt-get install -y python3-numpy python3-six \
libfftw3-3 libyaml-0-2 libtag1v5 libsamplerate0 python3-yaml \
libavcodec57 libavformat57 libavutil55 libavresample3 git \
&& rm -rf /var/lib/apt/lists/*
RUN mkdir /essentia && cd /essentia && git clone https://github.com/MTG/essentia.git
RUN cd /essentia && git clone https://github.com/MTG/gaia.git
RUN apt-get update \
&& apt-get install -y build-essential python3-dev libeigen3-dev \
libfftw3-dev libavcodec-dev libavformat-dev libavresample-dev \
libsamplerate0-dev libtag1-dev libyaml-dev \
libqt4-dev swig pkg-config \
libavutil-dev libchromaprint-dev
RUN cd /essentia/gaia && python3 waf configure && python3 waf && python3 waf install \
&& cd /essentia/essentia && python3 waf configure --with-vamp --with-gaia --with-static-examples \
--with-example=streaming_extractor_music,streaming_extractor_freesound,streaming_extractor_music_svm \
&& python3 waf && python3 waf install && ldconfig \
&& apt-get remove -y build-essential libyaml-dev libfftw3-dev libavcodec-dev \
libavformat-dev libavutil-dev libavresample-dev python-dev libsamplerate0-dev \
libtag1-dev python-numpy-dev libeigen3-dev \
libqt4-dev libchromaprint-dev \
&& apt-get autoremove -y \
&& apt-get clean -y \
&& rm -rf /var/lib/apt/lists/* \
&& cd / && rm -rf /essentia/essentia && rm -rf /essentia/gaia
ENV PYTHONPATH /usr/local/lib/python3/dist-packages
WORKDIR /essentia
Build errors:
/usr/bin/ld: cannot find -ltag
/usr/bin/ld: cannot find -lQtCore
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/libavformat.a(avisynth.o): In function `avisynth_read_header':
(.text.unlikely+0x19c): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/bin/ld: cannot find -lchromaprint
collect2: error: ld returned 1 exit status
/usr/bin/ld: cannot find -ltag
/usr/bin/ld: cannot find -lQtCore
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/libavformat.a(avisynth.o): In function `avisynth_read_header':
(.text.unlikely+0x19c): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/bin/ld: cannot find -lchromaprint
collect2: error: ld returned 1 exit status
Waf: Leaving directory `/essentia/essentia/build'
Build failed
-> task in 'essentia_streaming_extractor_freesound' failed with exit status 1 (run with -v to display more information)
-> task in 'essentia_streaming_extractor_music' failed with exit status 1 (run with -v to display more information)
The command '/bin/sh -c cd /essentia/gaia && python3 waf configure && python3 waf && python3 waf install && cd /essentia/essentia && python3 waf configure --with-vamp --with-gaia --with-static-examples --with-example=streaming_extractor_music,streaming_extractor_freesound,streaming_extractor_music_svm && python3 waf && python3 waf install && ldconfig && apt-get remove -y build-essential libyaml-dev libfftw3-dev libavcodec-dev libavformat-dev libavutil-dev libavresample-dev python-dev libsamplerate0-dev libtag1-dev python-numpy-dev libeigen3-dev libqt4-dev libchromaprint-dev && apt-get autoremove -y && apt-get clean -y && rm -rf /var/lib/apt/lists/* && cd / && rm -rf /essentia/essentia && rm -rf /essentia/gaia' returned a non-zero code: 1
Take a look at the Dockerfile used in Acousticbrainz: https://github.com/metabrainz/acousticbrainz-server/blob/master/Dockerfile This compiles streaming_extractor_music_svm with gaia support
I've successfully built Essentia 2.1-beta5 with current gaia master by modifying one of the original Dockerfiles from Essentia: https://gist.github.com/daniele-athome/3f7c3c241e7483e7b6454a9229031ca5