boy1dr / SpleeterGui

Windows desktop front end for Spleeter - AI source separation
Apache License 2.0
2.35k stars 254 forks source link

No such file or directory on a song that is about 11min length #84

Closed MohammedMehdiTBER closed 3 years ago

MohammedMehdiTBER commented 3 years ago

I'm using the latest version and it doesn't want to process long files as it seems.

Starting processing of all songs Processing C:\Users\Windo\Music\Artist\Artist - Song.mp3 Finished processing all songs

Run complete ffmpeg version git-2019-11-01-53c21c2 Copyright (c) 2000-2019 the FFmpeg developers built with gcc 9.2.1 (GCC) 20191010 configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf libavutil 56. 35.101 / 56. 35.101 libavcodec 58. 60.100 / 58. 60.100 libavformat 58. 33.100 / 58. 33.100 libavdevice 58. 9.100 / 58. 9.100 libavfilter 7. 66.100 / 7. 66.100 libswscale 5. 6.100 / 5. 6.100 libswresample 3. 6.100 / 3. 6.100 libpostproc 55. 6.100 / 55. 6.100 C:\Users\Windo\Documents\Spleeter\Artist - Song\vocals.wav: No such file or directory

boy1dr commented 3 years ago

Have you increased the "Maximum song length" value?

MohammedMehdiTBER commented 3 years ago

Have you increased the "Maximum song length" value?

Yes, I did; I have increased it to 7200.

MohammedMehdiTBER commented 3 years ago

Have you increased the "Maximum song length" value?

Another Error

Starting processing of all songs Processing C:\Users\Windo\Downloads\Racing Extinction (2015) [YTS.AG]\Racing.Extinction.2015.720p.BluRay.x264-[YTS.AG].mp4 Traceback (most recent call last): File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\runpy.py", line 193, in _run_module_as_main File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\runpy.py", line 85, in _run_code File "C:\Users\Windo\AppData\Roaming\SpleeterGUI\python\Lib\site-packages\spleeter__main.py", line 256, in entrypoint() File "C:\Users\Windo\AppData\Roaming\SpleeterGUI\python\Lib\site-packages\spleeter__main.py", line 250, in entrypoint spleeter() File "C:\Users\Windo\AppData\Roaming\SpleeterGUI\python\Lib\site-packages\typer\main.py", line 214, in call__ return get_command(self)(*args, **kwargs) File "C:\Users\Windo\AppData\Roaming\SpleeterGUI\python\Lib\site-packages\click\core.py", line 829, in call return self.main(args, kwargs) File "C:\Users\Windo\AppData\Roaming\SpleeterGUI\python\Lib\site-packages\click\core.py", line 782, in main rv = self.invoke(ctx) File "C:\Users\Windo\AppData\Roaming\SpleeterGUI\python\Lib\site-packages\click\core.py", line 1259, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "C:\Users\Windo\AppData\Roaming\SpleeterGUI\python\Lib\site-packages\click\core.py", line 1066, in invoke return ctx.invoke(self.callback, ctx.params) File "C:\Users\Windo\AppData\Roaming\SpleeterGUI\python\Lib\site-packages\click\core.py", line 610, in invoke return callback(args, kwargs) File "C:\Users\Windo\AppData\Roaming\SpleeterGUI\python\Lib\site-packages\typer\main.py", line 497, in wrapper return callback(use_params) # type: ignore File "C:\Users\Windo\AppData\Roaming\SpleeterGUI\python\Lib\site-packages\spleeter__main.py", line 131, in separate synchronous=False, File "C:\Users\Windo\AppData\Roaming\SpleeterGUI\python\Lib\site-packages\spleeter\separator.py", line 382, in separate_to_file sources = self.separate(waveform, audio_descriptor) File "C:\Users\Windo\AppData\Roaming\SpleeterGUI\python\Lib\site-packages\spleeter\separator.py", line 325, in separate return self._separate_librosa(waveform, audio_descriptor) File "C:\Users\Windo\AppData\Roaming\SpleeterGUI\python\Lib\site-packages\spleeter\separator.py", line 264, in _separate_librosa stft = self._stft(waveform) File "C:\Users\Windo\AppData\Roaming\SpleeterGUI\python\Lib\site-packages\spleeter\separator.py", line 219, in _stft return np.concatenate(out, axis=2 - inverse) File "<array_function internals>", line 6, in concatenate MemoryError: Unable to allocate array with shape (245381, 2049, 2) and data type complex128 Finished processing all songs

Run complete

boy1dr commented 3 years ago

error clearly says MemoryError: Unable to allocate you have set the maximum song length beyond your computer's capability

MohammedMehdiTBER commented 3 years ago

error clearly says MemoryError: Unable to allocate you have set the maximum song length beyond your computer's capability

Well, you're right it needs to allocate about 8GiB only for separation that what it said to me when I used the --verbose. So there is no way out for me but to tear the audio into pieces.

boy1dr commented 3 years ago

it's a complicated piece of software. Deezer are still releasing Spleeter updates so i don't think they are finished with it yet

MohammedMehdiTBER commented 3 years ago

it's a complicated piece of software. Deezer are still releasing Spleeter updates so i don't think they are finished with it yet

I think the updates are not going to end as the sound models are quite infinite except if they released an option that analyzes the song itself and separate it according to the difference of human hearing and to inject human hearing in a python package, I think this is way hard for an AI to handle as long as there is no fundamentalist rule discovered by which to distinguish one sound from another except to use previously trained models which are not perfect in according to the attended human audio separation.

boy1dr commented 3 years ago

There are a limited number of different type Piano's, a few different types of Trumpet's, etc etc etc But there is infinite variations possible when mixed down with Analog FX/DSP applied. Teaching AI to separate Trumpet from Piano in a song isn't all that difficult a concept in the spectral domain but removing the FX/DSP from the mixed down audio would be darn near impossible. It could however recreate the source audio with new instruments after source separation...but without the effects and original instruments you will end up with something that sounds more like MIDI than the original song.

MohammedMehdiTBER commented 3 years ago

There are a limited number of different type Piano's, a few different types of Trumpet's, etc etc etc But there is infinite variations possible when mixed down with Analog FX/DSP applied. Teaching AI to separate Trumpet from Piano in a song isn't all that difficult a concept in the spectral domain but removing the FX/DSP from the mixed down audio would be darn near impossible. It could however recreate the source audio with new instruments after source separation...but without the effects and original instruments you will end up with something that sounds more like MIDI than the original song.

Well according to my experiences with Spleeter, I found difficult for the AI to detect a song especially if it had some reverb and mixing like you said but also It doesn't distinguish between a human vocal and an instrument solo. May be the project needs a way to distinguish between similar sounds in the future than to train more modules.

boy1dr commented 3 years ago

putting it simply...if 2 instruments occupy the same frequency with a similar wave form....which of the two instrument stems get that piece of audio?. Perhaps when computers get faster and can process the full audio spectrum we will have better success.

MohammedMehdiTBER commented 3 years ago

putting it simply...if 2 instruments occupy the same frequency with a similar wave form....which of the two instrument stems get that piece of audio?. Perhaps when computers get faster and can process the full audio spectrum we will have better success.

Maybe if they created an algorithm that separates different waveforms and tries to encode a separated known sound without clipping from those waves like redrawing the phoneme without effects.