Open BreezeWhite opened 3 years ago
Tested on windows 10 via docker and specifically getting errors for chord. Below is the results.
# omnizart chord transcribe song.wav
2021-08-24 07:18:54 Extracting feature
2021-08-24 07:18:57 Loading model
2021-08-24 07:18:57 Using built-in model /usr/local/lib/python3.6/dist-packages/omnizart/checkpoints/chord/chord_v1 for transcription.
2021-08-24 07:18:57 Preparing feature for model prediction
2021-08-24 07:18:57 Predicting...
Traceback (most recent call last):
File "/usr/local/bin/omnizart", line 5, in <module>
entry()
File "/usr/local/lib/python3.6/dist-packages/click/core.py", line 829, in __call__
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.6/dist-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.6/dist-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.6/dist-packages/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.6/dist-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/omnizart/cli/chord/transcribe.py", line 16, in transcribe
chord.app.transcribe(input_audio, model_path=model_path, output=output)
File "/usr/local/lib/python3.6/dist-packages/omnizart/chord/app.py", line 79, in transcribe
chord, _, _, _ = model.predict(segments_pad)
File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training.py", line 130, in _method_wrapper return method(self, *args, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training.py", line 1599, in predict
tmp_batch_outputs = predict_function(iterator)
File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/eager/def_function.py", line 780, in __call__
result = self._call(*args, **kwds)
File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/eager/def_function.py", line 807, in _call
return self._stateless_fn(*args, **kwds) # pylint: disable=not-callable
File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/eager/function.py", line 2829, in __call__
return graph_function._filtered_call(args, kwargs) # pylint: disable=protected-access
File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/eager/function.py", line 1848, in _filtered_call
cancellation_manager=cancellation_manager)
File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/eager/function.py", line 1924, in _call_flat
ctx, args, cancellation_manager=cancellation_manager))
File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/eager/function.py", line 550, in call
ctx=ctx)
File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/eager/execute.py", line 60, in quick_execute
inputs, attrs, num_outputs)
tensorflow.python.framework.errors_impl.InvalidArgumentError: ScanOp: Expected scan axis in the range [-1, 1), but got 1
[[node chord_model/decoder/Cumsum (defined at /lib/python3.6/dist-packages/omnizart/models/chord_model.py:201) ]] [Op:__inference_predict_function_18198]
Errors may have originated from an input operation.
Input Source operations connected to node chord_model/decoder/Cumsum:
chord_model/encoder/BinaryRound (defined at /lib/python3.6/dist-packages/omnizart/models/chord_model.py:226)
Function call stack:
predict_function
Same issue with MP3. Tomorrow ill have alook at the code and see whats happening,
Anyone managed to get this to work under Windows?
I suffered a lot to install omnizart. It is harder than Spleeter and Demucs. So do I need to install python2.7 32-bit than vampy using it for chord trans to work?
It is possible to run vampy on Windows with modern Python versions. You use the chroma-chordino plugin for the chord detection, I managed to get it running with the 64-bit-version of the plugin and Python 3.11. I used these dependencies: https://github.com/Vuizur/chord-recognizer/blob/main/pyproject.toml (unfortunately I had to fork vampy to get it to work, and my PRs haven't gotten merged yet. And ignore syncedlyrics + yt-dlp) and this code: https://github.com/Vuizur/chord-recognizer/blob/4d90190afb5b2a2ea290ca8714ad2e5dcb8dfbac/chord_recognizer/lyricsfetch.py#L35.
Hi @Vuizur , thanks for looking into this! I cannot see the files you gave. Are they in private repositories?
Oups, I forgot to make it public. It should work now.
It seems that the current pyYAML
version it depends on has some problems. Updating pyYAML
to 6.0.1 seems to resolve the issue.
I can't install omnizart because of Madmom, I was able to install madmom from the source but Pip still try to install the v16.1 and it failed.. Arch & Windows
Here lists the known issues when
pip install omnziart
on Windows.Madmom
You need to install VS C++ build tools first to install and compile
madmom
. After download the build tool from the official site, run the installer and select C++ Build Tools, and on the side bar, selectMSVC v142 - VS 2019 C++ x64/x86
andWindows 10 SDK
. Run the installation, reboot, and try install withpip install madmom
again.Vamp Package
The module
omnizart chord
relies onvampy
to run the feature extraction, and which was originally compiled for 32-bit python2.7 on Windows. See the discussion here. There is currently no workaround to avoid using the older version python, and the only solution would be to use the provided docker image, which could also be another pain for Windows user using the docker...