Commit Graph

284 Commits

Author SHA1 Message Date
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
caa03306b8 Add Vulkan backend for MacOS (#265) 2025-11-25 16:27:41 +00:00
Tabitha Cromarty
12191acb62 Update whisper dependencies to 0.0.12 (#264)
* Update Whispercpp deps to 0.0.12

Updates Vulkan on Windows to 1.4.328.1 and fixes ROCm/HIP by building for all available GPU architectures

* Reorder acceleration options alphabetically for Windows and Linux

Makes life easier when updating checksums for whisper deps updates
0.5.3
2025-11-24 23:16:46 +00:00
Tabby Cromarty
b5290ccd83 Enable Clang explicit modules with ccache when building on Mac 0.5.2 2025-11-21 00:14:56 +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
fbf2574914 Sign libomp.dylib that we now bundle with the whispercpp deps from homebrew 2025-11-11 21:12:01 +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 0.5.1 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
0.5.0
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
Tabitha Cromarty
c8dbe1cf07 Download CoreML models on MacOS if possible (#256)
* Download CoreML models on MacOS if possible

When using CoreML with Whispercpp, it needs additional encoder models so attempt to download the appropriate model and
symlink it to the location where whisper expects it to be

* Try fix windows build

* Remove erroneous entry in models registry
2025-11-07 09:43:32 +00:00
Tabby Cromarty
1e49decce7 Bump version to 0.4.5 for release 0.4.5 2025-11-03 22:48:16 +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
c268af75e6 Bump version to 0.4.4 for release 0.4.4 2025-10-31 02:56:07 +00:00
Tabby Cromarty
32e63c98fb Disable Windows runner debug output 2025-10-31 02:55:18 +00:00
Tabitha Cromarty
f1f3e1d96e Fix crash when using translations with buffered output (#254)
* Fix crash when using translations with buffered output

When using buffered output with the output type set to character, split strings by unicode characters instead of bytes
to avoid causing a crash by trying to send invalid UTF-8 strings to the text output source

* Windows has to be special v.v

* Update buffer thread output sources when changed

* Format
2025-10-31 02:53:38 +00:00
Tabitha Cromarty
38b299be36 Fix transcription overwriting local translation output (#253)
* Fix local translation being overwritten by transcription

* Refactor

* Make custom translation API placeholders match default config

* Clear translation text sources when changed

* Format code

* Add token buffer thread for cloud translations

* Temporarily disable buffered output for translations

It causes a crash v.v
2025-10-30 22:45:00 +00:00
Roy Shilkrot
cf7b323aaa Add Recall.ai sponsorship details to README
Added sponsorship information for Recall.ai, an API for desktop recording, to the README.
2025-10-30 17:03:33 -04:00
Roy Shilkrot
254c6da4ce Revise README introduction and add sponsorship section
Updated the introduction to clarify the plugin's functionality and added a sponsorship section for Recall.ai.
2025-10-30 14:16:54 -04: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
98c1a8a172 Bump version to 0.4.3 for release 0.4.3 2025-10-29 23:50:44 +00:00
Tabitha Cromarty
124050bdec Downgrade ONNX runtime to 1.20.1 for MacOS 12 compatibility (#249)
* Downgrade ONNX runtime to 1.20.1 for MacOS 12 compatibility

Later versions than this removed support for MacOS 12, but as we support the same MacOS versions as OBS which supports
MacOS 12, we want to keep supporting it too.

Also bump the minimum required version when using a system installed ONNX runtime, for consistency.

Fixes: #248

* Fix CMake formatting

* Remove ONNX error codes added in later versions of the lib
2025-10-29 20:18:53 +00:00
Tabby Cromarty
28b5b7990f Update versions for 0.4.2 release 0.4.2 2025-10-27 19:31:17 +00:00
Tabitha Cromarty
958c40e137 Fix missing Silero VAD model file on Windows (#247)
Revert changes to Windows CMake helpers from #231

I missed that I'd broken the copying of data files to the correct dir for Windows when trying to fix the builds for OBS v32
2025-10-27 19:30:36 +00:00
Tabby Cromarty
5c212e89cd Log GGML abort function calls at debug level 2025-10-27 19:03:00 +00:00
Tabitha Cromarty
0f77a8f07c Add ggml_abort callback function to handle errors (#244)
Apparently whisper.cpp has the ability to set a callback function that is called when there's an error in the GGML
processing. It's poorly (not at all) documented, and seems to take a string argument, though the parameter is always
`null` when it's been called, but having it set seems to prevent some crashes... somehow?? I guess it expects there to
be one, so if there isn't we get a null pointer exception
2025-10-27 15:18:44 +00:00
Ruwen Hahn
3ea321f8b7 Add support for hevc and av1 to WebVTT-in-video-stream (#204)
* Squashed 'deps/c-webvtt-in-video-stream/' changes from 5579ca6..3d44cbd

3d44cbd Add h265 support
7f96bcf Extract various bits of h264 functionality to prepare for h265 support
698793a Prepare `h264::NalUnitWrite` for reuse with h265

git-subtree-dir: deps/c-webvtt-in-video-stream
git-subtree-split: 3d44cbd5039e3ea247972f44f73a66e08cea6e71

* Add h265 support

* Squashed 'deps/c-webvtt-in-video-stream/' changes from 3d44cbd5..d599f6f0

d599f6f0 Add av1 support
11693f6a Extract header writing semantics
e7eb1894 Convert h264/h265 header writing to bitwriters

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

* Add av1 support

* Fix subtitle track name lookup
2025-10-20 14:09:40 +01:00
Tabby Cromarty
abd30c044f Fix endian.h include for MacOS 0.4.1 2025-10-19 19:35:21 +01:00
Tabby Cromarty
3bb873391b Took away too many headers v.v 2025-10-19 19:00:25 +01:00
Tabby Cromarty
8022788e55 Format files 2025-10-19 18:51:10 +01:00
Tabby Cromarty
20c41ce3b9 Remove unused headers 2025-10-19 18:49:50 +01:00
Tabby Cromarty
f88080ae3e Use Stephan Brumme's portable SHA256 library
MacOS doesn't have openssl by default so use a portable SHA256 library with no dependencies

From https://create.stephan-brumme.com/hash-library/
2025-10-19 18:44:25 +01:00
Tabby Cromarty
778928d50a Revert "Log warning if AVX2 not detected"
This reverts commit 9ce2321f96.

Needs work to build with prebuild CT2 apparently
2025-10-19 17:52:28 +01:00
Tabby Cromarty
275964efa5 Bump version to 0.4.1 2025-10-19 17:43:17 +01:00
Tabby Cromarty
a0fc2360b6 Update ggerganov model URLs and checksums
Previous URL for many of these is now dead and several of the checksums were missing
2025-10-19 17:42:21 +01:00
Tabby Cromarty
bc9b4f0855 Add hash validation for downloading transcription models 2025-10-19 17:09:48 +01:00
Tabby Cromarty
9ce2321f96 Log warning if AVX2 not detected 2025-10-19 00:05:23 +01:00
Tabby Cromarty
0f1c445154 Add link to correct MSVC runtime to README in case it's missing 2025-10-19 00:04:36 +01:00