* 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
* 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
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
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
* 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
* Set `CMAKE_POLICY_VERSION_MINIMUM=3.5` when CMake 4 or greater is being used
* Bump the version of SentencePiece built from source to 0.2.1
* Fix name of cpu_features setting to disable tests and disable tests in CT2, to avoid GTest being built as it has a REALLY old minimum CMake version
If ICU is already available on the system there's no point downloading and
building it again. To save time and space, add an option to find and use the
system version of ICU
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: #230Fixes: #227
* 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
* 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
* Add support for disabled VAD mode and enhance CMake configuration
* Enhance VAD processing and transcription filter data structure with additional comments and logic adjustments
* Enhance VAD processing with improved logging, adjust single segment default, and update inference handling
* Refactor whisper parameter handling and enhance utility functions for better clarity and maintainability
* Add whisper parameters group properties and clean up related code
* Add whisper parameters handling and update related files for improved functionality
* Refactor whisper parameter type casting for improved clarity and consistency
* trigger build
* Fix logging message to use the correct variable for saved sentence
* Add cloud translation support with multiple providers and configuration options
* Refactor CMakeLists.txt for cloud translation sources formatting
* Add support for translating only full sentences in cloud translation
* Update ICU build configuration and fix header include case sensitivity
* Fix CURL helper function signatures and improve URL encoding
* Fix character type casting in DeepLTranslator for language conversion
* Refactor file saving logic in transcription filter to streamline sentence handling and add support for saving translated sentences
* Add support for Deepl Free API endpoint and enhance cloud translation configuration
* Add ccache detection to ICU build configuration for improved compilation speed
* Enhance ICU build configuration to use ccache as a compiler wrapper for improved performance
This commit modifies the `load_models_info` function in `model-infos.cpp` to enable downloading the models directory from GitHub. Previously, the download functionality was commented out, but now it is uncommented to allow for successful downloading of the directory. This change improves the functionality of the code.
Ref: #<issue_number>
Simplify the translation options in the transcription-filter-properties.cpp file by adding a new option "translate_only_full_sentences". This option will be visible only when the "translate_enabled" flag is true and the "is_advanced" flag is set.
Remove unnecessary code in model-infos.cpp
Remove the code that logs a warning message when the "sha256" field is missing or invalid in the model JSON file. This code is no longer needed as it does not affect the functionality of the program.
Comment out download_json_from_github in model-infos.cpp
Comment out the call to the "download_json_from_github" function in the load_models_info() function in model-infos.cpp. This function is currently not working as intended and needs further investigation.
* refactor: Handle file exceptions when writing raw sentence and translations
This commit modifies the code in transcription-filter-callbacks.cpp to handle file exceptions when writing raw sentence and translations to files. It adds exception handling using try-catch blocks to ensure that file operations are properly handled. This change improves the robustness of the code and prevents crashes or unexpected behavior when file operations fail.
* refactor: Update models_info function to use cached models information
The models_info function in model-downloader.cpp has been updated to use a cached version of the models information. This improves performance by avoiding unnecessary file reads and JSON parsing. The function now returns a const reference to the cached models_info map. This change ensures that the models_info function is more efficient and reduces the overhead of loading the models information.
Refactor the code in model-downloader.cpp to use the updated models_info function and remove the unnecessary file read and JSON parsing code.
Closes#123
* refactor: Simplify file handling in transcription-filter-callbacks.cpp
* refactor: Add script to query Hugging Face models and update models_directory.json
This commit adds two new scripts, hugging_face_model_query.py and hugging_face_model_query_all.py, to query Hugging Face models and update the models_directory.json file. The hugging_face_model_query.py script fetches model information from the Hugging Face API and adds new models to the models_directory.json file. The hugging_face_model_query_all.py script fetches a list of models matching a specific search criteria and adds the matching models to the models_directory.json file. These scripts will help keep the models_directory.json file up to date with the latest models available on Hugging Face.
Refactor the file handling in transcription-filter-callbacks.cpp
This commit simplifies the file handling in the transcription-filter-callbacks.cpp file. The changes aim to improve the readability and maintainability of the code by reducing complexity and removing unnecessary code.
Update the models_info function to use cached models information
This commit updates the models_info function to use cached models information instead of fetching it every time the function is called. This change improves the performance of the function by reducing the number of API calls and improves the overall efficiency of the code.
Handle file exceptions when writing raw sentence and translations
This commit adds exception handling code to handle file exceptions when writing raw sentence and translations. The changes ensure that any file-related exceptions are caught and properly handled, preventing the program from crashing or producing incorrect results.
Simplify the Onnxruntime installation in FetchOnnxruntime.cmake
This commit simplifies the Onnxruntime installation process in the FetchOnnxruntime.cmake file. The changes aim to make the installation steps more concise and easier to understand, improving the overall maintainability of the code.
Update the version to 0.3.6 and adjust the website URL
This commit updates the version of the software to 0.3.6 and adjusts the website URL accordingly. The changes ensure that the software is properly versioned and the website URL is up to date.
* refactor: Add ExtraInfo struct to ModelInfo and update models_info function
* refactor: Update model names in models_directory.json and fix URL in transcription-filter.h