mirror of
https://github.com/occ-ai/obs-localvocal
synced 2024-11-07 02:40:12 +00:00
refactor: Add filter-replace-utils for serializing and deserializing (#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.
This commit is contained in:
parent
024502333a
commit
65408db097
@ -130,32 +130,5 @@ target_sources(
|
|||||||
set_target_properties_plugin(${CMAKE_PROJECT_NAME} PROPERTIES OUTPUT_NAME ${_name})
|
set_target_properties_plugin(${CMAKE_PROJECT_NAME} PROPERTIES OUTPUT_NAME ${_name})
|
||||||
|
|
||||||
if(ENABLE_TESTS)
|
if(ENABLE_TESTS)
|
||||||
add_executable(${CMAKE_PROJECT_NAME}-tests)
|
add_subdirectory(src/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)
|
|
||||||
endif()
|
endif()
|
||||||
|
@ -20,7 +20,7 @@ function(find_libav TARGET)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT buildspec)
|
if(NOT buildspec)
|
||||||
file(READ "${CMAKE_CURRENT_SOURCE_DIR}/buildspec.json" buildspec)
|
file(READ "${CMAKE_SOURCE_DIR}/buildspec.json" buildspec)
|
||||||
endif()
|
endif()
|
||||||
string(
|
string(
|
||||||
JSON
|
JSON
|
||||||
@ -36,7 +36,7 @@ function(find_libav TARGET)
|
|||||||
elseif(APPLE)
|
elseif(APPLE)
|
||||||
set(arch universal)
|
set(arch universal)
|
||||||
endif()
|
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_include_directories(${TARGET} PRIVATE "${deps_root}/include")
|
||||||
target_link_libraries(
|
target_link_libraries(
|
||||||
|
@ -221,14 +221,26 @@ std::map<std::string, ModelInfo> models_info = {{
|
|||||||
"7d99f41a10525d0206bddadd86760181fa920438b6b33237e3118ff6c83bb53d"}}}},
|
"7d99f41a10525d0206bddadd86760181fa920438b6b33237e3118ff6c83bb53d"}}}},
|
||||||
{"Whisper Medium English (1.5Gb)",
|
{"Whisper Medium English (1.5Gb)",
|
||||||
{"Whisper Medium English",
|
{"Whisper Medium English",
|
||||||
"ggml-meduim-en",
|
"ggml-medium-en",
|
||||||
MODEL_TYPE_TRANSCRIPTION,
|
MODEL_TYPE_TRANSCRIPTION,
|
||||||
{{"https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-medium.en.bin",
|
{{"https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-medium.en.bin",
|
||||||
"cc37e93478338ec7700281a7ac30a10128929eb8f427dda2e865faa8f6da4356"}}}},
|
"cc37e93478338ec7700281a7ac30a10128929eb8f427dda2e865faa8f6da4356"}}}},
|
||||||
{"Whisper Medium (1.5Gb)",
|
{"Whisper Medium (1.5Gb)",
|
||||||
{"Whisper Medium",
|
{"Whisper Medium",
|
||||||
"ggml-meduim",
|
"ggml-medium",
|
||||||
MODEL_TYPE_TRANSCRIPTION,
|
MODEL_TYPE_TRANSCRIPTION,
|
||||||
{{"https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-medium.bin",
|
{{"https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-medium.bin",
|
||||||
"6c14d5adee5f86394037b4e4e8b59f1673b6cee10e3cf0b11bbdbee79c156208"}}}},
|
"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
src/tests/CMakeLists.txt
Normal file
29
src/tests/CMakeLists.txt
Normal file
@ -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)
|
@ -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,
|
void set_text_callback(struct transcription_filter_data *gf,
|
||||||
const DetectionResultWithText &resultIn)
|
const DetectionResultWithText &resultIn)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user