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.
- package/README.md +20 -5
- package/SherpaOnnx.podspec +5 -1
- package/android/prebuilt-download.gradle +89 -49
- package/android/prebuilt-versions.gradle +1 -1
- package/android/src/main/assets/model_licenses/asr-models-license-status.csv +1 -0
- package/android/src/main/assets/model_licenses/speech-enhancement-models-license-status.csv +7 -0
- package/android/src/main/cpp/CMakeLists.txt +3 -0
- package/android/src/main/cpp/jni/model_detect/sherpa-onnx-enhancement-wrapper.cpp +68 -0
- package/android/src/main/cpp/jni/model_detect/sherpa-onnx-enhancement-wrapper.h +17 -0
- package/android/src/main/cpp/jni/model_detect/sherpa-onnx-model-detect-enhancement.cpp +119 -0
- package/android/src/main/cpp/jni/model_detect/sherpa-onnx-model-detect-helper.cpp +23 -0
- package/android/src/main/cpp/jni/model_detect/sherpa-onnx-model-detect-helper.h +9 -0
- package/android/src/main/cpp/jni/model_detect/sherpa-onnx-model-detect-stt.cpp +51 -8
- package/android/src/main/cpp/jni/model_detect/sherpa-onnx-model-detect.h +41 -0
- package/android/src/main/cpp/jni/model_detect/sherpa-onnx-stt-wrapper.cpp +5 -0
- package/android/src/main/cpp/jni/model_detect/sherpa-onnx-validate-enhancement.cpp +68 -0
- package/android/src/main/cpp/jni/model_detect/sherpa-onnx-validate-enhancement.h +30 -0
- package/android/src/main/cpp/jni/model_detect/sherpa-onnx-validate-stt.cpp +11 -0
- package/android/src/main/cpp/jni/module/sherpa-onnx-module-jni.cpp +21 -0
- package/android/src/main/java/com/sherpaonnx/SherpaOnnxArchiveHelper.kt +110 -35
- package/android/src/main/java/com/sherpaonnx/SherpaOnnxAssetHelper.kt +6 -0
- package/android/src/main/java/com/sherpaonnx/SherpaOnnxEnhancementHelper.kt +377 -0
- package/android/src/main/java/com/sherpaonnx/SherpaOnnxExtractionNotificationHelper.kt +102 -0
- package/android/src/main/java/com/sherpaonnx/SherpaOnnxModule.kt +198 -18
- package/android/src/main/java/com/sherpaonnx/SherpaOnnxSttHelper.kt +22 -0
- package/ios/Resources/model_licenses/asr-models-license-status.csv +1 -0
- package/ios/Resources/model_licenses/speech-enhancement-models-license-status.csv +7 -0
- package/ios/SherpaOnnx+Assets.mm +5 -0
- package/ios/SherpaOnnx+Enhancement.mm +435 -0
- package/ios/SherpaOnnx+STT.mm +13 -1
- package/ios/SherpaOnnx.mm +87 -17
- package/ios/enhancement/sherpa-onnx-enhancement-wrapper.h +85 -0
- package/ios/enhancement/sherpa-onnx-enhancement-wrapper.mm +218 -0
- package/ios/model_detect/sherpa-onnx-model-detect-enhancement.mm +92 -0
- package/ios/model_detect/sherpa-onnx-model-detect-helper.h +5 -0
- package/ios/model_detect/sherpa-onnx-model-detect-helper.mm +23 -0
- package/ios/model_detect/sherpa-onnx-model-detect-stt.mm +51 -7
- package/ios/model_detect/sherpa-onnx-model-detect.h +33 -0
- package/ios/model_detect/sherpa-onnx-validate-enhancement.h +30 -0
- package/ios/model_detect/sherpa-onnx-validate-enhancement.mm +69 -0
- package/ios/model_detect/sherpa-onnx-validate-stt.mm +11 -0
- package/ios/stt/sherpa-onnx-stt-wrapper.h +11 -1
- package/ios/stt/sherpa-onnx-stt-wrapper.mm +30 -2
- package/ios/tts/sherpa-onnx-tts-wrapper.mm +16 -0
- package/lib/module/NativeSherpaOnnx.js.map +1 -1
- package/lib/module/download/localModels.js +2 -3
- package/lib/module/download/localModels.js.map +1 -1
- package/lib/module/download/paths.js +2 -1
- package/lib/module/download/paths.js.map +1 -1
- package/lib/module/download/postDownloadProcessing.js +17 -4
- package/lib/module/download/postDownloadProcessing.js.map +1 -1
- package/lib/module/enhancement/index.js +63 -48
- package/lib/module/enhancement/index.js.map +1 -1
- package/lib/module/enhancement/streaming.js +60 -0
- package/lib/module/enhancement/streaming.js.map +1 -0
- package/lib/module/enhancement/streamingTypes.js +4 -0
- package/lib/module/enhancement/streamingTypes.js.map +1 -0
- package/lib/module/enhancement/types.js +4 -0
- package/lib/module/enhancement/types.js.map +1 -0
- package/lib/module/extraction/extractTarBz2.js +2 -2
- package/lib/module/extraction/extractTarBz2.js.map +1 -1
- package/lib/module/extraction/extractTarZst.js +2 -2
- package/lib/module/extraction/extractTarZst.js.map +1 -1
- package/lib/module/extraction/index.js +10 -5
- package/lib/module/extraction/index.js.map +1 -1
- package/lib/module/licenses.js +9 -3
- package/lib/module/licenses.js.map +1 -1
- package/lib/module/stt/index.js +4 -2
- package/lib/module/stt/index.js.map +1 -1
- package/lib/module/stt/streaming.js +2 -1
- package/lib/module/stt/streaming.js.map +1 -1
- package/lib/module/stt/types.js +3 -1
- package/lib/module/stt/types.js.map +1 -1
- package/lib/module/tts/index.js +4 -2
- package/lib/module/tts/index.js.map +1 -1
- package/lib/module/tts/streaming.js +3 -1
- package/lib/module/tts/streaming.js.map +1 -1
- package/lib/typescript/src/NativeSherpaOnnx.d.ts +70 -9
- package/lib/typescript/src/NativeSherpaOnnx.d.ts.map +1 -1
- package/lib/typescript/src/download/localModels.d.ts.map +1 -1
- package/lib/typescript/src/download/paths.d.ts +2 -1
- package/lib/typescript/src/download/paths.d.ts.map +1 -1
- package/lib/typescript/src/download/postDownloadProcessing.d.ts +9 -0
- package/lib/typescript/src/download/postDownloadProcessing.d.ts.map +1 -1
- package/lib/typescript/src/enhancement/index.d.ts +9 -46
- package/lib/typescript/src/enhancement/index.d.ts.map +1 -1
- package/lib/typescript/src/enhancement/streaming.d.ts +6 -0
- package/lib/typescript/src/enhancement/streaming.d.ts.map +1 -0
- package/lib/typescript/src/enhancement/streamingTypes.d.ts +12 -0
- package/lib/typescript/src/enhancement/streamingTypes.d.ts.map +1 -0
- package/lib/typescript/src/enhancement/types.d.ts +31 -0
- package/lib/typescript/src/enhancement/types.d.ts.map +1 -0
- package/lib/typescript/src/extraction/extractTarBz2.d.ts +2 -1
- package/lib/typescript/src/extraction/extractTarBz2.d.ts.map +1 -1
- package/lib/typescript/src/extraction/extractTarZst.d.ts +2 -1
- package/lib/typescript/src/extraction/extractTarZst.d.ts.map +1 -1
- package/lib/typescript/src/extraction/index.d.ts +1 -1
- package/lib/typescript/src/extraction/index.d.ts.map +1 -1
- package/lib/typescript/src/extraction/types.d.ts +12 -0
- package/lib/typescript/src/extraction/types.d.ts.map +1 -1
- package/lib/typescript/src/licenses.d.ts.map +1 -1
- package/lib/typescript/src/stt/index.d.ts +1 -1
- package/lib/typescript/src/stt/index.d.ts.map +1 -1
- package/lib/typescript/src/stt/streaming.d.ts.map +1 -1
- package/lib/typescript/src/stt/types.d.ts +16 -1
- package/lib/typescript/src/stt/types.d.ts.map +1 -1
- package/lib/typescript/src/tts/index.d.ts.map +1 -1
- package/lib/typescript/src/tts/streaming.d.ts.map +1 -1
- package/package.json +1 -1
- package/scripts/ci/check-model-csvs.sh +27 -2
- package/scripts/ci/collect_all_sherpa_model_streams.sh +3 -1
- package/scripts/ci/collect_one_sherpa_release_stream.sh +3 -1
- package/scripts/ci/sherpa_speech_enhancement_model_release_streams.json +13 -0
- package/scripts/ci/update_model_license_csv.sh +17 -17
- package/src/NativeSherpaOnnx.ts +108 -10
- package/src/download/localModels.ts +1 -3
- package/src/download/paths.ts +2 -1
- package/src/download/postDownloadProcessing.ts +24 -1
- package/src/enhancement/index.ts +120 -58
- package/src/enhancement/streaming.ts +105 -0
- package/src/enhancement/streamingTypes.ts +14 -0
- package/src/enhancement/types.ts +36 -0
- package/src/extraction/extractTarBz2.ts +7 -2
- package/src/extraction/extractTarZst.ts +7 -2
- package/src/extraction/index.ts +29 -6
- package/src/extraction/types.ts +16 -0
- package/src/licenses.ts +13 -2
- package/src/stt/index.ts +8 -7
- package/src/stt/streaming.ts +7 -1
- package/src/stt/types.ts +18 -0
- package/src/tts/index.ts +7 -7
- package/src/tts/streaming.ts +6 -3
- package/third_party/sherpa-onnx-prebuilt/ANDROID_RELEASE_TAG +1 -1
- package/third_party/sherpa-onnx-prebuilt/IOS_RELEASE_TAG +1 -1
|
@@ -19,6 +19,7 @@ enum class SttModelKind {
|
|
|
19
19
|
kZipformerCtc,
|
|
20
20
|
kWhisper,
|
|
21
21
|
kFunAsrNano,
|
|
22
|
+
kQwen3Asr,
|
|
22
23
|
kFireRedAsr,
|
|
23
24
|
kMoonshine,
|
|
24
25
|
kMoonshineV2,
|
|
@@ -41,6 +42,12 @@ enum class TtsModelKind {
|
|
|
41
42
|
kSupertonic
|
|
42
43
|
};
|
|
43
44
|
|
|
45
|
+
enum class EnhancementModelKind {
|
|
46
|
+
kUnknown,
|
|
47
|
+
kGtcrn,
|
|
48
|
+
kDpdfNet
|
|
49
|
+
};
|
|
50
|
+
|
|
44
51
|
struct SttModelPaths {
|
|
45
52
|
std::string encoder;
|
|
46
53
|
std::string decoder;
|
|
@@ -56,6 +63,11 @@ struct SttModelPaths {
|
|
|
56
63
|
std::string funasrLLM;
|
|
57
64
|
std::string funasrEmbedding;
|
|
58
65
|
std::string funasrTokenizer;
|
|
66
|
+
/** Qwen3-ASR: conv_frontend.onnx + encoder + decoder + tokenizer dir (vocab.json, merges.txt, tokenizer_config.json). */
|
|
67
|
+
std::string qwen3ConvFrontend;
|
|
68
|
+
std::string qwen3Encoder;
|
|
69
|
+
std::string qwen3Decoder;
|
|
70
|
+
std::string qwen3Tokenizer;
|
|
59
71
|
std::string moonshinePreprocessor;
|
|
60
72
|
std::string moonshineEncoder;
|
|
61
73
|
std::string moonshineUncachedDecoder;
|
|
@@ -85,6 +97,8 @@ struct SttCandidatePaths {
|
|
|
85
97
|
std::string funasrLLM;
|
|
86
98
|
std::string funasrEmbedding;
|
|
87
99
|
std::string funasrTokenizerDir;
|
|
100
|
+
std::string qwen3ConvFrontend;
|
|
101
|
+
std::string qwen3TokenizerDir;
|
|
88
102
|
std::string moonshinePreprocessor;
|
|
89
103
|
std::string moonshineEncoder;
|
|
90
104
|
std::string moonshineUncachedDecoder;
|
|
@@ -100,6 +114,7 @@ struct SttPathHints {
|
|
|
100
114
|
bool isLikelyWenetCtc = false;
|
|
101
115
|
bool isLikelySenseVoice = false;
|
|
102
116
|
bool isLikelyFunAsrNano = false;
|
|
117
|
+
bool isLikelyQwen3Asr = false;
|
|
103
118
|
bool isLikelyZipformer = false;
|
|
104
119
|
bool isLikelyMoonshine = false;
|
|
105
120
|
bool isLikelyDolphin = false;
|
|
@@ -124,6 +139,7 @@ struct SttCapabilities {
|
|
|
124
139
|
bool hasMoonshineV2 = false;
|
|
125
140
|
bool hasParaformer = false;
|
|
126
141
|
bool hasFunAsrNano = false;
|
|
142
|
+
bool hasQwen3Asr = false;
|
|
127
143
|
bool hasDolphin = false;
|
|
128
144
|
bool hasFireRedAsr = false;
|
|
129
145
|
/** True when dir name suggests Fire Red but only a single CTC/paraformer model (no encoder/decoder). Use zipformer_ctc. */
|
|
@@ -160,6 +176,10 @@ struct TtsModelPaths {
|
|
|
160
176
|
std::string voiceStyle;
|
|
161
177
|
};
|
|
162
178
|
|
|
179
|
+
struct EnhancementModelPaths {
|
|
180
|
+
std::string model;
|
|
181
|
+
};
|
|
182
|
+
|
|
163
183
|
struct SttDetectResult {
|
|
164
184
|
bool ok = false;
|
|
165
185
|
std::string error;
|
|
@@ -181,6 +201,14 @@ struct TtsDetectResult {
|
|
|
181
201
|
std::vector<std::string> lexiconLanguageCandidates;
|
|
182
202
|
};
|
|
183
203
|
|
|
204
|
+
struct EnhancementDetectResult {
|
|
205
|
+
bool ok = false;
|
|
206
|
+
std::string error;
|
|
207
|
+
std::vector<DetectedModel> detectedModels;
|
|
208
|
+
EnhancementModelKind selectedKind = EnhancementModelKind::kUnknown;
|
|
209
|
+
EnhancementModelPaths paths;
|
|
210
|
+
};
|
|
211
|
+
|
|
184
212
|
SttDetectResult DetectSttModel(
|
|
185
213
|
const std::string& modelDir,
|
|
186
214
|
const std::optional<bool>& preferInt8,
|
|
@@ -193,6 +221,11 @@ TtsDetectResult DetectTtsModel(
|
|
|
193
221
|
const std::string& modelType
|
|
194
222
|
);
|
|
195
223
|
|
|
224
|
+
EnhancementDetectResult DetectEnhancementModel(
|
|
225
|
+
const std::string& modelDir,
|
|
226
|
+
const std::string& modelType
|
|
227
|
+
);
|
|
228
|
+
|
|
196
229
|
} // namespace sherpaonnx
|
|
197
230
|
|
|
198
231
|
#endif // SHERPA_ONNX_MODEL_DETECT_H
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#ifndef SHERPA_ONNX_VALIDATE_ENHANCEMENT_H
|
|
2
|
+
#define SHERPA_ONNX_VALIDATE_ENHANCEMENT_H
|
|
3
|
+
|
|
4
|
+
#include "sherpa-onnx-model-detect.h"
|
|
5
|
+
#include <string>
|
|
6
|
+
#include <vector>
|
|
7
|
+
|
|
8
|
+
namespace sherpaonnx {
|
|
9
|
+
|
|
10
|
+
struct EnhancementFieldRequirement {
|
|
11
|
+
const char* fieldName;
|
|
12
|
+
std::string EnhancementModelPaths::* field;
|
|
13
|
+
bool required;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
struct EnhancementValidationResult {
|
|
17
|
+
bool ok = true;
|
|
18
|
+
std::vector<std::string> missingRequired;
|
|
19
|
+
std::string error;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
EnhancementValidationResult ValidateEnhancementPaths(
|
|
23
|
+
EnhancementModelKind kind,
|
|
24
|
+
const EnhancementModelPaths& paths,
|
|
25
|
+
const std::string& modelDir
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
} // namespace sherpaonnx
|
|
29
|
+
|
|
30
|
+
#endif // SHERPA_ONNX_VALIDATE_ENHANCEMENT_H
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
#include "sherpa-onnx-validate-enhancement.h"
|
|
2
|
+
|
|
3
|
+
#include <cstddef>
|
|
4
|
+
|
|
5
|
+
namespace sherpaonnx {
|
|
6
|
+
namespace {
|
|
7
|
+
|
|
8
|
+
static const EnhancementFieldRequirement kGenericReqs[] = {
|
|
9
|
+
{"model", &EnhancementModelPaths::model, true},
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
static const EnhancementFieldRequirement* GetRequirements(
|
|
13
|
+
EnhancementModelKind kind,
|
|
14
|
+
size_t& count
|
|
15
|
+
) {
|
|
16
|
+
switch (kind) {
|
|
17
|
+
case EnhancementModelKind::kGtcrn:
|
|
18
|
+
case EnhancementModelKind::kDpdfNet:
|
|
19
|
+
count = std::size(kGenericReqs);
|
|
20
|
+
return kGenericReqs;
|
|
21
|
+
default:
|
|
22
|
+
count = 0;
|
|
23
|
+
return nullptr;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
static const char* EnhancementKindToName(EnhancementModelKind kind) {
|
|
28
|
+
switch (kind) {
|
|
29
|
+
case EnhancementModelKind::kGtcrn:
|
|
30
|
+
return "GTCRN";
|
|
31
|
+
case EnhancementModelKind::kDpdfNet:
|
|
32
|
+
return "DPDFNet";
|
|
33
|
+
default:
|
|
34
|
+
return "Unknown";
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
} // namespace
|
|
39
|
+
|
|
40
|
+
EnhancementValidationResult ValidateEnhancementPaths(
|
|
41
|
+
EnhancementModelKind kind,
|
|
42
|
+
const EnhancementModelPaths& paths,
|
|
43
|
+
const std::string& modelDir
|
|
44
|
+
) {
|
|
45
|
+
EnhancementValidationResult result;
|
|
46
|
+
size_t count = 0;
|
|
47
|
+
const auto* reqs = GetRequirements(kind, count);
|
|
48
|
+
if (!reqs) return result;
|
|
49
|
+
|
|
50
|
+
for (size_t i = 0; i < count; ++i) {
|
|
51
|
+
if (reqs[i].required && (paths.*(reqs[i].field)).empty()) {
|
|
52
|
+
result.missingRequired.push_back(reqs[i].fieldName);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
if (!result.missingRequired.empty()) {
|
|
57
|
+
result.ok = false;
|
|
58
|
+
result.error = std::string("Enhancement ") + EnhancementKindToName(kind) +
|
|
59
|
+
": missing required files in " + modelDir + ": ";
|
|
60
|
+
for (size_t i = 0; i < result.missingRequired.size(); ++i) {
|
|
61
|
+
if (i > 0) result.error += ", ";
|
|
62
|
+
result.error += result.missingRequired[i];
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
return result;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
} // namespace sherpaonnx
|
|
@@ -52,6 +52,13 @@ static const SttFieldRequirement kFunAsrNanoReqs[] = {
|
|
|
52
52
|
{"funasrTokenizer", &SttModelPaths::funasrTokenizer, true},
|
|
53
53
|
};
|
|
54
54
|
|
|
55
|
+
static const SttFieldRequirement kQwen3AsrReqs[] = {
|
|
56
|
+
{"qwen3ConvFrontend", &SttModelPaths::qwen3ConvFrontend, true},
|
|
57
|
+
{"qwen3Encoder", &SttModelPaths::qwen3Encoder, true},
|
|
58
|
+
{"qwen3Decoder", &SttModelPaths::qwen3Decoder, true},
|
|
59
|
+
{"qwen3Tokenizer", &SttModelPaths::qwen3Tokenizer, true},
|
|
60
|
+
};
|
|
61
|
+
|
|
55
62
|
static const SttFieldRequirement kMoonshineReqs[] = {
|
|
56
63
|
{"moonshinePreprocessor", &SttModelPaths::moonshinePreprocessor, true},
|
|
57
64
|
{"moonshineEncoder", &SttModelPaths::moonshineEncoder, true},
|
|
@@ -120,6 +127,9 @@ static const SttFieldRequirement* GetRequirements(SttModelKind kind, size_t& cou
|
|
|
120
127
|
case SttModelKind::kFunAsrNano:
|
|
121
128
|
count = std::size(kFunAsrNanoReqs);
|
|
122
129
|
return kFunAsrNanoReqs;
|
|
130
|
+
case SttModelKind::kQwen3Asr:
|
|
131
|
+
count = std::size(kQwen3AsrReqs);
|
|
132
|
+
return kQwen3AsrReqs;
|
|
123
133
|
case SttModelKind::kMoonshine:
|
|
124
134
|
count = std::size(kMoonshineReqs);
|
|
125
135
|
return kMoonshineReqs;
|
|
@@ -161,6 +171,7 @@ static const char* SttKindToName(SttModelKind k) {
|
|
|
161
171
|
case SttModelKind::kZipformerCtc: return "Zipformer CTC";
|
|
162
172
|
case SttModelKind::kWhisper: return "Whisper";
|
|
163
173
|
case SttModelKind::kFunAsrNano: return "FunASR Nano";
|
|
174
|
+
case SttModelKind::kQwen3Asr: return "Qwen3 ASR";
|
|
164
175
|
case SttModelKind::kFireRedAsr: return "Fire Red ASR";
|
|
165
176
|
case SttModelKind::kMoonshine: return "Moonshine";
|
|
166
177
|
case SttModelKind::kMoonshineV2: return "Moonshine v2";
|
|
@@ -83,6 +83,15 @@ struct SttFunAsrNanoOptions {
|
|
|
83
83
|
std::optional<std::string> hotwords;
|
|
84
84
|
};
|
|
85
85
|
|
|
86
|
+
/** Model-specific options: Qwen3 ASR (sherpa-onnx OfflineQwen3ASRModelConfig). */
|
|
87
|
+
struct SttQwen3AsrOptions {
|
|
88
|
+
std::optional<int32_t> max_total_len;
|
|
89
|
+
std::optional<int32_t> max_new_tokens;
|
|
90
|
+
std::optional<float> temperature;
|
|
91
|
+
std::optional<float> top_p;
|
|
92
|
+
std::optional<int32_t> seed;
|
|
93
|
+
};
|
|
94
|
+
|
|
86
95
|
/**
|
|
87
96
|
* Wrapper class for sherpa-onnx OfflineRecognizer (STT).
|
|
88
97
|
*/
|
|
@@ -106,7 +115,8 @@ public:
|
|
|
106
115
|
const SttWhisperOptions* whisperOpts = nullptr,
|
|
107
116
|
const SttSenseVoiceOptions* senseVoiceOpts = nullptr,
|
|
108
117
|
const SttCanaryOptions* canaryOpts = nullptr,
|
|
109
|
-
const SttFunAsrNanoOptions* funasrNanoOpts = nullptr
|
|
118
|
+
const SttFunAsrNanoOptions* funasrNanoOpts = nullptr,
|
|
119
|
+
const SttQwen3AsrOptions* qwen3AsrOpts = nullptr
|
|
110
120
|
);
|
|
111
121
|
|
|
112
122
|
SttRecognitionResult transcribeFile(const std::string& filePath);
|
|
@@ -138,7 +138,8 @@ SttInitializeResult SttWrapper::initialize(
|
|
|
138
138
|
const SttWhisperOptions* whisperOpts,
|
|
139
139
|
const SttSenseVoiceOptions* senseVoiceOpts,
|
|
140
140
|
const SttCanaryOptions* canaryOpts,
|
|
141
|
-
const SttFunAsrNanoOptions* funasrNanoOpts
|
|
141
|
+
const SttFunAsrNanoOptions* funasrNanoOpts,
|
|
142
|
+
const SttQwen3AsrOptions* qwen3AsrOpts
|
|
142
143
|
) {
|
|
143
144
|
SttInitializeResult result;
|
|
144
145
|
result.success = false;
|
|
@@ -197,6 +198,12 @@ SttInitializeResult SttWrapper::initialize(
|
|
|
197
198
|
config.model_config.funasr_nano.embedding = detect.paths.funasrEmbedding;
|
|
198
199
|
config.model_config.funasr_nano.tokenizer = detect.paths.funasrTokenizer;
|
|
199
200
|
break;
|
|
201
|
+
case SttModelKind::kQwen3Asr:
|
|
202
|
+
config.model_config.qwen3_asr.conv_frontend = detect.paths.qwen3ConvFrontend;
|
|
203
|
+
config.model_config.qwen3_asr.encoder = detect.paths.qwen3Encoder;
|
|
204
|
+
config.model_config.qwen3_asr.decoder = detect.paths.qwen3Decoder;
|
|
205
|
+
config.model_config.qwen3_asr.tokenizer = detect.paths.qwen3Tokenizer;
|
|
206
|
+
break;
|
|
200
207
|
case SttModelKind::kFireRedAsr:
|
|
201
208
|
config.model_config.fire_red_asr.encoder = detect.paths.fireRedEncoder;
|
|
202
209
|
config.model_config.fire_red_asr.decoder = detect.paths.fireRedDecoder;
|
|
@@ -290,6 +297,20 @@ SttInitializeResult SttWrapper::initialize(
|
|
|
290
297
|
config.model_config.funasr_nano.hotwords = *funasrNanoOpts->hotwords;
|
|
291
298
|
}
|
|
292
299
|
break;
|
|
300
|
+
case SttModelKind::kQwen3Asr:
|
|
301
|
+
if (qwen3AsrOpts) {
|
|
302
|
+
if (qwen3AsrOpts->max_total_len.has_value())
|
|
303
|
+
config.model_config.qwen3_asr.max_total_len = *qwen3AsrOpts->max_total_len;
|
|
304
|
+
if (qwen3AsrOpts->max_new_tokens.has_value())
|
|
305
|
+
config.model_config.qwen3_asr.max_new_tokens = *qwen3AsrOpts->max_new_tokens;
|
|
306
|
+
if (qwen3AsrOpts->temperature.has_value())
|
|
307
|
+
config.model_config.qwen3_asr.temperature = *qwen3AsrOpts->temperature;
|
|
308
|
+
if (qwen3AsrOpts->top_p.has_value())
|
|
309
|
+
config.model_config.qwen3_asr.top_p = *qwen3AsrOpts->top_p;
|
|
310
|
+
if (qwen3AsrOpts->seed.has_value())
|
|
311
|
+
config.model_config.qwen3_asr.seed = *qwen3AsrOpts->seed;
|
|
312
|
+
}
|
|
313
|
+
break;
|
|
293
314
|
default:
|
|
294
315
|
break;
|
|
295
316
|
}
|
|
@@ -329,9 +350,16 @@ SttInitializeResult SttWrapper::initialize(
|
|
|
329
350
|
}
|
|
330
351
|
(void)dither; // FeatureConfig in bundled cxx-api.h has no dither; reserve for future use
|
|
331
352
|
|
|
332
|
-
bool isWhisperModel =
|
|
353
|
+
bool isWhisperModel = detect.selectedKind == SttModelKind::kWhisper &&
|
|
354
|
+
!config.model_config.whisper.encoder.empty() && !config.model_config.whisper.decoder.empty();
|
|
333
355
|
if (isWhisperModel) {
|
|
334
356
|
LOGI("Initializing Whisper model with encoder: %s, decoder: %s", config.model_config.whisper.encoder.c_str(), config.model_config.whisper.decoder.c_str());
|
|
357
|
+
} else if (detect.selectedKind == SttModelKind::kQwen3Asr) {
|
|
358
|
+
LOGI("Initializing Qwen3 ASR: conv=%s encoder=%s decoder=%s tokenizer=%s",
|
|
359
|
+
config.model_config.qwen3_asr.conv_frontend.c_str(),
|
|
360
|
+
config.model_config.qwen3_asr.encoder.c_str(),
|
|
361
|
+
config.model_config.qwen3_asr.decoder.c_str(),
|
|
362
|
+
config.model_config.qwen3_asr.tokenizer.c_str());
|
|
335
363
|
} else {
|
|
336
364
|
LOGI("Initializing non-Whisper model");
|
|
337
365
|
}
|
|
@@ -97,6 +97,9 @@ TtsInitializeResult TtsWrapper::initialize(
|
|
|
97
97
|
config.model.vits.model = detect.paths.ttsModel;
|
|
98
98
|
config.model.vits.tokens = detect.paths.tokens;
|
|
99
99
|
config.model.vits.data_dir = detect.paths.dataDir;
|
|
100
|
+
if (!detect.paths.lexicon.empty()) {
|
|
101
|
+
config.model.vits.lexicon = detect.paths.lexicon;
|
|
102
|
+
}
|
|
100
103
|
if (noiseScale.has_value()) {
|
|
101
104
|
config.model.vits.noise_scale = *noiseScale;
|
|
102
105
|
}
|
|
@@ -177,6 +180,19 @@ TtsInitializeResult TtsWrapper::initialize(
|
|
|
177
180
|
return result;
|
|
178
181
|
}
|
|
179
182
|
|
|
183
|
+
// Prevent hard native aborts from sherpa-onnx when phonemization data is missing.
|
|
184
|
+
// Some VITS models require either espeak-ng-data or a lexicon. If both are missing,
|
|
185
|
+
// fail gracefully so JS/UI can display a recoverable error instead of crashing.
|
|
186
|
+
if (detect.selectedKind == TtsModelKind::kVits &&
|
|
187
|
+
detect.paths.dataDir.empty() &&
|
|
188
|
+
detect.paths.lexicon.empty()) {
|
|
189
|
+
result.error =
|
|
190
|
+
"TTS VITS init blocked: missing both espeak-ng-data and lexicon. "
|
|
191
|
+
"Please add espeak-ng-data to the model folder or provide a lexicon.";
|
|
192
|
+
LOGE("%s", result.error.c_str());
|
|
193
|
+
return result;
|
|
194
|
+
}
|
|
195
|
+
|
|
180
196
|
if (ruleFsts.has_value() && !ruleFsts->empty()) {
|
|
181
197
|
config.rule_fsts = *ruleFsts;
|
|
182
198
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeSherpaOnnx.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAA0B,cAAc;;AAEpE;;
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeSherpaOnnx.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAA0B,cAAc;;AAEpE;;AAixBA,eAAeA,mBAAmB,CAACC,YAAY,CAAO,YAAY,CAAC","ignoreList":[]}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
import { Platform } from 'react-native';
|
|
4
4
|
import { DocumentDirectoryPath, exists, readFile, readDir, unlink, writeFile } from '@dr.pogodin/react-native-fs';
|
|
5
|
-
import { getCachePath, getModelsBaseDir, getModelDir, getManifestPath,
|
|
6
|
-
import { resolveActualModelDir
|
|
5
|
+
import { getCachePath, getModelsBaseDir, getModelDir, getManifestPath, getReadyMarkerPath, getTarArchivePath, getOnnxPath } from "./paths.js";
|
|
6
|
+
import { resolveActualModelDir } from "./validation.js";
|
|
7
7
|
import { emitModelsListUpdated } from "./downloadEvents.js";
|
|
8
8
|
import { clearMemoryCacheForCategory } from "./registry.js";
|
|
9
9
|
export async function listDownloadedModelsByCategory(category) {
|
|
@@ -131,7 +131,6 @@ export async function deleteModelByCategory(category, id) {
|
|
|
131
131
|
if (await exists(onnxPath)) {
|
|
132
132
|
await unlink(onnxPath);
|
|
133
133
|
}
|
|
134
|
-
await removeDirectoryRecursive(getNativeAssetExtractedModelDir(id));
|
|
135
134
|
const list = await listDownloadedModelsByCategory(category);
|
|
136
135
|
emitModelsListUpdated(category, list);
|
|
137
136
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","DocumentDirectoryPath","exists","readFile","readDir","unlink","writeFile","getCachePath","getModelsBaseDir","getModelDir","getManifestPath","
|
|
1
|
+
{"version":3,"names":["Platform","DocumentDirectoryPath","exists","readFile","readDir","unlink","writeFile","getCachePath","getModelsBaseDir","getModelDir","getManifestPath","getReadyMarkerPath","getTarArchivePath","getOnnxPath","resolveActualModelDir","emitModelsListUpdated","clearMemoryCacheForCategory","listDownloadedModelsByCategory","category","baseDir","existsResult","entries","models","entry","isDirectory","manifestPath","name","manifestExists","raw","manifest","JSON","parse","model","push","isModelDownloadedByCategory","id","readyPath","getLocalModelPathByCategory","ready","updateModelLastUsed","installDir","lastUsed","Date","toISOString","stringify","error","console","warn","listDownloadedModelsWithMetadata","modelsWithMetadata","downloadedAt","sizeOnDisk","size","status","cleanupLeastRecentlyUsed","options","length","keepCount","sorted","sort","a","b","aTime","bTime","getTime","deletedIds","bytesFreed","targetBytes","maxToDelete","maxModelsToDelete","i","item","deleteModelByCategory","log","modelDir","tarPath","onnxPath","list","clearModelCacheByCategory","cachePath","getDownloadStorageBase","OS"],"sourceRoot":"../../../src","sources":["download/localModels.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -86,7 +86,8 @@ export function getExtractionStatePath(category, modelId) {
|
|
|
86
86
|
/**
|
|
87
87
|
* Directory where native `resolveAssetPath` materializes a bundled model folder
|
|
88
88
|
* (`DocumentDirectoryPath/models/{modelId}` — Android internal `files/models/...`).
|
|
89
|
-
* Separate from {@link getModelDir}.
|
|
89
|
+
* Separate from {@link getModelDir}. `deleteModelByCategory` does not remove this tree; it
|
|
90
|
+
* only deletes download-manager installs under `sherpa-onnx/models/`.
|
|
90
91
|
*/
|
|
91
92
|
export function getNativeAssetExtractedModelDir(modelId) {
|
|
92
93
|
const safeId = modelId.replace(/[/\\]/g, '');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DocumentDirectoryPath","ModelCategory","RELEASE_API_BASE","CATEGORY_CONFIG","Tts","tag","cacheFile","baseDir","Stt","Vad","Diarization","Enhancement","Separation","Qnn","getCacheDir","getCachePath","category","getModelsBaseDir","getModelDir","modelId","getArchiveFilename","archiveExt","getArchivePath","filename","getTarArchivePath","getOnnxPath","getReadyMarkerPath","getManifestPath","getDownloadStatePath","getExtractionStatePath","getNativeAssetExtractedModelDir","safeId","replace","getReleaseUrl"],"sourceRoot":"../../../src","sources":["download/paths.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["DocumentDirectoryPath","ModelCategory","RELEASE_API_BASE","CATEGORY_CONFIG","Tts","tag","cacheFile","baseDir","Stt","Vad","Diarization","Enhancement","Separation","Qnn","getCacheDir","getCachePath","category","getModelsBaseDir","getModelDir","modelId","getArchiveFilename","archiveExt","getArchivePath","filename","getTarArchivePath","getOnnxPath","getReadyMarkerPath","getManifestPath","getDownloadStatePath","getExtractionStatePath","getNativeAssetExtractedModelDir","safeId","replace","getReleaseUrl"],"sourceRoot":"../../../src","sources":["download/paths.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -20,7 +20,10 @@ export async function runPostDownloadProcessing(options) {
|
|
|
20
20
|
onChecksumIssue,
|
|
21
21
|
deleteArchiveAfterExtract,
|
|
22
22
|
onProgress,
|
|
23
|
-
getDownloadedList
|
|
23
|
+
getDownloadedList,
|
|
24
|
+
showExtractionNotifications,
|
|
25
|
+
extractionNotificationTitle,
|
|
26
|
+
extractionNotificationText
|
|
24
27
|
} = options;
|
|
25
28
|
registerActivePostProcess(category, id);
|
|
26
29
|
try {
|
|
@@ -36,7 +39,10 @@ export async function runPostDownloadProcessing(options) {
|
|
|
36
39
|
onChecksumIssue,
|
|
37
40
|
deleteArchiveAfterExtract,
|
|
38
41
|
onProgress,
|
|
39
|
-
getDownloadedList
|
|
42
|
+
getDownloadedList,
|
|
43
|
+
showExtractionNotifications,
|
|
44
|
+
extractionNotificationTitle,
|
|
45
|
+
extractionNotificationText
|
|
40
46
|
});
|
|
41
47
|
} finally {
|
|
42
48
|
unregisterActivePostProcess(category, id);
|
|
@@ -55,7 +61,10 @@ async function runPostDownloadProcessingBody(options) {
|
|
|
55
61
|
onChecksumIssue,
|
|
56
62
|
deleteArchiveAfterExtract,
|
|
57
63
|
onProgress,
|
|
58
|
-
getDownloadedList
|
|
64
|
+
getDownloadedList,
|
|
65
|
+
showExtractionNotifications,
|
|
66
|
+
extractionNotificationTitle,
|
|
67
|
+
extractionNotificationText
|
|
59
68
|
} = options;
|
|
60
69
|
const isAborted = () => Boolean(signal?.aborted);
|
|
61
70
|
const abortError = new Error('Download aborted');
|
|
@@ -100,7 +109,11 @@ async function runPostDownloadProcessingBody(options) {
|
|
|
100
109
|
};
|
|
101
110
|
onProgress?.(progress);
|
|
102
111
|
emitDownloadProgress(category, id, progress);
|
|
103
|
-
}, signal
|
|
112
|
+
}, signal, {
|
|
113
|
+
showNotificationsEnabled: showExtractionNotifications !== false,
|
|
114
|
+
notificationTitle: extractionNotificationTitle,
|
|
115
|
+
notificationText: extractionNotificationText
|
|
116
|
+
});
|
|
104
117
|
}
|
|
105
118
|
if (model.sha256) {
|
|
106
119
|
const expectedSha = model.sha256.toLowerCase();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["exists","mkdir","writeFile","stat","unlink","getReadyMarkerPath","getManifestPath","getExtractionStatePath","validateChecksum","validateExtractedFiles","resolveActualModelDir","extractTarBz2","promptChecksumFallback","emitDownloadProgress","emitModelsListUpdated","registerActivePostProcess","unregisterActivePostProcess","runPostDownloadProcessing","options","category","id","model","downloadPath","modelDir","isArchive","statePath","signal","onChecksumIssue","deleteArchiveAfterExtract","onProgress","getDownloadedList","runPostDownloadProcessingBody","isAborted","Boolean","aborted","abortError","Error","name","extractResult","extractedTotalBytes","archiveStat","bytes","size","console","warn","statErr","message","includes","extractionStatePath","JSON","stringify","modelId","phase","startedAt","Date","toISOString","archivePath","evt","totalBytes","progress","bytesDownloaded","percent","sha256","expectedSha","toLowerCase","issue","nativeSha","expected","reason","checksumResult","success","error","keepFile","filesValidation","now","sizeOnDisk","s","downloadedAt","lastUsed","err","String","list","resolvedPath","localPath"],"sourceRoot":"../../../src","sources":["download/postDownloadProcessing.ts"],"mappings":";;AAAA,SACEA,MAAM,EACNC,KAAK,EACLC,SAAS,EACTC,IAAI,EACJC,MAAM,QACD,6BAA6B;AAQpC,SACEC,kBAAkB,EAClBC,eAAe,EACfC,sBAAsB,QACjB,YAAS;AAChB,SACEC,gBAAgB,EAChBC,sBAAsB,EACtBC,qBAAqB,QAChB,iBAAc;AACrB,SAASC,aAAa,QAAQ,gCAA6B;AAC3D,SAASC,sBAAsB,QAAQ,qBAAkB;AACzD,SAASC,oBAAoB,EAAEC,qBAAqB,QAAQ,qBAAkB;AAE9E,SACEC,yBAAyB,EACzBC,2BAA2B,QACtB,4BAAyB;
|
|
1
|
+
{"version":3,"names":["exists","mkdir","writeFile","stat","unlink","getReadyMarkerPath","getManifestPath","getExtractionStatePath","validateChecksum","validateExtractedFiles","resolveActualModelDir","extractTarBz2","promptChecksumFallback","emitDownloadProgress","emitModelsListUpdated","registerActivePostProcess","unregisterActivePostProcess","runPostDownloadProcessing","options","category","id","model","downloadPath","modelDir","isArchive","statePath","signal","onChecksumIssue","deleteArchiveAfterExtract","onProgress","getDownloadedList","showExtractionNotifications","extractionNotificationTitle","extractionNotificationText","runPostDownloadProcessingBody","isAborted","Boolean","aborted","abortError","Error","name","extractResult","extractedTotalBytes","archiveStat","bytes","size","console","warn","statErr","message","includes","extractionStatePath","JSON","stringify","modelId","phase","startedAt","Date","toISOString","archivePath","evt","totalBytes","progress","bytesDownloaded","percent","showNotificationsEnabled","notificationTitle","notificationText","sha256","expectedSha","toLowerCase","issue","nativeSha","expected","reason","checksumResult","success","error","keepFile","filesValidation","now","sizeOnDisk","s","downloadedAt","lastUsed","err","String","list","resolvedPath","localPath"],"sourceRoot":"../../../src","sources":["download/postDownloadProcessing.ts"],"mappings":"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","ignoreList":[]}
|