react-native-sherpa-onnx 0.3.2 → 0.3.3
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 +28 -15
- package/SherpaOnnx.podspec +13 -5
- package/android/prebuilt-download.gradle +18 -5
- package/android/prebuilt-versions.gradle +8 -4
- package/android/src/main/cpp/jni/model_detect/sherpa-onnx-model-detect-helper.cpp +43 -142
- package/android/src/main/cpp/jni/model_detect/sherpa-onnx-model-detect-helper.h +12 -4
- package/android/src/main/cpp/jni/model_detect/sherpa-onnx-model-detect-stt.cpp +694 -307
- package/android/src/main/cpp/jni/model_detect/sherpa-onnx-model-detect-tts.cpp +194 -99
- package/android/src/main/cpp/jni/model_detect/sherpa-onnx-model-detect.h +90 -0
- package/android/src/main/cpp/jni/model_detect/sherpa-onnx-stt-wrapper.cpp +3 -0
- package/android/src/main/java/com/sherpaonnx/SherpaOnnxModule.kt +70 -0
- package/android/src/main/java/com/sherpaonnx/SherpaOnnxPcmCapture.kt +150 -0
- package/android/src/main/java/com/sherpaonnx/SherpaOnnxSttHelper.kt +39 -19
- package/ios/SherpaOnnx+PcmLiveStream.mm +288 -0
- package/ios/SherpaOnnx+STT.mm +2 -0
- package/ios/SherpaOnnx.mm +1 -1
- package/ios/model_detect/sherpa-onnx-model-detect-helper.h +9 -3
- package/ios/model_detect/sherpa-onnx-model-detect-helper.mm +38 -54
- package/ios/model_detect/sherpa-onnx-model-detect-stt.mm +620 -267
- package/ios/model_detect/sherpa-onnx-model-detect-tts.mm +131 -28
- package/ios/model_detect/sherpa-onnx-model-detect.h +70 -0
- package/ios/stt/sherpa-onnx-stt-wrapper.mm +4 -0
- package/lib/module/NativeSherpaOnnx.js.map +1 -1
- package/lib/module/audio/index.js +52 -0
- package/lib/module/audio/index.js.map +1 -1
- package/lib/module/stt/streaming.js +6 -3
- package/lib/module/stt/streaming.js.map +1 -1
- package/lib/typescript/src/NativeSherpaOnnx.d.ts +16 -2
- package/lib/typescript/src/NativeSherpaOnnx.d.ts.map +1 -1
- package/lib/typescript/src/audio/index.d.ts +17 -0
- package/lib/typescript/src/audio/index.d.ts.map +1 -1
- package/lib/typescript/src/stt/streaming.d.ts.map +1 -1
- package/lib/typescript/src/stt/streamingTypes.d.ts +1 -1
- package/lib/typescript/src/stt/streamingTypes.d.ts.map +1 -1
- package/package.json +6 -1
- package/scripts/check-model-csvs.sh +72 -0
- package/scripts/setup-ios-framework.sh +48 -48
- package/src/NativeSherpaOnnx.ts +18 -2
- package/src/audio/index.ts +81 -0
- package/src/stt/streaming.ts +10 -5
- package/src/stt/streamingTypes.ts +1 -1
- package/third_party/sherpa-onnx-prebuilt/ANDROID_RELEASE_TAG +1 -1
- package/third_party/sherpa-onnx-prebuilt/IOS_RELEASE_TAG +1 -1
|
@@ -2,13 +2,41 @@
|
|
|
2
2
|
* sherpa-onnx-model-detect-tts.mm
|
|
3
3
|
*
|
|
4
4
|
* Purpose: Detects TTS (text-to-speech) model type and fills TtsModelPaths from a model directory.
|
|
5
|
-
* Supports Vits,
|
|
5
|
+
* Used by the TTS wrapper on iOS. Supports Vits, Matcha, Kokoro, Kitten, Pocket, Zipvoice.
|
|
6
|
+
*
|
|
7
|
+
* --- Detection pipeline (overview) ---
|
|
8
|
+
*
|
|
9
|
+
* 1. Gather files in modelDir (recursive), then map file names to logical paths (ttsModel,
|
|
10
|
+
* acousticModel, vocoder, encoder, decoder, lmFlow, lmMain, textConditioner, tokens, lexicon,
|
|
11
|
+
* dataDir, voices, vocabJson, tokenScoresJson). Path hints from directory name (isLikelyVits,
|
|
12
|
+
* isLikelyKitten, isLikelyKokoro).
|
|
13
|
+
*
|
|
14
|
+
* 2. Capabilities (hasVits, hasMatcha, hasPocket, hasZipvoice, hasVoicesFile, hasDataDir): which
|
|
15
|
+
* model types are *possible* given the paths. Multiple can be true (e.g. voices.bin can satisfy
|
|
16
|
+
* both Kokoro and Kitten).
|
|
17
|
+
*
|
|
18
|
+
* 3. detectedModels (for UI "Select model type"): built from capabilities only. Every kind with
|
|
19
|
+
* the corresponding has* == true is added (with existing rules: zipvoice only if !hasMatcha,
|
|
20
|
+
* vits when hasVits and no voices or ambiguous folder name).
|
|
21
|
+
*
|
|
22
|
+
* 4. selectedKind: from ResolveTtsKind(). If modelType is explicit, use it if capabilities allow.
|
|
23
|
+
* If modelType == "auto": Priority 1 = folder name (GetKindsFromDirNameTts: tokens like "vits",
|
|
24
|
+
* "matcha", "kokoro" in dir name → candidate kinds). Priority 2 = among those candidates, pick
|
|
25
|
+
* the first that CapabilitySupportsTtsKind(). Fallback = file-only order (matcha → pocket →
|
|
26
|
+
* zipvoice → kokoro/kitten → vits).
|
|
27
|
+
*
|
|
28
|
+
* 5. paths: all gathered paths are written into result.paths; the selected kind determines which
|
|
29
|
+
* engine is used at runtime.
|
|
30
|
+
*
|
|
31
|
+
* Result to caller: ok, error, detectedModels (list), selectedKind (single), paths.
|
|
6
32
|
*/
|
|
7
33
|
|
|
8
34
|
#include "sherpa-onnx-model-detect.h"
|
|
9
35
|
#include "sherpa-onnx-model-detect-helper.h"
|
|
10
36
|
|
|
37
|
+
#include <algorithm>
|
|
11
38
|
#include <string>
|
|
39
|
+
#include <vector>
|
|
12
40
|
|
|
13
41
|
namespace sherpaonnx {
|
|
14
42
|
namespace {
|
|
@@ -25,6 +53,59 @@ TtsModelKind ParseTtsModelType(const std::string& modelType) {
|
|
|
25
53
|
return TtsModelKind::kUnknown;
|
|
26
54
|
}
|
|
27
55
|
|
|
56
|
+
/** Returns true if the given kind is supported by the current paths and hints (required files present). */
|
|
57
|
+
static bool CapabilitySupportsTtsKind(
|
|
58
|
+
TtsModelKind kind,
|
|
59
|
+
bool hasVits,
|
|
60
|
+
bool hasMatcha,
|
|
61
|
+
bool hasPocket,
|
|
62
|
+
bool hasZipvoice,
|
|
63
|
+
bool hasVoicesFile,
|
|
64
|
+
bool hasDataDir
|
|
65
|
+
) {
|
|
66
|
+
switch (kind) {
|
|
67
|
+
case TtsModelKind::kVits:
|
|
68
|
+
return hasVits && hasDataDir;
|
|
69
|
+
case TtsModelKind::kMatcha:
|
|
70
|
+
return hasMatcha && hasDataDir;
|
|
71
|
+
case TtsModelKind::kKokoro:
|
|
72
|
+
case TtsModelKind::kKitten:
|
|
73
|
+
return hasVoicesFile && hasDataDir;
|
|
74
|
+
case TtsModelKind::kPocket:
|
|
75
|
+
return hasPocket;
|
|
76
|
+
case TtsModelKind::kZipvoice:
|
|
77
|
+
return hasZipvoice;
|
|
78
|
+
default:
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Priority 1: Collect candidate TTS kinds from the model directory name (last path component).
|
|
85
|
+
* Tokens like "vits", "matcha", "kokoro" are matched case-insensitively. Returns candidates in a
|
|
86
|
+
* fixed priority order for file-based disambiguation when multiple names match.
|
|
87
|
+
*/
|
|
88
|
+
static std::vector<TtsModelKind> GetKindsFromDirNameTts(const std::string& modelDir) {
|
|
89
|
+
size_t pos = modelDir.find_last_of("/\\");
|
|
90
|
+
std::string base = (pos == std::string::npos) ? modelDir : modelDir.substr(pos + 1);
|
|
91
|
+
std::string lower = ToLower(base);
|
|
92
|
+
|
|
93
|
+
std::vector<TtsModelKind> out;
|
|
94
|
+
auto add = [&out](TtsModelKind k) {
|
|
95
|
+
if (std::find(out.begin(), out.end(), k) == out.end())
|
|
96
|
+
out.push_back(k);
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
if (lower.find("matcha") != std::string::npos) add(TtsModelKind::kMatcha);
|
|
100
|
+
if (lower.find("pocket") != std::string::npos) add(TtsModelKind::kPocket);
|
|
101
|
+
if (lower.find("zipvoice") != std::string::npos) add(TtsModelKind::kZipvoice);
|
|
102
|
+
if (lower.find("kokoro") != std::string::npos) add(TtsModelKind::kKokoro);
|
|
103
|
+
if (lower.find("kitten") != std::string::npos) add(TtsModelKind::kKitten);
|
|
104
|
+
if (lower.find("vits") != std::string::npos) add(TtsModelKind::kVits);
|
|
105
|
+
|
|
106
|
+
return out;
|
|
107
|
+
}
|
|
108
|
+
|
|
28
109
|
} // namespace
|
|
29
110
|
|
|
30
111
|
TtsDetectResult DetectTtsModel(const std::string& modelDir, const std::string& modelType) {
|
|
@@ -45,10 +126,19 @@ TtsDetectResult DetectTtsModel(const std::string& modelDir, const std::string& m
|
|
|
45
126
|
const int kMaxSearchDepth = 4;
|
|
46
127
|
const std::vector<FileEntry> files = ListFilesRecursive(modelDir, kMaxSearchDepth);
|
|
47
128
|
|
|
48
|
-
std::string tokensFile = FindFileByName(
|
|
49
|
-
std::string lexiconFile = FindFileByName(
|
|
50
|
-
std::string dataDirPath
|
|
51
|
-
|
|
129
|
+
std::string tokensFile = FindFileByName(files, "tokens.txt");
|
|
130
|
+
std::string lexiconFile = FindFileByName(files, "lexicon.txt");
|
|
131
|
+
std::string dataDirPath;
|
|
132
|
+
{
|
|
133
|
+
const std::string prefix = modelDir + "/espeak-ng-data/";
|
|
134
|
+
for (const auto& entry : files) {
|
|
135
|
+
if (entry.path.size() > prefix.size() && entry.path.compare(0, prefix.size(), prefix) == 0) {
|
|
136
|
+
dataDirPath = modelDir + "/espeak-ng-data";
|
|
137
|
+
break;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
std::string voicesFile = FindFileByName(files, "voices.bin");
|
|
52
142
|
|
|
53
143
|
std::string acousticModel = FindOnnxByAnyToken(files, {"acoustic_model", "acoustic-model"}, std::nullopt);
|
|
54
144
|
std::string vocoder = FindOnnxByAnyToken(files, {"vocoder", "vocos"}, std::nullopt);
|
|
@@ -57,8 +147,8 @@ TtsDetectResult DetectTtsModel(const std::string& modelDir, const std::string& m
|
|
|
57
147
|
std::string lmFlow = FindOnnxByAnyToken(files, {"lm_flow", "lm-flow"}, std::nullopt);
|
|
58
148
|
std::string lmMain = FindOnnxByAnyToken(files, {"lm_main", "lm-main"}, std::nullopt);
|
|
59
149
|
std::string textConditioner = FindOnnxByAnyToken(files, {"text_conditioner", "text-conditioner"}, std::nullopt);
|
|
60
|
-
std::string vocabJsonFile = FindFileByName(
|
|
61
|
-
std::string tokenScoresJsonFile = FindFileByName(
|
|
150
|
+
std::string vocabJsonFile = FindFileByName(files, "vocab.json");
|
|
151
|
+
std::string tokenScoresJsonFile = FindFileByName(files, "token_scores.json");
|
|
62
152
|
|
|
63
153
|
std::vector<std::string> modelExcludes = {"acoustic", "vocoder", "encoder", "decoder", "joiner"};
|
|
64
154
|
std::string ttsModel = FindOnnxByAnyToken(files, {"model"}, std::nullopt);
|
|
@@ -68,12 +158,11 @@ TtsDetectResult DetectTtsModel(const std::string& modelDir, const std::string& m
|
|
|
68
158
|
|
|
69
159
|
bool hasVits = !ttsModel.empty();
|
|
70
160
|
bool hasMatcha = !acousticModel.empty() && !vocoder.empty();
|
|
71
|
-
bool hasVoicesFile = !voicesFile.empty()
|
|
161
|
+
bool hasVoicesFile = !voicesFile.empty();
|
|
72
162
|
bool hasZipvoice = !encoder.empty() && !decoder.empty() && !vocoder.empty();
|
|
73
163
|
bool hasPocket = !lmFlow.empty() && !lmMain.empty() && !encoder.empty() && !decoder.empty() &&
|
|
74
|
-
!textConditioner.empty() && !vocabJsonFile.empty() &&
|
|
75
|
-
|
|
76
|
-
bool hasDataDir = !dataDirPath.empty() && IsDirectory(dataDirPath);
|
|
164
|
+
!textConditioner.empty() && !vocabJsonFile.empty() && !tokenScoresJsonFile.empty();
|
|
165
|
+
bool hasDataDir = !dataDirPath.empty();
|
|
77
166
|
|
|
78
167
|
std::string modelDirLower = ToLower(modelDir);
|
|
79
168
|
bool isLikelyKitten = modelDirLower.find("kitten") != std::string::npos;
|
|
@@ -120,22 +209,36 @@ TtsDetectResult DetectTtsModel(const std::string& modelDir, const std::string& m
|
|
|
120
209
|
return result;
|
|
121
210
|
}
|
|
122
211
|
} else {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
212
|
+
// Auto: Priority 1 – folder name candidates; Priority 2 – file-based disambiguation.
|
|
213
|
+
std::vector<TtsModelKind> nameCandidates = GetKindsFromDirNameTts(modelDir);
|
|
214
|
+
if (!nameCandidates.empty()) {
|
|
215
|
+
for (TtsModelKind k : nameCandidates) {
|
|
216
|
+
if (CapabilitySupportsTtsKind(k, hasVits, hasMatcha, hasPocket, hasZipvoice,
|
|
217
|
+
hasVoicesFile, hasDataDir)) {
|
|
218
|
+
selected = k;
|
|
219
|
+
break;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
// Fallback: no name-based candidates or none supported – use file-only order.
|
|
224
|
+
if (selected == TtsModelKind::kUnknown) {
|
|
225
|
+
if (hasMatcha) {
|
|
226
|
+
selected = TtsModelKind::kMatcha;
|
|
227
|
+
} else if (hasPocket) {
|
|
228
|
+
selected = TtsModelKind::kPocket;
|
|
229
|
+
} else if (hasZipvoice) {
|
|
230
|
+
selected = TtsModelKind::kZipvoice;
|
|
231
|
+
} else if (hasVoicesFile) {
|
|
232
|
+
if (isLikelyKitten && !isLikelyKokoro) {
|
|
233
|
+
selected = TtsModelKind::kKitten;
|
|
234
|
+
} else if (isLikelyKokoro && !isLikelyKitten) {
|
|
235
|
+
selected = TtsModelKind::kKokoro;
|
|
236
|
+
} else {
|
|
237
|
+
selected = TtsModelKind::kKokoro;
|
|
238
|
+
}
|
|
239
|
+
} else if (hasVits) {
|
|
240
|
+
selected = TtsModelKind::kVits;
|
|
136
241
|
}
|
|
137
|
-
} else if (hasVits) {
|
|
138
|
-
selected = TtsModelKind::kVits;
|
|
139
242
|
}
|
|
140
243
|
}
|
|
141
244
|
|
|
@@ -176,7 +279,7 @@ TtsDetectResult DetectTtsModel(const std::string& modelDir, const std::string& m
|
|
|
176
279
|
result.selectedKind = selected;
|
|
177
280
|
result.paths.ttsModel = ttsModel;
|
|
178
281
|
result.paths.tokens = tokensFile;
|
|
179
|
-
result.paths.lexicon =
|
|
282
|
+
result.paths.lexicon = !lexiconFile.empty() ? lexiconFile : "";
|
|
180
283
|
result.paths.dataDir = dataDirPath;
|
|
181
284
|
result.paths.voices = voicesFile;
|
|
182
285
|
result.paths.acousticModel = acousticModel;
|
|
@@ -189,7 +292,7 @@ TtsDetectResult DetectTtsModel(const std::string& modelDir, const std::string& m
|
|
|
189
292
|
result.paths.vocabJson = vocabJsonFile;
|
|
190
293
|
result.paths.tokenScoresJson = tokenScoresJsonFile;
|
|
191
294
|
|
|
192
|
-
if (selected != TtsModelKind::kPocket &&
|
|
295
|
+
if (selected != TtsModelKind::kPocket && tokensFile.empty()) {
|
|
193
296
|
result.error = "TTS: tokens.txt not found in " + modelDir;
|
|
194
297
|
return result;
|
|
195
298
|
}
|
|
@@ -21,6 +21,7 @@ enum class SttModelKind {
|
|
|
21
21
|
kFunAsrNano,
|
|
22
22
|
kFireRedAsr,
|
|
23
23
|
kMoonshine,
|
|
24
|
+
kMoonshineV2,
|
|
24
25
|
kDolphin,
|
|
25
26
|
kCanary,
|
|
26
27
|
kOmnilingual,
|
|
@@ -48,6 +49,8 @@ struct SttModelPaths {
|
|
|
48
49
|
std::string whisperEncoder;
|
|
49
50
|
std::string whisperDecoder;
|
|
50
51
|
std::string tokens;
|
|
52
|
+
/** BPE vocabulary for hotwords tokenization (sentencepiece export bpe.vocab). Optional. */
|
|
53
|
+
std::string bpeVocab;
|
|
51
54
|
std::string funasrEncoderAdaptor;
|
|
52
55
|
std::string funasrLLM;
|
|
53
56
|
std::string funasrEmbedding;
|
|
@@ -56,6 +59,8 @@ struct SttModelPaths {
|
|
|
56
59
|
std::string moonshineEncoder;
|
|
57
60
|
std::string moonshineUncachedDecoder;
|
|
58
61
|
std::string moonshineCachedDecoder;
|
|
62
|
+
/** Moonshine v2: encoder + mergedDecoder (reuse moonshineEncoder for encoder path). */
|
|
63
|
+
std::string moonshineMergedDecoder;
|
|
59
64
|
std::string dolphinModel;
|
|
60
65
|
std::string omnilingualModel;
|
|
61
66
|
std::string medasrModel;
|
|
@@ -66,6 +71,69 @@ struct SttModelPaths {
|
|
|
66
71
|
std::string canaryDecoder;
|
|
67
72
|
};
|
|
68
73
|
|
|
74
|
+
/** All candidate paths gathered before model kind selection (used by STT detection steps). */
|
|
75
|
+
struct SttCandidatePaths {
|
|
76
|
+
std::string encoder;
|
|
77
|
+
std::string decoder;
|
|
78
|
+
std::string joiner;
|
|
79
|
+
std::string paraformerModel;
|
|
80
|
+
std::string ctcModel;
|
|
81
|
+
std::string tokens;
|
|
82
|
+
std::string bpeVocab;
|
|
83
|
+
std::string funasrEncoderAdaptor;
|
|
84
|
+
std::string funasrLLM;
|
|
85
|
+
std::string funasrEmbedding;
|
|
86
|
+
std::string funasrTokenizerDir;
|
|
87
|
+
std::string moonshinePreprocessor;
|
|
88
|
+
std::string moonshineEncoder;
|
|
89
|
+
std::string moonshineUncachedDecoder;
|
|
90
|
+
std::string moonshineCachedDecoder;
|
|
91
|
+
std::string moonshineMergedDecoder;
|
|
92
|
+
std::string encoderForV2;
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
/** Path hints derived from model directory name (isLikely* flags). */
|
|
96
|
+
struct SttPathHints {
|
|
97
|
+
bool isLikelyNemo = false;
|
|
98
|
+
bool isLikelyTdt = false;
|
|
99
|
+
bool isLikelyWenetCtc = false;
|
|
100
|
+
bool isLikelySenseVoice = false;
|
|
101
|
+
bool isLikelyFunAsrNano = false;
|
|
102
|
+
bool isLikelyZipformer = false;
|
|
103
|
+
bool isLikelyMoonshine = false;
|
|
104
|
+
bool isLikelyDolphin = false;
|
|
105
|
+
bool isLikelyFireRedAsr = false;
|
|
106
|
+
bool isLikelyCanary = false;
|
|
107
|
+
bool isLikelyOmnilingual = false;
|
|
108
|
+
bool isLikelyMedAsr = false;
|
|
109
|
+
bool isLikelyTeleSpeech = false;
|
|
110
|
+
bool isLikelyToneCtc = false;
|
|
111
|
+
bool isLikelyParaformer = false;
|
|
112
|
+
/** VAD (silero, ten-vad, etc.): not yet supported; when true, detection returns unsupported. */
|
|
113
|
+
bool isLikelyVad = false;
|
|
114
|
+
/** TDNN (keyword/yesno): not yet supported; when true, detection returns unsupported. */
|
|
115
|
+
bool isLikelyTdnn = false;
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
/** Which model types are possible given paths and hints (has* flags). */
|
|
119
|
+
struct SttCapabilities {
|
|
120
|
+
bool hasTransducer = false;
|
|
121
|
+
bool hasWhisper = false;
|
|
122
|
+
bool hasMoonshine = false;
|
|
123
|
+
bool hasMoonshineV2 = false;
|
|
124
|
+
bool hasParaformer = false;
|
|
125
|
+
bool hasFunAsrNano = false;
|
|
126
|
+
bool hasDolphin = false;
|
|
127
|
+
bool hasFireRedAsr = false;
|
|
128
|
+
/** True when dir name suggests Fire Red but only a single CTC/paraformer model (no encoder/decoder). Use zipformer_ctc. */
|
|
129
|
+
bool hasFireRedCtc = false;
|
|
130
|
+
bool hasCanary = false;
|
|
131
|
+
bool hasOmnilingual = false;
|
|
132
|
+
bool hasMedAsr = false;
|
|
133
|
+
bool hasTeleSpeechCtc = false;
|
|
134
|
+
bool hasToneCtc = false;
|
|
135
|
+
};
|
|
136
|
+
|
|
69
137
|
struct TtsModelPaths {
|
|
70
138
|
std::string ttsModel;
|
|
71
139
|
std::string tokens;
|
|
@@ -87,6 +155,8 @@ struct TtsModelPaths {
|
|
|
87
155
|
struct SttDetectResult {
|
|
88
156
|
bool ok = false;
|
|
89
157
|
std::string error;
|
|
158
|
+
/** True when detection failed because the model is for unsupported hardware (RK35xx, Ascend, CANN, etc.). */
|
|
159
|
+
bool isHardwareSpecificUnsupported = false;
|
|
90
160
|
std::vector<DetectedModel> detectedModels;
|
|
91
161
|
SttModelKind selectedKind = SttModelKind::kUnknown;
|
|
92
162
|
bool tokensRequired = true;
|
|
@@ -207,6 +207,10 @@ SttInitializeResult SttWrapper::initialize(
|
|
|
207
207
|
config.model_config.moonshine.uncached_decoder = detect.paths.moonshineUncachedDecoder;
|
|
208
208
|
config.model_config.moonshine.cached_decoder = detect.paths.moonshineCachedDecoder;
|
|
209
209
|
break;
|
|
210
|
+
case SttModelKind::kMoonshineV2:
|
|
211
|
+
config.model_config.moonshine.encoder = detect.paths.moonshineEncoder;
|
|
212
|
+
config.model_config.moonshine.merged_decoder = detect.paths.moonshineMergedDecoder;
|
|
213
|
+
break;
|
|
210
214
|
case SttModelKind::kDolphin:
|
|
211
215
|
config.model_config.dolphin.model = detect.paths.dolphinModel;
|
|
212
216
|
break;
|
|
@@ -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;;AAskBA,eAAeA,mBAAmB,CAACC,YAAY,CAAO,YAAY,CAAC","ignoreList":[]}
|
|
@@ -1,7 +1,59 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import { Buffer } from 'buffer';
|
|
4
|
+
import { DeviceEventEmitter } from 'react-native';
|
|
3
5
|
import SherpaOnnx from "../NativeSherpaOnnx.js";
|
|
4
6
|
|
|
7
|
+
/**
|
|
8
|
+
* Decode base64-encoded Int16 PCM to float array in [-1, 1].
|
|
9
|
+
* Uses a preallocated Float32Array to avoid GC pressure on the live-mic hot path.
|
|
10
|
+
*/
|
|
11
|
+
function base64PcmToFloatArray(base64) {
|
|
12
|
+
const bytes = Buffer.from(base64, 'base64');
|
|
13
|
+
const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
|
|
14
|
+
const len = bytes.byteLength / 2;
|
|
15
|
+
const out = new Float32Array(len);
|
|
16
|
+
for (let i = 0; i < len; i++) {
|
|
17
|
+
out[i] = view.getInt16(i * 2, true) / 32768;
|
|
18
|
+
}
|
|
19
|
+
return out;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Create a PCM live stream from the device microphone. Native capture and resampling ensure
|
|
23
|
+
* PCM is always delivered at the requested sampleRate (e.g. 16000 for STT). The app must have
|
|
24
|
+
* RECORD_AUDIO (Android) and NSMicrophoneUsageDescription (iOS) and grant permission before start().
|
|
25
|
+
*/
|
|
26
|
+
export function createPcmLiveStream(options) {
|
|
27
|
+
const sampleRate = options?.sampleRate ?? 16000;
|
|
28
|
+
const channelCount = options?.channelCount ?? 1;
|
|
29
|
+
const bufferSizeFrames = options?.bufferSizeFrames ?? 0;
|
|
30
|
+
return {
|
|
31
|
+
start: () => SherpaOnnx.startPcmLiveStream({
|
|
32
|
+
sampleRate,
|
|
33
|
+
channelCount,
|
|
34
|
+
bufferSizeFrames
|
|
35
|
+
}),
|
|
36
|
+
stop: () => SherpaOnnx.stopPcmLiveStream(),
|
|
37
|
+
onData: callback => {
|
|
38
|
+
const sub = DeviceEventEmitter.addListener('pcmLiveStreamData', event => {
|
|
39
|
+
const base64 = event?.base64Pcm ?? '';
|
|
40
|
+
const sr = event?.sampleRate ?? sampleRate;
|
|
41
|
+
if (base64) {
|
|
42
|
+
const samples = base64PcmToFloatArray(base64);
|
|
43
|
+
callback(samples, sr);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
return () => sub.remove();
|
|
47
|
+
},
|
|
48
|
+
onError: callback => {
|
|
49
|
+
const sub = DeviceEventEmitter.addListener('pcmLiveStreamError', event => {
|
|
50
|
+
callback(event?.message ?? 'Unknown error');
|
|
51
|
+
});
|
|
52
|
+
return () => sub.remove();
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
|
|
5
57
|
/**
|
|
6
58
|
* Convert any supported audio file to a requested format (e.g. "mp3", "flac", "wav").
|
|
7
59
|
* On Android this requires FFmpeg prebuilts. WAV output is always 16 kHz mono (sherpa-onnx).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SherpaOnnx","convertAudioToFormat","inputPath","outputPath","format","outputSampleRateHz","convertAudioToWav16k"],"sourceRoot":"../../../src","sources":["audio/index.ts"],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"names":["Buffer","DeviceEventEmitter","SherpaOnnx","base64PcmToFloatArray","base64","bytes","from","view","DataView","buffer","byteOffset","byteLength","len","out","Float32Array","i","getInt16","createPcmLiveStream","options","sampleRate","channelCount","bufferSizeFrames","start","startPcmLiveStream","stop","stopPcmLiveStream","onData","callback","sub","addListener","event","base64Pcm","sr","samples","remove","onError","message","convertAudioToFormat","inputPath","outputPath","format","outputSampleRateHz","convertAudioToWav16k"],"sourceRoot":"../../../src","sources":["audio/index.ts"],"mappings":";;AAAA,SAASA,MAAM,QAAQ,QAAQ;AAC/B,SAASC,kBAAkB,QAAQ,cAAc;AACjD,OAAOC,UAAU,MAAM,wBAAqB;;AAE5C;AACA;AACA;AACA;AACA,SAASC,qBAAqBA,CAACC,MAAc,EAAgB;EAC3D,MAAMC,KAAK,GAAGL,MAAM,CAACM,IAAI,CAACF,MAAM,EAAE,QAAQ,CAAC;EAC3C,MAAMG,IAAI,GAAG,IAAIC,QAAQ,CAACH,KAAK,CAACI,MAAM,EAAEJ,KAAK,CAACK,UAAU,EAAEL,KAAK,CAACM,UAAU,CAAC;EAC3E,MAAMC,GAAG,GAAGP,KAAK,CAACM,UAAU,GAAG,CAAC;EAChC,MAAME,GAAG,GAAG,IAAIC,YAAY,CAACF,GAAG,CAAC;EACjC,KAAK,IAAIG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,GAAG,EAAEG,CAAC,EAAE,EAAE;IAC5BF,GAAG,CAACE,CAAC,CAAC,GAAGR,IAAI,CAACS,QAAQ,CAACD,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK;EAC7C;EACA,OAAOF,GAAG;AACZ;AAiBA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASI,mBAAmBA,CACjCC,OAA8B,EACT;EACrB,MAAMC,UAAU,GAAGD,OAAO,EAAEC,UAAU,IAAI,KAAK;EAC/C,MAAMC,YAAY,GAAGF,OAAO,EAAEE,YAAY,IAAI,CAAC;EAC/C,MAAMC,gBAAgB,GAAGH,OAAO,EAAEG,gBAAgB,IAAI,CAAC;EAEvD,OAAO;IACLC,KAAK,EAAEA,CAAA,KACLpB,UAAU,CAACqB,kBAAkB,CAAC;MAC5BJ,UAAU;MACVC,YAAY;MACZC;IACF,CAAC,CAAC;IAEJG,IAAI,EAAEA,CAAA,KAAMtB,UAAU,CAACuB,iBAAiB,CAAC,CAAC;IAE1CC,MAAM,EAAGC,QAA6D,IAAK;MACzE,MAAMC,GAAG,GAAG3B,kBAAkB,CAAC4B,WAAW,CACxC,mBAAmB,EAClBC,KAAkD,IAAK;QACtD,MAAM1B,MAAM,GAAG0B,KAAK,EAAEC,SAAS,IAAI,EAAE;QACrC,MAAMC,EAAE,GAAGF,KAAK,EAAEX,UAAU,IAAIA,UAAU;QAC1C,IAAIf,MAAM,EAAE;UACV,MAAM6B,OAAO,GAAG9B,qBAAqB,CAACC,MAAM,CAAC;UAC7CuB,QAAQ,CAACM,OAAO,EAAED,EAAE,CAAC;QACvB;MACF,CACF,CAAC;MACD,OAAO,MAAMJ,GAAG,CAACM,MAAM,CAAC,CAAC;IAC3B,CAAC;IAEDC,OAAO,EAAGR,QAAmC,IAAK;MAChD,MAAMC,GAAG,GAAG3B,kBAAkB,CAAC4B,WAAW,CACxC,oBAAoB,EACnBC,KAA2B,IAAK;QAC/BH,QAAQ,CAACG,KAAK,EAAEM,OAAO,IAAI,eAAe,CAAC;MAC7C,CACF,CAAC;MACD,OAAO,MAAMR,GAAG,CAACM,MAAM,CAAC,CAAC;IAC3B;EACF,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,oBAAoBA,CAClCC,SAAiB,EACjBC,UAAkB,EAClBC,MAAc,EACdC,kBAA2B,EACZ;EACf,OAAOvC,UAAU,CAACmC,oBAAoB,CACpCC,SAAS,EACTC,UAAU,EACVC,MAAM,EACNC,kBAAkB,IAAI,CACxB,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASC,oBAAoBA,CAClCJ,SAAiB,EACjBC,UAAkB,EACH;EACf,OAAOrC,UAAU,CAACwC,oBAAoB,CAACJ,SAAS,EAAEC,UAAU,CAAC;AAC/D","ignoreList":[]}
|
|
@@ -231,13 +231,16 @@ export async function createStreamingSTT(options) {
|
|
|
231
231
|
if (abs > maxAbs) maxAbs = abs;
|
|
232
232
|
}
|
|
233
233
|
const scale = maxAbs < 0.01 ? 80 : Math.min(80, 0.8 / maxAbs);
|
|
234
|
-
|
|
234
|
+
const normalized = new Float32Array(samples.length);
|
|
235
235
|
for (let i = 0; i < samples.length; i++) {
|
|
236
236
|
const v = samples[i] * scale;
|
|
237
|
-
|
|
237
|
+
normalized[i] = v < -1 ? -1 : v > 1 ? 1 : v;
|
|
238
238
|
}
|
|
239
|
+
toSend = normalized;
|
|
239
240
|
}
|
|
240
|
-
|
|
241
|
+
// Bridge expects a plain array; Float32Array may not serialize as ReadableArray on all platforms.
|
|
242
|
+
const samplesArray = Array.isArray(toSend) ? toSend : Array.from(toSend);
|
|
243
|
+
const raw = await SherpaOnnx.processSttAudioChunk(streamId, samplesArray, sampleRate);
|
|
241
244
|
return {
|
|
242
245
|
result: normalizeStreamingResult(raw),
|
|
243
246
|
isEndpoint: Boolean(raw.isEndpoint)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SherpaOnnx","resolveModelPath","streamingSttInstanceCounter","mapDetectedToOnlineType","detectedType","t","Error","getOnlineTypeOrNull","sttStreamCounter","normalizeStreamingResult","raw","text","tokens","Array","isArray","timestamps","flattenInitOptionsForNative","options","ep","endpointConfig","modelDir","modelType","enableEndpoint","decodingMethod","maxActivePaths","hotwordsFile","hotwordsScore","numThreads","provider","ruleFsts","ruleFars","blankPenalty","debug","rule1MustContainNonSilence","rule1","mustContainNonSilence","rule1MinTrailingSilence","minTrailingSilence","rule1MinUtteranceLength","minUtteranceLength","rule2MustContainNonSilence","rule2","rule2MinTrailingSilence","rule2MinUtteranceLength","rule3MustContainNonSilence","rule3","rule3MinTrailingSilence","rule3MinUtteranceLength","createStreamingSTT","instanceId","resolvedPath","modelPath","effectiveModelType","undefined","detectResult","detectSttModel","success","errMsg","error","optionsWithResolvedType","flat","nativeOptions","result","initializeOnlineSttWithOptions","enableInputNormalization","destroyed","guard","engine","createStream","hotwords","streamId","createSttStream","released","streamGuard","stream","acceptWaveform","samples","sampleRate","acceptSttWaveform","inputFinished","sttStreamInputFinished","decode","decodeSttStream","isReady","isSttStreamReady","getResult","getSttStreamResult","isEndpoint","isSttStreamEndpoint","reset","resetSttStream","release","releaseSttStream","processAudioChunk","toSend","length","maxAbs","i","abs","Math","scale","min","v","processSttAudioChunk","Boolean","destroy","unloadOnlineStt"],"sourceRoot":"../../../src","sources":["stt/streaming.ts"],"mappings":";;AAAA,OAAOA,UAAU,MAAM,wBAAqB;AAC5C,SAASC,gBAAgB,QAAQ,aAAU;AAS3C,IAAIC,2BAA2B,GAAG,CAAC;;AAEnC;AACA;AACA;AACA;AACA,OAAO,SAASC,uBAAuBA,CACrCC,YAAgC,EACZ;EACpB,MAAMC,CAAC,GAAGD,YAAY,IAAI,EAAE;EAC5B,QAAQC,CAAC;IACP,KAAK,YAAY;MACf,OAAO,YAAY;IACrB,KAAK,YAAY;MACf,OAAO,YAAY;IACrB,KAAK,UAAU;MACb,OAAO,UAAU;IACnB,KAAK,eAAe;IACpB,KAAK,KAAK;MACR,OAAO,gBAAgB;IACzB,KAAK,UAAU;MACb,OAAO,UAAU;IACnB;MACE,MAAM,IAAIC,KAAK,CACb,eAAeD,CAAC,2KAClB,CAAC;EACL;AACF;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASE,mBAAmBA,CACjCH,YAAgC,EACL;EAC3B,IAAI;IACF,OAAOD,uBAAuB,CAACC,YAAY,CAAC;EAC9C,CAAC,CAAC,MAAM;IACN,OAAO,IAAI;EACb;AACF;AACA,IAAII,gBAAgB,GAAG,CAAC;AAExB,SAASC,wBAAwBA,CAACC,GAIjC,EAAsB;EACrB,OAAO;IACLC,IAAI,EAAE,OAAOD,GAAG,CAACC,IAAI,KAAK,QAAQ,GAAGD,GAAG,CAACC,IAAI,GAAG,EAAE;IAClDC,MAAM,EAAEC,KAAK,CAACC,OAAO,CAACJ,GAAG,CAACE,MAAM,CAAC,GAAIF,GAAG,CAACE,MAAM,GAAgB,EAAE;IACjEG,UAAU,EAAEF,KAAK,CAACC,OAAO,CAACJ,GAAG,CAACK,UAAU,CAAC,GACpCL,GAAG,CAACK,UAAU,GACf;EACN,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA,SAASC,2BAA2BA,CAACC,OAAgC,EAuBnE;EACA,MAAMC,EAAE,GAAGD,OAAO,CAACE,cAAc;EACjC,OAAO;IACLC,QAAQ,EAAE,EAAE;IAAE;IACdC,SAAS,EAAEJ,OAAO,CAACI,SAAS;IAC5BC,cAAc,EAAEL,OAAO,CAACK,cAAc,IAAI,IAAI;IAC9CC,cAAc,EAAEN,OAAO,CAACM,cAAc,IAAI,eAAe;IACzDC,cAAc,EAAEP,OAAO,CAACO,cAAc,IAAI,CAAC;IAC3CC,YAAY,EAAER,OAAO,CAACQ,YAAY;IAClCC,aAAa,EAAET,OAAO,CAACS,aAAa;IACpCC,UAAU,EAAEV,OAAO,CAACU,UAAU;IAC9BC,QAAQ,EAAEX,OAAO,CAACW,QAAQ;IAC1BC,QAAQ,EAAEZ,OAAO,CAACY,QAAQ;IAC1BC,QAAQ,EAAEb,OAAO,CAACa,QAAQ;IAC1BC,YAAY,EAAEd,OAAO,CAACc,YAAY;IAClCC,KAAK,EAAEf,OAAO,CAACe,KAAK;IACpBC,0BAA0B,EAAEf,EAAE,EAAEgB,KAAK,EAAEC,qBAAqB;IAC5DC,uBAAuB,EAAElB,EAAE,EAAEgB,KAAK,EAAEG,kBAAkB;IACtDC,uBAAuB,EAAEpB,EAAE,EAAEgB,KAAK,EAAEK,kBAAkB;IACtDC,0BAA0B,EAAEtB,EAAE,EAAEuB,KAAK,EAAEN,qBAAqB;IAC5DO,uBAAuB,EAAExB,EAAE,EAAEuB,KAAK,EAAEJ,kBAAkB;IACtDM,uBAAuB,EAAEzB,EAAE,EAAEuB,KAAK,EAAEF,kBAAkB;IACtDK,0BAA0B,EAAE1B,EAAE,EAAE2B,KAAK,EAAEV,qBAAqB;IAC5DW,uBAAuB,EAAE5B,EAAE,EAAE2B,KAAK,EAAER,kBAAkB;IACtDU,uBAAuB,EAAE7B,EAAE,EAAE2B,KAAK,EAAEN;EACtC,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeS,kBAAkBA,CACtC/B,OAAgC,EACH;EAC7B,MAAMgC,UAAU,GAAG,iBAAiB,EAAE/C,2BAA2B,EAAE;EACnE,MAAMgD,YAAY,GAAG,MAAMjD,gBAAgB,CAACgB,OAAO,CAACkC,SAAS,CAAC;EAE9D,IAAIC,kBAAsC;EAC1C,IAAInC,OAAO,CAACI,SAAS,KAAK,MAAM,IAAIJ,OAAO,CAACI,SAAS,KAAKgC,SAAS,EAAE;IACnE,MAAMC,YAAY,GAAG,MAAMtD,UAAU,CAACuD,cAAc,CAClDL,YAAY,EACZG,SAAS,EACTA,SACF,CAAC;IACD,IAAI,CAACC,YAAY,CAACE,OAAO,EAAE;MACzB,MAAMC,MAAM,GACV,OAAO,IAAIH,YAAY,IACvB,OAAQA,YAAY,CAAwBI,KAAK,KAAK,QAAQ,GACzDJ,YAAY,CAAuBI,KAAK,GACzC,eAAe;MACrB,MAAM,IAAIpD,KAAK,CACb,2CAA2C4C,YAAY,KAAKO,MAAM,EACpE,CAAC;IACH;IACAL,kBAAkB,GAAGjD,uBAAuB,CAACmD,YAAY,CAACjC,SAAS,CAAC;EACtE,CAAC,MAAM;IACL+B,kBAAkB,GAAGnC,OAAO,CAACI,SAAS;EACxC;EAEA,MAAMsC,uBAAuB,GAAG;IAAE,GAAG1C,OAAO;IAAEI,SAAS,EAAE+B;EAAmB,CAAC;EAC7E,MAAMQ,IAAI,GAAG5C,2BAA2B,CAAC2C,uBAAuB,CAAC;EACjEC,IAAI,CAACxC,QAAQ,GAAG8B,YAAY;;EAE5B;EACA,MAAMW,aAEF,GAAG;IACLzC,QAAQ,EAAEwC,IAAI,CAACxC,QAAQ;IACvBC,SAAS,EAAEuC,IAAI,CAACvC,SAAS;IACzBC,cAAc,EAAEsC,IAAI,CAACtC,cAAc;IACnCC,cAAc,EAAEqC,IAAI,CAACrC,cAAc;IACnCC,cAAc,EAAEoC,IAAI,CAACpC;EACvB,CAAC;EACD,IAAIoC,IAAI,CAACnC,YAAY,KAAK4B,SAAS,EACjCQ,aAAa,CAACpC,YAAY,GAAGmC,IAAI,CAACnC,YAAY;EAChD,IAAImC,IAAI,CAAClC,aAAa,KAAK2B,SAAS,EAClCQ,aAAa,CAACnC,aAAa,GAAGkC,IAAI,CAAClC,aAAa;EAClD,IAAIkC,IAAI,CAACjC,UAAU,KAAK0B,SAAS,EAAEQ,aAAa,CAAClC,UAAU,GAAGiC,IAAI,CAACjC,UAAU;EAC7E,IAAIiC,IAAI,CAAChC,QAAQ,KAAKyB,SAAS,EAAEQ,aAAa,CAACjC,QAAQ,GAAGgC,IAAI,CAAChC,QAAQ;EACvE,IAAIgC,IAAI,CAAC/B,QAAQ,KAAKwB,SAAS,EAAEQ,aAAa,CAAChC,QAAQ,GAAG+B,IAAI,CAAC/B,QAAQ;EACvE,IAAI+B,IAAI,CAAC9B,QAAQ,KAAKuB,SAAS,EAAEQ,aAAa,CAAC/B,QAAQ,GAAG8B,IAAI,CAAC9B,QAAQ;EACvE,IAAI8B,IAAI,CAAC7B,YAAY,KAAKsB,SAAS,EACjCQ,aAAa,CAAC9B,YAAY,GAAG6B,IAAI,CAAC7B,YAAY;EAChD,IAAI6B,IAAI,CAAC5B,KAAK,KAAKqB,SAAS,EAAEQ,aAAa,CAAC7B,KAAK,GAAG4B,IAAI,CAAC5B,KAAK;EAC9D,IAAI4B,IAAI,CAAC3B,0BAA0B,KAAKoB,SAAS,EAC/CQ,aAAa,CAAC5B,0BAA0B,GAAG2B,IAAI,CAAC3B,0BAA0B;EAC5E,IAAI2B,IAAI,CAACxB,uBAAuB,KAAKiB,SAAS,EAC5CQ,aAAa,CAACzB,uBAAuB,GAAGwB,IAAI,CAACxB,uBAAuB;EACtE,IAAIwB,IAAI,CAACtB,uBAAuB,KAAKe,SAAS,EAC5CQ,aAAa,CAACvB,uBAAuB,GAAGsB,IAAI,CAACtB,uBAAuB;EACtE,IAAIsB,IAAI,CAACpB,0BAA0B,KAAKa,SAAS,EAC/CQ,aAAa,CAACrB,0BAA0B,GAAGoB,IAAI,CAACpB,0BAA0B;EAC5E,IAAIoB,IAAI,CAAClB,uBAAuB,KAAKW,SAAS,EAC5CQ,aAAa,CAACnB,uBAAuB,GAAGkB,IAAI,CAAClB,uBAAuB;EACtE,IAAIkB,IAAI,CAACjB,uBAAuB,KAAKU,SAAS,EAC5CQ,aAAa,CAAClB,uBAAuB,GAAGiB,IAAI,CAACjB,uBAAuB;EACtE,IAAIiB,IAAI,CAAChB,0BAA0B,KAAKS,SAAS,EAC/CQ,aAAa,CAACjB,0BAA0B,GAAGgB,IAAI,CAAChB,0BAA0B;EAC5E,IAAIgB,IAAI,CAACd,uBAAuB,KAAKO,SAAS,EAC5CQ,aAAa,CAACf,uBAAuB,GAAGc,IAAI,CAACd,uBAAuB;EACtE,IAAIc,IAAI,CAACb,uBAAuB,KAAKM,SAAS,EAC5CQ,aAAa,CAACd,uBAAuB,GAAGa,IAAI,CAACb,uBAAuB;EAEtE,MAAMe,MAAM,GAAG,MAAM9D,UAAU,CAAC+D,8BAA8B,CAC5Dd,UAAU,EACVY,aACF,CAAC;EAED,IAAI,CAACC,MAAM,CAACN,OAAO,EAAE;IACnB,MAAM,IAAIlD,KAAK,CAAC,2CAA2C2C,UAAU,EAAE,CAAC;EAC1E;EAEA,MAAMe,wBAAwB,GAAG/C,OAAO,CAAC+C,wBAAwB,KAAK,KAAK;EAC3E,IAAIC,SAAS,GAAG,KAAK;EAErB,MAAMC,KAAK,GAAGA,CAAA,KAAM;IAClB,IAAID,SAAS,EAAE;MACb,MAAM,IAAI3D,KAAK,CACb,wBAAwB2C,UAAU,iDACpC,CAAC;IACH;EACF,CAAC;EAED,MAAMkB,MAA0B,GAAG;IACjC,IAAIlB,UAAUA,CAAA,EAAG;MACf,OAAOA,UAAU;IACnB,CAAC;IAED,MAAMmB,YAAYA,CAACC,QAAiB,EAAsB;MACxDH,KAAK,CAAC,CAAC;MACP,MAAMI,QAAQ,GAAG,cAAc,EAAE9D,gBAAgB,EAAE;MACnD,MAAMR,UAAU,CAACuE,eAAe,CAACtB,UAAU,EAAEqB,QAAQ,EAAED,QAAQ,CAAC;MAEhE,IAAIG,QAAQ,GAAG,KAAK;MACpB,MAAMC,WAAW,GAAGA,CAAA,KAAM;QACxB,IAAIR,SAAS,EAAE;UACb,MAAM,IAAI3D,KAAK,CACb,wBAAwB2C,UAAU,sBACpC,CAAC;QACH;QACA,IAAIuB,QAAQ,EAAE;UACZ,MAAM,IAAIlE,KAAK,CACb,UAAUgE,QAAQ,gDACpB,CAAC;QACH;MACF,CAAC;MAED,MAAMI,MAAiB,GAAG;QACxB,IAAIJ,QAAQA,CAAA,EAAG;UACb,OAAOA,QAAQ;QACjB,CAAC;QAED,MAAMK,cAAcA,CAClBC,OAAiB,EACjBC,UAAkB,EACH;UACfJ,WAAW,CAAC,CAAC;UACb,MAAMzE,UAAU,CAAC8E,iBAAiB,CAACR,QAAQ,EAAEM,OAAO,EAAEC,UAAU,CAAC;QACnE,CAAC;QAED,MAAME,aAAaA,CAAA,EAAkB;UACnCN,WAAW,CAAC,CAAC;UACb,MAAMzE,UAAU,CAACgF,sBAAsB,CAACV,QAAQ,CAAC;QACnD,CAAC;QAED,MAAMW,MAAMA,CAAA,EAAkB;UAC5BR,WAAW,CAAC,CAAC;UACb,MAAMzE,UAAU,CAACkF,eAAe,CAACZ,QAAQ,CAAC;QAC5C,CAAC;QAED,MAAMa,OAAOA,CAAA,EAAqB;UAChCV,WAAW,CAAC,CAAC;UACb,OAAOzE,UAAU,CAACoF,gBAAgB,CAACd,QAAQ,CAAC;QAC9C,CAAC;QAED,MAAMe,SAASA,CAAA,EAAgC;UAC7CZ,WAAW,CAAC,CAAC;UACb,MAAM/D,GAAG,GAAG,MAAMV,UAAU,CAACsF,kBAAkB,CAAChB,QAAQ,CAAC;UACzD,OAAO7D,wBAAwB,CAACC,GAAG,CAAC;QACtC,CAAC;QAED,MAAM6E,UAAUA,CAAA,EAAqB;UACnCd,WAAW,CAAC,CAAC;UACb,OAAOzE,UAAU,CAACwF,mBAAmB,CAAClB,QAAQ,CAAC;QACjD,CAAC;QAED,MAAMmB,KAAKA,CAAA,EAAkB;UAC3BhB,WAAW,CAAC,CAAC;UACb,MAAMzE,UAAU,CAAC0F,cAAc,CAACpB,QAAQ,CAAC;QAC3C,CAAC;QAED,MAAMqB,OAAOA,CAAA,EAAkB;UAC7B,IAAInB,QAAQ,EAAE;UACdA,QAAQ,GAAG,IAAI;UACf,MAAMxE,UAAU,CAAC4F,gBAAgB,CAACtB,QAAQ,CAAC;QAC7C,CAAC;QAED,MAAMuB,iBAAiBA,CACrBjB,
|
|
1
|
+
{"version":3,"names":["SherpaOnnx","resolveModelPath","streamingSttInstanceCounter","mapDetectedToOnlineType","detectedType","t","Error","getOnlineTypeOrNull","sttStreamCounter","normalizeStreamingResult","raw","text","tokens","Array","isArray","timestamps","flattenInitOptionsForNative","options","ep","endpointConfig","modelDir","modelType","enableEndpoint","decodingMethod","maxActivePaths","hotwordsFile","hotwordsScore","numThreads","provider","ruleFsts","ruleFars","blankPenalty","debug","rule1MustContainNonSilence","rule1","mustContainNonSilence","rule1MinTrailingSilence","minTrailingSilence","rule1MinUtteranceLength","minUtteranceLength","rule2MustContainNonSilence","rule2","rule2MinTrailingSilence","rule2MinUtteranceLength","rule3MustContainNonSilence","rule3","rule3MinTrailingSilence","rule3MinUtteranceLength","createStreamingSTT","instanceId","resolvedPath","modelPath","effectiveModelType","undefined","detectResult","detectSttModel","success","errMsg","error","optionsWithResolvedType","flat","nativeOptions","result","initializeOnlineSttWithOptions","enableInputNormalization","destroyed","guard","engine","createStream","hotwords","streamId","createSttStream","released","streamGuard","stream","acceptWaveform","samples","sampleRate","acceptSttWaveform","inputFinished","sttStreamInputFinished","decode","decodeSttStream","isReady","isSttStreamReady","getResult","getSttStreamResult","isEndpoint","isSttStreamEndpoint","reset","resetSttStream","release","releaseSttStream","processAudioChunk","toSend","length","maxAbs","i","abs","Math","scale","min","normalized","Float32Array","v","samplesArray","from","processSttAudioChunk","Boolean","destroy","unloadOnlineStt"],"sourceRoot":"../../../src","sources":["stt/streaming.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -16,7 +16,7 @@ export interface Spec extends TurboModule {
|
|
|
16
16
|
* @param instanceId - Unique ID for this engine instance (from createSTT)
|
|
17
17
|
* @param modelDir - Absolute path to model directory
|
|
18
18
|
* @param preferInt8 - Optional: true = prefer int8 models, false = prefer regular models, undefined = try int8 first (default)
|
|
19
|
-
* @param modelType - Optional: explicit model type ('transducer', 'nemo_transducer', 'paraformer', 'nemo_ctc', 'wenet_ctc', 'sense_voice', 'zipformer_ctc', 'whisper', 'funasr_nano', 'fire_red_asr', 'moonshine', 'dolphin', 'canary', 'omnilingual', 'medasr', 'telespeech_ctc', 'auto'), undefined = auto (default)
|
|
19
|
+
* @param modelType - Optional: explicit model type ('transducer', 'nemo_transducer', 'paraformer', 'nemo_ctc', 'wenet_ctc', 'sense_voice', 'zipformer_ctc', 'whisper', 'funasr_nano', 'fire_red_asr', 'moonshine', 'moonshine_v2', 'dolphin', 'canary', 'omnilingual', 'medasr', 'telespeech_ctc', 'auto'), undefined = auto (default)
|
|
20
20
|
* @param debug - Optional: enable debug logging in native layer and sherpa-onnx (default: false)
|
|
21
21
|
* @param hotwordsFile - Optional: path to hotwords file (OfflineRecognizerConfig)
|
|
22
22
|
* @param hotwordsScore - Optional: hotwords score (default in Kotlin 1.5)
|
|
@@ -46,10 +46,12 @@ export interface Spec extends TurboModule {
|
|
|
46
46
|
* @param modelDir - Absolute path to model directory (use resolveModelPath first for asset/file paths)
|
|
47
47
|
* @param preferInt8 - Optional: true = prefer int8, false = prefer regular, undefined = try int8 first
|
|
48
48
|
* @param modelType - Optional: explicit type or 'auto' (default)
|
|
49
|
-
* @returns Object with success, detectedModels (array of { type, modelDir }),
|
|
49
|
+
* @returns Object with success, detectedModels (array of { type, modelDir }), modelType (primary detected type), and optionally isHardwareSpecificUnsupported (true when the model is for unsupported hardware e.g. RK35xx, Ascend)
|
|
50
50
|
*/
|
|
51
51
|
detectSttModel(modelDir: string, preferInt8?: boolean, modelType?: string): Promise<{
|
|
52
52
|
success: boolean;
|
|
53
|
+
/** True when detection failed because the model targets unsupported hardware (RK35xx, Ascend, CANN). Use to show a specific message or block init. */
|
|
54
|
+
isHardwareSpecificUnsupported?: boolean;
|
|
53
55
|
detectedModels: Array<{
|
|
54
56
|
type: string;
|
|
55
57
|
modelDir: string;
|
|
@@ -152,6 +154,18 @@ export interface Spec extends TurboModule {
|
|
|
152
154
|
timestamps: number[];
|
|
153
155
|
isEndpoint: boolean;
|
|
154
156
|
}>;
|
|
157
|
+
/**
|
|
158
|
+
* Start native PCM live capture. Microphone audio is captured and resampled to the requested
|
|
159
|
+
* sampleRate; chunks are emitted via the "pcmLiveStreamData" event (base64 Int16 PCM).
|
|
160
|
+
* App must have RECORD_AUDIO (Android) and NSMicrophoneUsageDescription (iOS) and grant permission before calling.
|
|
161
|
+
*/
|
|
162
|
+
startPcmLiveStream(options: {
|
|
163
|
+
sampleRate: number;
|
|
164
|
+
channelCount?: number;
|
|
165
|
+
bufferSizeFrames?: number;
|
|
166
|
+
}): Promise<void>;
|
|
167
|
+
/** Stop native PCM live capture. */
|
|
168
|
+
stopPcmLiveStream(): Promise<void>;
|
|
155
169
|
/**
|
|
156
170
|
* Initialize Text-to-Speech (TTS) with model directory.
|
|
157
171
|
* @param instanceId - Unique ID for this engine instance (from createTTS)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeSherpaOnnx.d.ts","sourceRoot":"","sources":["../../../src/NativeSherpaOnnx.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"NativeSherpaOnnx.d.ts","sourceRoot":"","sources":["../../../src/NativeSherpaOnnx.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,20 @@
|
|
|
1
|
+
export type PcmLiveStreamOptions = {
|
|
2
|
+
sampleRate?: number;
|
|
3
|
+
channelCount?: number;
|
|
4
|
+
bufferSizeFrames?: number;
|
|
5
|
+
};
|
|
6
|
+
export type PcmLiveStreamHandle = {
|
|
7
|
+
start: () => Promise<void>;
|
|
8
|
+
stop: () => Promise<void>;
|
|
9
|
+
onData: (callback: (samples: Float32Array, sampleRate: number) => void) => () => void;
|
|
10
|
+
onError: (callback: (message: string) => void) => () => void;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Create a PCM live stream from the device microphone. Native capture and resampling ensure
|
|
14
|
+
* PCM is always delivered at the requested sampleRate (e.g. 16000 for STT). The app must have
|
|
15
|
+
* RECORD_AUDIO (Android) and NSMicrophoneUsageDescription (iOS) and grant permission before start().
|
|
16
|
+
*/
|
|
17
|
+
export declare function createPcmLiveStream(options?: PcmLiveStreamOptions): PcmLiveStreamHandle;
|
|
1
18
|
/**
|
|
2
19
|
* Convert any supported audio file to a requested format (e.g. "mp3", "flac", "wav").
|
|
3
20
|
* On Android this requires FFmpeg prebuilts. WAV output is always 16 kHz mono (sherpa-onnx).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/audio/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/audio/index.ts"],"names":[],"mappings":"AAmBA,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,EAAE,CACN,QAAQ,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,KAC1D,MAAM,IAAI,CAAC;IAChB,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;CAC9D,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,CAAC,EAAE,oBAAoB,GAC7B,mBAAmB,CAwCrB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,IAAI,CAAC,CAOf;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAEf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../../../../src/stt/streaming.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EAGxB,MAAM,kBAAkB,CAAC;AAI1B;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,kBAAkB,CAmBpB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,kBAAkB,GAAG,IAAI,CAM3B;AAwED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../../../../src/stt/streaming.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EAGxB,MAAM,kBAAkB,CAAC;AAI1B;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,kBAAkB,CAmBpB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,kBAAkB,GAAG,IAAI,CAM3B;AAwED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CAmN7B"}
|
|
@@ -104,7 +104,7 @@ export interface SttStream {
|
|
|
104
104
|
* Convenience: feed audio, auto-decode while ready, return result and endpoint status.
|
|
105
105
|
* Reduces bridge round-trips from 5 to 1 per chunk.
|
|
106
106
|
*/
|
|
107
|
-
processAudioChunk(samples: number[], sampleRate: number): Promise<{
|
|
107
|
+
processAudioChunk(samples: number[] | Float32Array, sampleRate: number): Promise<{
|
|
108
108
|
result: StreamingSttResult;
|
|
109
109
|
isEndpoint: boolean;
|
|
110
110
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamingTypes.d.ts","sourceRoot":"","sources":["../../../../src/stt/streamingTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAC1B,YAAY,GACZ,YAAY,GACZ,gBAAgB,GAChB,UAAU,GACV,UAAU,CAAC;AAEf,wDAAwD;AACxD,eAAO,MAAM,sBAAsB,EAAE,SAAS,kBAAkB,EAMtD,CAAC;AAEX;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,wEAAwE;IACxE,qBAAqB,EAAE,OAAO,CAAC;IAC/B,2CAA2C;IAC3C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iEAAiE;IACjE,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,8DAA8D;IAC9D,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,uDAAuD;IACvD,SAAS,EAAE,eAAe,CAAC;IAC3B,sHAAsH;IACtH,SAAS,EAAE,kBAAkB,GAAG,MAAM,CAAC;IACvC,gDAAgD;IAChD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,yGAAyG;IACzG,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,iDAAiD;IACjD,cAAc,CAAC,EAAE,eAAe,GAAG,sBAAsB,CAAC;IAC1D,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qBAAqB;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,yDAAyD;IACzD,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErE,6CAA6C;IAC7C,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/B,uEAAuE;IACvE,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAExB,+CAA+C;IAC/C,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAE5B,gEAAgE;IAChE,SAAS,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAEzC,wDAAwD;IACxD,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAE/B,oCAAoC;IACpC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB,oDAAoD;IACpD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;;OAGG;IACH,iBAAiB,CACf,OAAO,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"streamingTypes.d.ts","sourceRoot":"","sources":["../../../../src/stt/streamingTypes.ts"],"names":[],"mappings":"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"}
|