react-native-sherpa-onnx 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +20 -0
- package/README.md +402 -0
- package/SherpaOnnx.podspec +84 -0
- package/android/build.gradle +193 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/cpp/CMakeLists.txt +121 -0
- package/android/src/main/cpp/include/sherpa-onnx/c-api/c-api.h +1918 -0
- package/android/src/main/cpp/include/sherpa-onnx/c-api/cxx-api.h +841 -0
- package/android/src/main/cpp/jni/sherpa-onnx-jni.cpp +129 -0
- package/android/src/main/cpp/jni/sherpa-onnx-wrapper.cpp +649 -0
- package/android/src/main/cpp/jni/sherpa-onnx-wrapper.h +56 -0
- package/android/src/main/java/com/sherpaonnx/SherpaOnnxModule.kt +316 -0
- package/android/src/main/java/com/sherpaonnx/SherpaOnnxPackage.kt +33 -0
- package/ios/Frameworks/sherpa_onnx.xcframework.zip +0 -0
- package/ios/SherpaOnnx.h +5 -0
- package/ios/SherpaOnnx.mm +293 -0
- package/ios/SherpaOnnx.xcconfig +19 -0
- package/ios/include/sherpa-onnx/c-api/c-api.h +1918 -0
- package/ios/include/sherpa-onnx/c-api/cxx-api.h +841 -0
- package/ios/sherpa-onnx-wrapper.h +57 -0
- package/ios/sherpa-onnx-wrapper.mm +432 -0
- package/lib/module/NativeSherpaOnnx.js +5 -0
- package/lib/module/NativeSherpaOnnx.js.map +1 -0
- package/lib/module/diarization/index.js +54 -0
- package/lib/module/diarization/index.js.map +1 -0
- package/lib/module/enhancement/index.js +54 -0
- package/lib/module/enhancement/index.js.map +1 -0
- package/lib/module/index.js +25 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/separation/index.js +54 -0
- package/lib/module/separation/index.js.map +1 -0
- package/lib/module/stt/index.js +79 -0
- package/lib/module/stt/index.js.map +1 -0
- package/lib/module/stt/types.js +4 -0
- package/lib/module/stt/types.js.map +1 -0
- package/lib/module/tts/index.js +54 -0
- package/lib/module/tts/index.js.map +1 -0
- package/lib/module/types.js +2 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/utils.js +93 -0
- package/lib/module/utils.js.map +1 -0
- package/lib/module/vad/index.js +54 -0
- package/lib/module/vad/index.js.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/NativeSherpaOnnx.d.ts +39 -0
- package/lib/typescript/src/NativeSherpaOnnx.d.ts.map +1 -0
- package/lib/typescript/src/diarization/index.d.ts +49 -0
- package/lib/typescript/src/diarization/index.d.ts.map +1 -0
- package/lib/typescript/src/enhancement/index.d.ts +47 -0
- package/lib/typescript/src/enhancement/index.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +9 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/separation/index.d.ts +48 -0
- package/lib/typescript/src/separation/index.d.ts.map +1 -0
- package/lib/typescript/src/stt/index.d.ts +53 -0
- package/lib/typescript/src/stt/index.d.ts.map +1 -0
- package/lib/typescript/src/stt/types.d.ts +39 -0
- package/lib/typescript/src/stt/types.d.ts.map +1 -0
- package/lib/typescript/src/tts/index.d.ts +47 -0
- package/lib/typescript/src/tts/index.d.ts.map +1 -0
- package/lib/typescript/src/types.d.ts +59 -0
- package/lib/typescript/src/types.d.ts.map +1 -0
- package/lib/typescript/src/utils.d.ts +53 -0
- package/lib/typescript/src/utils.d.ts.map +1 -0
- package/lib/typescript/src/vad/index.d.ts +48 -0
- package/lib/typescript/src/vad/index.d.ts.map +1 -0
- package/package.json +221 -0
- package/scripts/copy-headers.js +184 -0
- package/scripts/setup-assets.js +323 -0
- package/scripts/setup-ios-framework.sh +282 -0
- package/scripts/switch-registry.js +75 -0
- package/src/NativeSherpaOnnx.ts +44 -0
- package/src/diarization/index.ts +69 -0
- package/src/enhancement/index.ts +67 -0
- package/src/index.tsx +30 -0
- package/src/separation/index.ts +68 -0
- package/src/stt/index.ts +83 -0
- package/src/stt/types.ts +42 -0
- package/src/tts/index.ts +67 -0
- package/src/types.ts +73 -0
- package/src/utils.ts +97 -0
- package/src/vad/index.ts +70 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
cmake_minimum_required(VERSION 3.22.1)
|
|
2
|
+
|
|
3
|
+
project("sherpaonnx")
|
|
4
|
+
|
|
5
|
+
# Set C++ standard
|
|
6
|
+
set(CMAKE_CXX_STANDARD 17)
|
|
7
|
+
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
8
|
+
|
|
9
|
+
# Android specific settings
|
|
10
|
+
set(CMAKE_ANDROID_ARCH_ABI ${ANDROID_ABI})
|
|
11
|
+
set(CMAKE_SYSTEM_NAME Android)
|
|
12
|
+
set(CMAKE_SYSTEM_VERSION ${ANDROID_PLATFORM_LEVEL})
|
|
13
|
+
|
|
14
|
+
# Calculate path relative to project root: android/src/main/cpp -> android -> project root
|
|
15
|
+
get_filename_component(PROJECT_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/../../.." ABSOLUTE)
|
|
16
|
+
|
|
17
|
+
# Fixed location where Gradle extracts native libraries
|
|
18
|
+
set(EXTRACTED_LIBS_DIR "${PROJECT_ROOT}/build/extracted_native_libs/jni/${ANDROID_ABI}")
|
|
19
|
+
|
|
20
|
+
# Try to find library directly by path (most reliable)
|
|
21
|
+
set(SHERPA_ONNX_LIB_CXX "${EXTRACTED_LIBS_DIR}/libsherpa-onnx-cxx-api.so")
|
|
22
|
+
set(SHERPA_ONNX_LIB_C "${EXTRACTED_LIBS_DIR}/libsherpa-onnx-c-api.so")
|
|
23
|
+
|
|
24
|
+
if(EXISTS "${SHERPA_ONNX_LIB_CXX}")
|
|
25
|
+
set(SHERPA_ONNX_LIB "${SHERPA_ONNX_LIB_CXX}")
|
|
26
|
+
message(STATUS "Found sherpa-onnx library (cxx-api): ${SHERPA_ONNX_LIB}")
|
|
27
|
+
elseif(EXISTS "${SHERPA_ONNX_LIB_C}")
|
|
28
|
+
set(SHERPA_ONNX_LIB "${SHERPA_ONNX_LIB_C}")
|
|
29
|
+
message(STATUS "Found sherpa-onnx library (c-api): ${SHERPA_ONNX_LIB}")
|
|
30
|
+
else()
|
|
31
|
+
# Fallback: use find_library
|
|
32
|
+
find_library(SHERPA_ONNX_LIB
|
|
33
|
+
NAMES sherpa-onnx-cxx-api libsherpa-onnx-cxx-api sherpa-onnx-c-api libsherpa-onnx-c-api
|
|
34
|
+
PATHS ${EXTRACTED_LIBS_DIR}
|
|
35
|
+
NO_DEFAULT_PATH
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
if(NOT SHERPA_ONNX_LIB)
|
|
39
|
+
message(FATAL_ERROR "sherpa-onnx library not found in ${EXTRACTED_LIBS_DIR}\n"
|
|
40
|
+
"Expected files:\n"
|
|
41
|
+
" - ${SHERPA_ONNX_LIB_CXX}\n"
|
|
42
|
+
" - ${SHERPA_ONNX_LIB_C}\n"
|
|
43
|
+
"Please ensure extractNativeLibs task ran successfully.")
|
|
44
|
+
endif()
|
|
45
|
+
endif()
|
|
46
|
+
|
|
47
|
+
# Source files
|
|
48
|
+
set(SOURCES
|
|
49
|
+
jni/sherpa-onnx-jni.cpp
|
|
50
|
+
jni/sherpa-onnx-wrapper.cpp
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
# Create shared library
|
|
54
|
+
add_library(sherpaonnx SHARED
|
|
55
|
+
${SOURCES}
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
# Try to find sherpa-onnx headers
|
|
59
|
+
# Priority order:
|
|
60
|
+
# 1. Local include directory (bundled in npm package) - preferred for published packages
|
|
61
|
+
# 2. Git submodule (for local development)
|
|
62
|
+
# The headers use "sherpa-onnx/c-api/..." includes, so we need to add
|
|
63
|
+
# the directory that contains "sherpa-onnx" as a subdirectory
|
|
64
|
+
set(SHERPA_ONNX_INCLUDE_DIRS "")
|
|
65
|
+
set(POSSIBLE_BASE_PATHS
|
|
66
|
+
"${CMAKE_CURRENT_SOURCE_DIR}/include" # Bundled headers in npm package
|
|
67
|
+
"${PROJECT_ROOT}/android/src/main/cpp/include" # Alternative path for bundled headers
|
|
68
|
+
"${PROJECT_ROOT}/sherpa-onnx" # Git submodule (for local development)
|
|
69
|
+
"${CMAKE_CURRENT_SOURCE_DIR}/../../../../sherpa-onnx" # Alternative submodule path
|
|
70
|
+
)
|
|
71
|
+
|
|
72
|
+
set(HEADER_SOURCE_TYPE "")
|
|
73
|
+
foreach(BASE_PATH ${POSSIBLE_BASE_PATHS})
|
|
74
|
+
if(EXISTS "${BASE_PATH}/sherpa-onnx/c-api/cxx-api.h")
|
|
75
|
+
list(APPEND SHERPA_ONNX_INCLUDE_DIRS "${BASE_PATH}")
|
|
76
|
+
|
|
77
|
+
# Determine header source type for logging
|
|
78
|
+
if("${BASE_PATH}" MATCHES "include")
|
|
79
|
+
set(HEADER_SOURCE_TYPE "bundled (npm package)")
|
|
80
|
+
else()
|
|
81
|
+
set(HEADER_SOURCE_TYPE "git submodule")
|
|
82
|
+
endif()
|
|
83
|
+
|
|
84
|
+
message(STATUS "Found sherpa-onnx headers from ${HEADER_SOURCE_TYPE} at: ${BASE_PATH}")
|
|
85
|
+
# Also output as regular message to ensure visibility in Gradle logs
|
|
86
|
+
message("-- Using sherpa-onnx headers from: ${HEADER_SOURCE_TYPE}")
|
|
87
|
+
break() # Found it, no need to check other paths
|
|
88
|
+
endif()
|
|
89
|
+
endforeach()
|
|
90
|
+
|
|
91
|
+
if(SHERPA_ONNX_INCLUDE_DIRS STREQUAL "")
|
|
92
|
+
message(FATAL_ERROR "sherpa-onnx headers not found.\n"
|
|
93
|
+
"Please ensure:\n"
|
|
94
|
+
" 1. Headers are copied by running: yarn copy-headers\n"
|
|
95
|
+
" 2. Or git submodule is initialized: git submodule update --init --recursive")
|
|
96
|
+
endif()
|
|
97
|
+
|
|
98
|
+
# Include directories (must be after add_library)
|
|
99
|
+
target_include_directories(sherpaonnx PRIVATE
|
|
100
|
+
${CMAKE_CURRENT_SOURCE_DIR}
|
|
101
|
+
${CMAKE_CURRENT_SOURCE_DIR}/jni
|
|
102
|
+
${SHERPA_ONNX_INCLUDE_DIRS}
|
|
103
|
+
)
|
|
104
|
+
|
|
105
|
+
# Also link onnxruntime (required dependency)
|
|
106
|
+
set(ONNXRUNTIME_LIB "${EXTRACTED_LIBS_DIR}/libonnxruntime.so")
|
|
107
|
+
|
|
108
|
+
# Link libraries
|
|
109
|
+
target_link_libraries(sherpaonnx
|
|
110
|
+
${SHERPA_ONNX_LIB}
|
|
111
|
+
${ONNXRUNTIME_LIB}
|
|
112
|
+
log
|
|
113
|
+
android
|
|
114
|
+
)
|
|
115
|
+
|
|
116
|
+
# Compiler flags
|
|
117
|
+
target_compile_options(sherpaonnx PRIVATE
|
|
118
|
+
-Wall
|
|
119
|
+
-Wextra
|
|
120
|
+
-fvisibility=hidden
|
|
121
|
+
)
|