react-native-sherpa-onnx 0.3.8 → 0.4.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 (134) hide show
  1. package/README.md +20 -5
  2. package/SherpaOnnx.podspec +5 -1
  3. package/android/prebuilt-download.gradle +89 -49
  4. package/android/prebuilt-versions.gradle +1 -1
  5. package/android/src/main/assets/model_licenses/asr-models-license-status.csv +1 -0
  6. package/android/src/main/assets/model_licenses/speech-enhancement-models-license-status.csv +7 -0
  7. package/android/src/main/cpp/CMakeLists.txt +3 -0
  8. package/android/src/main/cpp/jni/model_detect/sherpa-onnx-enhancement-wrapper.cpp +68 -0
  9. package/android/src/main/cpp/jni/model_detect/sherpa-onnx-enhancement-wrapper.h +17 -0
  10. package/android/src/main/cpp/jni/model_detect/sherpa-onnx-model-detect-enhancement.cpp +119 -0
  11. package/android/src/main/cpp/jni/model_detect/sherpa-onnx-model-detect-helper.cpp +23 -0
  12. package/android/src/main/cpp/jni/model_detect/sherpa-onnx-model-detect-helper.h +9 -0
  13. package/android/src/main/cpp/jni/model_detect/sherpa-onnx-model-detect-stt.cpp +51 -8
  14. package/android/src/main/cpp/jni/model_detect/sherpa-onnx-model-detect.h +41 -0
  15. package/android/src/main/cpp/jni/model_detect/sherpa-onnx-stt-wrapper.cpp +5 -0
  16. package/android/src/main/cpp/jni/model_detect/sherpa-onnx-validate-enhancement.cpp +68 -0
  17. package/android/src/main/cpp/jni/model_detect/sherpa-onnx-validate-enhancement.h +30 -0
  18. package/android/src/main/cpp/jni/model_detect/sherpa-onnx-validate-stt.cpp +11 -0
  19. package/android/src/main/cpp/jni/module/sherpa-onnx-module-jni.cpp +21 -0
  20. package/android/src/main/java/com/sherpaonnx/SherpaOnnxArchiveHelper.kt +110 -35
  21. package/android/src/main/java/com/sherpaonnx/SherpaOnnxAssetHelper.kt +6 -0
  22. package/android/src/main/java/com/sherpaonnx/SherpaOnnxEnhancementHelper.kt +377 -0
  23. package/android/src/main/java/com/sherpaonnx/SherpaOnnxExtractionNotificationHelper.kt +102 -0
  24. package/android/src/main/java/com/sherpaonnx/SherpaOnnxModule.kt +198 -18
  25. package/android/src/main/java/com/sherpaonnx/SherpaOnnxSttHelper.kt +22 -0
  26. package/ios/Resources/model_licenses/asr-models-license-status.csv +1 -0
  27. package/ios/Resources/model_licenses/speech-enhancement-models-license-status.csv +7 -0
  28. package/ios/SherpaOnnx+Assets.mm +5 -0
  29. package/ios/SherpaOnnx+Enhancement.mm +435 -0
  30. package/ios/SherpaOnnx+STT.mm +13 -1
  31. package/ios/SherpaOnnx.mm +87 -17
  32. package/ios/enhancement/sherpa-onnx-enhancement-wrapper.h +85 -0
  33. package/ios/enhancement/sherpa-onnx-enhancement-wrapper.mm +218 -0
  34. package/ios/model_detect/sherpa-onnx-model-detect-enhancement.mm +92 -0
  35. package/ios/model_detect/sherpa-onnx-model-detect-helper.h +5 -0
  36. package/ios/model_detect/sherpa-onnx-model-detect-helper.mm +23 -0
  37. package/ios/model_detect/sherpa-onnx-model-detect-stt.mm +51 -7
  38. package/ios/model_detect/sherpa-onnx-model-detect.h +33 -0
  39. package/ios/model_detect/sherpa-onnx-validate-enhancement.h +30 -0
  40. package/ios/model_detect/sherpa-onnx-validate-enhancement.mm +69 -0
  41. package/ios/model_detect/sherpa-onnx-validate-stt.mm +11 -0
  42. package/ios/stt/sherpa-onnx-stt-wrapper.h +11 -1
  43. package/ios/stt/sherpa-onnx-stt-wrapper.mm +30 -2
  44. package/ios/tts/sherpa-onnx-tts-wrapper.mm +16 -0
  45. package/lib/module/NativeSherpaOnnx.js.map +1 -1
  46. package/lib/module/download/localModels.js +2 -3
  47. package/lib/module/download/localModels.js.map +1 -1
  48. package/lib/module/download/paths.js +2 -1
  49. package/lib/module/download/paths.js.map +1 -1
  50. package/lib/module/download/postDownloadProcessing.js +17 -4
  51. package/lib/module/download/postDownloadProcessing.js.map +1 -1
  52. package/lib/module/enhancement/index.js +63 -48
  53. package/lib/module/enhancement/index.js.map +1 -1
  54. package/lib/module/enhancement/streaming.js +60 -0
  55. package/lib/module/enhancement/streaming.js.map +1 -0
  56. package/lib/module/enhancement/streamingTypes.js +4 -0
  57. package/lib/module/enhancement/streamingTypes.js.map +1 -0
  58. package/lib/module/enhancement/types.js +4 -0
  59. package/lib/module/enhancement/types.js.map +1 -0
  60. package/lib/module/extraction/extractTarBz2.js +2 -2
  61. package/lib/module/extraction/extractTarBz2.js.map +1 -1
  62. package/lib/module/extraction/extractTarZst.js +2 -2
  63. package/lib/module/extraction/extractTarZst.js.map +1 -1
  64. package/lib/module/extraction/index.js +10 -5
  65. package/lib/module/extraction/index.js.map +1 -1
  66. package/lib/module/licenses.js +9 -3
  67. package/lib/module/licenses.js.map +1 -1
  68. package/lib/module/stt/index.js +4 -2
  69. package/lib/module/stt/index.js.map +1 -1
  70. package/lib/module/stt/streaming.js +2 -1
  71. package/lib/module/stt/streaming.js.map +1 -1
  72. package/lib/module/stt/types.js +3 -1
  73. package/lib/module/stt/types.js.map +1 -1
  74. package/lib/module/tts/index.js +4 -2
  75. package/lib/module/tts/index.js.map +1 -1
  76. package/lib/module/tts/streaming.js +3 -1
  77. package/lib/module/tts/streaming.js.map +1 -1
  78. package/lib/typescript/src/NativeSherpaOnnx.d.ts +70 -9
  79. package/lib/typescript/src/NativeSherpaOnnx.d.ts.map +1 -1
  80. package/lib/typescript/src/download/localModels.d.ts.map +1 -1
  81. package/lib/typescript/src/download/paths.d.ts +2 -1
  82. package/lib/typescript/src/download/paths.d.ts.map +1 -1
  83. package/lib/typescript/src/download/postDownloadProcessing.d.ts +9 -0
  84. package/lib/typescript/src/download/postDownloadProcessing.d.ts.map +1 -1
  85. package/lib/typescript/src/enhancement/index.d.ts +9 -46
  86. package/lib/typescript/src/enhancement/index.d.ts.map +1 -1
  87. package/lib/typescript/src/enhancement/streaming.d.ts +6 -0
  88. package/lib/typescript/src/enhancement/streaming.d.ts.map +1 -0
  89. package/lib/typescript/src/enhancement/streamingTypes.d.ts +12 -0
  90. package/lib/typescript/src/enhancement/streamingTypes.d.ts.map +1 -0
  91. package/lib/typescript/src/enhancement/types.d.ts +31 -0
  92. package/lib/typescript/src/enhancement/types.d.ts.map +1 -0
  93. package/lib/typescript/src/extraction/extractTarBz2.d.ts +2 -1
  94. package/lib/typescript/src/extraction/extractTarBz2.d.ts.map +1 -1
  95. package/lib/typescript/src/extraction/extractTarZst.d.ts +2 -1
  96. package/lib/typescript/src/extraction/extractTarZst.d.ts.map +1 -1
  97. package/lib/typescript/src/extraction/index.d.ts +1 -1
  98. package/lib/typescript/src/extraction/index.d.ts.map +1 -1
  99. package/lib/typescript/src/extraction/types.d.ts +12 -0
  100. package/lib/typescript/src/extraction/types.d.ts.map +1 -1
  101. package/lib/typescript/src/licenses.d.ts.map +1 -1
  102. package/lib/typescript/src/stt/index.d.ts +1 -1
  103. package/lib/typescript/src/stt/index.d.ts.map +1 -1
  104. package/lib/typescript/src/stt/streaming.d.ts.map +1 -1
  105. package/lib/typescript/src/stt/types.d.ts +16 -1
  106. package/lib/typescript/src/stt/types.d.ts.map +1 -1
  107. package/lib/typescript/src/tts/index.d.ts.map +1 -1
  108. package/lib/typescript/src/tts/streaming.d.ts.map +1 -1
  109. package/package.json +1 -1
  110. package/scripts/ci/check-model-csvs.sh +27 -2
  111. package/scripts/ci/collect_all_sherpa_model_streams.sh +3 -1
  112. package/scripts/ci/collect_one_sherpa_release_stream.sh +3 -1
  113. package/scripts/ci/sherpa_speech_enhancement_model_release_streams.json +13 -0
  114. package/scripts/ci/update_model_license_csv.sh +17 -17
  115. package/src/NativeSherpaOnnx.ts +108 -10
  116. package/src/download/localModels.ts +1 -3
  117. package/src/download/paths.ts +2 -1
  118. package/src/download/postDownloadProcessing.ts +24 -1
  119. package/src/enhancement/index.ts +120 -58
  120. package/src/enhancement/streaming.ts +105 -0
  121. package/src/enhancement/streamingTypes.ts +14 -0
  122. package/src/enhancement/types.ts +36 -0
  123. package/src/extraction/extractTarBz2.ts +7 -2
  124. package/src/extraction/extractTarZst.ts +7 -2
  125. package/src/extraction/index.ts +29 -6
  126. package/src/extraction/types.ts +16 -0
  127. package/src/licenses.ts +13 -2
  128. package/src/stt/index.ts +8 -7
  129. package/src/stt/streaming.ts +7 -1
  130. package/src/stt/types.ts +18 -0
  131. package/src/tts/index.ts +7 -7
  132. package/src/tts/streaming.ts +6 -3
  133. package/third_party/sherpa-onnx-prebuilt/ANDROID_RELEASE_TAG +1 -1
  134. package/third_party/sherpa-onnx-prebuilt/IOS_RELEASE_TAG +1 -1
package/src/stt/types.ts CHANGED
@@ -15,6 +15,7 @@ export type STTModelType =
15
15
  | 'ctc'
16
16
  | 'whisper'
17
17
  | 'funasr_nano'
18
+ | 'qwen3_asr'
18
19
  | 'fire_red_asr'
19
20
  | 'moonshine'
20
21
  | 'dolphin'
@@ -50,6 +51,7 @@ export const STT_MODEL_TYPES: readonly STTModelType[] = [
50
51
  'ctc',
51
52
  'whisper',
52
53
  'funasr_nano',
54
+ 'qwen3_asr',
53
55
  'fire_red_asr',
54
56
  'moonshine',
55
57
  'dolphin',
@@ -124,6 +126,20 @@ export interface SttFunAsrNanoModelOptions {
124
126
  hotwords?: string;
125
127
  }
126
128
 
129
+ /** Options for Qwen3 ASR models. Applied only when modelType is 'qwen3_asr'. */
130
+ export interface SttQwen3AsrModelOptions {
131
+ /** Max total sequence length. Default: 512. */
132
+ maxTotalLen?: number;
133
+ /** Max new tokens to generate. Default: 128. */
134
+ maxNewTokens?: number;
135
+ /** Sampling temperature. Default: 1e-6. */
136
+ temperature?: number;
137
+ /** Top-p sampling. Default: 0.8. */
138
+ topP?: number;
139
+ /** Random seed. Default: 42. */
140
+ seed?: number;
141
+ }
142
+
127
143
  /**
128
144
  * Model-specific STT options. Only the block for the actually loaded model type is applied;
129
145
  * others are ignored (e.g. whisper options have no effect when a paraformer model is loaded).
@@ -133,6 +149,7 @@ export interface SttModelOptions {
133
149
  senseVoice?: SttSenseVoiceModelOptions;
134
150
  canary?: SttCanaryModelOptions;
135
151
  funasrNano?: SttFunAsrNanoModelOptions;
152
+ qwen3Asr?: SttQwen3AsrModelOptions;
136
153
  }
137
154
 
138
155
  /**
@@ -162,6 +179,7 @@ export interface STTInitializeOptions {
162
179
  * - 'wenet_ctc': Force detection as WeNet CTC model
163
180
  * - 'sense_voice': Force detection as SenseVoice model
164
181
  * - 'funasr_nano': Force detection as FunASR Nano model
182
+ * - 'qwen3_asr': Force detection as Qwen3 ASR
165
183
  * - 'fire_red_asr': FireRed ASR (encoder/decoder)
166
184
  * - 'moonshine': Moonshine (preprocess, encode, uncached_decode, cached_decode)
167
185
  * - 'dolphin': Dolphin (single model)
package/src/tts/index.ts CHANGED
@@ -112,10 +112,7 @@ export async function detectTtsModel(
112
112
  }> {
113
113
  const resolvedPath = await resolveModelPath(modelPath);
114
114
  const raw = await SherpaOnnx.detectTtsModel(resolvedPath, options?.modelType);
115
- const err =
116
- typeof (raw as { error?: unknown }).error === 'string'
117
- ? String((raw as { error: string }).error).trim()
118
- : '';
115
+ const err = typeof raw.error === 'string' ? raw.error.trim() : '';
119
116
  return {
120
117
  success: raw.success,
121
118
  ...(err.length > 0 ? { error: err } : {}),
@@ -243,10 +240,13 @@ export async function createTTS(
243
240
  );
244
241
 
245
242
  if (!result.success) {
243
+ const nativeError =
244
+ typeof result.error === 'string' ? result.error.trim() : '';
245
+ const detected = JSON.stringify(result.detectedModels ?? []);
246
246
  throw new Error(
247
- `TTS initialization failed: ${JSON.stringify(
248
- result.detectedModels ?? []
249
- )}`
247
+ nativeError.length > 0
248
+ ? `TTS initialization failed: ${nativeError}`
249
+ : `TTS initialization failed: ${detected}`
250
250
  );
251
251
  }
252
252
 
@@ -192,10 +192,13 @@ export async function createStreamingTTS(
192
192
  );
193
193
 
194
194
  if (!result.success) {
195
+ const nativeError =
196
+ typeof result.error === 'string' ? result.error.trim() : '';
197
+ const detected = JSON.stringify(result.detectedModels ?? []);
195
198
  throw new Error(
196
- `TTS initialization failed: ${JSON.stringify(
197
- result.detectedModels ?? []
198
- )}`
199
+ nativeError.length > 0
200
+ ? `Streaming TTS initialization failed: ${nativeError}`
201
+ : `Streaming TTS initialization failed: ${detected}`
199
202
  );
200
203
  }
201
204
 
@@ -1 +1 @@
1
- sherpa-onnx-android-v1.12.31-1
1
+ sherpa-onnx-android-v1.12.34-2
@@ -1 +1 @@
1
- sherpa-onnx-ios-v1.12.31-1
1
+ sherpa-onnx-ios-v1.12.34-1