File size: 2,353 Bytes
d21d362
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
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)