From 6f6bc53c5408a420febb7bebe707e08aa8e4478a Mon Sep 17 00:00:00 2001 From: Raivis Dejus Date: Sun, 25 Jan 2026 11:42:09 +0200 Subject: [PATCH] Fix for whisper.cpp on older cpus (#1362) --- Makefile | 9 ++++++--- buzz/__version__.py | 2 +- buzz/model_loader.py | 1 - docs/docs/usage/4_edit_and_resize.md | 2 +- pyproject.toml | 2 +- share/metainfo/io.github.chidiwilliams.Buzz.metainfo.xml | 6 ++++++ uv.lock | 7 ++++--- 7 files changed, 19 insertions(+), 10 deletions(-) diff --git a/Makefile b/Makefile index 6b6db352..e8a20d32 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ # Change also in pyproject.toml and buzz/__version__.py -version := 1.5.0 +version := 1.4.3 mac_app_path := ./dist/Buzz.app mac_zip_path := ./dist/Buzz-${version}-mac.zip @@ -52,7 +52,8 @@ ifeq ($(OS), Windows_NT) # The _DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR is needed to prevent mutex lock issues on Windows # https://github.com/actions/runner-images/issues/10004#issuecomment-2156109231 # -DCMAKE_[C|CXX]_COMPILER_WORKS=TRUE is used to prevent issue in building test program that fails on CI - cmake -S whisper.cpp -B whisper.cpp/build/ -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_RPATH='$$ORIGIN' -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON -DCMAKE_C_FLAGS="-D_DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR" -DCMAKE_CXX_FLAGS="-D_DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR" -DCMAKE_C_COMPILER_WORKS=TRUE -DCMAKE_CXX_COMPILER_WORKS=TRUE -DGGML_VULKAN=1 + # GGML_NATIVE=OFF ensures we don't use -march=native (which would target the build machine's CPU) + cmake -S whisper.cpp -B whisper.cpp/build/ -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_RPATH='$$ORIGIN' -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON -DCMAKE_C_FLAGS="-D_DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR" -DCMAKE_CXX_FLAGS="-D_DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR" -DCMAKE_C_COMPILER_WORKS=TRUE -DCMAKE_CXX_COMPILER_WORKS=TRUE -DGGML_VULKAN=1 -DGGML_NATIVE=OFF cmake --build whisper.cpp/build -j --config Release --verbose -mkdir buzz/whisper_cpp @@ -63,9 +64,11 @@ endif ifeq ($(shell uname -s), Linux) # Build Whisper with Vulkan support + # GGML_NATIVE=OFF ensures we don't use -march=native (which would target the build machine's CPU) + # This enables portable SSE4.2/AVX/AVX2 optimizations that work on most x86_64 CPUs rm -rf whisper.cpp/build || true -mkdir -p buzz/whisper_cpp - cmake -S whisper.cpp -B whisper.cpp/build/ -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_RPATH='$$ORIGIN' -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON -DGGML_VULKAN=1 + cmake -S whisper.cpp -B whisper.cpp/build/ -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_RPATH='$$ORIGIN' -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON -DGGML_VULKAN=1 -DGGML_NATIVE=OFF cmake --build whisper.cpp/build -j --config Release --verbose cp whisper.cpp/build/bin/whisper-cli buzz/whisper_cpp/ || true cp whisper.cpp/build/bin/whisper-server buzz/whisper_cpp/ || true diff --git a/buzz/__version__.py b/buzz/__version__.py index 177b9352..fd870296 100644 --- a/buzz/__version__.py +++ b/buzz/__version__.py @@ -1 +1 @@ -VERSION = "1.5.0" +VERSION = "1.4.3" diff --git a/buzz/model_loader.py b/buzz/model_loader.py index 2d28ebdd..224bd6d3 100644 --- a/buzz/model_loader.py +++ b/buzz/model_loader.py @@ -49,7 +49,6 @@ if _certifi_ca_bundle is not None: return session configure_http_backend(backend_factory=_hf_session_factory) - logging.debug(f"Configured huggingface_hub to use certifi CA bundle: {_certifi_ca_bundle}") except ImportError: # configure_http_backend not available in older huggingface_hub versions pass diff --git a/docs/docs/usage/4_edit_and_resize.md b/docs/docs/usage/4_edit_and_resize.md index cb79f482..7bdf92bb 100644 --- a/docs/docs/usage/4_edit_and_resize.md +++ b/docs/docs/usage/4_edit_and_resize.md @@ -10,4 +10,4 @@ Transcription view screen has option to resize the transcripts. Click on the "Re If audio file is still present on the system word-level timing merge will also analyze the audio for silences to improve subtitle accuracy. Subtitle generation from transcripts with word-level timings is available since version 1.3.0. -The resize tool also has an option to extend end time of segments if you want the subtitles to be on the screen for longer. You can specify the amount of time in seconds to extend each subtitle segment. Buzz will add this amount of time to the end of each subtitle segment making sure that the end of a segment does not go over start of the next segment. This feature is available since 1.5.0. \ No newline at end of file +The resize tool also has an option to extend end time of segments if you want the subtitles to be on the screen for longer. You can specify the amount of time in seconds to extend each subtitle segment. Buzz will add this amount of time to the end of each subtitle segment making sure that the end of a segment does not go over start of the next segment. This feature is available since 1.4.3. \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 7ada3306..8f26e4ed 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "buzz-captions" # Change also in Makefile and buzz/__version__.py -version = "1.5.0" +version = "1.4.3" description = "" authors = [{ name = "Chidi Williams", email = "williamschidi1@gmail.com" }] requires-python = ">=3.12,<3.13" diff --git a/share/metainfo/io.github.chidiwilliams.Buzz.metainfo.xml b/share/metainfo/io.github.chidiwilliams.Buzz.metainfo.xml index 58f5ddb2..2b7bd1ab 100644 --- a/share/metainfo/io.github.chidiwilliams.Buzz.metainfo.xml +++ b/share/metainfo/io.github.chidiwilliams.Buzz.metainfo.xml @@ -65,6 +65,12 @@ + + https://github.com/chidiwilliams/buzz/releases/tag/v1.4.3 + +

Fixed support for whisper.cpp on older CPUs and issues in speaker identification.

+
+
https://github.com/chidiwilliams/buzz/releases/tag/v1.4.2 diff --git a/uv.lock b/uv.lock index f1dd4b56..674b0ef3 100644 --- a/uv.lock +++ b/uv.lock @@ -274,7 +274,7 @@ wheels = [ [[package]] name = "buzz-captions" -version = "1.5.0" +version = "1.4.3" source = { editable = "." } dependencies = [ { name = "accelerate" }, @@ -1132,6 +1132,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f8/0a/a3871375c7b9727edaeeea994bfff7c63ff7804c9829c19309ba2e058807/greenlet-3.3.0-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:b01548f6e0b9e9784a2c99c5651e5dc89ffcbe870bc5fb2e5ef864e9cc6b5dcb", size = 276379, upload-time = "2025-12-04T14:23:30.498Z" }, { url = "https://files.pythonhosted.org/packages/43/ab/7ebfe34dce8b87be0d11dae91acbf76f7b8246bf9d6b319c741f99fa59c6/greenlet-3.3.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:349345b770dc88f81506c6861d22a6ccd422207829d2c854ae2af8025af303e3", size = 597294, upload-time = "2025-12-04T14:50:06.847Z" }, { url = "https://files.pythonhosted.org/packages/a4/39/f1c8da50024feecd0793dbd5e08f526809b8ab5609224a2da40aad3a7641/greenlet-3.3.0-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e8e18ed6995e9e2c0b4ed264d2cf89260ab3ac7e13555b8032b25a74c6d18655", size = 607742, upload-time = "2025-12-04T14:57:42.349Z" }, + { url = "https://files.pythonhosted.org/packages/77/cb/43692bcd5f7a0da6ec0ec6d58ee7cddb606d055ce94a62ac9b1aa481e969/greenlet-3.3.0-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c024b1e5696626890038e34f76140ed1daf858e37496d33f2af57f06189e70d7", size = 622297, upload-time = "2025-12-04T15:07:13.552Z" }, { url = "https://files.pythonhosted.org/packages/75/b0/6bde0b1011a60782108c01de5913c588cf51a839174538d266de15e4bf4d/greenlet-3.3.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:047ab3df20ede6a57c35c14bf5200fcf04039d50f908270d3f9a7a82064f543b", size = 609885, upload-time = "2025-12-04T14:26:02.368Z" }, { url = "https://files.pythonhosted.org/packages/49/0e/49b46ac39f931f59f987b7cd9f34bfec8ef81d2a1e6e00682f55be5de9f4/greenlet-3.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2d9ad37fc657b1102ec880e637cccf20191581f75c64087a549e66c57e1ceb53", size = 1567424, upload-time = "2025-12-04T15:04:23.757Z" }, { url = "https://files.pythonhosted.org/packages/05/f5/49a9ac2dff7f10091935def9165c90236d8f175afb27cbed38fb1d61ab6b/greenlet-3.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:83cd0e36932e0e7f36a64b732a6f60c2fc2df28c351bae79fbaf4f8092fe7614", size = 1636017, upload-time = "2025-12-04T14:27:29.688Z" }, @@ -4289,8 +4290,8 @@ dependencies = [ { name = "setuptools", marker = "sys_platform != 'darwin'" }, ] wheels = [ - { url = "https://download.pytorch.org/whl/triton-3.4.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl" }, - { url = "https://download.pytorch.org/whl/triton-3.4.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl" }, + { url = "https://download.pytorch.org/whl/triton-3.4.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:00ea4a1c15f079bbf49ff02c312210fdb8ff05b1503ea30812610e2a3b171f3b" }, + { url = "https://download.pytorch.org/whl/triton-3.4.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8550672b1184f05187f4140db32e33e61b592046fd3e1eb907e3b7db5321b750" }, ] [[package]]