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.
Files changed (83) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +402 -0
  3. package/SherpaOnnx.podspec +84 -0
  4. package/android/build.gradle +193 -0
  5. package/android/src/main/AndroidManifest.xml +2 -0
  6. package/android/src/main/cpp/CMakeLists.txt +121 -0
  7. package/android/src/main/cpp/include/sherpa-onnx/c-api/c-api.h +1918 -0
  8. package/android/src/main/cpp/include/sherpa-onnx/c-api/cxx-api.h +841 -0
  9. package/android/src/main/cpp/jni/sherpa-onnx-jni.cpp +129 -0
  10. package/android/src/main/cpp/jni/sherpa-onnx-wrapper.cpp +649 -0
  11. package/android/src/main/cpp/jni/sherpa-onnx-wrapper.h +56 -0
  12. package/android/src/main/java/com/sherpaonnx/SherpaOnnxModule.kt +316 -0
  13. package/android/src/main/java/com/sherpaonnx/SherpaOnnxPackage.kt +33 -0
  14. package/ios/Frameworks/sherpa_onnx.xcframework.zip +0 -0
  15. package/ios/SherpaOnnx.h +5 -0
  16. package/ios/SherpaOnnx.mm +293 -0
  17. package/ios/SherpaOnnx.xcconfig +19 -0
  18. package/ios/include/sherpa-onnx/c-api/c-api.h +1918 -0
  19. package/ios/include/sherpa-onnx/c-api/cxx-api.h +841 -0
  20. package/ios/sherpa-onnx-wrapper.h +57 -0
  21. package/ios/sherpa-onnx-wrapper.mm +432 -0
  22. package/lib/module/NativeSherpaOnnx.js +5 -0
  23. package/lib/module/NativeSherpaOnnx.js.map +1 -0
  24. package/lib/module/diarization/index.js +54 -0
  25. package/lib/module/diarization/index.js.map +1 -0
  26. package/lib/module/enhancement/index.js +54 -0
  27. package/lib/module/enhancement/index.js.map +1 -0
  28. package/lib/module/index.js +25 -0
  29. package/lib/module/index.js.map +1 -0
  30. package/lib/module/package.json +1 -0
  31. package/lib/module/separation/index.js +54 -0
  32. package/lib/module/separation/index.js.map +1 -0
  33. package/lib/module/stt/index.js +79 -0
  34. package/lib/module/stt/index.js.map +1 -0
  35. package/lib/module/stt/types.js +4 -0
  36. package/lib/module/stt/types.js.map +1 -0
  37. package/lib/module/tts/index.js +54 -0
  38. package/lib/module/tts/index.js.map +1 -0
  39. package/lib/module/types.js +2 -0
  40. package/lib/module/types.js.map +1 -0
  41. package/lib/module/utils.js +93 -0
  42. package/lib/module/utils.js.map +1 -0
  43. package/lib/module/vad/index.js +54 -0
  44. package/lib/module/vad/index.js.map +1 -0
  45. package/lib/typescript/package.json +1 -0
  46. package/lib/typescript/src/NativeSherpaOnnx.d.ts +39 -0
  47. package/lib/typescript/src/NativeSherpaOnnx.d.ts.map +1 -0
  48. package/lib/typescript/src/diarization/index.d.ts +49 -0
  49. package/lib/typescript/src/diarization/index.d.ts.map +1 -0
  50. package/lib/typescript/src/enhancement/index.d.ts +47 -0
  51. package/lib/typescript/src/enhancement/index.d.ts.map +1 -0
  52. package/lib/typescript/src/index.d.ts +9 -0
  53. package/lib/typescript/src/index.d.ts.map +1 -0
  54. package/lib/typescript/src/separation/index.d.ts +48 -0
  55. package/lib/typescript/src/separation/index.d.ts.map +1 -0
  56. package/lib/typescript/src/stt/index.d.ts +53 -0
  57. package/lib/typescript/src/stt/index.d.ts.map +1 -0
  58. package/lib/typescript/src/stt/types.d.ts +39 -0
  59. package/lib/typescript/src/stt/types.d.ts.map +1 -0
  60. package/lib/typescript/src/tts/index.d.ts +47 -0
  61. package/lib/typescript/src/tts/index.d.ts.map +1 -0
  62. package/lib/typescript/src/types.d.ts +59 -0
  63. package/lib/typescript/src/types.d.ts.map +1 -0
  64. package/lib/typescript/src/utils.d.ts +53 -0
  65. package/lib/typescript/src/utils.d.ts.map +1 -0
  66. package/lib/typescript/src/vad/index.d.ts +48 -0
  67. package/lib/typescript/src/vad/index.d.ts.map +1 -0
  68. package/package.json +221 -0
  69. package/scripts/copy-headers.js +184 -0
  70. package/scripts/setup-assets.js +323 -0
  71. package/scripts/setup-ios-framework.sh +282 -0
  72. package/scripts/switch-registry.js +75 -0
  73. package/src/NativeSherpaOnnx.ts +44 -0
  74. package/src/diarization/index.ts +69 -0
  75. package/src/enhancement/index.ts +67 -0
  76. package/src/index.tsx +30 -0
  77. package/src/separation/index.ts +68 -0
  78. package/src/stt/index.ts +83 -0
  79. package/src/stt/types.ts +42 -0
  80. package/src/tts/index.ts +67 -0
  81. package/src/types.ts +73 -0
  82. package/src/utils.ts +97 -0
  83. package/src/vad/index.ts +70 -0
@@ -0,0 +1,2 @@
1
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android">
2
+ </manifest>
@@ -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
+ )