Add CTC HLG decoding using OpenFst (#349)
This commit is contained in:
62
cmake/kaldifst.cmake
Normal file
62
cmake/kaldifst.cmake
Normal file
@@ -0,0 +1,62 @@
|
||||
function(download_kaldifst)
|
||||
include(FetchContent)
|
||||
|
||||
set(kaldifst_URL "https://github.com/k2-fsa/kaldifst/archive/refs/tags/v1.7.6.tar.gz")
|
||||
set(kaldifst_URL2 "https://huggingface.co/csukuangfj/kaldi-hmm-gmm-cmake-deps/resolve/main/kaldifst-1.7.6.tar.gz")
|
||||
set(kaldifst_HASH "SHA256=79280c0bb08b5ed1a2ab7c21320a2b071f1f0eb10d2f047e8d6f027f0d32b4d2")
|
||||
|
||||
# If you don't have access to the Internet,
|
||||
# please pre-download kaldifst
|
||||
set(possible_file_locations
|
||||
$ENV{HOME}/Downloads/kaldifst-1.7.6.tar.gz
|
||||
${PROJECT_SOURCE_DIR}/kaldifst-1.7.6.tar.gz
|
||||
${PROJECT_BINARY_DIR}/kaldifst-1.7.6.tar.gz
|
||||
/tmp/kaldifst-1.7.6.tar.gz
|
||||
/star-fj/fangjun/download/github/kaldifst-1.7.6.tar.gz
|
||||
)
|
||||
|
||||
foreach(f IN LISTS possible_file_locations)
|
||||
if(EXISTS ${f})
|
||||
set(kaldifst_URL "${f}")
|
||||
file(TO_CMAKE_PATH "${kaldifst_URL}" kaldifst_URL)
|
||||
message(STATUS "Found local downloaded kaldifst: ${kaldifst_URL}")
|
||||
set(kaldifst_URL2)
|
||||
break()
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
set(KALDIFST_BUILD_TESTS OFF CACHE BOOL "" FORCE)
|
||||
set(KALDIFST_BUILD_PYTHON OFF CACHE BOOL "" FORCE)
|
||||
|
||||
FetchContent_Declare(kaldifst
|
||||
URL ${kaldifst_URL}
|
||||
URL_HASH ${kaldifst_HASH}
|
||||
)
|
||||
|
||||
FetchContent_GetProperties(kaldifst)
|
||||
if(NOT kaldifst_POPULATED)
|
||||
message(STATUS "Downloading kaldifst from ${kaldifst_URL}")
|
||||
FetchContent_Populate(kaldifst)
|
||||
endif()
|
||||
message(STATUS "kaldifst is downloaded to ${kaldifst_SOURCE_DIR}")
|
||||
message(STATUS "kaldifst's binary dir is ${kaldifst_BINARY_DIR}")
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH ${kaldifst_SOURCE_DIR}/cmake)
|
||||
|
||||
add_subdirectory(${kaldifst_SOURCE_DIR} ${kaldifst_BINARY_DIR} EXCLUDE_FROM_ALL)
|
||||
|
||||
target_include_directories(kaldifst_core
|
||||
PUBLIC
|
||||
${kaldifst_SOURCE_DIR}/
|
||||
)
|
||||
|
||||
target_include_directories(fst
|
||||
PUBLIC
|
||||
${openfst_SOURCE_DIR}/src/include
|
||||
)
|
||||
|
||||
set_target_properties(kaldifst_core PROPERTIES OUTPUT_NAME "sherpa-onnx-kaldifst-core")
|
||||
set_target_properties(fst PROPERTIES OUTPUT_NAME "sherpa-onnx-fst")
|
||||
endfunction()
|
||||
|
||||
download_kaldifst()
|
||||
Reference in New Issue
Block a user