Projects
Extra
speechnote
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 3
View file
speechnote.changes
Changed
@@ -1,4 +1,12 @@ ------------------------------------------------------------------- +Mon Feb 3 14:20:09 UTC 2025 - Giacomo Comes <gcomes.obs@gmail.com> + +- Update to version 4.7.1 + * fix application failed to start when the processor did not + support AVX CPU extension + * new translator models: Korean to English, Japanese to English + +------------------------------------------------------------------- Sun Feb 2 22:51:41 UTC 2025 - Giacomo Comes <gcomes.obs@gmail.com> - Only build for x86_64
View file
speechnote.spec
Changed
@@ -39,7 +39,7 @@ %bcond_with download Name: speechnote -Version: 4.7.0 +Version: 4.7.1 Release: 0 Summary: App for note taking, reading and translating URL: https://github.com/mkiol/dsnote @@ -206,9 +206,6 @@ #rpath /usr/share/dsnote/lib sed -i '/-rpath/s@/lib@/share/%{aname}&@' CMakeLists.txt -#fix build error -sed -i 's@X11::Xtst@Xtst@;s@X11::Xinerama@Xinerama@' CMakeLists.txt - %build export PKG_CONFIG_PATH=%{python_sitelib}/pybind11/share/pkgconfig
View file
dsnote-4.7.0.tar.gz/CMakeLists.txt -> dsnote-4.7.1.tar.gz/CMakeLists.txt
Changed
@@ -127,14 +127,14 @@ endif() set(info_author "Michal Kosciesza") set(info_author_email "michal@mkiol.net") -set(info_copyright_year "2021-2024") +set(info_copyright_year "2021-2025") set(info_support_email "${id}@mkiol.net") set(info_webpage "https://github.com/mkiol/${id}") set(info_webpage_additional "https://gitlab.com/mkiol/${id}") set(info_license "Mozilla Public License 2.0") set(info_license_url "http://mozilla.org/MPL/2.0") set(info_license_spdx "MPL-2.0") -set(info_conf_version "96") +set(info_conf_version "97") set(info_addon_version "1.3") # if run as a flatpak pkg, the required add-on version set(info_version_type "") set(info_translators_str "Heimen Stoffels · Bérenger Arnaud · Karry · dashinfantry · \ @@ -151,7 +151,7 @@ endif() endif() -project(${id} VERSION 4.7.0) +project(${id} VERSION 4.7.1) set(arch_arm32 0) set(arch_arm64 0) @@ -504,7 +504,7 @@ if(WITH_X11_FEATURES) find_package(X11 REQUIRED) - list(APPEND deps_libs X11 X11::Xtst X11::Xinerama) + list(APPEND deps_libs X11) find_package(Qt5 COMPONENTS X11Extras REQUIRED) list(APPEND deps_libs Qt5::X11Extras) @@ -527,8 +527,9 @@ if(BUILD_XDO) include(${cmake_path}/xdo.cmake) else() - find_library(xdo_path xdo REQUIRED) - list(APPEND deps_libs ${xdo_path}) + pkg_search_module(xdo REQUIRED libxdo) + list(APPEND deps_libs ${xdo_LIBRARIES}) + list(APPEND includes ${xdo_INCLUDE_DIRS}) endif() endif() endif()
View file
dsnote-4.7.0.tar.gz/arch/release/PKGBUILD -> dsnote-4.7.1.tar.gz/arch/release/PKGBUILD
Changed
@@ -2,7 +2,7 @@ _pkgname='dsnote' pkgname="${_pkgname}" -pkgver=4.6.1 +pkgver=4.7.0 pkgrel=1 pkgdesc="Note taking, reading and translating with offline Speech to Text, Text to Speech and Machine Translation" arch=( @@ -19,18 +19,21 @@ 'kdbusaddons5' 'libarchive' 'libpulse' + 'libxinerama' + 'libxtst' 'ocl-icd' 'openblas' 'perl' 'python>=3.11' + 'qqc2-desktop-style5' 'qt5-base' 'qt5-declarative' - 'qt5-x11extras' 'qt5-multimedia' 'qt5-quickcontrols2' - 'qqc2-desktop-style5' + 'qt5-x11extras' 'rubberband' 'taglib' + 'vulkan-icd-loader' 'xz' ) makedepends=( @@ -42,10 +45,10 @@ 'patchelf' 'pybind11' 'qt5-tools' + 'vulkan-headers' ) makedepends_x86_64=( # 'cuda' -# 'rocm-hip-sdk' ) optdepends=( 'python-accelerate: Support for Punctuation and Hebrew Diacritics restoration' @@ -54,17 +57,19 @@ 'tts: Support for Coqui TTS models' ) optdepends_x86_64=( + 'amdvlk: Vulkan support for AMD GPU (AMDVLK Open)' 'cuda: Support for GPU acceleration on NVidia graphic cards' 'cudnn: Support for GPU acceleration on NVidia graphic cards' - 'rocblas: Support for GPU acceleration on AMD graphic cards' - 'rocm-opencl-runtime: Support for GPU acceleration on AMD graphic cards' + 'nvidia-utils: Vulkan support for NVidia GPU' + 'vulkan-intel: Vulkan support for Intel GPU' + 'vulkan-radeon: Vulkan support for AMD RADV' ) options=('!debug') provides=(${_pkgname}) conflicts=(${_pkgname}-git) install=${_pkgname}.install source=(https://github.com/mkiol/dsnote/archive/refs/tags/v${pkgver}.tar.gz) -sha256sums=('301ec08dff6afa8ea321c74fc25aa1b42423d3d2ee1da840ac80b40e391332b3') +sha256sums=('8ca35e5fb082352838e5b883b45a5672c0d3aae958e1e765f0af37ce29d27739') build() { cd "${srcdir}/${_pkgname}-${pkgver}" @@ -83,29 +88,27 @@ -DBUILD_FFMPEG=ON \ -DBUILD_TAGLIB=OFF \ -DBUILD_VOSK=OFF \ + -DBUILD_WHISPERCPP_VULKAN=ON \ -DBUILD_QQC2_BREEZE_STYLE=ON \ -DDOWNLOAD_VOSK=ON \ -DCMAKE_INSTALL_PREFIX=/usr \ -Wno-dev" #################### !! IMPORTANT!! ###################### - # CUDA and/or ROCm support are experimental and may break! - # In order to enable support for either, please uncomment + # CUDA support is experimental and may break! + # In order to enable support for it, please uncomment # the respective entry in makedepends_x86_64 (or install # the dependency package first) *before* making the build. - # You can disable CUDA/ROCm support by changing FULL_BUILD + # You can disable CUDA support by changing FULL_BUILD # below to false before building as well. ########################################################## FULL_BUILD=true if "${CARCH}" == "x86_64" ; then - # Do not build for CUDA if needed package is not found - pacman -Qi cuda &> /dev/null && $FULL_BUILD || CMAKE+=" -DBUILD_WHISPERCPP_CUBLAS=OFF" + # Build for CUDA if needed package is found + pacman -Qi cuda &> /dev/null && $FULL_BUILD && CMAKE+=" -DBUILD_WHISPERCPP_CUBLAS=ON -DCMAKE_CUDA_ARCHITECTURES=native" pacman -Qi cuda &> /dev/null && $FULL_BUILD && export CUDA_PATH=/opt/cuda - - # Do not build for HIP if needed package is not found - pacman -Qi rocm-hip-sdk &> /dev/null && $FULL_BUILD || CMAKE+=" -DBUILD_WHISPERCPP_HIPBLAS=OFF" fi CI_BUILD=false
View file
dsnote-4.7.0.tar.gz/cmake/xdo.cmake -> dsnote-4.7.1.tar.gz/cmake/xdo.cmake
Changed
@@ -15,3 +15,7 @@ list(APPEND deps_libs "${external_lib_dir}/libxdo.a") list(APPEND deps xdo) + +# libxdo depends on Xtst and Xinerama +find_package(X11 COMPONENTS Xtst Xinerama REQUIRED) +list(APPEND deps_libs X11::Xtst X11::Xinerama)
View file
dsnote-4.7.0.tar.gz/config/models.json -> dsnote-4.7.1.tar.gz/config/models.json
Changed
@@ -29196,14 +29196,58 @@ "engine": "mnt_bergamot", "lang_id": "zh", "trg_lang_id": "en", - "checksum": "a4dd255a", - "checksum_quick": "f8abbe4c", - "size": "23724286", + "checksum": "2e0ce348", + "checksum_quick": "12ba44ef", + "size": "49940364", "comp": "dirgz", "urls": - "https://github.com/mozilla/firefox-translations-models/raw/d97d4ce5ff9d3a266051230046ce4f705132c13f/models/dev/zhen/model.zhen.intgemm.alphas.bin.gz", - "https://github.com/mozilla/firefox-translations-models/raw/d97d4ce5ff9d3a266051230046ce4f705132c13f/models/dev/zhen/lex.50.50.zhen.s2t.bin.gz", - "https://github.com/mozilla/firefox-translations-models/raw/d97d4ce5ff9d3a266051230046ce4f705132c13f/models/dev/zhen/vocab.zhen.spm.gz" + "https://github.com/mozilla/firefox-translations-models/raw/e3c15a005424ac6b0459e606ee7565cf78c09419/models/dev/zhen/model.zhen.intgemm.alphas.bin.gz", + "https://github.com/mozilla/firefox-translations-models/raw/e3c15a005424ac6b0459e606ee7565cf78c09419/models/dev/zhen/lex.50.50.zhen.s2t.bin.gz", + "https://github.com/mozilla/firefox-translations-models/raw/e3c15a005424ac6b0459e606ee7565cf78c09419/models/dev/zhen/vocab.zhen.spm.gz" + , + "license": { + "id": "MPL 2.0", + "name": "Mozilla Public License Version 2.0", + "url": "https://www.mozilla.org/media/MPL/2.0/index.txt", + "accept_required": false + } + }, + { + "name": "日本語から英語へ (Japanese to English)", + "model_id": "ja_bergamot_jaen", + "engine": "mnt_bergamot", + "lang_id": "ja", + "trg_lang_id": "en", + "checksum": "209ddb2", + "checksum_quick": "9498a796", + "size": "48658976", + "comp": "dirgz", + "urls": + "https://github.com/mozilla/firefox-translations-models/raw/e3c15a005424ac6b0459e606ee7565cf78c09419/models/dev/jaen/model.jaen.intgemm.alphas.bin.gz", + "https://github.com/mozilla/firefox-translations-models/raw/e3c15a005424ac6b0459e606ee7565cf78c09419/models/dev/jaen/lex.50.50.jaen.s2t.bin.gz", + "https://github.com/mozilla/firefox-translations-models/raw/e3c15a005424ac6b0459e606ee7565cf78c09419/models/dev/jaen/vocab.jaen.spm.gz" + , + "license": { + "id": "MPL 2.0", + "name": "Mozilla Public License Version 2.0", + "url": "https://www.mozilla.org/media/MPL/2.0/index.txt", + "accept_required": false + } + }, + { + "name": "한국어에서 영어로 (Korean to English", + "model_id": "ko_bergamot_koen", + "engine": "mnt_bergamot", + "lang_id": "ko", + "trg_lang_id": "en", + "checksum": "dc13dfc7", + "checksum_quick": "5ce29417", + "size": "48236101", + "comp": "dirgz", + "urls": + "https://github.com/mozilla/firefox-translations-models/raw/e3c15a005424ac6b0459e606ee7565cf78c09419/models/dev/koen/model.koen.intgemm.alphas.bin.gz", + "https://github.com/mozilla/firefox-translations-models/raw/e3c15a005424ac6b0459e606ee7565cf78c09419/models/dev/koen/lex.50.50.koen.s2t.bin.gz", + "https://github.com/mozilla/firefox-translations-models/raw/e3c15a005424ac6b0459e606ee7565cf78c09419/models/dev/koen/vocab.koen.spm.gz" , "license": { "id": "MPL 2.0",
View file
dsnote-4.7.0.tar.gz/desktop/dsnote.metainfo.xml.in -> dsnote-4.7.1.tar.gz/desktop/dsnote.metainfo.xml.in
Changed
@@ -98,6 +98,19 @@ <mediatype>application/x-subrip</mediatype> </provides> <releases> + <release version="4.7.1" date="2024-01-05"> + <description> + <p>General:</p> + <ul> + <li>Fix: The application failed to start when the processor did not support AVX CPU extension.</li> + </ul> + <p>Translator:</p> + <ul> + <li>New models: Korean to English, Japanese to English</li> + <li>Updated models: Chinese to English</li> + </ul> + </description> + </release> <release version="4.7.0" date="2024-12-28"> <description> <p>General:</p> @@ -174,7 +187,7 @@ <ul> <li>Fix: The application failed to start when the processor did not support the required CPU extension.</li> </ul> - <p>" + qsTr("User Interface") + ":</p> + <p>User Interface:</p> <ul> <li>Swedish translation has been updated.</li> </ul>
View file
dsnote-4.7.0.tar.gz/desktop/qml/ChangelogPage.qml -> dsnote-4.7.1.tar.gz/desktop/qml/ChangelogPage.qml
Changed
@@ -1,4 +1,4 @@ -/* Copyright (C) 2023-2024 Michal Kosciesza <michal@mkiol.net> +/* Copyright (C) 2023-2025 Michal Kosciesza <michal@mkiol.net> * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this @@ -20,6 +20,22 @@ RichLabel { text: "<p>" + qsTr("General") + ":</p> <ul> + <li>Fix: The application failed to start when the processor did not support AVX CPU extension.</li> + </ul> + <p>" + qsTr("Translator") + ":</p> + <ul> + <li>New models: Korean to English, Japanese to English</li> + <li>Updated models: Chinese to English</li> + </ul>" + } + + SectionLabel { + text: qsTr("Version %1").arg("4.7.0") + } + + RichLabel { + text: "<p>" + qsTr("General") + ":</p> + <ul> <li><i>Rules</i> for text transformations that can be applied after Speech to Text or before Text to Speech. With <i>Rules</i>, you can easily and flexibly correct errors in decoded text or correct mispronounced words. <i>Rules</i> are disabled by default. To use them, you must enable them in the settings (<i>General</i> → <i>Show Rules</i>).</li>
View file
dsnote-4.7.0.tar.gz/desktop/qml/SettingsAdvancedPage.qml -> dsnote-4.7.1.tar.gz/desktop/qml/SettingsAdvancedPage.qml
Changed
@@ -1,4 +1,4 @@ -/* Copyright (C) 2024 Michal Kosciesza <michal@mkiol.net> +/* Copyright (C) 2024-2025 Michal Kosciesza <michal@mkiol.net> * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this @@ -302,7 +302,7 @@ ComboBoxForm { visible: _settings.is_xcb() label.text: qsTranslate("SettingsPage", "Keystroke sending method") - toolTip: qsTranslate("SettingsPage", "Keystroke sending method used in %1.").arg("<i>" + qsTranslate("SettingsPage", "Insert into active window") + "</i>") + toolTip: qsTranslate("SettingsPage", "Simulated keystroke sending method used in %1.").arg("<i>" + qsTranslate("SettingsPage", "Insert into active window") + "</i>") comboBox { currentIndex: { if (_settings.fake_keyboard_type === Settings.FakeKeyboardTypeLegacy) return 0 @@ -323,8 +323,23 @@ } } + SpinBoxForm { + visible: _settings.is_xcb() && _settings.fake_keyboard_type === Settings.FakeKeyboardTypeLegacy + label.text: qsTranslate("SettingsPage", "Keystroke delay") + toolTip: qsTranslate("SettingsPage", "The delay between simulated keystrokes used in %1.").arg("<i>" + qsTranslate("SettingsPage", "Insert into active window") + "</i>") + spinBox { + from: 1 + to: 1000 + stepSize: 1 + value: _settings.fake_keyboard_delay + onValueChanged: { + _settings.fake_keyboard_delay = spinBox.value; + } + } + } + TextFieldForm { - visible: _settings.is_xcb() && _settings.fake_keyboard_type === Settings.FakeKeyboardTypeNative + visible: _settings.is_xcb() && _settings.fake_keyboard_type === Settings.FakeKeyboardTypeLegacy label.text: qsTranslate("SettingsPage", "Compose file") toolTip: qsTranslate("SettingsPage", "X11 compose file used in %1.").arg("<i>" + qsTranslate("SettingsPage", "Insert into active window") + "</i>") + " " + qsTranslate("SettingsPage", "Leave blank to use the default value.")
View file
dsnote-4.7.0.tar.gz/src/dsnote_app.cpp -> dsnote-4.7.1.tar.gz/src/dsnote_app.cpp
Changed
@@ -1,4 +1,4 @@ -/* Copyright (C) 2021-2024 Michal Kosciesza <michal@mkiol.net> +/* Copyright (C) 2021-2025 Michal Kosciesza <michal@mkiol.net> * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this @@ -5010,7 +5010,6 @@ #ifdef USE_DESKTOP switch (m_service_state) { case service_state_t::StateUnknown: - case service_state_t::StateNotConfigured: case service_state_t::StateBusy: case service_state_t::StateImporting: case service_state_t::StateExporting: @@ -5018,6 +5017,7 @@ m_tray.set_state(tray_icon::state_t::busy); break; case service_state_t::StateIdle: + case service_state_t::StateNotConfigured: m_tray.set_state(tray_icon::state_t::idle); break; case service_state_t::StateListeningManual:
View file
dsnote-4.7.0.tar.gz/src/settings.cpp -> dsnote-4.7.1.tar.gz/src/settings.cpp
Changed
@@ -1,4 +1,4 @@ -/* Copyright (C) 2021-2024 Michal Kosciesza <michal@mkiol.net> +/* Copyright (C) 2021-2025 Michal Kosciesza <michal@mkiol.net> * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this @@ -2677,7 +2677,8 @@ } int settings::fake_keyboard_delay() const { - return value(QStringLiteral("fake_keyboard_delay"), 10).toInt(); + auto v = value(QStringLiteral("fake_keyboard_delay"), 10).toInt(); + return std::clamp(v, 1, 1000); } void settings::set_fake_keyboard_delay(int value) {
View file
dsnote-4.7.0.tar.gz/src/whisper_engine.cpp -> dsnote-4.7.1.tar.gz/src/whisper_engine.cpp
Changed
@@ -1,4 +1,4 @@ -/* Copyright (C) 2023-2024 Michal Kosciesza <michal@mkiol.net> +/* Copyright (C) 2023-2025 Michal Kosciesza <michal@mkiol.net> * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this @@ -68,10 +68,39 @@ } bool whisper_engine::available() { - std::array libs = {"libwhisper-openblas.so", "libwhisper.so"}; + bool available = false; - return std::any_of(libs.cbegin(), libs.cend(), - (const auto& lib) { return try_open_lib(lib); }); +#ifdef ARCH_ARM_32 + auto cpuinfo = cpu_tools::cpuinfo(); + if (cpuinfo.feature_flags & cpu_tools::feature_flags_t::asimd) { + available = try_open_lib("libwhisper-openblas.so"); + } + if (!available) { + available = try_open_lib("libwhisper-fallback.so"); + } +#elif ARCH_ARM_64 + available = try_open_lib("libwhisper-openblas.so"); +#else + auto cpuinfo = cpu_tools::cpuinfo(); + if (cpuinfo.feature_flags & cpu_tools::feature_flags_t::avx2) { + available = try_open_lib("libwhisper-openblas.so"); + } + if (!available && + (cpuinfo.feature_flags & cpu_tools::feature_flags_t::avx)) { + available = try_open_lib("libwhisper-fallback1.so"); + } + if (!available) { + available = try_open_lib("libwhisper-fallback.so"); + } + if (!available) { + available = try_open_lib("libwhisper.so"); + } +#endif + if (!available) { + available = try_open_lib("libwhisper.so"); + } + + return available; } void whisper_engine::set_visible_devices() { @@ -101,23 +130,63 @@ } } -bool whisper_engine::has_cuda() { return try_open_lib("libwhisper-cublas.so"); } +bool whisper_engine::has_cuda() { + auto cpuinfo = cpu_tools::cpuinfo(); + if ((cpuinfo.feature_flags & cpu_tools::feature_flags_t::avx) == 0 || + (cpuinfo.feature_flags & cpu_tools::feature_flags_t::f16c) == 0) { + LOGD("whisper-cublas is not supported due to lack of avx"); + return false; + } + return try_open_lib("libwhisper-cublas.so"); +} bool whisper_engine::has_openvino() { + auto cpuinfo = cpu_tools::cpuinfo(); + if ((cpuinfo.feature_flags & cpu_tools::feature_flags_t::avx) == 0 || + (cpuinfo.feature_flags & cpu_tools::feature_flags_t::f16c) == 0) { + LOGD("whisper-openvino is not supported due to lack of avx"); + return false; + } return try_open_lib("libwhisper-openvino.so"); } bool whisper_engine::has_opencl() { + auto cpuinfo = cpu_tools::cpuinfo(); + if ((cpuinfo.feature_flags & cpu_tools::feature_flags_t::avx) == 0 || + (cpuinfo.feature_flags & cpu_tools::feature_flags_t::f16c) == 0) { + LOGD("whisper-clblast is not supported due to lack of avx"); + return false; + } return try_open_lib("libwhisper-clblast.so"); } -bool whisper_engine::has_hip() { return try_open_lib("libwhisper-hipblas.so"); } +bool whisper_engine::has_hip() { + auto cpuinfo = cpu_tools::cpuinfo(); + if ((cpuinfo.feature_flags & cpu_tools::feature_flags_t::avx) == 0 || + (cpuinfo.feature_flags & cpu_tools::feature_flags_t::f16c) == 0) { + LOGD("whisper-hip is not supported due to lack of avx"); + return false; + } + return try_open_lib("libwhisper-hipblas.so"); +} bool whisper_engine::has_vulkan() { + auto cpuinfo = cpu_tools::cpuinfo(); + if ((cpuinfo.feature_flags & cpu_tools::feature_flags_t::avx) == 0 || + (cpuinfo.feature_flags & cpu_tools::feature_flags_t::f16c) == 0) { + LOGD("whisper-vulkan is not supported due to lack of avx"); + return false; + } return try_open_lib("libwhisper-vulkan.so"); } bool whisper_engine::use_openvino() const { + auto cpuinfo = cpu_tools::cpuinfo(); + if ((cpuinfo.feature_flags & cpu_tools::feature_flags_t::avx) == 0 || + (cpuinfo.feature_flags & cpu_tools::feature_flags_t::f16c) == 0) { + LOGD("whisper-openvino is not supported due to lack of avx"); + return false; + } return m_config.gpu_device.api == gpu_api_t::openvino && !m_config.model_files.openvino_model_file.empty(); }
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.