-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
several small build issues #163
Comments
Thank you very much for reporting these problems. This is invaluable feedback. So I'm getting down to fixing.... :) |
The fix: 278507b
A bit embarrassing. I didn't catch this because in all Speech Note packages (Arch, Flatpak, SFOS) ffmpeg is always compiled from source.
Fixed. Thanks for the patch :)
Great suggestion. Fixed.
Most likely this happens because you also build Piper. Piper uses "patched" version on eSpeak therefore
Fixed
Fixed Speech Note is a "Frankenstein" application. It has a lot of dependencies, but any third-party libraries or executables that are compiled from source are installed in I would love to see Speech Note package for OpenSUSE. If you need anything to be changed or added to build scripts just let me know or make a PR. |
libdir.patch.gz
|
Thanks for the new patches! Update: 8c806da
Fixed
Fixed
Fixed
Indeed, all Python dependencies are not included in the build script. The user must install them manually on her/his system if they need them. These dependencies are huge in size, so I don't see the point of bundling them. The exception is Flatpak, which contains all Python libraries, so the Flatpak package is extremely large and everyone complains about it ;) The list on Python packages that user can install via
In addition, in the non-Flatpak version there is an option to set a custom path to Python libraries. This is useful if the user wants to install the libraries in venv.
Thanks for catching that. I completely overlooked it. Fixed.
Yes, I noticed that too. I don't know how to fix it now, but keep trying... |
I have a couple of more questions. The flatpak build set the environment variable:
I'm wondering if for my build I have to set them too. |
Hi
No, there is no need to set them. They only make sense for the Flatpak environment. Most likely, the second one is not even needed in Flatpak.
Thank you for noticing this. Yes, there is a patch. I recommend building FFmpeg from source. Speech Note will work with official (unpatched) FFmpeg, but in very specific use cases (e.g. TTS on subtitles with automatic duration adjustment) the sound quality will be noticeably worse. The patch solves this problem. |
I'm guessing that the problem is located in cmake/translations.cmake. |
I think I was able to fix it. I had to rewrite the translation generator a bit. It seems to be working fine now :) Fix: 7e66592 In addition, I noticed that linking with FFmpeg 7.x was not possible. This has also been resolved. Fix: 67b61cf |
The fix for parallel-build works. The build does not fail anymore or with this one: This error does not happen often. When it does, I just restart the build |
I have found a problem with openvino. Here is what happens. [D] 09:36:00.923 0x7f8d9557de00 add_openvino_devices:813 - scanning for openvino devices Since speechnote uses dlopen to access libopenvino_c.so, the rpm build [D] 09:49:36.924 0x7f08d665be00 add_openvino_devices:813 - scanning for openvino devices This time the software failed to detect any openvino device. [D] 09:54:56.924 0x7fbe6465be00 add_openvino_devices:813 - scanning for openvino devices Would it be possible for speechnote to detect openvino devices |
Hi
Thanks for the verification!
Most likely the problem is that all these parallel whisper.cpp builds are trying to install the same header files at the same time. This 01d78ad forces sequential build so hopefully the problem should not occur.
I tried to find something in the OpenVINO documentation, but was unsuccessful :-( Perhaps enabling OpenVINO is not the best idea. To be honest, it doesn't provide much speed increase. At the moment it is enabled only for the CPU and I am considering removing it in the future. Quite recently I added support for Vulkan 5042164 acceleration. It works great with Intel, AMD and NVIDIA graphics cards and doesn't require those huge dependencies like CUDA or ROCm. Having Vulkan, I think OpenVINO is obsolete. |
I have two remarks about speechnote 4.7.0.
/var/lib/build/ccache/bin/c++ -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -O3 -DNDEBUG -Wl,--as-needed -Wl,-z,now -L/home/abuild/rpmbuild/BUILD/dsnote-4.7.0/build/../xkb/libxkbcommon-1.6.0/build//usr/lib64 -pie -flto -fno-fat-lto-objects -Wl,--disable-new-dtags -Wl,-pie -Wl,-rpath,/usr/share/dsnote/lib CMakeFiles/dsnote.dir/dsnote_autogen/mocs_compilation.cpp.o CMakeFiles/dsnote.dir/src/main.cpp.o CMakeFiles/dsnote.dir/dsnote_autogen/NTHHH2CSJL/qrc_resources.cpp.o CMakeFiles/dsnote.dir/dsnote_autogen/JU62CA5L7X/qrc_translations.cpp.o -o dsnote -L/home/abuild/rpmbuild/BUILD/dsnote-4.7.0/build/external/lib libdsnote_lib.a -lpthread -ldl -lz -lpulse /usr/lib64/libQt5Multimedia.so.5.15.12 /usr/lib64/libQt5DBus.so.5.15.12 /usr/lib64/libQt5Xml.so.5.15.12 /usr/lib64/libQt5QuickControls2.so.5.15.12 /usr/lib64/libQt5Widgets.so.5.15.12 -lX11 /usr/lib64/libXtst.so /usr/lib64/libXinerama.so -lxkbcommon -lxkbcommon-x11 -lxkbcommon -lxcb -lxcb-xkb /usr/lib64/libQt5X11Extras.so.5.15.12 external/lib/libqhotkey.a external/lib/libxdo.a external/lib/librnnoise-nu.a -larchive -lfmt external/lib/libvad.a -llzma -lRHVoice_core -lRHVoice external/lib/libespeak-ng.a external/lib/libpiper_api.a external/lib/libspdlog.a external/lib/libpiper_phonemize.a -lonnxruntime external/lib/libssplit.a external/lib/libpcre2-8.a external/lib/libpcre2-posix.a /usr/lib64/libpython3.11.so -laprilasr -lrubberband -lfftw3 external/lib/libavfilter.a external/lib/libavdevice.a external/lib/libavformat.a external/lib/libavcodec.a external/lib/libswresample.a external/lib/libswscale.a external/lib/libavutil.a external/lib/libmp3lame.a external/lib/libvorbis.a external/lib/libvorbisenc.a external/lib/libvorbisfile.a external/lib/libogg.a external/lib/libopus.a -ltag -lz -lnumbertext-1.0 external/lib/libhtml2md.a /usr/lib64/libQt5Quick.so.5.15.12 /usr/lib64/libQt5QmlModels.so.5.15.12 /usr/lib64/libQt5Qml.so.5.15.12 /usr/lib64/libQt5Network.so.5.15.12 /usr/lib64/libXi.so /usr/lib64/libXext.so /usr/lib64/libX11.so /usr/lib64/libQt5Gui.so.5.15.12 /usr/lib64/libQt5Core.so.5.15.12 -lpulse -lX11 -lxkbcommon -lxkbcommon-x11 -lxcb -lxcb-xkb external/lib/libqhotkey.a external/lib/libxdo.a external/lib/librnnoise-nu.a -larchive -lfmt external/lib/libvad.a -llzma -lRHVoice_core -lRHVoice external/lib/libespeak-ng.a external/lib/libpiper_api.a external/lib/libspdlog.a external/lib/libpiper_phonemize.a -lonnxruntime external/lib/libssplit.a external/lib/libpcre2-8.a external/lib/libpcre2-posix.a /usr/lib64/libpython3.11.so -laprilasr -lrubberband -lfftw3 external/lib/libavfilter.a external/lib/libavdevice.a external/lib/libavformat.a external/lib/libavcodec.a external/lib/libswresample.a external/lib/libswscale.a external/lib/libavutil.a external/lib/libmp3lame.a external/lib/libvorbis.a external/lib/libvorbisenc.a external/lib/libvorbisfile.a external/lib/libogg.a external/lib/libopus.a -ltag -lnumbertext-1.0 external/lib/libhtml2md.a Note in the first error line the presence of: -lX11 /usr/lib64/libXtst.so /usr/lib64/libXinerama.so In CMakeLists.txt if I replace the line: /var/lib/build/ccache/bin/c++ -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -O3 -DNDEBUG -Wl,--as-needed -Wl,-z,now -L/home/abuild/rpmbuild/BUILD/dsnote-4.7.0/build/../xkb/libxkbcommon-1.6.0/build//usr/lib64 -pie -flto -fno-fat-lto-objects -Wl,--disable-new-dtags -Wl,-pie -Wl,-rpath,/usr/share/dsnote/lib CMakeFiles/dsnote.dir/dsnote_autogen/mocs_compilation.cpp.o CMakeFiles/dsnote.dir/src/main.cpp.o CMakeFiles/dsnote.dir/dsnote_autogen/NTHHH2CSJL/qrc_resources.cpp.o CMakeFiles/dsnote.dir/dsnote_autogen/JU62CA5L7X/qrc_translations.cpp.o -o dsnote -L/home/abuild/rpmbuild/BUILD/dsnote-4.7.0/build/external/lib libdsnote_lib.a -lpthread -ldl -lz -lpulse /usr/lib64/libQt5Multimedia.so.5.15.12 /usr/lib64/libQt5DBus.so.5.15.12 /usr/lib64/libQt5Xml.so.5.15.12 /usr/lib64/libQt5QuickControls2.so.5.15.12 /usr/lib64/libQt5Widgets.so.5.15.12 -lX11 -lXtst -lXinerama -lxkbcommon -lxkbcommon-x11 -lxkbcommon -lxcb -lxcb-xkb /usr/lib64/libQt5X11Extras.so.5.15.12 external/lib/libqhotkey.a external/lib/libxdo.a external/lib/librnnoise-nu.a -larchive -lfmt external/lib/libvad.a -llzma -lRHVoice_core -lRHVoice external/lib/libespeak-ng.a external/lib/libpiper_api.a external/lib/libspdlog.a external/lib/libpiper_phonemize.a -lonnxruntime external/lib/libssplit.a external/lib/libpcre2-8.a external/lib/libpcre2-posix.a /usr/lib64/libpython3.11.so -laprilasr -lrubberband -lfftw3 external/lib/libavfilter.a external/lib/libavdevice.a external/lib/libavformat.a external/lib/libavcodec.a external/lib/libswresample.a external/lib/libswscale.a external/lib/libavutil.a external/lib/libmp3lame.a external/lib/libvorbis.a external/lib/libvorbisenc.a external/lib/libvorbisfile.a external/lib/libogg.a external/lib/libopus.a -ltag -lz -lnumbertext-1.0 external/lib/libhtml2md.a /usr/lib64/libQt5Quick.so.5.15.12 /usr/lib64/libQt5QmlModels.so.5.15.12 /usr/lib64/libQt5Qml.so.5.15.12 /usr/lib64/libQt5Network.so.5.15.12 /usr/lib64/libQt5Gui.so.5.15.12 /usr/lib64/libQt5Core.so.5.15.12 -lpulse -lX11 -lXtst -lXinerama -lxkbcommon -lxkbcommon-x11 -lxcb -lxcb-xkb external/lib/libqhotkey.a external/lib/libxdo.a external/lib/librnnoise-nu.a -larchive -lfmt external/lib/libvad.a -llzma -lRHVoice_core -lRHVoice external/lib/libespeak-ng.a external/lib/libpiper_api.a external/lib/libspdlog.a external/lib/libpiper_phonemize.a -lonnxruntime external/lib/libssplit.a external/lib/libpcre2-8.a external/lib/libpcre2-posix.a /usr/lib64/libpython3.11.so -laprilasr -lrubberband -lfftw3 external/lib/libavfilter.a external/lib/libavdevice.a external/lib/libavformat.a external/lib/libavcodec.a external/lib/libswresample.a external/lib/libswscale.a external/lib/libavutil.a external/lib/libmp3lame.a external/lib/libvorbis.a external/lib/libvorbisenc.a external/lib/libvorbisfile.a external/lib/libogg.a external/lib/libopus.a -ltag -lnumbertext-1.0 external/lib/libhtml2md.a This time what before was "-lX11 /usr/lib64/libXtst.so /usr/lib64/libXinerama.so" becomes "-lX11 -lXtst -lXinerama"
|
Thanks! Changed in f917033 use
You refer to the Flatpak manifest. Indeed, this file is not needed and can be removed. Fixed in a3db5fd. Thanks! |
I'm in the process of building and eventually packaging speechnote
on openSUSE. I have followed the indication here:
https://github.com/mkiol/dsnote#linux-direct-build and I managed to build
the program. While doing that, I found several problems that I'm reporting
here in the hope that they get fixed.
if I use -DBUILD_FFMPEG=OFF the build process stops with the error:
ld: libdsnote_lib.a(media_compressor.cpp.o): undefined reference to symbol 'avcodec_decode_subtitle2@@LIBAVCODEC_60.31_SUSE'
This is due to a typo in CMakeLists.txt. The patch ffmpeg.patch fixes the problem.
with -DBUILD_VOSK=ON the build process stops with the error:
In file included from build/external/include/kaldi/base/kaldi-error.h:34:0,
build/external/include/kaldi/base/kaldi-types.h:44:10: fatal error: fst/types.h: No such file or directory
#include <fst/types.h>
When the error happens the file fst/types.h does exist in
build/external/include/fst/types.h but the build process could not find it.
The patch vosk.patch fixes this problem.
with -DBUILD_WHISPERCPP_CLBLAST=ON and -DBUILD_WHISPERCPP_OPENVINO=OFF
the build process stops while building clblast with the error:
-- Could NOT find OpenCL library, install it or set OPENCL_ROOT
In whispercpp.cmake the build process builds the project opencl clblast and
whispercppclblast. However the project opencl is only building the opencl
headers, not the libraries. Later when the project clblast is build,
it is looking for opencl headers and libraries, it doesn't find the libraries
and it stops with the previous error.
There are two possible solution to this problem. One is to build the opecl
libraries before building clblast. The other is to requires the presence
of the opencl libraries installed before building clblast.
If -DBUILD_WHISPERCPP_OPENVINO=ON is used, then the openvino package should
be installed which in turn requires the full opencl package to be installed.
I suggest, when -DBUILD_WHISPERCPP_CLBLAST=ON is used to just requires the
presence of the opencl package to be installed. In such case it is not necessary
to download and build the opencl headers project.
with -DBUILD_ESPEAK=ON the project mbrola and espeak are downloaded and
build as it is supposed to be. However if I use -DBUILD_ESPEAK=OFF and I
install mbrola and espeak-ng before the build process starts, mbrola and
espeak are downloaded and build like when -DBUILD_ESPEAK=ON is used.
I'm not a cmake expert and I could not figure out what to change in order to
fix this issue.
with -DBUILD_RUBBERBAND=ON there should be a requirement to have installed
the package meson or the build fails.
with -DBUILD_RHVOICE=ON there should be a requirement to have installed the
package libboost_headers or the build fails.
ffmpeg.patch.gz
vosk.patch.gz
The text was updated successfully, but these errors were encountered: