ddc
ddc copied to clipboard
Latest essentia seem to have broken Mel analyzers
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">
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