| cmake_minimum_required(VERSION 3.16) |
| project(VadOnnx) |
|
|
| set(CMAKE_CXX_STANDARD 17) |
| set(CMAKE_CXX_STANDARD_REQUIRED ON) |
| set(CMAKE_CXX_EXTENSIONS OFF) |
|
|
| # 可选:测试是否为大端系统(用于音频处理等场景) |
| include(TestBigEndian) |
| test_big_endian(BIG_ENDIAN) |
| if(BIG_ENDIAN) |
| message("Big endian system") |
| else() |
| message("Little endian system") |
| endif() |
|
|
| # 查找 ONNX Runtime 安装路径 |
| if(NOT DEFINED ONNXRUNTIME_DIR OR NOT EXISTS ${ONNXRUNTIME_DIR}) |
| message(FATAL_ERROR "Please specify ONNXRUNTIME_DIR when configuring, e.g. cmake -DONNXRUNTIME_DIR=/path/to/onnxruntime ..") |
| endif() |
|
|
| # 使用 pkg-config 查找 sndfile |
| find_package(PkgConfig REQUIRED) |
| pkg_check_modules(SNDFILE REQUIRED IMPORTED_TARGET sndfile) |
|
|
| # # 添加 ONNX Runtime include 路径 |
| # include_directories(${ONNXRUNTIME_DIR}/include) |
|
|
| # file(GLOB SOURCES_FILES "${CMAKE_SOURCE_DIR}/src/*.cpp") |
| # set(files ${files1}) |
|
|
| # add_library(vad_onnx SHARED ${SOURCES_FILES}) |
| # add_library(vad_onnx SHARED ${CMAKE_SOURCE_DIR}/src/vad_onnx.cpp) |
|
|
| # 设置库输出名称(跨平台兼容) |
| # set_target_properties(vad_onnx PROPERTIES |
| # PREFIX "" |
| # SUFFIX ".so" |
| # LIBRARY_OUTPUT_NAME_DEBUG "vad_onnx" |
| # LIBRARY_OUTPUT_NAME_RELEASE "vad_onnx" |
| # ) |
|
|
| # 链接 ONNX Runtime 库 |
| # if(APPLE) |
| # # macOS 上链接 dylib |
| # target_link_libraries(vad_onnx PRIVATE ${ONNXRUNTIME_DIR}/lib/libonnxruntime.dylib) |
| # elseif(UNIX) |
| # # Linux 上链接 so |
| # target_link_libraries(vad_onnx PRIVATE ${ONNXRUNTIME_DIR}/lib/libonnxruntime.so) |
| # elseif(WIN32) |
| # # Windows 上链接 dll + lib |
| # target_link_libraries(vad_onnx PRIVATE ${ONNXRUNTIME_DIR}/lib/onnxruntime.lib) |
| # set_target_properties(vad_onnx PROPERTIES SUFFIX ".dll") |
| # else() |
| # message(WARNING "Unknown platform, no ONNX Runtime linking applied.") |
| # endif() |
|
|
| # 添加项目头文件目录 |
| # include_directories(${CMAKE_SOURCE_DIR}/src) |
|
|
| # 可选:添加 ffmpeg 等其他依赖 |
| # if (ENABLE_FFMPEG) |
| # include_directories(${FFMPEG_DIR}/include) |
| # target_link_libraries(vad_onnx PRIVATE ${FFMPEG_DIR}/lib/libavcodec.a ${FFMPEG_DIR}/lib/libavutil.a) |
| # endif() |
|
|
| # https://github.com/snakers4/silero-vad examples/cpp |
| add_subdirectory(silero_vad_onnx) |
|
|
| # from moyoyo/translator python/helpers/vadprocessor.py |
| add_subdirectory(vad_onnx) |
|
|
| # 编译测试程序 |
| add_subdirectory(bin) |
|
|