diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fe24f1b4..a6a28976 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -183,6 +183,8 @@ jobs: run: | if [ "$RUNNER_OS" == "Windows" ]; then uv add msvc-runtime + uv pip install -U torch==2.8.0+cu129 torchaudio==2.8.0+cu129 --index-url https://download.pytorch.org/whl/cu129 + uv pip install nvidia-cublas-cu12==12.9.1.4 nvidia-cuda-cupti-cu12==12.9.79 nvidia-cuda-runtime-cu12==12.9.79 --extra-index-url https://pypi.ngc.nvidia.com uv cache clean uv run pip cache purge diff --git a/Makefile b/Makefile index 0067e477..5c485607 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ # Change also in pyproject.toml and buzz/__version__.py -version := 1.4.1 +version := 1.4.2 mac_app_path := ./dist/Buzz.app mac_zip_path := ./dist/Buzz-${version}-mac.zip diff --git a/README.md b/README.md index 7b5db725..17d5de58 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ # Buzz -[Documentation](https://chidiwilliams.github.io/buzz/) | [Buzz Captions on the App Store](https://apps.apple.com/us/app/buzz-captions/id6446018936?mt=12&itsct=apps_box_badge&itscg=30200) +[Documentation](https://chidiwilliams.github.io/buzz/) Transcribe and translate audio offline on your personal computer. Powered by OpenAI's [Whisper](https://github.com/openai/whisper). @@ -13,13 +13,6 @@ OpenAI's [Whisper](https://github.com/openai/whisper).  [](https://GitHub.com/chidiwilliams/buzz/releases/) -
-- - - ## Installation ### macOS @@ -58,6 +51,8 @@ sudo snap connect buzz:password-manager-service Install [ffmpeg](https://www.ffmpeg.org/download.html) +Ensure you use Python 3.12 environment. + Install Buzz ```shell @@ -70,8 +65,8 @@ python -m buzz To have GPU support for Nvidia GPUS on Windows, for PyPI installed version ensure, CUDA support for [torch](https://pytorch.org/get-started/locally/) ``` -pip3 install -U torch==2.7.1+cu128 torchaudio==2.7.1+cu128 --index-url https://download.pytorch.org/whl/cu128 -pip3 install nvidia-cublas-cu12==12.8.3.14 nvidia-cuda-cupti-cu12==12.8.57 nvidia-cuda-nvrtc-cu12==12.8.61 nvidia-cuda-runtime-cu12==12.8.57 nvidia-cudnn-cu12==9.7.1.26 nvidia-cufft-cu12==11.3.3.41 nvidia-curand-cu12==10.3.9.55 nvidia-cusolver-cu12==11.7.2.55 nvidia-cusparse-cu12==12.5.4.2 nvidia-cusparselt-cu12==0.6.3 nvidia-nvjitlink-cu12==12.8.61 nvidia-nvtx-cu12==12.8.55 --extra-index-url https://pypi.ngc.nvidia.com +pip3 install -U torch==2.8.0+cu129 torchaudio==2.8.0+cu129 --index-url https://download.pytorch.org/whl/cu129 +pip3 install nvidia-cublas-cu12==12.9.1.4 nvidia-cuda-cupti-cu12==12.9.79 nvidia-cuda-runtime-cu12==12.9.79 --extra-index-url https://pypi.ngc.nvidia.com ``` ### Latest development version diff --git a/buzz/__version__.py b/buzz/__version__.py index bababb5b..94dc0808 100644 --- a/buzz/__version__.py +++ b/buzz/__version__.py @@ -1 +1 @@ -VERSION = "1.4.1" +VERSION = "1.4.2" diff --git a/docs/docs/index.md b/docs/docs/index.md index a03d4efe..7634aa44 100644 --- a/docs/docs/index.md +++ b/docs/docs/index.md @@ -12,9 +12,6 @@ OpenAI's [Whisper](https://github.com/openai/whisper).  [](https://GitHub.com/chidiwilliams/buzz/releases/) -> Buzz is better on the App Store. Get a Mac-native version of Buzz with a cleaner look, audio playback, drag-and-drop import, transcript editing, search, and much more. ->An older version of Buzz available on the App Store. Get a Mac-native version of Buzz with a cleaner look, audio playback, drag-and-drop import, transcript editing, search, and much more.
--
-- ## 功能 - 导入音频和视频文件,并将转录内容导出为 TXT、SRT 和 VTT 格式([演示](https://www.loom.com/share/cf263b099ac3481082bb56d19b7c87fe)) diff --git a/docs/i18n/zh/docusaurus-plugin-content-docs/current/installation.md b/docs/i18n/zh/docusaurus-plugin-content-docs/current/installation.md index 2ce56a94..b3bbc7c1 100644 --- a/docs/i18n/zh/docusaurus-plugin-content-docs/current/installation.md +++ b/docs/i18n/zh/docusaurus-plugin-content-docs/current/installation.md @@ -3,7 +3,7 @@ title: 安装 sidebar_position: 2 --- -要安装 Buzz,请下载适用于您操作系统的[最新版本](https://github.com/chidiwilliams/buzz/releases/latest)。Buzz 支持 **Mac**(Intel)、**Windows** 和 **Linux** 系统。(对于 Apple Silicon 用户,请参阅 [App Store 版本](https://apps.apple.com/us/app/buzz-captions/id6446018936?mt=12&itsct=apps_box_badge&itscg=30200)。) +要安装 Buzz,请下载适用于您操作系统的[最新版本](https://github.com/chidiwilliams/buzz/releases/latest)。Buzz 支持 **Mac**(Intel)、**Windows** 和 **Linux** 系统。 ## macOS(Intel,macOS 11.7 及更高版本) @@ -15,8 +15,7 @@ brew install --cask buzz 或者,下载并运行 `Buzz-x.y.z.dmg` 文件。 -对于 Mac Silicon 用户(以及希望在 Mac Intel 上获得更好体验的用户), -请从 App Store 下载 [Buzz Captions](https://apps.apple.com/us/app/buzz-captions/id6446018936?mt=12&itsct=apps_box_badge&itscg=30200)。 +对于 Mac Silicon 用户(以及希望在 Mac Intel 上获得更好体验的用户)。 ## Windows(Windows 10 及更高版本) diff --git a/hatch_build.py b/hatch_build.py index b070d9d9..c94968fe 100644 --- a/hatch_build.py +++ b/hatch_build.py @@ -116,27 +116,29 @@ class CustomBuildHook(BuildHookInterface): else: print(f"Warning: {whisper_cpp_dir} does not exist after build", file=sys.stderr) - # Force include all files in demucs directory - demucs_dir = project_root / "demucs_repo" - if demucs_dir.exists(): - # Get all files in the demucs directory - demucs_files = glob.glob(str(demucs_dir / "**" / "*"), recursive=True) + # Force include demucs package at top level (demucs_repo/demucs -> demucs/) + demucs_pkg_dir = project_root / "demucs_repo" / "demucs" + if demucs_pkg_dir.exists(): + # Get all files in the demucs package directory + demucs_files = glob.glob(str(demucs_pkg_dir / "**" / "*"), recursive=True) # Filter only files (not directories) demucs_files = [f for f in demucs_files if Path(f).is_file()] - # Add them to force_include + # Add them to force_include, mapping to top-level demucs/ if 'force_include' not in build_data: build_data['force_include'] = {} for file_path in demucs_files: - # Convert to relative path from project root - rel_path = Path(file_path).relative_to(project_root) - build_data['force_include'][str(rel_path)] = str(rel_path) + # Convert to relative path from demucs package dir + rel_from_pkg = Path(file_path).relative_to(demucs_pkg_dir) + # Target path is demucs/在 App Store 下载运行的性能更佳。 获得外观更整洁、音频播放、拖放导入、转录编辑、搜索等功能的原生Mac版本。
--
-- - - ## 安装 **PyPI**: diff --git a/share/metainfo/io.github.chidiwilliams.Buzz.metainfo.xml b/share/metainfo/io.github.chidiwilliams.Buzz.metainfo.xml index 22c2e7b7..f2d17304 100644 --- a/share/metainfo/io.github.chidiwilliams.Buzz.metainfo.xml +++ b/share/metainfo/io.github.chidiwilliams.Buzz.metainfo.xml @@ -64,8 +64,8 @@在 App Store 下载运行的性能更佳。 获得外观更整洁、音频播放、拖放导入、转录编辑、搜索等功能的原生Mac版本。
--
Adding speaker identification on transcriptions and video support for transcription viewer, improvements to transcription table and support for over 1000 of worlds languages via MMS models as well as separate window to show live transcripts on a projector.
Release details:
diff --git a/uv.lock b/uv.lock index 4c2c6ff8..e6f1d26d 100644 --- a/uv.lock +++ b/uv.lock @@ -274,7 +274,7 @@ wheels = [ [[package]] name = "buzz-captions" -version = "1.4.1" +version = "1.4.2" source = { editable = "." } dependencies = [ { name = "accelerate" }, @@ -288,7 +288,6 @@ dependencies = [ { name = "darkdetect" }, { name = "dataclasses-json" }, { name = "datasets" }, - { name = "demucs" }, { name = "diffq" }, { name = "dora-search" }, { name = "einops" }, @@ -308,10 +307,8 @@ dependencies = [ { name = "nemo-toolkit", extra = ["asr"], marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, { name = "nltk" }, { name = "numpy" }, - { name = "nvidia-cublas-cu12", marker = "sys_platform == 'win32'" }, - { name = "nvidia-cuda-nvrtc-cu12", marker = "sys_platform == 'win32'" }, - { name = "nvidia-cuda-runtime-cu12", marker = "sys_platform == 'win32'" }, { name = "nvidia-cudnn-cu12", marker = "sys_platform != 'darwin'" }, + { name = "onnx" }, { name = "onnxruntime" }, { name = "openai" }, { name = "openai-whisper" }, @@ -382,7 +379,6 @@ requires-dist = [ { name = "darkdetect", specifier = ">=0.8.0,<0.9" }, { name = "dataclasses-json", specifier = ">=0.6.4,<0.7" }, { name = "datasets", specifier = ">=4.4.1" }, - { name = "demucs", editable = "demucs_repo" }, { name = "diffq", specifier = ">=0.2.4,<0.3" }, { name = "dora-search", specifier = ">=0.1.12,<0.2" }, { name = "einops", specifier = ">=0.8.1,<0.9" }, @@ -402,10 +398,8 @@ requires-dist = [ { name = "nemo-toolkit", extras = ["asr"], marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'", specifier = "==2.5.3" }, { name = "nltk", specifier = ">=3.9.2" }, { name = "numpy", specifier = ">=1.21.2,<2" }, - { name = "nvidia-cublas-cu12", marker = "sys_platform == 'win32'", specifier = ">=12.9,<13" }, - { name = "nvidia-cuda-nvrtc-cu12", marker = "sys_platform == 'win32'", specifier = ">=12.9,<13" }, - { name = "nvidia-cuda-runtime-cu12", marker = "sys_platform == 'win32'", specifier = ">=12.9,<13" }, { name = "nvidia-cudnn-cu12", marker = "sys_platform != 'darwin'", specifier = ">=9,<10" }, + { name = "onnx", specifier = ">=1.20.0" }, { name = "onnxruntime", specifier = "==1.18.1" }, { name = "openai", specifier = ">=1.14.2,<2" }, { name = "openai-whisper", specifier = "==20250625" }, @@ -857,59 +851,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/4e/8c/f3147f5c4b73e7550fe5f9352eaa956ae838d5c51eb58e7a25b9f3e2643b/decorator-5.2.1-py3-none-any.whl", hash = "sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a", size = 9190, upload-time = "2025-02-24T04:41:32.565Z" }, ] -[[package]] -name = "demucs" -version = "4.1.0a3" -source = { editable = "demucs_repo" } -dependencies = [ - { name = "dora-search" }, - { name = "einops" }, - { name = "julius" }, - { name = "lameenc" }, - { name = "openunmix" }, - { name = "pyyaml" }, - { name = "torch", version = "2.2.2", source = { registry = "https://pypi.org/simple/" }, marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" }, - { name = "torch", version = "2.8.0", source = { registry = "https://pypi.org/simple/" }, marker = "platform_machine != 'x86_64' and sys_platform == 'darwin'" }, - { name = "torch", version = "2.8.0+cu129", source = { registry = "https://download.pytorch.org/whl/cu129" }, marker = "sys_platform != 'darwin'" }, - { name = "torchaudio", version = "2.2.2", source = { registry = "https://pypi.org/simple/" }, marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" }, - { name = "torchaudio", version = "2.8.0", source = { registry = "https://download.pytorch.org/whl/cu129" }, marker = "platform_machine == 'aarch64' and platform_python_implementation == 'CPython' and sys_platform == 'linux'" }, - { name = "torchaudio", version = "2.8.0", source = { registry = "https://pypi.org/simple/" }, marker = "platform_machine != 'x86_64' and sys_platform == 'darwin'" }, - { name = "torchaudio", version = "2.8.0+cu129", source = { registry = "https://download.pytorch.org/whl/cu129" }, marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (platform_python_implementation != 'CPython' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" }, - { name = "tqdm" }, -] - -[package.metadata] -requires-dist = [ - { name = "diffq", marker = "extra == 'dev'", specifier = ">=0.2.1" }, - { name = "dora-search" }, - { name = "dora-search", marker = "extra == 'dev'", specifier = ">=0.1.12" }, - { name = "einops" }, - { name = "einops", marker = "extra == 'dev'" }, - { name = "flake8", marker = "extra == 'dev'" }, - { name = "hydra-colorlog", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "hydra-core", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "julius", specifier = ">=0.2.3" }, - { name = "julius", marker = "extra == 'dev'", specifier = ">=0.2.3" }, - { name = "lameenc", specifier = ">=1.2" }, - { name = "lameenc", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "museval", marker = "extra == 'dev'" }, - { name = "mypy", marker = "extra == 'dev'" }, - { name = "openunmix" }, - { name = "openunmix", marker = "extra == 'dev'" }, - { name = "pyyaml" }, - { name = "pyyaml", marker = "extra == 'dev'" }, - { name = "soundfile", marker = "extra == 'dev'", specifier = ">=0.10.3" }, - { name = "submitit", marker = "extra == 'dev'" }, - { name = "torch", specifier = ">=1.8.1" }, - { name = "torch", marker = "extra == 'dev'", specifier = ">=1.8.1" }, - { name = "torchaudio", specifier = ">=0.8" }, - { name = "torchaudio", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "tqdm" }, - { name = "tqdm", marker = "extra == 'dev'" }, - { name = "treetable", marker = "extra == 'dev'" }, -] -provides-extras = ["dev"] - [[package]] name = "diffq" version = "0.2.4" @@ -2027,7 +1968,7 @@ name = "ml-dtypes" version = "0.5.4" source = { registry = "https://pypi.org/simple/" } dependencies = [ - { name = "numpy", marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, + { name = "numpy" }, ] sdist = { url = "https://files.pythonhosted.org/packages/0e/4a/c27b42ed9b1c7d13d9ba8b6905dece787d6259152f2309338aed29b2447b/ml_dtypes-0.5.4.tar.gz", hash = "sha256:8ab06a50fb9bf9666dd0fe5dfb4676fa2b0ac0f31ecff72a6c3af8e22c063453", size = 692314, upload-time = "2025-11-17T22:32:31.031Z" } wheels = [ @@ -2413,7 +2354,6 @@ version = "12.9.86" source = { registry = "https://download.pytorch.org/whl/cu129" } wheels = [ { url = "https://pypi.nvidia.com/nvidia-cuda-nvrtc-cu12/nvidia_cuda_nvrtc_cu12-12.9.86-py3-none-manylinux2010_x86_64.manylinux_2_12_x86_64.whl", hash = "sha256:210cf05005a447e29214e9ce50851e83fc5f4358df8b453155d5e1918094dcb4" }, - { url = "https://pypi.nvidia.com/nvidia-cuda-nvrtc-cu12/nvidia_cuda_nvrtc_cu12-12.9.86-py3-none-win_amd64.whl", hash = "sha256:72972ebdcf504d69462d3bcd67e7b81edd25d0fb85a2c46d3ea3517666636349" }, ] [[package]] @@ -2422,7 +2362,6 @@ version = "12.9.79" source = { registry = "https://download.pytorch.org/whl/cu129" } wheels = [ { url = "https://pypi.nvidia.com/nvidia-cuda-runtime-cu12/nvidia_cuda_runtime_cu12-12.9.79-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:25bba2dfb01d48a9b59ca474a1ac43c6ebf7011f1b0b8cc44f54eb6ac48a96c3" }, - { url = "https://pypi.nvidia.com/nvidia-cuda-runtime-cu12/nvidia_cuda_runtime_cu12-12.9.79-py3-none-win_amd64.whl", hash = "sha256:8e018af8fa02363876860388bd10ccb89eb9ab8fb0aa749aaf58430a9f7c4891" }, ] [[package]] @@ -2539,10 +2478,10 @@ name = "onnx" version = "1.20.0" source = { registry = "https://pypi.org/simple/" } dependencies = [ - { name = "ml-dtypes", marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, - { name = "numpy", marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, - { name = "protobuf", marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, - { name = "typing-extensions", marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" }, + { name = "ml-dtypes" }, + { name = "numpy" }, + { name = "protobuf" }, + { name = "typing-extensions" }, ] sdist = { url = "https://files.pythonhosted.org/packages/bd/bf/824b13b7ea14c2d374b48a296cfa412442e5559326fbab5441a4fcb68924/onnx-1.20.0.tar.gz", hash = "sha256:1a93ec69996b4556062d552ed1aa0671978cfd3c17a40bf4c89a1ae169c6a4ad", size = 12049527, upload-time = "2025-12-01T18:14:34.679Z" } wheels = [