ddc icon indicating copy to clipboard operation
ddc copied to clipboard

Latest essentia seem to have broken Mel analyzers

Open Clpsplug opened this issue 6 years ago • 1 comments

With essentia 2.1.beta4 (because I needed to catch up with the latest ffmpeg,) I am getting this error in infer/ddc_server.py:

Creating Mel analyzers
Traceback (most recent call last):
  File "ddc_server.py", line 309, in <module>
    analyzers = create_analyzers(nhop=441)
  File "/Users/cplug/gits/ddc/infer/extract_feats.py", line 20, in create_analyzers
    sampleRate=fs)
  File "/usr/local/opt/essentia/lib/python2.7/site-packages/essentia/standard.py", line 44, in __init__
    self.configure(**kwargs)
  File "/usr/local/opt/essentia/lib/python2.7/site-packages/essentia/standard.py", line 64, in configure
    self.__configure__(**kwargs)
RuntimeError: Error while configuring MelBands: TriangularBands: the number of spectrum bins is insufficient for the specified number of triangular bands. Use zero padding to increase the number of FFT bins.

The MelBands has been malfunctioning on the certain situation as has been discussed on https://github.com/MTG/essentia/issues/142.
Unfortunately, DDC had such situation and latest essentia won't allow this anymore.

Looks like that for the function create_analyzers in extract_feats.py, you either need to double the values of nffts parameter or reduce the value of mel_nband, but both are creating issue elsewhere.
If I do either of those 'fixes,' I get this error when I try to create a chart from my audio. I'll try to read what's going on myself, but for now, I'll report the issue.

Traceback (most recent call last):
  File "ddc_client.py", line 9, in <module>
    print s.create_chart(artist, title, audio_fp, diffs)
  File "/Users/cplug/.pyenv/versions/2.7.14/lib/python2.7/xmlrpclib.py", line 1243, in __call__
    return self.__send(self.__name, args)
  File "/Users/cplug/.pyenv/versions/2.7.14/lib/python2.7/xmlrpclib.py", line 1602, in __request
    verbose=self.__verbose
  File "/Users/cplug/.pyenv/versions/2.7.14/lib/python2.7/xmlrpclib.py", line 1283, in request
    return self.single_request(host, handler, request_body, verbose)
  File "/Users/cplug/.pyenv/versions/2.7.14/lib/python2.7/xmlrpclib.py", line 1316, in single_request
    return self.parse_response(response)
  File "/Users/cplug/.pyenv/versions/2.7.14/lib/python2.7/xmlrpclib.py", line 1493, in parse_response
    return u.close()
  File "/Users/cplug/.pyenv/versions/2.7.14/lib/python2.7/xmlrpclib.py", line 800, in close
    raise Fault(**self._stack[0])
xmlrpclib.Fault: <Fault 1: "<class '__main__.CreateChartException'>:Unknown chart creation exception">

Clpsplug avatar May 24 '18 05:05 Clpsplug

Thx for logging this. I have been meaning to do a large overhaul of DDC for a while which would remove the dependency on essentia and update tensorflow to the >1.0 era. Accordingly, I don't plan on patching support for essentia 2.1.beta4. If you come up with something, please submit a PR

chrisdonahue avatar Jun 01 '18 21:06 chrisdonahue