Commit Graph

182 Commits

Author SHA1 Message Date
Roy Shilkrot
44f072b5ff
refactor: Add transcription-filter-properties.cpp for managing filter… (#138)
* refactor: Add transcription-filter-properties.cpp for managing filter properties

* refactor: Add translation_monitor to transcription filter

- Add translation_monitor to the transcription filter data structure
- Initialize and stop the translation_monitor in the transcription_filter_update function
- Update the send_caption_to_source function to use the translation_monitor for sending translated captions
- Clear the translation_monitor when disabling buffered output in the transcription_filter_update function

* refactor: Simplify UI and improve error handling in transcription filter
2024-07-17 12:18:31 -04:00
Roy Shilkrot
3c3b640bdb
Simplified UI (#136)
* refactor: Update translation option in transcription filter

- Update the translation option in the transcription filter to use a more concise label
- Remove unnecessary code related to file output in the transcription filter
- Improve the handling of whisper model paths in the transcription filter
- Set the default language to "auto" in the transcription filter properties

* refactor: Improve error handling in model-downloader.cpp and transcription-filter-callbacks.cpp

* refactor: Improve error handling in model-downloader.cpp and transcription-filter-callbacks.cpp
2024-07-15 18:28:03 -04:00
Roy Shilkrot
58f9131a05
refactor: Update model-downloader.cpp to use obs_module_config_path f… (#134)
* refactor: Update model-downloader.cpp to use obs_module_config_path for retrieving the config folder path

- Replace the usage of obs_module_get_config_path with obs_module_config_path to retrieve the config folder path in model-downloader.cpp
- Add a check for a null config_folder and log an info message if it is null
- Convert the config_folder string to a wstring on Windows using MultiByteToWideChar
- Update the log messages to provide more descriptive information about the config models folder and the model folder existence in the config folder
- Use the updated config_folder_str in the std::filesystem::absolute function call

* Trigger Build

* refactor: Update model-downloader.cpp to use obs_module_config_path for retrieving the config folder path

* refactor: Fix bug in transcription filter callbacks

- Add a condition to check for null timestamps before saving the sentence to srt in the send_sentence_to_file function
- Remove unnecessary code in the set_text_callback function that checks for empty text after suppression
- Update the whisper_loop function to clear the current subtitle if the minimum subtitle duration has passed
2024-07-11 12:22:16 -04:00
Roy Shilkrot
234a938f33
refactor: Update create_obs_text_source function to create source only if it doesn't exist (#126) 2024-07-09 17:26:47 -04:00
Roy Shilkrot
ee07bbe569
refactor: Update file output option in transcription filter (#128)
- Update the file output option in the transcription filter to use the new "Save to File" label instead of "Text File output"
- Add a new boolean flag "save_to_file" in the transcription filter data structure to track the file output setting
- Update the code in transcription-filter-callbacks.cpp and transcription-filter.cpp to use the new flag for file output logic
- Update the properties and UI in transcription-filter-properties.cpp to reflect the changes
2024-07-09 17:02:58 -04:00
Roy Shilkrot
34d908505c bump v0.3.2 2024-07-02 15:35:25 -04:00
Roy Shilkrot
32bbd99404
refactor: Add filter-replace-dialog.cpp for filter and replace functi… (#124)
* refactor: Add filter-replace-dialog.cpp for filter and replace functionality

* refactor: Improve filter-replace-dialog.cpp for filter and replace functionality
2024-07-02 15:27:11 -04:00
Roy Shilkrot
a2244c2157
refactor: Update TokenBufferThread to use TokenBufferString for sentence output (#122) 2024-07-01 22:00:01 -04:00
Roy Shilkrot
958266fb4e
refactor: Update buffer_output_type translations in locale files (#119)
* refactor: Update buffer_output_type translations in locale files

* refactor: Update buffer_num_chars_per_line translation in locale files

* refactor: Remove unused code related to buffer output type selection

* refactor: Update TokenBufferThread to use TokenBufferString for caption building

* refactor: Update TokenBufferThread to use TokenBufferString for caption building
2024-06-26 15:35:43 -04:00
Roy Shilkrot
db13750891
refactor: Update whisper model path handling in transcription filter (#117)
* refactor: Update whisper model path handling in transcription filter

* refactor: Set default language to "auto" in transcription filter properties
2024-06-23 21:54:35 -04:00
Roy Shilkrot
d64ec2ac11 chore: Update version to 0.3.1 in buildspec.json 2024-06-11 18:33:43 -04:00
Roy Shilkrot
2aa151eb22
Start and stop based on filter enable status (#111)
* refactor: Add initial_creation flag to transcription filter data

* refactor: Improve caption duration calculation in set_text_callback
2024-06-11 17:32:18 -04:00
Roy Shilkrot
91c2842009
refactor: Update timestamp variable name in transcription-filter-data.h (#109) 2024-06-11 12:15:49 -04:00
Roy Shilkrot
845c1a813c
English language selection by model (#108)
* refactor: Improve remove_leading_trailing_nonalpha function in transcription-utils.cpp

* refactor: Set whisper language to English in transcription filter properties
2024-06-11 09:05:30 -04:00
Roy Shilkrot
ecb3dfce09
Add more whisper models (#107)
* Add more whisper models

* refactor: Improve remove_leading_trailing_nonalpha function in transcription-utils.cpp
2024-06-10 21:24:55 -04:00
Roy Shilkrot
052de4f474 readme update 2024-06-06 01:03:47 -04:00
Roy Shilkrot
93ab51e932 chore: Update version to 0.3.0 in buildspec.json 2024-06-05 18:31:00 -04:00
Roy Shilkrot
67993f393d
Steamline and refactor (#105)
* refactor: Update whispercpp dependency to version 0.0.3

* refactor: Add buffered output parameters for transcription filter

* refactor: Remove unused parameter in set_source_signals function

* refactor: Fix character splitting bug in TokenBufferThread

* refactor: Update buffer size and overlap size in whisper-processing.cpp

* refactor: Remove unused parameter in set_source_signals function

* refactor: Fix floating point precision issue in whisper-processing.cpp

* refactor: Improve remove_leading_trailing_nonalpha function in transcription-utils.cpp

* refactor: Update VAD threshold in transcription filter

* refactor: Update VAD threshold parameter name in silero-vad-onnx.h

* refactor: Update VAD threshold parameter name in silero-vad-onnx.h

* refactor: Update lock_guard parameter name in TokenBufferThread
2024-06-05 18:02:36 -04:00
Roy Shilkrot
9ecd759968
refactor: Update whispercpp dependency to version 0.0.3 (#103) 2024-05-30 23:00:04 -04:00
Tabitha Cromarty
a0fc46aa29
Add non-Ubuntu Linux build instructions to the README (#102)
Largely based on @umireon's [AUR build script](https://github.com/occ-ai/obs-localvocal/issues/62#issuecomment-1910708241), these steps worked for me on a
Gentoo Linux system as well, so I figured it might be helpful to add them to
the README.

I feel like some of this could be merged with the Ubuntu section above (which
might also in itself be applicable to Debian as well as Ubuntu), but for now
this should at least help people
2024-05-30 22:37:03 -04:00
Roy Shilkrot
5227a437b6
VAD based segmentation (#97)
* refactor: Add whisper_buffer to transcription_filter_data struct

* refactor: Add sentence_psum_accept_thresh to transcription_filter_data struct

* refactor: Update buffer size and overlap size in whisper-processing.cpp

* refactor: Update buffer size and overlap size in whisper-processing.cpp

* refactor: Add audio-file-utils.cpp for audio file handling

* refactor: Update buffer size and overlap size in whisper-processing.cpp

* refactor: Add external model option to translation settings

* refactor: Add support for input tokenization style in translation settings

* refactor: Update buffer size and overlap size in whisper-processing.cpp
2024-05-16 15:07:00 -04:00
Roy Shilkrot
9c45376d7a Update version to 0.2.6 in buildspec.json 2024-05-11 08:46:50 -04:00
Roy Shilkrot
31c41a9574
Offline transcription accuracy tests (#96)
* Update translation-utils.h, transcription-filter.h, whisper-model-utils.h, model-find-utils.h, and model-downloader.h

* Update create_context function to include ct2ModelFolder parameter

* fix: add fix_utf8 flag to transcription_filter_data struct

* Update create_context function to include ct2ModelFolder parameter

* Update read_text_from_file function to include join_sentences parameter

* fix: Update VadIterator::reset_states to include reset_hc parameter

* Update create_context function to include whisper_sampling_method parameter

* Update tests README with additional configuration options

* feat: Add function to find file in folder by regex expression

* refactor: Improve text conditioning logic in transcription-filter.cpp

* refactor: Improve text conditioning logic in transcription-filter.cpp

* chore: Update ctranslate2 dependency to version 1.2.0

* refactor: Improve text conditioning logic in transcription-filter.cpp

* chore: Update cmake BuildCTranslate2.cmake to disable -Wno-comma warning

* refactor: Update translation context in whisper-processing.cpp and translation-utils.cpp
2024-05-10 17:37:09 -04:00
Roy Shilkrot
2e83300fbb
Update buffer size and overlap size in whisper-processing.h and defau… (#95)
* Update buffer size and overlap size in whisper-processing.h and default buffer size in msec in transcription-filter.cpp

* Update audio processing timestamp calculation in whisper-processing.cpp

* Update OBS plugin installation instructions for Linux

* Fix typo in update_whisper_model function name
2024-05-02 01:03:06 -04:00
Roy Shilkrot
493ecad254
Update CTranslate2 and cpu_features dependencies (#94)
* Update CTranslate2 and cpu_features dependencies

* Update CTranslate2 and cpu_features dependencies

* Update dependencies and fix special tokens handling

* Add BUILD_BYPRODUCTS to CMake build command

* Update version to 0.2.5 in buildspec.json
2024-04-30 09:48:23 -04:00
Roy Shilkrot
3b955e3031
Fix special tokens (#93)
* Update version to 0.2.4 in buildspec.json

* Update special token handling in whisper-processing.cpp

* Update special token handling in whisper-processing.cpp
2024-04-26 15:34:18 -04:00
Roy Shilkrot
f36f6ec96c Update version to 0.2.3 in buildspec.json 2024-04-25 17:15:14 -04:00
Roy Shilkrot
ab1b74a35c
Overlap analysis (#92)
* Update buffer size and overlap size in whisper-processing.h and default buffer size in msec in transcription-filter.cpp

* Update buffer size and overlap size in whisper-processing.h and default buffer size in msec in transcription-filter.cpp

* Update suppress_sentences in en-US.ini and transcription-filter-data.h

* Update suppress_sentences and fix whitespace in transcription-filter-data.h, whisper-processing.h, transcription-utils.cpp, and transcription-filter.h

* Update whisper-processing.cpp and whisper-utils.cpp files

* Update findStartOfOverlap function signature to use int instead of size_t

* Update Whispercpp_Build_GIT_TAG to use commit 7395c70a748753e3800b63e3422a2b558a097c80 in BuildWhispercpp.cmake

* Update buffer size and overlap size in whisper-processing.h and default buffer size in msec in transcription-filter.cpp

* Update unused parameter in transcription-filter-properties function

* Update log level and add suppress_sentences feature in transcription-filter.cpp and whisper-processing.cpp

* Add translation output feature in en-US.ini and transcription-filter-data.h

* Add DTW token timestamps and buffered output feature

* trigger rebuild

* Refactor remove_leading_trailing_nonalpha function to improve readability and performance

* Refactor is_lead_byte and is_trail_byte macros for improved readability and maintainability

* Refactor is_lead_byte and is_trail_byte macros for improved readability and maintainability

* trigger build
2024-04-25 17:14:13 -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
e5a10f48cc
Fix add_custom_command to accept the argument with paren (#88)
* Update FetchOnnxruntime.cmake

* Update FetchOnnxruntime.cmake
2024-04-15 21:38:46 -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
f79571f316
Add Silero VAD (#85)
* Add Silero VAD model and integrate it into the transcription filter

* Fix Silero VAD model path and enable n_threads

* Update translation strings for multiple locales

* Update Onnxruntime library linking and fix compiler warning

* Fix variable naming and type casting in Silero VAD implementation

* Update Silero VAD model path and enable n_threads
2024-04-13 22:39:28 -04:00
Roy Shilkrot
069cba1c7a Update translation strings for multiple locales 2024-04-02 00:01:01 -04:00
Roy Shilkrot
3afe7670fe Readme update 2024-04-01 22:24:32 -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
0c7d7234af
Update CUDA support and model versions (#78) 2024-03-24 21:23:06 -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
8b1ab7cfed
Update README.md 2024-03-21 16:29:49 -04:00
Roy Shilkrot
8e35a192b8
Update README.md 2024-03-19 17:43:23 -04:00
Roy Shilkrot
7a1a6f8d69 Bump libcurl 2024-03-18 00:06:16 -04:00
Roy Shilkrot
db235eb19c Update version number in buildspec.json 2024-03-17 18:51:56 -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
240f7dd817
Variable buffer size options (#66)
* Update buffer size and overlap size handling

* Refactor buffer size calculation and formatting in transcription filter

This commit refactors the buffer size calculation in the transcription filter code to improve readability and maintainability. The code now uses a more concise and formatted approach to calculate the buffer size in milliseconds. Additionally, the commit also improves the formatting and readability of the code in the whisper-processing file. These changes enhance the overall code quality and maintainability.
2024-03-08 10:25:58 -05:00
Roy Shilkrot
4c15b9514c
Update Whispercpp_Build_GIT_TAG in BuildWhispercpp.cmake (#72) 2024-03-08 10:25:03 -05:00
Roy Shilkrot
e7a4823b8f
Update README.md 2024-01-25 21:47:28 -05:00
Roy Shilkrot
d8f64971c2
Update version and Whispercpp build tag (#65) 2024-01-25 11:59:05 -05: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
Roy Shilkrot
b45b235ad6
Bump whisper.cpp. Simple settings mode (#60)
* bump whispercpp, simple settings mode

* lint
2023-12-21 11:08:36 -05:00