intel / openvino-plugins-ai-audacity

A set of AI-enabled effects, generators, and analyzers for Audacity®.
GNU General Public License v3.0
732 stars 43 forks source link

openvino plugins fail when enabled and Audacity crashes with no error message (Arch Linux) #171

Closed miranda closed 2 months ago

miranda commented 2 months ago

After successfully getting the plugins to work with Audacity previously, they stopped working (something got updated in my system that broke it)

After following all instructions again and rebuliding the module, it does not work. Audacity crashes on next launch after enabling the plugins. No error messages anywhere, in terminal I just get: Aborted (core dumped)

6.8.9-zen1-1-zen, X11, KDE 6

using latest release v3.5.1-R2.1 audacity 3.5.1 openvino-git 2024.1.0.r262.g645f5c92bd4-1 whisper.cpp-openvino 1.5.5-3 python-pytorch-rocm 2.3.0-3

ashepp commented 2 months ago

It's also failing for me on Windows 11

miranda commented 2 months ago

It appears everything is all screwed up now on the Audacity side, the latest version won't build for me at all, not even getting to the openvino plugins. Problems with conan and PortMidi...

RyanMetcalfeInt8 commented 2 months ago

Hmm, well if it's any easier, the current master branch of these plugins still compiles using older 3.4.2 tag of Audacity.

miranda commented 2 months ago

Unfortunately looks like that won't help. This problem apparently goes beyond Audacity and has nothing to do with the openvino plugins. Even going back to Audacity 3.4.2 I can no longer build Audacity because it fails on PortMidi...

make[1]: *** [CMakeFiles/Makefile2:142: pm_dylib/CMakeFiles/portmidi-dynamic.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:116: pm_common/CMakeFiles/portmidi-static.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

portmidi/r234@audacity/stable: ERROR:
Package 'd2e71594f4319e9148d8468b588a82c8c2783157' build failed
portmidi/r234@audacity/stable: WARN: Build folder /home/serqetry/audacity-ai/audacity-build/conan/home/p/b/portm435c0d350cf41/b/build/Debug
ERROR: portmidi/r234@audacity/stable: Error in build() method, line 57
cmake.build()
ConanException: Error 2 while executing
Generating build profile...
Generating base host profile...
Generating options profile...
Generating host-debug profile...
Generating host-release profile...
Generating host-relwithdebinfo profile...
Generating host-minsizerel profile...
Traceback (most recent call last):
File "/home/serqetry/audacity-ai/audacity/conan/conan_runner.py", line 109, in <module>
subprocess.check_call(conan_options)
File "/usr/lib/python3.12/subprocess.py", line 413, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/home/serqetry/audacity-ai/audacity-build/conan/env/bin/conan', 'install', '/home/serqetry/audacity-ai/audacity/conan', '--build=missing', '--output-folder', '/home/serqetry/audacity-ai/audacity-build', '--remote', 'audacity-binaries-conan2', '--profile:build', '/home/serqetry/audacity-ai/audacity-build/conan/profiles/build.profile', '--profile:host', '/home/serqetry/audacity-ai/audacity-build/conan/profiles/host-debug.profile']' returned non-zero exit status 1.
CMake Error at cmake-proxies/cmake-modules/AudacityDependencies.cmake:209 (message):
Conan failed to install dependencies (1) /usr/bin/python3.12
Call Stack (most recent call first):
CMakeLists.txt:579 (include)
miranda commented 2 months ago

Over on the Audacity issue it says use -Daudacity_use_midi=system but it still doesn't work...

CMake Error at src/CMakeLists.txt:1426 (target_link_libraries):
Target "Audacity" links to:

portmidi::portmidi

but the target was not found.  Possible reasons include:

* There is a typo in the target name.
* A find_package call is missing for an IMPORTED target.
* An ALIAS target is missing.

I have no idea what to do to get the openvino plugins working again if it's completely impossible for me to build Audacity now.

RyanMetcalfeInt8 commented 2 months ago

Hmm, I'm not too sure. Looking at the last error with -Daudacity_use_midi=system, it looks like it is expecting to find portmidi package already installed onto your system. Is there a package for that which you can install, in the same way as these packages?

openvino-git 2024.1.0.r262.g645f5c92bd4-1
whisper.cpp-openvino 1.5.5-3
python-pytorch-rocm 2.3.0-3
miranda commented 2 months ago

Hmm, I'm not too sure. Looking at the last error with -Daudacity_use_midi=system, it looks like it is expecting to find portmidi package already installed onto your system. Is there a package for that which you can install, in the same way as these packages?

Yes I already had it:


portmidi 1:2.0.4-1

portmidi /usr/include/pmutil.h
portmidi /usr/include/portmidi.h
portmidi /usr/include/porttime.h
portmidi /usr/lib/cmake/PortMidi/PortMidiConfig.cmake
portmidi /usr/lib/cmake/PortMidi/PortMidiConfigVersion.cmake
portmidi /usr/lib/cmake/PortMidi/PortMidiTargets-none.cmake
portmidi /usr/lib/cmake/PortMidi/PortMidiTargets.cmake
portmidi /usr/lib/libportmidi.so
portmidi /usr/lib/libportmidi.so.2
portmidi /usr/lib/libportmidi.so.2.0.3
portmidi /usr/lib/pkgconfig/portmidi.pc
miranda commented 2 months ago

So, I had the idea to use distrobox to build the modules using the exact Ubuntu instructions, since it doesn't seem possible to build Audacity on Arch Linux anymore. Unfortunately that doesn't seem to work either, though not the same problem. Audacity builds but building the openvino plugins fails...

/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicGenerationLLM.cpp: In function ‘void NormalizeSamples(std::shared_ptr<std::vector<float> >, WaveTrack*, float)’:
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicGenerationLLM.cpp:216:31: error: ‘class WaveTrack’ has no member named ‘WideEmptyCopy’; did you mean ‘EmptyCopy’?
216 |    auto tmp_tracklist = base->WideEmptyCopy();
|                               ^~~~~~~~~~~~~
|                               EmptyCopy
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicGenerationLLM.cpp:219:37: error: expected primary-expression before ‘>’ token
219 |       (*tmp_tracklist->Any<WaveTrack>().begin())->Channels().begin();
|                                     ^
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicGenerationLLM.cpp:219:39: error: expected primary-expression before ‘)’ token
219 |       (*tmp_tracklist->Any<WaveTrack>().begin())->Channels().begin();
|                                       ^
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicGenerationLLM.cpp:224:50: error: expected primary-expression before ‘>’ token
224 |    auto pTmpTrack = *tmp_tracklist->Any<WaveTrack>().begin();
|                                                  ^
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicGenerationLLM.cpp:224:52: error: expected primary-expression before ‘)’ token
224 |    auto pTmpTrack = *tmp_tracklist->Any<WaveTrack>().begin();
|                                                    ^
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicGenerationLLM.cpp: In member function ‘virtual bool EffectOVMusicGenerationLLM::Process(EffectInstance&, EffectSettings&)’:
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicGenerationLLM.cpp:306:38: error: cannot convert ‘std::remove_reference<WaveTrack&>::type’ {aka ‘WaveTrack’} to ‘TrackList&&’
306 |             mTracks->Append(std::move(*trackFactory.Create((size_t)2, format, rate)));
|                             ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|                                      |
|                                      std::remove_reference<WaveTrack&>::type {aka WaveTrack}
In file included from /home/serqetry/audacity-ai/audacity/libraries/lib-playable-track/PlayableTrack.h:17,
from /home/serqetry/audacity-ai/audacity/libraries/lib-sample-track/SampleTrack.h:16,
from /home/serqetry/audacity-ai/audacity/libraries/lib-wave-track/WaveTrack.h:19,
from /home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicGenerationLLM.cpp:6:
/home/serqetry/audacity-ai/audacity/libraries/lib-track/Track.h:1112:28: note:   initializing argument 1 of ‘void TrackList::Append(TrackList&&, bool)’
1112 |    void Append(TrackList &&list, bool assignIds = true);
|                ~~~~~~~~~~~~^~~~
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicGenerationLLM.cpp:310:33: error: ‘class WaveTrack’ has no member named ‘GetProjectTempo’
310 |             auto tempo = track->GetProjectTempo();
|                                 ^~~~~~~~~~~~~~~
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicGenerationLLM.cpp:313:38: error: ‘class Track’ has no member named‘OnProjectTempoChange’
313 |                (*mTracks->rbegin())->OnProjectTempoChange(*tempo);
|                                      ^~~~~~~~~~~~~~~~~~~~
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicGenerationLLM.cpp:525:41: error: ‘class WaveTrack’ has no member named ‘WideEmptyCopy’; did you mean ‘EmptyCopy’?
525 |             auto tmp_tracklist = track->WideEmptyCopy();
|                                         ^~~~~~~~~~~~~
|                                         EmptyCopy
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicGenerationLLM.cpp:527:59: error: expected primary-expression before ‘>’ token
527 |             auto pTmpTrack = *tmp_tracklist->Any<WaveTrack>().begin();
|                                                           ^
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicGenerationLLM.cpp:527:61: error: expected primary-expression before ‘)’ token
527 |             auto pTmpTrack = *tmp_tracklist->Any<WaveTrack>().begin();
|                                                             ^
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicGenerationLLM.cpp:587:62: error: expected primary-expression before ‘>’ token
587 |                auto pTmpTrack = *tmp_tracklist->Any<WaveTrack>().begin();
|                                                              ^
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicGenerationLLM.cpp:587:64: error: expected primary-expression before ‘)’ token
587 |                auto pTmpTrack = *tmp_tracklist->Any<WaveTrack>().begin();
|                                                                ^
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicGenerationLLM.cpp:792:44: error: ‘class WaveTrack’ has no member named ‘WideEmptyCopy’; did you mean ‘EmptyCopy’?
792 |                auto tmp_tracklist = track->WideEmptyCopy();
|                                            ^~~~~~~~~~~~~
|                                            EmptyCopy
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicGenerationLLM.cpp:795:49: error: expected primary-expression before ‘>’ token
795 |                   (*tmp_tracklist->Any<WaveTrack>().begin())->Channels().begin();
|                                                 ^
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicGenerationLLM.cpp:795:51: error: expected primary-expression before ‘)’ token
795 |                   (*tmp_tracklist->Any<WaveTrack>().begin())->Channels().begin();
|                                                   ^
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicGenerationLLM.cpp:840:62: error: expected primary-expression before ‘>’ token
840 |                auto pTmpTrack = *tmp_tracklist->Any<WaveTrack>().begin();
|                                                              ^
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicGenerationLLM.cpp:840:64: error: expected primary-expression before ‘)’ token
840 |                auto pTmpTrack = *tmp_tracklist->Any<WaveTrack>().begin();
|                                                                ^
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicGenerationLLM.cpp:848:52: error: ‘class WaveTrack’ has no member named ‘WideEmptyCopy’; did you mean ‘EmptyCopy’?
848 |                   auto newOutputTrackList = track->WideEmptyCopy();
|                                                    ^~~~~~~~~~~~~
|                                                    EmptyCopy
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicGenerationLLM.cpp:850:75: error: expected primary-expression before ‘>’ token
850 |                   auto newOutputTrack = *newOutputTrackList->Any<WaveTrack>().begin();
|                                                                           ^
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicGenerationLLM.cpp:850:77: error: expected primary-expression before ‘)’ token
850 |                   auto newOutputTrack = *newOutputTrackList->Any<WaveTrack>().begin();
|                                                                             ^
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVWhisperTranscription.cpp: In member function ‘bool EffectOVWhisperTranscription::ProcessStereoToMono(sampleCount&, sampleCount, WaveTrack&)’:
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVWhisperTranscription.cpp:460:40: error: no matching function for call to ‘TrackList::Temporary(std::nullptr_t, std::shared_ptr<WaveTrack>&, std::nullptr_t)’
460 |    auto tempList = TrackList::Temporary(nullptr, outTrack, nullptr);
|                    ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/serqetry/audacity-ai/audacity/libraries/lib-playable-track/PlayableTrack.h:17,
from /home/serqetry/audacity-ai/audacity/libraries/lib-sample-track/SampleTrack.h:16,
from /home/serqetry/audacity-ai/audacity/libraries/lib-wave-track/WaveTrack.h:19,
from /home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVWhisperTranscription.cpp:6:
/home/serqetry/audacity-ai/audacity/libraries/lib-track/Track.h:1104:27: note: candidate: ‘static TrackListHolder TrackList::Temporary(AudacityProject*, const Holder&)’
1104 |    static TrackListHolder Temporary(AudacityProject *pProject,
|                           ^~~~~~~~~
/home/serqetry/audacity-ai/audacity/libraries/lib-track/Track.h:1104:27: note:   candidate expects 2 arguments, 3 provided
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVWhisperTranscription.cpp:474:32: error: cannot convert ‘const sampleFormat’ to ‘constSamplePtr’ {aka ‘const char*’}
474 |       outTrack->Append(buffer, floatSample, blockLen, 1, widestSampleFormat);
|                                ^~~~~~~~~~~
|                                |
|                                const sampleFormat
In file included from /home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVWhisperTranscription.cpp:6:
/home/serqetry/audacity-ai/audacity/libraries/lib-wave-track/WaveTrack.h:451:48: note:   initializing argument 2 of ‘virtual bool WaveTrack::Append(size_t, constSamplePtr, sampleFormat, size_t, unsigned int, sampleFormat)’
451 |    bool Append(size_t iChannel, constSamplePtr buffer, sampleFormat format,
|                                 ~~~~~~~~~~~~~~~^~~~~~
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVWhisperTranscription.cpp: In member function ‘bool EffectOVWhisperTranscription::ProcessWhisper(WaveTrack*, LabelTrack*, LabelTrack*)’:
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVWhisperTranscription.cpp:515:35: error: no matching function for call to ‘WaveTrack::GetFloats(float*, sampleCount&, size_t&)’
515 |       bool bOkay = mono->GetFloats(mono_samples.data(), start, total_samples);
|                    ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/serqetry/audacity-ai/audacity/libraries/lib-mixer/AudioIOSequences.h:15,
from /home/serqetry/audacity-ai/audacity/libraries/lib-sample-track/SampleTrack.h:15,
from /home/serqetry/audacity-ai/audacity/libraries/lib-wave-track/WaveTrack.h:19,
from /home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVWhisperTranscription.cpp:6:
/home/serqetry/audacity-ai/audacity/libraries/lib-mixer/WideSampleSequence.h:58:9: note: candidate: ‘bool WideSampleSequence::GetFloats(size_t, size_t, float* const*, sampleCount, size_t, bool, fillFormat, bool, sampleCount*) const’
58 |    bool GetFloats(size_t iChannel, size_t nBuffers,
|         ^~~~~~~~~
/home/serqetry/audacity-ai/audacity/libraries/lib-mixer/WideSampleSequence.h:58:9: note:   candidate expects 9 arguments, 3 provided
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicSeparation.cpp: In member function ‘virtual bool EffectOVMusicSeparation::Process(EffectInstance&, EffectSettings&)’:
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicSeparation.cpp:344:38: error: ‘class WaveTrack’ has no member named ‘WideEmptyCopy’; did you mean ‘EmptyCopy’?
344 |          auto tmp_tracklist = track->WideEmptyCopy();
|                                      ^~~~~~~~~~~~~
|                                      EmptyCopy
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicSeparation.cpp:346:56: error: expected primary-expression before ‘>’ token
346 |          auto pTmpTrack = *tmp_tracklist->Any<WaveTrack>().begin();
|                                                        ^
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicSeparation.cpp:346:58: error: expected primary-expression before ‘)’ token
346 |          auto pTmpTrack = *tmp_tracklist->Any<WaveTrack>().begin();
|                                                          ^
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicSeparation.cpp:490:50: error: ‘class WaveTrack’ has no member named ‘WideEmptyCopy’; did you mean ‘EmptyCopy’?
490 |                auto newOutputTrackList = pTrack->WideEmptyCopy();
|                                                  ^~~~~~~~~~~~~
|                                                  EmptyCopy
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicSeparation.cpp:493:45: error: ‘class WaveTrack’ has no member named ‘WideEmptyCopy’; did you mean ‘EmptyCopy’?
493 |                auto tmp_tracklist = pTrack->WideEmptyCopy();
|                                             ^~~~~~~~~~~~~
|                                             EmptyCopy
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicSeparation.cpp:495:49: error: expected primary-expression before ‘>’ token
495 |                   (*tmp_tracklist->Any<WaveTrack>().begin())->Channels().begin();
|                                                 ^
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicSeparation.cpp:495:51: error: expected primary-expression before ‘)’ token
495 |                   (*tmp_tracklist->Any<WaveTrack>().begin())->Channels().begin();
|                                                   ^
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicSeparation.cpp:508:62: error: expected primary-expression before ‘>’ token
508 |                auto pTmpTrack = *tmp_tracklist->Any<WaveTrack>().begin();
|                                                              ^
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicSeparation.cpp:508:64: error: expected primary-expression before ‘)’ token
508 |                auto pTmpTrack = *tmp_tracklist->Any<WaveTrack>().begin();
|                                                                ^
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicSeparation.cpp:511:72: error: expected primary-expression before ‘>’ token
511 |                auto newOutputTrack = *newOutputTrackList->Any<WaveTrack>().begin();
|                                                                        ^
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVMusicSeparation.cpp:511:74: error: expected primary-expression before ‘)’ token
511 |                auto newOutputTrack = *newOutputTrackList->Any<WaveTrack>().begin();
|                                                                          ^
make[2]: *** [modules/mod-openvino/CMakeFiles/mod-openvino.dir/build.make:174: modules/mod-openvino/CMakeFiles/mod-openvino.dir/OVMusicGenerationLLM.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [modules/mod-openvino/CMakeFiles/mod-openvino.dir/build.make:188: modules/mod-openvino/CMakeFiles/mod-openvino.dir/OVWhisperTranscription.cpp.o] Error 1
make[2]: *** [modules/mod-openvino/CMakeFiles/mod-openvino.dir/build.make:160: modules/mod-openvino/CMakeFiles/mod-openvino.dir/OVMusicSeparation.cpp.o] Error 1
In file included from /home/serqetry/audacity-ai/audacity/modules/mod-openvino/musicgen/musicgen_model_static.cpp:4:
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/musicgen/music_gen_decoder_full_batch2.h: In constructor ‘ov_musicgen::MusicgenDecoderModelFullStaticBatch2::MusicgenDecoderModelFullStaticBatch2(ov::Core&, ov_musicgen::MusicGenConfig&)’:
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/musicgen/music_gen_decoder_full_batch2.h:64:87: warning: narrowing conversion of ‘(max_tokens + 1)’ from ‘size_t’ {aka ‘long unsigned int’} to ‘ov::Dimension::value_type’ {aka ‘long int’} [-Wnarrowing]
64 |                port_to_shape[model->input("custom_attention_mask")] = { 1, max_tokens + 1 };
|                                                                            ~~~~~~~~~~~^~~
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/musicgen/music_gen_decoder_full_batch2.h:74:76: warning: narrowing conversion of ‘max_tokens’ from ‘size_t’ {aka ‘long unsigned int’} to ‘ov::Dimension::value_type’ {aka ‘long int’} [-Wnarrowing]
74 |                         port_to_shape[model->input(tensorname)] = { 2, 16, max_tokens, 64 };
|                                                                            ^~~~~~~~~~
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/musicgen/music_gen_decoder_full_batch2.h:181:27: warning: narrowing conversion of ‘(__gnu_cxx::__alloc_traits<std::allocator<long unsigned int>, long unsigned int>::value_type)(&(&(&((ov_musicgen::MusicgenDecoderModelFullStaticBatch2*)this)->ov_musicgen::MusicgenDecoderModelFullStaticBatch2::_past_key_values_ov.std::vector<std::vector<ov::Tensor> >::operator[](0))->std::vector<ov::Tensor>::operator[](2))->ov::Tensor::get_shape())->ov::Shape::operator[](2)’ from ‘__gnu_cxx::__alloc_traits<std::allocator<long unsigned int>, long unsigned int>::value_type’ {aka ‘long unsigned int’} to ‘ov::Dimension::value_type’ {aka ‘long int’} [-Wnarrowing]
181 |             model->reshape({ {2, _past_key_values_ov[0][2].get_shape()[2], 1024} });
|             ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/serqetry/audacity-ai/audacity/modules/mod-openvino/musicgen/musicgen_model_static.cpp:5:
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/musicgen/music_gen_decoder_full_batch1.h: In constructor ‘ov_musicgen::MusicgenDecoderModelFullStaticBatch1::MusicgenDecoderModelFullStaticBatch1(ov::Core&, ov_musicgen::MusicGenConfig&)’:
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/musicgen/music_gen_decoder_full_batch1.h:216:27: warning: narrowing conversion of ‘(__gnu_cxx::__alloc_traits<std::allocator<long unsigned int>, long unsigned int>::value_type)(&(&(&((ov_musicgen::MusicgenDecoderModelFullStaticBatch1*)this)->ov_musicgen::MusicgenDecoderModelFullStaticBatch1::_decoder_batch[0].ov_musicgen::MusicgenDecoderModelFullStaticBatch1::DecoderBatchStuff::_past_key_values_ov.std::vector<std::vector<ov::Tensor> >::operator[](0))->std::vector<ov::Tensor>::operator[](2))->ov::Tensor::get_shape())->ov::Shape::operator[](2)’ from ‘__gnu_cxx::__alloc_traits<std::allocator<long unsigned int>, long unsigned int>::value_type’ {aka ‘long unsigned int’} to ‘ov::Dimension::value_type’ {aka ‘long int’} [-Wnarrowing]
216 |             model->reshape({ {2, _decoder_batch[0]._past_key_values_ov[0][2].get_shape()[2], 1024} });
|             ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVNoiseSuppression.cpp: In member function ‘virtual bool EffectOVNoiseSuppression::Process(EffectInstance&, EffectSettings&)’:
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVNoiseSuppression.cpp:497:51: error: invalid use of member function ‘bool Track::Any() const’ (did you forget the ‘()’ ?)
497 |             auto pCopiedTrack = *copiedTrackList->Any<WaveTrack>().begin();
|                                  ~~~~~~~~~~~~~~~~~^~~
|                                                      ()
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVNoiseSuppression.cpp:497:64: error: expected primary-expression before ‘>’ token
497 |             auto pCopiedTrack = *copiedTrackList->Any<WaveTrack>().begin();
|                                                                ^
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVNoiseSuppression.cpp:497:66: error: expected primary-expression before ‘)’ token
497 |             auto pCopiedTrack = *copiedTrackList->Any<WaveTrack>().begin();
|                                                                  ^
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVNoiseSuppression.cpp:537:56: error: cannot convert ‘std::__shared_ptr_access<Track, __gnu_cxx::_S_atomic, false, false>::element_type’ {aka ‘Track’} to ‘const WaveTrack&’
537 |             pOutWaveTrack->ClearAndPaste(curT0, curT1, *copiedTrackList);
|                                                        ^~~~~~~~~~~~~~~~
|                                                        |
|                                                        std::__shared_ptr_access<Track, __gnu_cxx::_S_atomic, false, false>::element_type {aka Track}
In file included from /home/serqetry/audacity-ai/audacity/modules/mod-openvino/OVNoiseSuppression.cpp:5:
/home/serqetry/audacity-ai/audacity/libraries/lib-wave-track/WaveTrack.h:393:46: note:   initializing argument 3 of ‘void WaveTrack::ClearAndPaste(double, double, const WaveTrack&, bool, bool, const TimeWarper*, bool)’
393 |       double t0, double t1, const WaveTrack& src, bool preserve = true,
|                             ~~~~~~~~~~~~~~~~~^~~
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/musicgen/musicgen_for_conditional_generation.cpp: In constructor ‘ov_musicgen::MusicgenForConditionalGeneration::MusicgenForConditionalGeneration(ov_musicgen::MusicGenConfig&)’:
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/musicgen/musicgen_for_conditional_generation.cpp:87:53: warning: narrowing conversion of ‘(num_encodec_secs * 50)’ from ‘size_t’ {aka ‘long unsigned int’} to ‘ov::Dimension::value_type’ {aka ‘long int’} [-Wnarrowing]
87 |          model->reshape({ 1, 1, 4, num_encodec_secs * 50 });
|                                    ~~~~~~~~~~~~~~~~~^~~~
make[2]: *** [modules/mod-openvino/CMakeFiles/mod-openvino.dir/build.make:76: modules/mod-openvino/CMakeFiles/mod-openvino.dir/OVNoiseSuppression.cpp.o] Error 1
In file included from /home/serqetry/audacity-ai/l_openvino_toolkit_ubuntu22_2024.0.0.14509.34caeefd078_x86_64/runtime/include/openvino/runtime/intel_gpu/ocl/ocl_wrapper.hpp:50,
from /home/serqetry/audacity-ai/l_openvino_toolkit_ubuntu22_2024.0.0.14509.34caeefd078_x86_64/runtime/include/openvino/runtime/intel_gpu/ocl/ocl.hpp:17,
from /home/serqetry/audacity-ai/audacity/modules/mod-openvino/musicgen/music_gen_decoder_cl.cpp:5:
/usr/include/CL/cl2.hpp:18:151: note: ‘#pragma message: cl2.hpp has been renamed to opencl.hpp to make it clear that it supports all versions of OpenCL. Please include opencl.hpp directly.’
18 | #pragma message("cl2.hpp has been renamed to opencl.hpp to make it clear that it supports all versions of OpenCL. Please include opencl.hpp directly.")
|                                                                                                                           ^
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/musicgen/music_gen_decoder_cl.cpp: In constructor ‘ov_musicgen::MusicgenDecoderModelCL::MusicgenDecoderModelCL(ov::Core&, ov_musicgen::MusicGenConfig&)’:
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/musicgen/music_gen_decoder_cl.cpp:70:84: warning: narrowing conversion of‘(max_tokens + 1)’ from ‘size_t’ {aka ‘long unsigned int’} to ‘ov::Dimension::value_type’ {aka ‘long int’} [-Wnarrowing]
70 |             port_to_shape[model->input("custom_attention_mask")] = { 1, max_tokens + 1 };
|                                                                         ~~~~~~~~~~~^~~
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/musicgen/music_gen_decoder_cl.cpp:80:73: warning: narrowing conversion of‘max_tokens’ from ‘size_t’ {aka ‘long unsigned int’} to ‘ov::Dimension::value_type’ {aka ‘long int’} [-Wnarrowing]
80 |                      port_to_shape[model->input(tensorname)] = { 2, 16, max_tokens, 64 };
|                                                                         ^~~~~~~~~~
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/musicgen/music_gen_decoder_cl.cpp:232:24: warning: narrowing conversion of ‘(__gnu_cxx::__alloc_traits<std::allocator<long unsigned int>, long unsigned int>::value_type)(&(&(&((ov_musicgen::MusicgenDecoderModelCL*)this)->ov_musicgen::MusicgenDecoderModelCL::_past_key_values_ov.std::vector<std::vector<ov::Tensor> >::operator[](0))->std::vector<ov::Tensor>::operator[](2))->ov::Tensor::get_shape())->ov::Shape::operator[](2)’ from ‘__gnu_cxx::__alloc_traits<std::allocator<long unsigned int>, long unsigned int>::value_type’ {aka ‘long unsigned int’} to ‘ov::Dimension::value_type’ {aka ‘long int’} [-Wnarrowing]
232 |          model->reshape({ {2, _past_key_values_ov[0][2].get_shape()[2], 1024} });
|          ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/musicgen/music_gen_decoder_cl.cpp: In member function ‘virtual ov::Tensorov_musicgen::MusicgenDecoderModelCL::run(at::Tensor, std::optional<at::Tensor>, std::optional<at::Tensor>)’:
/home/serqetry/audacity-ai/audacity/modules/mod-openvino/musicgen/music_gen_decoder_cl.cpp:524:58: warning: narrowing conversion of ‘((ov_musicgen::MusicgenDecoderModelCL*)this)->ov_musicgen::MusicgenDecoderModelCL::_past_length’ from ‘int64_t’ {aka ‘long int’} to ‘long unsigned int’ [-Wnarrowing]
524 |                   std::array<size_t, 3> dstOrigin = { 0, _past_length,  0 };
|                                                          ^~~~~~~~~~~~
make[1]: *** [CMakeFiles/Makefile2:7128: modules/mod-openvino/CMakeFiles/mod-openvino.dir/all] Error 2
make: *** [Makefile:166: all] Error 2
RyanMetcalfeInt8 commented 2 months ago

Do you know which version of Audacity src is being checkout out in the above build? It seems like some version that is not compatible with our plugins. You should be able to build the plugins against any version of Audacity that is tag 3.4.0 or later.

Edit: To be honest, I haven't tried latest master, so there could be some changes to internal Audacity classes that could cause failures. Latest tag I've built against is 3.5.1.

miranda commented 2 months ago

Do you know which version of Audacity src is being checkout out in the above build? It seems like some version that is not compatible with our plugins. You should be able to build the plugins against any version of Audacity that is tag 3.4.0 or later.

I always forget that cloning it gives me some crazy alpha version. Thanks, I set it to the latest release (3.5.1) and everything built properly. I was hoping I could use the resulting mod-openvino.so with the Arch package installed Audacity 3.5.1 but there is a mismatch:

Mismatch between the program and library build versions detected.
The library used 3.2 (wchar_t,compiler with C++ ABI compatible with gcc 4,wx containers,compatible with 3.0),
and wxCore used 3.1.3 (wchar_t,compiler with C++ ABI compatible with gcc 4,wx containers,compatible with 3.0).

Is there a way I can make this work? Or do I just have to use distrobox to run Audacity? The openvino plugins are working that way, however my container needs a lot more work to be functional for Audacity... I don't have any audio right now. So it would be a lot better if I could build the modules in the container and use them on my real system.

RyanMetcalfeInt8 commented 2 months ago

Do you know which version of Audacity src is being checkout out in the above build? It seems like some version that is not compatible with our plugins. You should be able to build the plugins against any version of Audacity that is tag 3.4.0 or later.

I always forget that cloning it gives me some crazy alpha version. Thanks, I set it to the latest release (3.5.1) and everything built properly. I was hoping I could use the resulting mod-openvino.so with the Arch package installed Audacity 3.5.1 but there is a mismatch:

Mismatch between the program and library build versions detected.
The library used 3.2 (wchar_t,compiler with C++ ABI compatible with gcc 4,wx containers,compatible with 3.0),
and wxCore used 3.1.3 (wchar_t,compiler with C++ ABI compatible with gcc 4,wx containers,compatible with 3.0).

Is there a way I can make this work? Or do I just have to use distrobox to run Audacity? The openvino plugins are working that way, however my container needs a lot more work to be functional for Audacity... I don't have any audio right now. So it would be a lot better if I could build the modules in the container and use them on my real system.

Hmm, this kind of thing is always tricky. I'm not familiar with distrobox, but looks like it uses a completely different version of dependencies to build against -- which cause the resulting mod-openvino.so to be incompatible. You may have to use distrobox to run Audacity... unfortunately.. or figure out your 'native' Arch build issues..

miranda commented 2 months ago

Hmm, this kind of thing is always tricky. I'm not familiar with distrobox, but looks like it uses a completely different version of dependencies to build against -- which cause the resulting mod-openvino.so to be incompatible. You may have to use distrobox to run Audacity... unfortunately.. or figure out your 'native' Arch build issues..

It's ok, getting the audio working actually wasn't hard. Also ffmpeg was missing but I juse apt installed it. So I think everything is working now if I just use the Audacity installed in the container.

This is probably a better way for me to use these plugins, since updates to my Arch system will no longer break them. I'll try it for a while. Hopefully the Audacity build issues on Arch get fixed though, I'm not the only one having problems.

Thanks for your help!

RyanMetcalfeInt8 commented 2 months ago

Glad you were able to get them to work!