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)