48 Commits

Author SHA1 Message Date
Tabby Cromarty
9c0b317212 Fix upload artifacts for MacOS builds 2026-01-05 13:58:16 +00:00
Tabitha Cromarty
6a4abbc848 Make multiple MacOS variants targeting different Metal versions (#266)
* Make multiple MacOS variants targeting different Metal versions

Different MacOS versions support different maximum Metal versions. As we build on MacOS 14, it's
likely that when embedding the Metal shaders into the Metal backend they're being built for
Metal 3.1, the maximum supported version on MacOS 14. This may be why users are seeing crashes
when trying to use Metal on older versions of MacOS

This will also allow users of MacOS 15 and newer to take advantage of improvements from Metal 3.2

* Fix checking incorrect env var for MacOS version
2025-12-07 13:04:18 +00:00
Tabitha Cromarty
0650b14ba1 Fix MacOS 12 crashes and codesigning issues (#262)
* Refactor, fix codesigning, generate debug package

* Bundle libomp and Accelerate framework

* Bump version numbers

* Stop bundling Accelerate framework

* Update whispercpp deps to 0.0.11-2

* Format cmake files
2025-11-21 00:14:06 +00:00
Tabby Cromarty
67e259fab4 Attempt to force resign bundle after build on MacOS 2025-11-11 22:09:34 +00:00
Tabby Cromarty
4ec6ccac9b Try to get failure log if notarization fails 2025-11-11 20:38:07 +00:00
Tabby Cromarty
5479fea8b4 Fix minor issues in metadata and build scripts found when porting changes to obs-cleanstream 2025-11-11 18:23:47 +00:00
Tabby Cromarty
29be964f08 Update version numbers and more release file names 2025-11-08 22:36:32 +00:00
Tabitha Cromarty
6038830b49 Fix release artifact renaming (#258) 2025-11-08 15:44:29 +00:00
Tabby Cromarty
e042362250 Temporarily disable MacOS signing again
Looks like I broke it somehow when changing to shared libs. Will fix soon
2025-11-07 17:56:11 +00:00
Tabby Cromarty
de208b4747 ...and again 2025-11-07 17:11:10 +00:00
Tabby Cromarty
10f676bbc5 Try again to override config for linux amd build v.v 2025-11-07 16:48:31 +00:00
Tabby Cromarty
fb950ab7e4 Override config in GH actions rather than build scripts and fix passing accel to packaging action 2025-11-07 16:21:04 +00:00
Tabby Cromarty
dc0406aac1 Ignore --config parameter in build-linux script if amd acceleration used 2025-11-07 15:51:43 +00:00
Tabby Cromarty
f017f0ba9f Ignore --config parameter in package-linux script if amd acceleration used 2025-11-07 15:30:01 +00:00
Tabby Cromarty
4c4e498d57 Set Release config as default in package-linux script if amd acceleration used 2025-11-07 15:15:44 +00:00
Tabby Cromarty
ce8328d8d8 Pass ACCELERATION env var to package-linux script from GH action 2025-11-07 14:57:50 +00:00
Tabitha Cromarty
b93277e608 Acceleration improvements and fixes (#241)
* Update Whisper.cpp and add Linux acceleration (source builds only)

Update Whisper.cpp from v1.6.2 to v1.8.1

Supported Linux acceleration methods:
* CUDA
* hipblas
* Vulkan
* OpenCL

If suitable development libraries are installed for any of the above when building from source, then support for them
will be built into both whisper.cpp and the LocalVocal plugin

* Test behaviour with combinations of multiple backends

* Use found dependencies to decide which acceleration features to enable

Also try to build Whispercpp from source on Windows with acceleration (not working)

* Add GPU device selection option in plugin settings

Allows the selection of which GPU backend to use if more than one is
available, as well as disabling GPU backends in case the only
available ones don't work or are somehow slower than the CPU alone

* Add OpenCL support for Linux source build

* Comment out seemingly unused DISABLE_ONNX_RUNTIME_GPU option

* Update prebuilt Whisper deps to 0.0.9 (Whisper 1.8.2) and refactor cmake file

* Handle new GGML IGPU device type

* Bump whisper deps to 0.0.9-1 to fix hipblas

* Try to avoid running apt in CI when packages are cached

* Add option to enable/disable flash attention

* Install Vulkan SDK properly for CI build and try adding OpenCL and hip dev libs

* Build with shared libs on linux and allow use of dynamic backends

* Update deps to 0.0.10 (runtime module linking/importing is likely broken)

* Update deps to 0.0.10-2; try to fix linking & other platform specific issues

* Bump version number to 0.5.0

* Fix Ubuntu packaging

* Fix dynamic linking on MacOS

* Update README

* Cleanup CMake files a bit and make prebuilt build on Linux the default over full source build

* Fix Linux full source build
2025-11-07 14:38:53 +00:00
Tabby Cromarty
d7f16b6948 Revert "Skip notarising MacOS package on release"
This reverts commit a1b3e248a2.
2025-11-03 22:45:30 +00:00
Tabitha Cromarty
d954c421ba Use more caching to reduce CI times for Mac and Linux (#252)
* Try caching ICU build prefix to speed up CI times

* Don't bother with Linux ICU cache

The Linux build spends most of its time installng packages with apt not building ICU

* Reduce ICU cache size by not including src dir

* Try caching linux apt packages

* Find cached ICU correctly

* Use specific version of cache-apt-packages-action

* Format CMakeLists.txt

* Fix checking of find_library vars

* Empty commit to check improved build times after caching

* Add qt base dev packages to cached CI packages
2025-10-31 13:14:00 +00:00
Tabby Cromarty
32e63c98fb Disable Windows runner debug output 2025-10-31 02:55:18 +00:00
Tabitha Cromarty
1af21f2b08 Use system ICU and curl by default on Linux where possible (#250)
* Use system ICU and curl by default on Linux

* Add curl, icu and vulkan apt dependencies

* Stick to using static ICU for CI builds for compatibility
2025-10-30 15:36:52 +00:00
Tabitha Cromarty
eccea49d99 Require OpenBLAS on Linux so that CT2 works (and enable it for Whisper too) (#251)
* Enable some CT2 backends on Linux

* Might as well enable OpenBLAS for whisper too

* Format cmake files

* Update README to add info about OpenBLAS now being a required dependency

* Fix OpenBLAS dependencies and linking for Ubuntu package
2025-10-30 14:49:12 +00:00
Tabby Cromarty
a1b3e248a2 Skip notarising MacOS package on release
Apple developer ID has expired and those are spenny
2025-10-18 09:36:55 +01:00
Tabitha Cromarty
6a90c27e6b Fix compatibility with OBS v32 (#231)
Stop using deprecated API functions that were removed in OBS v32 (See: https://github.com/obsproject/obs-studio/pull/12488)
* Use the return value from `obs_scene_add` instead of looking it up after creating it using the deprecated `obs_scene_sceneitem_from_source` function
* Use v2 sceneitem transform API instead of deprecated v1 API
* Change all uses of `circlebuf` to `deque` as it's been renamed in OBS

Additional bug fixes:
* Wait until scenes are loaded to create text source if it's missing. Previously the creation of the text source could fail due to there not being any scenes yet to create it in
* Fix build on MacOS and some Linux distributions
* Catch exceptions thrown by ONNX runtime and log an error instead of crashing

Other changes:
* Update OBS source dependencies
  * OBS: 30.1.2 -> 31.1.1
  * OBS deps: 2024-03-19 -> 2025-07-11
  * Qt6 deps: 2024-03-19 -> 2025-02-04
* Update build files to more closely match the current plugin template repository

Fixes: #230
Fixes: #227
2025-10-17 22:03:16 +01:00
Ruwen Hahn
b3be219915 Add WebVTT-in-video-stream support (#196)
* Fix `whisper_buffer` and `resampled_buffer` data race

`media_unpause` was causing `wisper_buffer` to be freed while
`vad_based_segmentation`/`hybrid_vad_segmentation` need that buffer
to not be modified for the duration of those calls

* Slightly improve handling for weird subtitle output filenames

* Squashed 'deps/c-webvtt-in-video-stream/' content from commit 5579ca6

git-subtree-dir: deps/c-webvtt-in-video-stream
git-subtree-split: 5579ca6dc9dcf94e3c14631c6c01b2ee4dfcf005

* Add WIP webvtt sei functionality

* Add webvtt recording/streaming settings

* Make latency_to_video_in_msecs and send_frequency_hz configurable

* Make webvtt languages configurable

* Add translation and main language separately

* Add rust CI integration
2025-02-03 09:06:52 -05:00
Roy Shilkrot
bb1db72052 Update version to 0.3.9 in README.md and buildspec.json; add availabl… (#184)
* Update version to 0.3.9 in README.md and buildspec.json; add available versions section for clarity

* Add support for custom API translation provider and update configuration options

* Enable ccache support in CMake build scripts for improved build performance

* Add status message for detected ccache in CMake build scripts
2024-11-25 12:57:08 -05:00
Roy Shilkrot
548cb293ee Update prebuilt Whispercpp version to 0.0.7 and change download URL (#180)
* Update prebuilt Whispercpp version to 0.0.7 and change download URL

* Update acceleration options in build scripts
2024-10-25 12:28:50 -04:00
Roy Shilkrot
78907ea14d refactor: Update whisper model path and enable hipBLAS acceleration (#146)
* refactor: Update whisper model path and enable hipBLAS acceleration

* refactor: Update whisper model path and enable hipBLAS acceleration

* refactor: Update whisper model path and enable hipBLAS acceleration

* refactor: Update whisper model path and enable hipBLAS acceleration

* refactor: Update whisper model path and enable hipBLAS acceleration

* refactor: Update whisper model path and enable CoreML acceleration
2024-07-31 00:40:36 -04:00
Roy Shilkrot
65da380f9f Bump whisper, clblast, add buffered output (#90)
* Bump whisper, clblast, add buffered output

* Update CPU_OR_CUDA environment variable error messages

* Update Cublas validation in Package-Windows.ps1 and initialize function in captions-thread.h

* Update Cublas validation and fix typo in Package-Windows.ps1

* Update default whisper model path to Whisper Tiny English (74Mb)

* Update translation strings for multiple locales
2024-04-18 10:28:32 -04:00
Kaito Udagawa
f4307168de Update build scripts according to the latest obs-plugintemplate (#87)
* Update build-project.yaml

* Update action.yaml

* Update helpers_common.cmake

* Update compilerconfig.cmake

* Update .clang-format

* Fix

* Fix

* Update build-project.yaml

* Update check-format.yaml

* Update push.yaml

* Update build-project.yaml
2024-04-15 08:19:40 -04:00
Roy Shilkrot
4638ce80fe Remove Cublas input from build script (#80)
* Remove Cublas input from build script

* Remove CUDA Toolkit installation and curl submodule
2024-04-01 21:59:37 -04:00
Roy Shilkrot
a569da2ed3 Built-in Translation (#79)
* Add translation feature and dependencies

* Add model-infos.cpp and translate_add_context to en-US.ini

* Fix formatting and whitespace issues

* Update build plugin and version, fix translation and whisper-utils

* Fix compiler warning and simplify code in transcription-filter.cpp

* Update CMakePresets.json and buildspec.json

* Fix Clang compiler warnings

* Enable QT in CMakePresets.json

* Fix compiler warnings and create missing config folder

* Fix formatting of is_lead_byte and is_trail_byte macros
2024-04-01 14:37:31 -04:00
Roy Shilkrot
6791e5a5d3 Update build variants in push.yaml 2024-03-22 17:01:56 -04:00
Roy Shilkrot
17ffcfc2c1 Enable MacOS ARM64 and Windows CUDA builds (#76)
* Enable CoreML and allow fallback to CPU on MacOS ARM64

* Disable CoreML support on MacOS ARM64

* Fix build configuration for MacOS

* Update macOS build configuration based on MACOS_ARCH environment variable

* Update BuildWhispercpp.cmake to disable FMA instructions on non-Apple platforms

* Add cuBLAS support to build and package actions

* Update Cublas versions in Windows build and packaging scripts

* Update CUDA_TOOLKIT_ROOT_DIR environment variable

* Add sub-packages and non-cuda-sub-packages options to CUDA toolkit setup

* Update CUDA sub-packages in build-project.yaml

* Add "visual_studio_integration" to sub-packages in CUDA build workflow

* Fix typo in build-project.yaml

* Fix typo in CUDA build method

* Update sub-packages in CUDA toolkit installation

* Remove unnecessary CUDA sub-packages and method
2024-03-22 13:33:07 -04:00
Roy Shilkrot
8fe7da6d42 Fix Max Channels, Update macOS brew command and fix compiler warnings (#75) 2024-03-17 13:16:01 -04:00
Roy Shilkrot
8b4471fad4 Update save_srt option and add truncate_output_file option (#64)
* Update save_srt option and add truncate_output_file option

* Refactor code for readability and maintainability

* Update clang-format version to 16.0.5

* Update .clang-format and model-downloader-ui.cpp

* Fix is_lead_byte and is_trail_byte macros
2024-01-25 11:44:05 -05:00
Kaito Udagawa
a02b2ac819 Revert Fix CI partially (#38)
* Revert "Fix CI (#37)"

This reverts commit 832efe1865.

* Update build-project.yaml

* Update .build.zsh
2023-10-11 04:47:54 +09:00
Kaito Udagawa
832efe1865 Fix CI (#37) 2023-10-11 04:01:09 +09:00
Roy Shilkrot
15b6e1ed00 Merge pull request #28 from obs-ai/roy.fix_linux_crash 2023-09-28 02:04:23 -04:00
Roy Shilkrot
3fa1f11418 fix osx build 2023-09-28 00:09:56 -04:00
Roy Shilkrot
01412a1094 add openblas 2023-09-25 23:55:32 -04:00
Roy Shilkrot
f2e2d8f94b fix release name on push workflow 2023-09-21 14:58:28 -04:00
Roy Shilkrot
b6ed934f48 add funding 2023-09-19 14:58:37 -04:00
Przemek Pawlas
9e3d94eca3 fix: Windows CUDA compilation was incorrectly described 2023-09-15 20:16:52 +02:00
Roy Shilkrot
b92bf4d36c add cuda build options 2023-09-12 01:03:05 -04:00
Roy Shilkrot
d39af65712 add zip to win pkg 2023-08-15 23:22:32 +03:00
Roy Shilkrot
7023ec5152 initial 2023-08-12 23:51:51 +03:00
Roy Shilkrot
ad7cb94c55 Initial commit 2023-08-10 22:05:20 +03:00