Skip to content

Commit

Permalink
refactor: Add filter-replace-utils for serializing and deserializing (#…
Browse files Browse the repository at this point in the history
…170)

- Add filter-replace-utils for serializing and deserializing in the src/ui directory.
- Update CMakeLists.txt to include the new files in the target_sources.
- Update FindLibAvObs.cmake to read buildspec.json from the CMAKE_SOURCE_DIR.
- Update model-infos.cpp to include two new Whisper models.
- Add a new CMakeLists.txt file in the src/tests directory.
- Add localvocal-offline-test.cpp in the src/tests directory.
- Add clear_current_caption function in localvocal-offline-test.cpp.
  • Loading branch information
royshil authored Oct 1, 2024
1 parent 0245023 commit 65408db
Show file tree
Hide file tree
Showing 5 changed files with 61 additions and 32 deletions.
29 changes: 1 addition & 28 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -130,32 +130,5 @@ target_sources(
set_target_properties_plugin(${CMAKE_PROJECT_NAME} PROPERTIES OUTPUT_NAME ${_name})

if(ENABLE_TESTS)
add_executable(${CMAKE_PROJECT_NAME}-tests)

include(cmake/FindLibAvObs.cmake)

target_sources(
${CMAKE_PROJECT_NAME}-tests
PRIVATE src/tests/localvocal-offline-test.cpp
src/tests/audio-file-utils.cpp
src/transcription-utils.cpp
src/model-utils/model-infos.cpp
src/model-utils/model-find-utils.cpp
src/whisper-utils/whisper-processing.cpp
src/whisper-utils/whisper-utils.cpp
src/whisper-utils/silero-vad-onnx.cpp
src/whisper-utils/token-buffer-thread.cpp
src/whisper-utils/vad-processing.cpp
src/translation/language_codes.cpp
src/translation/translation.cpp
src/ui/filter-replace-utils.cpp
src/translation/translation-language-utils.cpp)

find_libav(${CMAKE_PROJECT_NAME}-tests)

target_link_libraries(${CMAKE_PROJECT_NAME}-tests PRIVATE ct2 sentencepiece Whispercpp Ort OBS::libobs ICU)
target_include_directories(${CMAKE_PROJECT_NAME}-tests PRIVATE src)

# install the tests to the release/test directory
install(TARGETS ${CMAKE_PROJECT_NAME}-tests DESTINATION test)
add_subdirectory(src/tests)
endif()
4 changes: 2 additions & 2 deletions cmake/FindLibAvObs.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ function(find_libav TARGET)
endif()

if(NOT buildspec)
file(READ "${CMAKE_CURRENT_SOURCE_DIR}/buildspec.json" buildspec)
file(READ "${CMAKE_SOURCE_DIR}/buildspec.json" buildspec)
endif()
string(
JSON
Expand All @@ -36,7 +36,7 @@ function(find_libav TARGET)
elseif(APPLE)
set(arch universal)
endif()
set(deps_root "${CMAKE_CURRENT_SOURCE_DIR}/.deps/obs-deps-${version}-${arch}")
set(deps_root "${CMAKE_SOURCE_DIR}/.deps/obs-deps-${version}-${arch}")

target_include_directories(${TARGET} PRIVATE "${deps_root}/include")
target_link_libraries(
Expand Down
16 changes: 14 additions & 2 deletions src/model-utils/model-infos.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -221,14 +221,26 @@ std::map<std::string, ModelInfo> models_info = {{
"7d99f41a10525d0206bddadd86760181fa920438b6b33237e3118ff6c83bb53d"}}}},
{"Whisper Medium English (1.5Gb)",
{"Whisper Medium English",
"ggml-meduim-en",
"ggml-medium-en",
MODEL_TYPE_TRANSCRIPTION,
{{"https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-medium.en.bin",
"cc37e93478338ec7700281a7ac30a10128929eb8f427dda2e865faa8f6da4356"}}}},
{"Whisper Medium (1.5Gb)",
{"Whisper Medium",
"ggml-meduim",
"ggml-medium",
MODEL_TYPE_TRANSCRIPTION,
{{"https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-medium.bin",
"6c14d5adee5f86394037b4e4e8b59f1673b6cee10e3cf0b11bbdbee79c156208"}}}},
{"Whisper Large v3 Turbo (1.62Gb)",
{"Whisper Large v3 Turbo",
"ggml-large-v3-turbo",
MODEL_TYPE_TRANSCRIPTION,
{{"https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-large-v3-turbo.bin",
"1FC70F774D38EB169993AC391EEA357EF47C88757EF72EE5943879B7E8E2BC69"}}}},
{"Whisper Large v3 Turbo q5 (574Mb)",
{"Whisper Large v3 Turbo q5",
"ggml-large-v3-turbo-q5_0",
MODEL_TYPE_TRANSCRIPTION,
{{"https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-large-v3-turbo-q5_0.bin",
"394221709CD5AD1F40C46E6031CA61BCE88931E6E088C188294C6D5A55FFA7E2"}}}},
}};
29 changes: 29 additions & 0 deletions src/tests/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
set(TEST_EXEC_NAME ${CMAKE_PROJECT_NAME}-tests)

add_executable(${TEST_EXEC_NAME})

target_sources(
${TEST_EXEC_NAME}
PRIVATE ${CMAKE_SOURCE_DIR}/src/tests/localvocal-offline-test.cpp
${CMAKE_SOURCE_DIR}/src/tests/audio-file-utils.cpp
${CMAKE_SOURCE_DIR}/src/transcription-utils.cpp
${CMAKE_SOURCE_DIR}/src/model-utils/model-infos.cpp
${CMAKE_SOURCE_DIR}/src/model-utils/model-find-utils.cpp
${CMAKE_SOURCE_DIR}/src/whisper-utils/whisper-processing.cpp
${CMAKE_SOURCE_DIR}/src/whisper-utils/whisper-utils.cpp
${CMAKE_SOURCE_DIR}/src/whisper-utils/silero-vad-onnx.cpp
${CMAKE_SOURCE_DIR}/src/whisper-utils/token-buffer-thread.cpp
${CMAKE_SOURCE_DIR}/src/whisper-utils/vad-processing.cpp
${CMAKE_SOURCE_DIR}/src/translation/language_codes.cpp
${CMAKE_SOURCE_DIR}/src/translation/translation.cpp
${CMAKE_SOURCE_DIR}/src/ui/filter-replace-utils.cpp
${CMAKE_SOURCE_DIR}/src/translation/translation-language-utils.cpp)

include(${CMAKE_SOURCE_DIR}/cmake/FindLibAvObs.cmake)
find_libav(${TEST_EXEC_NAME})

target_link_libraries(${TEST_EXEC_NAME} PRIVATE ct2 sentencepiece Whispercpp Ort OBS::libobs ICU)
target_include_directories(${TEST_EXEC_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/src)

# install the tests to the release/test directory
install(TARGETS ${TEST_EXEC_NAME} DESTINATION test)
15 changes: 15 additions & 0 deletions src/tests/localvocal-offline-test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -276,6 +276,21 @@ void json_segments_saver_thread_function()
}
}

void clear_current_caption(transcription_filter_data *gf_)
{
if (gf_->captions_monitor.isEnabled()) {
gf_->captions_monitor.clear();
gf_->translation_monitor.clear();
}
// reset translation context
gf_->last_text_for_translation = "";
gf_->last_text_translation = "";
gf_->translation_ctx.last_input_tokens.clear();
gf_->translation_ctx.last_translation_tokens.clear();
gf_->last_transcription_sentence.clear();
gf_->cleared_last_sub = true;
}

void set_text_callback(struct transcription_filter_data *gf,
const DetectionResultWithText &resultIn)
{
Expand Down

0 comments on commit 65408db

Please sign in to comment.