occ-ai / obs-localvocal

OBS plugin for local speech recognition and captioning using AI
https://obsproject.com/forum/resources/localvocal-live-stream-ai-assistant.1769/
GNU General Public License v2.0
359 stars 28 forks source link

RPM package version for Fedora/RHEL #53

Closed andersonid closed 8 months ago

andersonid commented 8 months ago

Thank you so much for all your effort and sharing your awesome work, royshilkrot! Could you please add a RPM package version to install localvocal on Fedora/RHEL?

Thanks!

royshil commented 8 months ago

@andersonid i wonder if instructions on how to build and install on Fedora would suffice like https://github.com/occ-ai/obs-backgroundremoval/blob/main/docs/BUILDING-FEDORA.md

github unfortunately don't provide a Fedora runner and i'm not sure RPMs created on Ubuntu would work...

andersonid commented 8 months ago

@andersonid i wonder if instructions on how to build and install on Fedora would suffice like https://github.com/occ-ai/obs-backgroundremoval/blob/main/docs/BUILDING-FEDORA.md

github unfortunately don't provide a Fedora runner and i'm not sure RPMs created on Ubuntu would work...

Thanks, mate. I will try it out and give you a feedback.

andersonid commented 8 months ago

Hi @royshil I had followed you doc recommendation, and its works like a charm on obs-backgroundremoval, but got this error trying to compile obs-localvocal while running build-linux script.

   =>   Configuring obs-localvocal...
Preset CMake variables:

  ENABLE_FRONTEND_API:BOOL="TRUE"
  ENABLE_QT:BOOL="TRUE"

-- The C compiler identification is GNU 13.2.1
-- The CXX compiler identification is GNU 13.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Threads: TRUE  
-- Performing Test HAVE_STDATOMIC
-- Performing Test HAVE_STDATOMIC - Success
-- Qt version found: 6
-- Found OpenGL: /usr/lib64/libOpenGL.so   
-- Found WrapOpenGL: TRUE  
-- Found XKB: /usr/lib64/libxkbcommon.so (found suitable version "1.5.0", minimum required is "0.5.0") 
-- Found WrapVulkanHeaders: /usr/include  
-- Found ZLIB: /usr/lib64/libz.so (found version "1.2.13")  
-- Found OpenSSL: /usr/lib64/libcrypto.so (found version "3.0.9")  
-- Configuring done (2.1s)
-- Generating done (0.0s)
-- Build files have been written to: /home/anobre/Downloads/obs-plugins/obs-localvocal/build_x86_64
   =>   Building obs-localvocal...
[4/19] Performing download step (git clone) for 'Whispercpp_Build'
Cloning into 'Whispercpp_Build'...
HEAD is now at f96e1c5 sync : ggml (backend v2, k-quants, CUDA opts, Metal opts, etc.) (#1422)
Submodule 'bindings/ios' (https://github.com/ggerganov/whisper.spm) registered for path 'bindings/ios'
Cloning into '/home/anobre/Downloads/obs-plugins/obs-localvocal/build_x86_64/Whispercpp_Build-prefix/src/Whispercpp_Build/bindings/ios'...
Submodule path 'bindings/ios': checked out '44b39fd4ec616a9ce66635e36045372d03dd45e0'
[7/19] Performing configure step for 'Whispercpp_Build'
-- The C compiler identification is GNU 13.2.1
-- The CXX compiler identification is GNU 13.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Git: /usr/bin/git (found version "2.41.0") 
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE  
-- CMAKE_SYSTEM_PROCESSOR: x86_64
-- x86 detected
-- Configuring done (0.3s)
-- Generating done (0.0s)
-- Build files have been written to: /home/anobre/Downloads/obs-plugins/obs-localvocal/build_x86_64/Whispercpp_Build-prefix/src/Whispercpp_Build-build
[8/19] Performing build step for 'Whispercpp_Build'
[1/6] Building C object CMakeFiles/whisper.dir/ggml-alloc.c.o
[2/6] Building C object CMakeFiles/whisper.dir/ggml-backend.c.o
[3/6] Building C object CMakeFiles/whisper.dir/ggml-quants.c.o
[4/6] Building C object CMakeFiles/whisper.dir/ggml.c.o
[5/6] Building CXX object CMakeFiles/whisper.dir/whisper.cpp.o
/home/anobre/Downloads/obs-plugins/obs-localvocal/build_x86_64/Whispercpp_Build-prefix/src/Whispercpp_Build/whisper.cpp: In function ‘whisper_full_params whisper_full_default_params(whisper_sampling_strategy)’:
/home/anobre/Downloads/obs-plugins/obs-localvocal/build_x86_64/Whispercpp_Build-prefix/src/Whispercpp_Build/whisper.cpp:3779:5: warning: missing initializer for member ‘whisper_full_params::logits_filter_callback’ [-Wmissing-field-initializers]
 3779 |     };
      |     ^
/home/anobre/Downloads/obs-plugins/obs-localvocal/build_x86_64/Whispercpp_Build-prefix/src/Whispercpp_Build/whisper.cpp:3779:5: warning: missing initializer for member ‘whisper_full_params::logits_filter_callback_user_data’ [-Wmissing-field-initializers]
/home/anobre/Downloads/obs-plugins/obs-localvocal/build_x86_64/Whispercpp_Build-prefix/src/Whispercpp_Build/whisper.cpp: At global scope:
/home/anobre/Downloads/obs-plugins/obs-localvocal/build_x86_64/Whispercpp_Build-prefix/src/Whispercpp_Build/whisper.cpp:161:29: warning: ‘ggml_tensor* ggml_mul_mat_pad(ggml_context*, ggml_tensor*, ggml_tensor*, int)’ defined but not used [-Wunused-function]
  161 | static struct ggml_tensor * ggml_mul_mat_pad(struct ggml_context * ctx, struct ggml_tensor * x, struct ggml_tensor * y, int pad = 32) {
      |                             ^~~~~~~~~~~~~~~~
[6/6] Linking CXX static library libwhisper.a
[9/19] Performing install step for 'Whispercpp_Build'
-- Installing: /home/anobre/Downloads/obs-plugins/obs-localvocal/build_x86_64/Whispercpp_Build-prefix/lib/static/libwhisper.a
-- Installing: /home/anobre/Downloads/obs-plugins/obs-localvocal/build_x86_64/Whispercpp_Build-prefix/include/whisper.h
[19/19] Linking CXX shared module obs-localvocal.so
FAILED: obs-localvocal.so 
: && /usr/bin/c++ -fPIC -O2 -g -DNDEBUG   -shared  -o obs-localvocal.so CMakeFiles/obs-localvocal.dir/obs-localvocal_autogen/mocs_compilation.cpp.o CMakeFiles/obs-localvocal.dir/src/plugin-main.c.o CMakeFiles/obs-localvocal.dir/src/transcription-filter.cpp.o CMakeFiles/obs-localvocal.dir/src/transcription-filter.c.o CMakeFiles/obs-localvocal.dir/src/whisper-processing.cpp.o CMakeFiles/obs-localvocal.dir/src/model-utils/model-downloader.cpp.o CMakeFiles/obs-localvocal.dir/src/model-utils/model-downloader-ui.cpp.o  /usr/lib64/libobs-frontend-api.so.29  _deps/libcurl_fetch-src/lib/libcurl.a  libplugin-support.a  /usr/lib64/libobs.so.29  /usr/lib64/libQt6Widgets.so.6.5.2  /usr/lib64/libQt6Gui.so.6.5.2  /usr/lib64/libGLX.so  /usr/lib64/libOpenGL.so  /usr/lib64/libQt6Core.so.6.5.2  /usr/lib64/libssl.so  /usr/lib64/libcrypto.so  /usr/lib64/libz.so  Whispercpp_Build-prefix/lib/static/libwhisper.a && :
/usr/bin/ld: libplugin-support.a(plugin-support.c.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: failed to set dynamic section sizes: bad value
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
royshil commented 8 months ago

@andersonid the error suggests that libplugin-support.a wasn't built with -fPIC i've merged a change to add -fPIC on linux can you git pull master and try the build again?

royshil commented 8 months ago

@andersonid are you getting any luck building for fedora?

andersonid commented 8 months ago

@andersonid are you getting any luck building for fedora?

Thank you so much, mate! It's now installed and visually working on my filters dialog for audio inputs... Now I will try to get the entire solution working with your youtube tutorial.

Thank you again for sharing this awesome work!!!!