react-native-sherpa-onnx 0.2.0 → 0.3.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 +232 -236
- package/SherpaOnnx.podspec +68 -64
- package/android/build.gradle +182 -192
- package/android/codegen.gradle +57 -0
- package/android/prebuilt-download.gradle +428 -0
- package/android/prebuilt-versions.gradle +43 -0
- package/android/proguard-rules.pro +10 -0
- package/android/src/main/assets/testModels/add_mul_add.onnx +28 -0
- package/android/src/main/assets/testModels/nnapi_internal_uint8_support.onnx +0 -0
- package/android/src/main/assets/testModels/qnn_multi_ctx_embed.onnx +0 -0
- package/android/src/main/cpp/CMakeLists.txt +166 -129
- package/android/src/main/cpp/CMakePresets.json +54 -0
- package/android/src/main/cpp/crypto/sha256.cpp +174 -0
- package/android/src/main/cpp/crypto/sha256.h +16 -0
- package/android/src/main/cpp/jni/archive/sherpa-onnx-archive-helper.cpp +404 -0
- package/android/src/main/cpp/jni/archive/sherpa-onnx-archive-helper.h +56 -0
- package/android/src/main/cpp/jni/archive/sherpa-onnx-archive-jni.cpp +181 -0
- package/android/src/main/cpp/jni/audio/sherpa-onnx-audio-convert-jni.cpp +888 -0
- package/{ios → android/src/main/cpp/jni/model_detect}/sherpa-onnx-common.h +18 -18
- package/android/src/main/cpp/jni/model_detect/sherpa-onnx-detect-jni-common.cpp +86 -0
- package/android/src/main/cpp/jni/model_detect/sherpa-onnx-detect-jni-common.h +20 -0
- package/android/src/main/cpp/jni/model_detect/sherpa-onnx-model-detect-helper.cpp +423 -0
- package/android/src/main/cpp/jni/model_detect/sherpa-onnx-model-detect-helper.h +55 -0
- package/android/src/main/cpp/jni/model_detect/sherpa-onnx-model-detect-stt.cpp +399 -0
- package/android/src/main/cpp/jni/model_detect/sherpa-onnx-model-detect-tts.cpp +238 -0
- package/{ios → android/src/main/cpp/jni/model_detect}/sherpa-onnx-model-detect.h +122 -89
- package/android/src/main/cpp/jni/model_detect/sherpa-onnx-stt-wrapper.cpp +99 -0
- package/android/src/main/cpp/jni/model_detect/sherpa-onnx-stt-wrapper.h +16 -0
- package/android/src/main/cpp/jni/model_detect/sherpa-onnx-tts-wrapper.cpp +78 -0
- package/android/src/main/cpp/jni/model_detect/sherpa-onnx-tts-wrapper.h +16 -0
- package/android/src/main/cpp/jni/module/sherpa-onnx-module-jni.cpp +190 -0
- package/android/src/main/cpp/jni/tts/sherpa-onnx-tts-zipvoice-jni.cpp +301 -0
- package/android/src/main/java/com/sherpaonnx/SherpaOnnxArchiveHelper.kt +94 -0
- package/android/src/main/java/com/sherpaonnx/{SherpaOnnxCoreHelper.kt → SherpaOnnxAssetHelper.kt} +350 -236
- package/android/src/main/java/com/sherpaonnx/SherpaOnnxModule.kt +791 -483
- package/android/src/main/java/com/sherpaonnx/SherpaOnnxSttHelper.kt +699 -109
- package/android/src/main/java/com/sherpaonnx/SherpaOnnxTtsHelper.kt +1123 -668
- package/android/src/main/java/com/sherpaonnx/ZipvoiceTtsWrapper.kt +187 -0
- package/ios/SherpaOnnx+Assets.h +11 -0
- package/ios/SherpaOnnx+Assets.mm +325 -0
- package/ios/SherpaOnnx+STT.mm +455 -118
- package/ios/SherpaOnnx+TTS.mm +1101 -712
- package/ios/SherpaOnnx.h +17 -6
- package/ios/SherpaOnnx.mm +206 -311
- package/ios/SherpaOnnx.xcconfig +19 -19
- package/ios/SherpaOnnxCoreMLHelper.swift +24 -0
- package/ios/archive/sherpa-onnx-archive-helper.h +21 -0
- package/ios/archive/sherpa-onnx-archive-helper.mm +296 -0
- package/ios/libarchive_darwin_config.h +153 -0
- package/{android/src/main/cpp/jni → ios/model_detect}/sherpa-onnx-common.h +18 -18
- package/ios/model_detect/sherpa-onnx-model-detect-helper.h +49 -0
- package/ios/model_detect/sherpa-onnx-model-detect-helper.mm +210 -0
- package/ios/model_detect/sherpa-onnx-model-detect-stt.mm +344 -0
- package/ios/model_detect/sherpa-onnx-model-detect-tts.mm +201 -0
- package/{android/src/main/cpp/jni → ios/model_detect}/sherpa-onnx-model-detect.h +117 -89
- package/ios/scripts/patch-libarchive-includes.sh +61 -0
- package/ios/scripts/setup-ios-libarchive.sh +98 -0
- package/ios/stt/sherpa-onnx-stt-wrapper.h +129 -0
- package/ios/stt/sherpa-onnx-stt-wrapper.mm +523 -0
- package/ios/{sherpa-onnx-tts-wrapper.h → tts/sherpa-onnx-tts-wrapper.h} +90 -85
- package/ios/{sherpa-onnx-tts-wrapper.mm → tts/sherpa-onnx-tts-wrapper.mm} +376 -345
- package/lib/module/NativeSherpaOnnx.js +3 -0
- package/lib/module/NativeSherpaOnnx.js.map +1 -1
- package/lib/module/audio/index.js +22 -0
- package/lib/module/audio/index.js.map +1 -0
- package/lib/module/diarization/index.js +1 -1
- package/lib/module/diarization/index.js.map +1 -1
- package/lib/module/download/ModelDownloadManager.js +918 -0
- package/lib/module/download/ModelDownloadManager.js.map +1 -0
- package/lib/module/download/extractTarBz2.js +53 -0
- package/lib/module/download/extractTarBz2.js.map +1 -0
- package/lib/module/download/index.js +6 -0
- package/lib/module/download/index.js.map +1 -0
- package/lib/module/download/validation.js +178 -0
- package/lib/module/download/validation.js.map +1 -0
- package/lib/module/enhancement/index.js +1 -1
- package/lib/module/enhancement/index.js.map +1 -1
- package/lib/module/index.js +41 -3
- package/lib/module/index.js.map +1 -1
- package/lib/module/separation/index.js +1 -1
- package/lib/module/separation/index.js.map +1 -1
- package/lib/module/stt/index.js +127 -60
- package/lib/module/stt/index.js.map +1 -1
- package/lib/module/stt/sttModelLanguages.js +512 -0
- package/lib/module/stt/sttModelLanguages.js.map +1 -0
- package/lib/module/stt/types.js +53 -1
- package/lib/module/stt/types.js.map +1 -1
- package/lib/module/tts/index.js +216 -289
- package/lib/module/tts/index.js.map +1 -1
- package/lib/module/tts/types.js +86 -1
- package/lib/module/tts/types.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/module/utils.js +86 -73
- package/lib/module/utils.js.map +1 -1
- package/lib/module/vad/index.js +1 -1
- package/lib/module/vad/index.js.map +1 -1
- package/lib/typescript/src/NativeSherpaOnnx.d.ts +192 -38
- package/lib/typescript/src/NativeSherpaOnnx.d.ts.map +1 -1
- package/lib/typescript/src/audio/index.d.ts +13 -0
- package/lib/typescript/src/audio/index.d.ts.map +1 -0
- package/lib/typescript/src/diarization/index.d.ts +3 -2
- package/lib/typescript/src/diarization/index.d.ts.map +1 -1
- package/lib/typescript/src/download/ModelDownloadManager.d.ts +108 -0
- package/lib/typescript/src/download/ModelDownloadManager.d.ts.map +1 -0
- package/lib/typescript/src/download/extractTarBz2.d.ts +14 -0
- package/lib/typescript/src/download/extractTarBz2.d.ts.map +1 -0
- package/lib/typescript/src/download/index.d.ts +7 -0
- package/lib/typescript/src/download/index.d.ts.map +1 -0
- package/lib/typescript/src/download/validation.d.ts +57 -0
- package/lib/typescript/src/download/validation.d.ts.map +1 -0
- package/lib/typescript/src/enhancement/index.d.ts +3 -2
- package/lib/typescript/src/enhancement/index.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +26 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/separation/index.d.ts +3 -2
- package/lib/typescript/src/separation/index.d.ts.map +1 -1
- package/lib/typescript/src/stt/index.d.ts +31 -43
- package/lib/typescript/src/stt/index.d.ts.map +1 -1
- package/lib/typescript/src/stt/sttModelLanguages.d.ts +52 -0
- package/lib/typescript/src/stt/sttModelLanguages.d.ts.map +1 -0
- package/lib/typescript/src/stt/types.d.ts +196 -9
- package/lib/typescript/src/stt/types.d.ts.map +1 -1
- package/lib/typescript/src/tts/index.d.ts +25 -211
- package/lib/typescript/src/tts/index.d.ts.map +1 -1
- package/lib/typescript/src/tts/types.d.ts +148 -25
- package/lib/typescript/src/tts/types.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +0 -32
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/utils.d.ts +28 -13
- package/lib/typescript/src/utils.d.ts.map +1 -1
- package/lib/typescript/src/vad/index.d.ts +3 -2
- package/lib/typescript/src/vad/index.d.ts.map +1 -1
- package/package.json +250 -222
- package/scripts/check-qnn-support.sh +78 -0
- package/scripts/setup-ios-framework.sh +379 -282
- package/src/NativeSherpaOnnx.ts +474 -251
- package/src/audio/index.ts +32 -0
- package/src/diarization/index.ts +4 -2
- package/src/download/ModelDownloadManager.ts +1325 -0
- package/src/download/extractTarBz2.ts +78 -0
- package/src/download/index.ts +43 -0
- package/src/download/validation.ts +279 -0
- package/src/enhancement/index.ts +4 -2
- package/src/index.tsx +78 -27
- package/src/separation/index.ts +4 -2
- package/src/stt/index.ts +249 -89
- package/src/stt/sttModelLanguages.ts +237 -0
- package/src/stt/types.ts +263 -9
- package/src/tts/index.ts +470 -458
- package/src/tts/types.ts +373 -218
- package/src/types.ts +0 -44
- package/src/utils.ts +145 -131
- package/src/vad/index.ts +4 -2
- package/third_party/ffmpeg_prebuilt/ANDROID_RELEASE_TAG +1 -0
- package/third_party/libarchive_prebuilt/ANDROID_RELEASE_TAG +1 -0
- package/third_party/libarchive_prebuilt/IOS_RELEASE_TAG +1 -0
- package/third_party/sherpa-onnx-prebuilt/ANDROID_RELEASE_TAG +1 -0
- package/third_party/sherpa-onnx-prebuilt/IOS_RELEASE_TAG +1 -0
- package/android/src/main/cpp/include/sherpa-onnx/c-api/c-api.h +0 -1918
- package/android/src/main/cpp/include/sherpa-onnx/c-api/cxx-api.h +0 -841
- package/android/src/main/cpp/jni/sherpa-onnx-model-detect.cpp +0 -541
- package/android/src/main/cpp/jni/sherpa-onnx-stt-jni.cpp +0 -336
- package/android/src/main/cpp/jni/sherpa-onnx-stt-wrapper.cpp +0 -222
- package/android/src/main/cpp/jni/sherpa-onnx-stt-wrapper.h +0 -68
- package/android/src/main/cpp/jni/sherpa-onnx-tts-jni.cpp +0 -823
- package/android/src/main/cpp/jni/sherpa-onnx-tts-wrapper.cpp +0 -387
- package/android/src/main/cpp/jni/sherpa-onnx-tts-wrapper.h +0 -147
- package/ios/Frameworks/sherpa_onnx.xcframework.zip +0 -0
- package/ios/include/sherpa-onnx/c-api/c-api.h +0 -1918
- package/ios/include/sherpa-onnx/c-api/cxx-api.h +0 -841
- package/ios/sherpa-onnx-model-detect.mm +0 -441
- package/ios/sherpa-onnx-stt-wrapper.h +0 -48
- package/ios/sherpa-onnx-stt-wrapper.mm +0 -201
- package/scripts/copy-headers.js +0 -184
- package/scripts/setup-assets.js +0 -323
|
@@ -1,91 +1,170 @@
|
|
|
1
1
|
import { type TurboModule } from 'react-native';
|
|
2
|
+
/** Unified shape for all acceleration backends (QNN, NNAPI, XNNPACK, Core ML). */
|
|
3
|
+
export type AccelerationSupport = {
|
|
4
|
+
providerCompiled: boolean;
|
|
5
|
+
hasAccelerator: boolean;
|
|
6
|
+
canInit: boolean;
|
|
7
|
+
};
|
|
2
8
|
export interface Spec extends TurboModule {
|
|
3
9
|
/**
|
|
4
10
|
* Test method to verify sherpa-onnx native library is loaded.
|
|
5
11
|
*/
|
|
6
12
|
testSherpaInit(): Promise<string>;
|
|
7
13
|
/**
|
|
8
|
-
*
|
|
9
|
-
* Handles asset paths, file system paths, and auto-detection.
|
|
10
|
-
* Returns an absolute path that can be used by native code.
|
|
11
|
-
*
|
|
12
|
-
* @param config - Object with 'type' ('asset' | 'file' | 'auto') and 'path' (string)
|
|
13
|
-
*/
|
|
14
|
-
resolveModelPath(config: {
|
|
15
|
-
type: string;
|
|
16
|
-
path: string;
|
|
17
|
-
}): Promise<string>;
|
|
18
|
-
/**
|
|
19
|
-
* Initialize sherpa-onnx with model directory.
|
|
14
|
+
* Initialize Speech-to-Text (STT) with model directory.
|
|
20
15
|
* Expects an absolute path (use resolveModelPath first for asset/file paths).
|
|
16
|
+
* @param instanceId - Unique ID for this engine instance (from createSTT)
|
|
21
17
|
* @param modelDir - Absolute path to model directory
|
|
22
18
|
* @param preferInt8 - Optional: true = prefer int8 models, false = prefer regular models, undefined = try int8 first (default)
|
|
23
|
-
* @param modelType - Optional: explicit model type ('transducer', 'paraformer', 'nemo_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', 'dolphin', 'canary', 'omnilingual', 'medasr', 'telespeech_ctc', 'auto'), undefined = auto (default)
|
|
20
|
+
* @param debug - Optional: enable debug logging in native layer and sherpa-onnx (default: false)
|
|
21
|
+
* @param hotwordsFile - Optional: path to hotwords file (OfflineRecognizerConfig)
|
|
22
|
+
* @param hotwordsScore - Optional: hotwords score (default in Kotlin 1.5)
|
|
23
|
+
* @param numThreads - Optional: number of threads for inference (default in Kotlin: 1)
|
|
24
|
+
* @param provider - Optional: provider string e.g. 'cpu' (stored in config only)
|
|
25
|
+
* @param ruleFsts - Optional: path(s) to rule FSTs for ITN (comma-separated)
|
|
26
|
+
* @param ruleFars - Optional: path(s) to rule FARs for ITN (comma-separated)
|
|
27
|
+
* @param dither - Optional: dither for feature extraction (default 0)
|
|
28
|
+
* @param modelOptions - Optional: model-specific options (whisper, senseVoice, canary, funasrNano). Only the block for the loaded model type is applied.
|
|
29
|
+
* @param modelingUnit - Optional: 'cjkchar' | 'bpe' | 'cjkchar+bpe' for hotwords tokenization (OfflineModelConfig.modelingUnit)
|
|
30
|
+
* @param bpeVocab - Optional: path to BPE vocab file (OfflineModelConfig.bpeVocab), used when modelingUnit is bpe or cjkchar+bpe
|
|
24
31
|
* @returns Object with success boolean and array of detected models (each with type and modelDir)
|
|
25
32
|
*/
|
|
26
|
-
|
|
33
|
+
initializeStt(instanceId: string, modelDir: string, preferInt8?: boolean, modelType?: string, debug?: boolean, hotwordsFile?: string, hotwordsScore?: number, numThreads?: number, provider?: string, ruleFsts?: string, ruleFars?: string, dither?: number, modelOptions?: Object, modelingUnit?: string, bpeVocab?: string): Promise<{
|
|
27
34
|
success: boolean;
|
|
28
35
|
detectedModels: Array<{
|
|
29
36
|
type: string;
|
|
30
37
|
modelDir: string;
|
|
31
38
|
}>;
|
|
39
|
+
modelType?: string;
|
|
40
|
+
decodingMethod?: string;
|
|
32
41
|
}>;
|
|
33
42
|
/**
|
|
34
|
-
*
|
|
43
|
+
* Detect STT model type and structure without initializing the recognizer.
|
|
44
|
+
* Uses the same native file-based detection as initializeStt. Useful to show model-specific
|
|
45
|
+
* options before init or to query the type for a given path.
|
|
46
|
+
* @param modelDir - Absolute path to model directory (use resolveModelPath first for asset/file paths)
|
|
47
|
+
* @param preferInt8 - Optional: true = prefer int8, false = prefer regular, undefined = try int8 first
|
|
48
|
+
* @param modelType - Optional: explicit type or 'auto' (default)
|
|
49
|
+
* @returns Object with success, detectedModels (array of { type, modelDir }), and modelType (primary detected type)
|
|
35
50
|
*/
|
|
36
|
-
|
|
51
|
+
detectSttModel(modelDir: string, preferInt8?: boolean, modelType?: string): Promise<{
|
|
52
|
+
success: boolean;
|
|
53
|
+
detectedModels: Array<{
|
|
54
|
+
type: string;
|
|
55
|
+
modelDir: string;
|
|
56
|
+
}>;
|
|
57
|
+
modelType?: string;
|
|
58
|
+
}>;
|
|
37
59
|
/**
|
|
38
|
-
*
|
|
60
|
+
* Transcribe an audio file. Returns full recognition result (text, tokens, timestamps, lang, emotion, event, durations).
|
|
39
61
|
*/
|
|
40
|
-
|
|
62
|
+
transcribeFile(instanceId: string, filePath: string): Promise<{
|
|
63
|
+
text: string;
|
|
64
|
+
tokens: string[];
|
|
65
|
+
timestamps: number[];
|
|
66
|
+
lang: string;
|
|
67
|
+
emotion: string;
|
|
68
|
+
event: string;
|
|
69
|
+
durations: number[];
|
|
70
|
+
}>;
|
|
71
|
+
/**
|
|
72
|
+
* Transcribe from float PCM samples (e.g. from microphone). Same return type as transcribeFile.
|
|
73
|
+
*/
|
|
74
|
+
transcribeSamples(instanceId: string, samples: number[], sampleRate: number): Promise<{
|
|
75
|
+
text: string;
|
|
76
|
+
tokens: string[];
|
|
77
|
+
timestamps: number[];
|
|
78
|
+
lang: string;
|
|
79
|
+
emotion: string;
|
|
80
|
+
event: string;
|
|
81
|
+
durations: number[];
|
|
82
|
+
}>;
|
|
83
|
+
/**
|
|
84
|
+
* Update recognizer config at runtime (decodingMethod, maxActivePaths, hotwordsFile, hotwordsScore, blankPenalty, ruleFsts, ruleFars).
|
|
85
|
+
*/
|
|
86
|
+
setSttConfig(instanceId: string, options: Object): Promise<void>;
|
|
87
|
+
/**
|
|
88
|
+
* Release STT resources.
|
|
89
|
+
*/
|
|
90
|
+
unloadStt(instanceId: string): Promise<void>;
|
|
41
91
|
/**
|
|
42
92
|
* Initialize Text-to-Speech (TTS) with model directory.
|
|
93
|
+
* @param instanceId - Unique ID for this engine instance (from createTTS)
|
|
43
94
|
* @param modelDir - Absolute path to model directory
|
|
44
|
-
* @param modelType - Model type ('vits', 'matcha', 'kokoro', 'kitten', 'zipvoice', 'auto')
|
|
95
|
+
* @param modelType - Model type ('vits', 'matcha', 'kokoro', 'kitten', 'pocket', 'zipvoice', 'auto')
|
|
45
96
|
* @param numThreads - Number of threads for inference (default: 2)
|
|
46
97
|
* @param debug - Enable debug logging (default: false)
|
|
98
|
+
* @param noiseScale - Optional noise scale (VITS/Matcha)
|
|
99
|
+
* @param noiseScaleW - Optional noise scale W (VITS)
|
|
100
|
+
* @param lengthScale - Optional length scale (VITS/Matcha/Kokoro/Kitten)
|
|
101
|
+
* @param ruleFsts - Optional path(s) to rule FSTs for TTS (OfflineTtsConfig)
|
|
102
|
+
* @param ruleFars - Optional path(s) to rule FARs for TTS (OfflineTtsConfig)
|
|
103
|
+
* @param maxNumSentences - Optional max sentences per callback (default: 1)
|
|
104
|
+
* @param silenceScale - Optional silence scale on config (default: 0.2)
|
|
105
|
+
* @param provider - Optional execution provider (e.g. 'cpu', 'coreml', 'xnnpack'; default: 'cpu')
|
|
47
106
|
* @returns Object with success boolean and array of detected models (each with type and modelDir)
|
|
48
107
|
*/
|
|
49
|
-
initializeTts(modelDir: string, modelType: string, numThreads: number, debug: boolean, noiseScale?: number, noiseScaleW?: number, lengthScale?: number): Promise<{
|
|
108
|
+
initializeTts(instanceId: string, modelDir: string, modelType: string, numThreads: number, debug: boolean, noiseScale?: number, noiseScaleW?: number, lengthScale?: number, ruleFsts?: string, ruleFars?: string, maxNumSentences?: number, silenceScale?: number, provider?: string): Promise<{
|
|
50
109
|
success: boolean;
|
|
51
110
|
detectedModels: Array<{
|
|
52
111
|
type: string;
|
|
53
112
|
modelDir: string;
|
|
54
113
|
}>;
|
|
114
|
+
sampleRate: number;
|
|
115
|
+
numSpeakers: number;
|
|
116
|
+
}>;
|
|
117
|
+
/**
|
|
118
|
+
* Detect TTS model type and structure without initializing the engine.
|
|
119
|
+
* Uses the same native file-based detection as initializeTts.
|
|
120
|
+
* @param modelDir - Absolute path to model directory (use resolveModelPath first for asset/file paths)
|
|
121
|
+
* @param modelType - Optional: explicit type or 'auto' (default)
|
|
122
|
+
* @returns Object with success, detectedModels (array of { type, modelDir }), and modelType (primary detected type)
|
|
123
|
+
*/
|
|
124
|
+
detectTtsModel(modelDir: string, modelType?: string): Promise<{
|
|
125
|
+
success: boolean;
|
|
126
|
+
detectedModels: Array<{
|
|
127
|
+
type: string;
|
|
128
|
+
modelDir: string;
|
|
129
|
+
}>;
|
|
130
|
+
modelType?: string;
|
|
55
131
|
}>;
|
|
56
132
|
/**
|
|
57
133
|
* Update TTS model parameters by re-initializing with stored config.
|
|
134
|
+
* @param instanceId - Unique ID for this engine instance
|
|
58
135
|
* @param noiseScale - Optional noise scale override
|
|
59
136
|
* @param noiseScaleW - Optional noise scale W override
|
|
60
137
|
* @param lengthScale - Optional length scale override
|
|
61
138
|
* @returns Object with success boolean and array of detected models
|
|
62
139
|
*/
|
|
63
|
-
updateTtsParams(noiseScale?: number | null, noiseScaleW?: number | null, lengthScale?: number | null): Promise<{
|
|
140
|
+
updateTtsParams(instanceId: string, noiseScale?: number | null, noiseScaleW?: number | null, lengthScale?: number | null): Promise<{
|
|
64
141
|
success: boolean;
|
|
65
142
|
detectedModels: Array<{
|
|
66
143
|
type: string;
|
|
67
144
|
modelDir: string;
|
|
68
145
|
}>;
|
|
146
|
+
sampleRate: number;
|
|
147
|
+
numSpeakers: number;
|
|
69
148
|
}>;
|
|
70
149
|
/**
|
|
71
150
|
* Generate speech from text.
|
|
151
|
+
* @param instanceId - Unique ID for this engine instance
|
|
72
152
|
* @param text - Text to convert to speech
|
|
73
|
-
* @param
|
|
74
|
-
* @param speed - Speech speed multiplier (default: 1.0)
|
|
153
|
+
* @param options - Generation options (sid, speed, referenceAudio, referenceText, numSteps, silenceScale, extra)
|
|
75
154
|
* @returns Object with { samples: number[], sampleRate: number }
|
|
76
155
|
*/
|
|
77
|
-
generateTts(
|
|
156
|
+
generateTts(instanceId: string, text: string, options: Object): Promise<{
|
|
78
157
|
samples: number[];
|
|
79
158
|
sampleRate: number;
|
|
80
159
|
}>;
|
|
81
160
|
/**
|
|
82
161
|
* Generate speech with subtitle/timestamp metadata.
|
|
162
|
+
* @param instanceId - Unique ID for this engine instance
|
|
83
163
|
* @param text - Text to convert to speech
|
|
84
|
-
* @param
|
|
85
|
-
* @param speed - Speech speed multiplier (default: 1.0)
|
|
164
|
+
* @param options - Generation options (sid, speed, referenceAudio, referenceText, numSteps, silenceScale, extra)
|
|
86
165
|
* @returns Object with samples, sampleRate, subtitles, and estimated flag
|
|
87
166
|
*/
|
|
88
|
-
generateTtsWithTimestamps(
|
|
167
|
+
generateTtsWithTimestamps(instanceId: string, text: string, options: Object): Promise<{
|
|
89
168
|
samples: number[];
|
|
90
169
|
sampleRate: number;
|
|
91
170
|
subtitles: Array<{
|
|
@@ -97,44 +176,51 @@ export interface Spec extends TurboModule {
|
|
|
97
176
|
}>;
|
|
98
177
|
/**
|
|
99
178
|
* Generate speech in streaming mode (emits chunk events).
|
|
179
|
+
* @param instanceId - Unique ID for this engine instance
|
|
100
180
|
* @param text - Text to convert to speech
|
|
101
|
-
* @param
|
|
102
|
-
* @param speed - Speech speed multiplier (default: 1.0)
|
|
181
|
+
* @param options - Generation options (sid, speed, referenceAudio, referenceText, numSteps, silenceScale, extra)
|
|
103
182
|
*/
|
|
104
|
-
generateTtsStream(
|
|
183
|
+
generateTtsStream(instanceId: string, text: string, options: Object): Promise<void>;
|
|
105
184
|
/**
|
|
106
185
|
* Cancel an ongoing streaming TTS generation.
|
|
186
|
+
* @param instanceId - Unique ID for this engine instance
|
|
107
187
|
*/
|
|
108
|
-
cancelTtsStream(): Promise<void>;
|
|
188
|
+
cancelTtsStream(instanceId: string): Promise<void>;
|
|
109
189
|
/**
|
|
110
190
|
* Start PCM playback for streaming TTS.
|
|
191
|
+
* @param instanceId - Unique ID for this engine instance
|
|
111
192
|
* @param sampleRate - Sample rate in Hz
|
|
112
193
|
* @param channels - Number of channels (1 = mono)
|
|
113
194
|
*/
|
|
114
|
-
startTtsPcmPlayer(sampleRate: number, channels: number): Promise<void>;
|
|
195
|
+
startTtsPcmPlayer(instanceId: string, sampleRate: number, channels: number): Promise<void>;
|
|
115
196
|
/**
|
|
116
197
|
* Write PCM samples to the streaming TTS player.
|
|
198
|
+
* @param instanceId - Unique ID for this engine instance
|
|
117
199
|
* @param samples - Float PCM samples in range [-1.0, 1.0]
|
|
118
200
|
*/
|
|
119
|
-
writeTtsPcmChunk(samples: number[]): Promise<void>;
|
|
201
|
+
writeTtsPcmChunk(instanceId: string, samples: number[]): Promise<void>;
|
|
120
202
|
/**
|
|
121
203
|
* Stop PCM playback for streaming TTS.
|
|
204
|
+
* @param instanceId - Unique ID for this engine instance
|
|
122
205
|
*/
|
|
123
|
-
stopTtsPcmPlayer(): Promise<void>;
|
|
206
|
+
stopTtsPcmPlayer(instanceId: string): Promise<void>;
|
|
124
207
|
/**
|
|
125
208
|
* Get the sample rate of the initialized TTS model.
|
|
209
|
+
* @param instanceId - Unique ID for this engine instance
|
|
126
210
|
* @returns Sample rate in Hz
|
|
127
211
|
*/
|
|
128
|
-
getTtsSampleRate(): Promise<number>;
|
|
212
|
+
getTtsSampleRate(instanceId: string): Promise<number>;
|
|
129
213
|
/**
|
|
130
214
|
* Get the number of speakers/voices available in the model.
|
|
215
|
+
* @param instanceId - Unique ID for this engine instance
|
|
131
216
|
* @returns Number of speakers (0 or 1 for single-speaker models)
|
|
132
217
|
*/
|
|
133
|
-
getTtsNumSpeakers(): Promise<number>;
|
|
218
|
+
getTtsNumSpeakers(instanceId: string): Promise<number>;
|
|
134
219
|
/**
|
|
135
220
|
* Release TTS resources.
|
|
221
|
+
* @param instanceId - Unique ID for this engine instance
|
|
136
222
|
*/
|
|
137
|
-
unloadTts(): Promise<void>;
|
|
223
|
+
unloadTts(instanceId: string): Promise<void>;
|
|
138
224
|
/**
|
|
139
225
|
* Save TTS audio samples to a WAV file.
|
|
140
226
|
* @param samples - Audio samples array
|
|
@@ -174,6 +260,17 @@ export interface Spec extends TurboModule {
|
|
|
174
260
|
* @param mimeType - MIME type (e.g., audio/wav)
|
|
175
261
|
*/
|
|
176
262
|
shareTtsAudio(fileUri: string, mimeType: string): Promise<void>;
|
|
263
|
+
/**
|
|
264
|
+
* Resolve model path based on configuration.
|
|
265
|
+
* Handles asset paths, file system paths, and auto-detection.
|
|
266
|
+
* Returns an absolute path that can be used by native code.
|
|
267
|
+
*
|
|
268
|
+
* @param config - Object with 'type' ('asset' | 'file' | 'auto') and 'path' (string)
|
|
269
|
+
*/
|
|
270
|
+
resolveModelPath(config: {
|
|
271
|
+
type: string;
|
|
272
|
+
path: string;
|
|
273
|
+
}): Promise<string>;
|
|
177
274
|
/**
|
|
178
275
|
* List all model folders in the assets/models directory.
|
|
179
276
|
* Scans the platform-specific model directory and returns folder names.
|
|
@@ -188,7 +285,7 @@ export interface Spec extends TurboModule {
|
|
|
188
285
|
* // Then use with resolveModelPath and initialize:
|
|
189
286
|
* for (const model of folders) {
|
|
190
287
|
* const path = await resolveModelPath({ type: 'asset', path: `models/${model.folder}` });
|
|
191
|
-
* const result = await
|
|
288
|
+
* const result = await initializeStt(path);
|
|
192
289
|
* if (result.success) {
|
|
193
290
|
* console.log(`Found models in ${model.folder}:`, result.detectedModels);
|
|
194
291
|
* }
|
|
@@ -199,6 +296,63 @@ export interface Spec extends TurboModule {
|
|
|
199
296
|
folder: string;
|
|
200
297
|
hint: 'stt' | 'tts' | 'unknown';
|
|
201
298
|
}>>;
|
|
299
|
+
/**
|
|
300
|
+
* List model folders under a specific filesystem path.
|
|
301
|
+
* When recursive is true, returns relative folder paths under the base path.
|
|
302
|
+
*/
|
|
303
|
+
listModelsAtPath(path: string, recursive: boolean): Promise<Array<{
|
|
304
|
+
folder: string;
|
|
305
|
+
hint: 'stt' | 'tts' | 'unknown';
|
|
306
|
+
}>>;
|
|
307
|
+
/**
|
|
308
|
+
* **Play Asset Delivery (PAD):** Returns the filesystem path to the models directory
|
|
309
|
+
* of an Android asset pack, or null if the pack is not available (e.g. not installed).
|
|
310
|
+
* Use this to list and load models that are delivered via PAD instead of bundled app assets.
|
|
311
|
+
*/
|
|
312
|
+
getAssetPackPath(packName: string): Promise<string | null>;
|
|
313
|
+
/**
|
|
314
|
+
* Extract a .tar.bz2 archive to a target folder.
|
|
315
|
+
* Returns { success, path } or { success, reason }.
|
|
316
|
+
*/
|
|
317
|
+
extractTarBz2(sourcePath: string, targetPath: string, force: boolean): Promise<{
|
|
318
|
+
success: boolean;
|
|
319
|
+
path?: string;
|
|
320
|
+
sha256?: string;
|
|
321
|
+
reason?: string;
|
|
322
|
+
}>;
|
|
323
|
+
/**
|
|
324
|
+
* Cancel any in-progress tar.bz2 extraction.
|
|
325
|
+
*/
|
|
326
|
+
cancelExtractTarBz2(): Promise<void>;
|
|
327
|
+
/**
|
|
328
|
+
* Compute SHA-256 of a file and return the hex digest.
|
|
329
|
+
*/
|
|
330
|
+
computeFileSha256(filePath: string): Promise<string>;
|
|
331
|
+
/**
|
|
332
|
+
* Convert arbitrary audio file to requested format (e.g. "mp3", "flac", "wav").
|
|
333
|
+
* Requires FFmpeg prebuilts when called on Android.
|
|
334
|
+
* For MP3 (libshine), outputSampleRateHz can be 32000, 44100, or 48000; 0 or omitted = 44100.
|
|
335
|
+
* WAV output is always 16 kHz mono (sherpa-onnx). Resolves when conversion succeeds, rejects with an error message on failure.
|
|
336
|
+
*/
|
|
337
|
+
convertAudioToFormat(inputPath: string, outputPath: string, format: string, outputSampleRateHz?: number): Promise<void>;
|
|
338
|
+
/**
|
|
339
|
+
* Convert any supported audio file to WAV 16 kHz mono 16-bit PCM.
|
|
340
|
+
* Requires FFmpeg prebuilts when called on Android.
|
|
341
|
+
*/
|
|
342
|
+
convertAudioToWav16k(inputPath: string, outputPath: string): Promise<void>;
|
|
343
|
+
/**
|
|
344
|
+
* Return the list of available ONNX Runtime execution providers (e.g. "CPU", "NNAPI", "QNN", "XNNPACK").
|
|
345
|
+
* Requires the ORT Java bridge (libonnxruntime4j_jni.so + OrtEnvironment class) from the onnxruntime AAR.
|
|
346
|
+
*/
|
|
347
|
+
getAvailableProviders(): Promise<string[]>;
|
|
348
|
+
/**
|
|
349
|
+
* Unified acceleration support: providerCompiled (ORT EP built in), hasAccelerator (NPU/ANE present), canInit (session with EP works).
|
|
350
|
+
* All get*Support methods return this shape. Optional modelBase64: if omitted, SDK uses embedded test model for canInit.
|
|
351
|
+
*/
|
|
352
|
+
getQnnSupport(modelBase64?: string): Promise<AccelerationSupport>;
|
|
353
|
+
getNnapiSupport(modelBase64?: string): Promise<AccelerationSupport>;
|
|
354
|
+
getXnnpackSupport(modelBase64?: string): Promise<AccelerationSupport>;
|
|
355
|
+
getCoreMlSupport(modelBase64?: string): Promise<AccelerationSupport>;
|
|
202
356
|
}
|
|
203
357
|
declare const _default: Spec;
|
|
204
358
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeSherpaOnnx.d.ts","sourceRoot":"","sources":["../../../src/NativeSherpaOnnx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAErE,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC;;OAEG;IACH,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"NativeSherpaOnnx.d.ts","sourceRoot":"","sources":["../../../src/NativeSherpaOnnx.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert any supported audio file to a requested format (e.g. "mp3", "flac", "wav").
|
|
3
|
+
* On Android this requires FFmpeg prebuilts. WAV output is always 16 kHz mono (sherpa-onnx).
|
|
4
|
+
* For MP3, optional outputSampleRateHz: 32000, 44100, or 48000; 0/undefined = 44100.
|
|
5
|
+
* Resolves on success, rejects with an error message on failure.
|
|
6
|
+
*/
|
|
7
|
+
export declare function convertAudioToFormat(inputPath: string, outputPath: string, format: string, outputSampleRateHz?: number): Promise<void>;
|
|
8
|
+
/**
|
|
9
|
+
* Convert any supported audio file to WAV 16 kHz mono 16-bit PCM.
|
|
10
|
+
* On Android this requires FFmpeg prebuilts. Resolves on success, rejects with an error message on failure.
|
|
11
|
+
*/
|
|
12
|
+
export declare function convertAudioToWav16k(inputPath: string, outputPath: string): Promise<void>;
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/audio/index.ts"],"names":[],"mappings":"AAEA;;;;;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"}
|
|
@@ -10,15 +10,16 @@
|
|
|
10
10
|
* // Future usage:
|
|
11
11
|
* import { initializeDiarization, diarizeAudio } from 'react-native-sherpa-onnx/diarization';
|
|
12
12
|
*
|
|
13
|
-
* await initializeDiarization({ modelPath: 'models/diarization-model' });
|
|
13
|
+
* await initializeDiarization({ modelPath: { type: 'auto', path: 'models/diarization-model' } });
|
|
14
14
|
* const segments = await diarizeAudio('path/to/audio.wav');
|
|
15
15
|
* ```
|
|
16
16
|
*/
|
|
17
|
+
import type { ModelPathConfig } from '../types';
|
|
17
18
|
/**
|
|
18
19
|
* Diarization initialization options (placeholder)
|
|
19
20
|
*/
|
|
20
21
|
export interface DiarizationInitializeOptions {
|
|
21
|
-
modelPath:
|
|
22
|
+
modelPath: ModelPathConfig;
|
|
22
23
|
}
|
|
23
24
|
/**
|
|
24
25
|
* Speaker segment with speaker ID
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/diarization/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/diarization/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,SAAS,EAAE,eAAe,CAAC;CAE5B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CAEb;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,4BAA4B,GACrC,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAIzE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAIjD"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import type { TTSModelType } from '../tts/types';
|
|
2
|
+
export declare enum ModelCategory {
|
|
3
|
+
Tts = "tts",
|
|
4
|
+
Stt = "stt",
|
|
5
|
+
Vad = "vad",
|
|
6
|
+
Diarization = "diarization",
|
|
7
|
+
Enhancement = "enhancement",
|
|
8
|
+
Separation = "separation"
|
|
9
|
+
}
|
|
10
|
+
/** TTS model type for meta; 'unknown' when id could not be classified. */
|
|
11
|
+
export type TtsModelType = TTSModelType | 'unknown';
|
|
12
|
+
export type Quantization = 'fp16' | 'int8' | 'int8-quantized' | 'unknown';
|
|
13
|
+
export type SizeTier = 'tiny' | 'small' | 'medium' | 'large' | 'unknown';
|
|
14
|
+
type ModelArchiveExt = 'tar.bz2' | 'onnx';
|
|
15
|
+
export type ModelMetaBase = {
|
|
16
|
+
id: string;
|
|
17
|
+
displayName: string;
|
|
18
|
+
downloadUrl: string;
|
|
19
|
+
archiveExt: ModelArchiveExt;
|
|
20
|
+
bytes: number;
|
|
21
|
+
sha256?: string;
|
|
22
|
+
category: ModelCategory;
|
|
23
|
+
};
|
|
24
|
+
export type TtsModelMeta = ModelMetaBase & {
|
|
25
|
+
type: TtsModelType;
|
|
26
|
+
languages: string[];
|
|
27
|
+
quantization: Quantization;
|
|
28
|
+
sizeTier: SizeTier;
|
|
29
|
+
category: ModelCategory.Tts;
|
|
30
|
+
};
|
|
31
|
+
export type DownloadProgress = {
|
|
32
|
+
bytesDownloaded: number;
|
|
33
|
+
totalBytes: number;
|
|
34
|
+
percent: number;
|
|
35
|
+
phase?: 'downloading' | 'extracting';
|
|
36
|
+
speed?: number;
|
|
37
|
+
eta?: number;
|
|
38
|
+
};
|
|
39
|
+
export type DownloadResult = {
|
|
40
|
+
modelId: string;
|
|
41
|
+
localPath: string;
|
|
42
|
+
};
|
|
43
|
+
export type DownloadProgressListener = (category: ModelCategory, modelId: string, progress: DownloadProgress) => void;
|
|
44
|
+
export type ModelsListUpdatedListener = (category: ModelCategory, models: ModelMetaBase[]) => void;
|
|
45
|
+
export type ModelWithMetadata<T extends ModelMetaBase = ModelMetaBase> = {
|
|
46
|
+
model: T;
|
|
47
|
+
downloadedAt: string;
|
|
48
|
+
lastUsed: string | null;
|
|
49
|
+
sizeOnDisk?: number;
|
|
50
|
+
};
|
|
51
|
+
type ChecksumIssue = {
|
|
52
|
+
category: ModelCategory;
|
|
53
|
+
id: string;
|
|
54
|
+
archivePath: string;
|
|
55
|
+
expected?: string;
|
|
56
|
+
message: string;
|
|
57
|
+
reason: 'CHECKSUM_FAILED' | 'CHECKSUM_MISMATCH';
|
|
58
|
+
};
|
|
59
|
+
type CacheStatus = {
|
|
60
|
+
lastUpdated: string | null;
|
|
61
|
+
source: 'cache' | 'remote';
|
|
62
|
+
};
|
|
63
|
+
export declare const subscribeDownloadProgress: (listener: DownloadProgressListener) => (() => void);
|
|
64
|
+
export declare const subscribeModelsListUpdated: (listener: ModelsListUpdatedListener) => (() => void);
|
|
65
|
+
export declare function listModelsByCategory<T extends ModelMetaBase>(category: ModelCategory): Promise<T[]>;
|
|
66
|
+
export declare function refreshModelsByCategory<T extends ModelMetaBase>(category: ModelCategory, options?: {
|
|
67
|
+
forceRefresh?: boolean;
|
|
68
|
+
cacheTtlMinutes?: number;
|
|
69
|
+
maxRetries?: number;
|
|
70
|
+
signal?: AbortSignal;
|
|
71
|
+
}): Promise<T[]>;
|
|
72
|
+
export declare function getModelsCacheStatusByCategory(category: ModelCategory): Promise<CacheStatus>;
|
|
73
|
+
export declare function getModelByIdByCategory<T extends ModelMetaBase>(category: ModelCategory, id: string): Promise<T | null>;
|
|
74
|
+
export declare function listDownloadedModelsByCategory<T extends ModelMetaBase>(category: ModelCategory): Promise<T[]>;
|
|
75
|
+
export declare function isModelDownloadedByCategory(category: ModelCategory, id: string): Promise<boolean>;
|
|
76
|
+
export declare function getLocalModelPathByCategory(category: ModelCategory, id: string): Promise<string | null>;
|
|
77
|
+
export declare function downloadModelByCategory<T extends ModelMetaBase>(category: ModelCategory, id: string, opts?: {
|
|
78
|
+
onProgress?: (progress: DownloadProgress) => void;
|
|
79
|
+
overwrite?: boolean;
|
|
80
|
+
signal?: AbortSignal;
|
|
81
|
+
maxRetries?: number;
|
|
82
|
+
onChecksumIssue?: (issue: ChecksumIssue) => Promise<boolean>;
|
|
83
|
+
}): Promise<DownloadResult>;
|
|
84
|
+
/**
|
|
85
|
+
* Update the lastUsed timestamp for a downloaded model
|
|
86
|
+
*/
|
|
87
|
+
export declare function updateModelLastUsed(category: ModelCategory, id: string): Promise<void>;
|
|
88
|
+
/**
|
|
89
|
+
* Get all downloaded models with LRU metadata
|
|
90
|
+
*/
|
|
91
|
+
export declare function listDownloadedModelsWithMetadata<T extends ModelMetaBase>(category: ModelCategory): Promise<ModelWithMetadata<T>[]>;
|
|
92
|
+
/**
|
|
93
|
+
* Remove least recently used models to free up disk space
|
|
94
|
+
* @param category - Model category
|
|
95
|
+
* @param targetBytes - Target amount of bytes to free (optional)
|
|
96
|
+
* @param maxModelsToDelete - Maximum number of models to delete (default: no limit)
|
|
97
|
+
* @returns Array of deleted model IDs
|
|
98
|
+
*/
|
|
99
|
+
export declare function cleanupLeastRecentlyUsed(category: ModelCategory, options?: {
|
|
100
|
+
targetBytes?: number;
|
|
101
|
+
maxModelsToDelete?: number;
|
|
102
|
+
keepCount?: number;
|
|
103
|
+
}): Promise<string[]>;
|
|
104
|
+
export declare function deleteModelByCategory(category: ModelCategory, id: string): Promise<void>;
|
|
105
|
+
export declare function clearModelCacheByCategory(category: ModelCategory): Promise<void>;
|
|
106
|
+
export declare function getDownloadStorageBase(): Promise<string>;
|
|
107
|
+
export {};
|
|
108
|
+
//# sourceMappingURL=ModelDownloadManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelDownloadManager.d.ts","sourceRoot":"","sources":["../../../../src/download/ModelDownloadManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type ExtractProgressEvent = {
|
|
2
|
+
bytes: number;
|
|
3
|
+
totalBytes: number;
|
|
4
|
+
percent: number;
|
|
5
|
+
};
|
|
6
|
+
type ExtractResult = {
|
|
7
|
+
success: boolean;
|
|
8
|
+
path?: string;
|
|
9
|
+
sha256?: string;
|
|
10
|
+
reason?: string;
|
|
11
|
+
};
|
|
12
|
+
export declare function extractTarBz2(sourcePath: string, targetPath: string, force?: boolean, onProgress?: (event: ExtractProgressEvent) => void, signal?: AbortSignal): Promise<ExtractResult>;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=extractTarBz2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractTarBz2.d.ts","sourceRoot":"","sources":["../../../../src/download/extractTarBz2.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,KAAK,UAAO,EACZ,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,EAClD,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,aAAa,CAAC,CAuDxB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { extractTarBz2 } from './extractTarBz2';
|
|
2
|
+
export type { ExtractProgressEvent } from './extractTarBz2';
|
|
3
|
+
export { listModelsByCategory, refreshModelsByCategory, getModelsCacheStatusByCategory, getModelByIdByCategory, listDownloadedModelsByCategory, isModelDownloadedByCategory, getLocalModelPathByCategory, downloadModelByCategory, deleteModelByCategory, clearModelCacheByCategory, getDownloadStorageBase, subscribeDownloadProgress, subscribeModelsListUpdated, updateModelLastUsed, listDownloadedModelsWithMetadata, cleanupLeastRecentlyUsed, ModelCategory, } from './ModelDownloadManager';
|
|
4
|
+
export type { ModelMetaBase, TtsModelMeta, TtsModelType, Quantization, SizeTier, DownloadProgress, DownloadProgressListener, ModelsListUpdatedListener, DownloadResult, ModelWithMetadata, } from './ModelDownloadManager';
|
|
5
|
+
export { validateChecksum, validateExtractedFiles, checkDiskSpace, setExpectedFilesForCategory, getExpectedFilesForCategory, parseChecksumFile, calculateFileChecksum, } from './validation';
|
|
6
|
+
export type { ValidationError } from './validation';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/download/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,8BAA8B,EAC9B,sBAAsB,EACtB,8BAA8B,EAC9B,2BAA2B,EAC3B,2BAA2B,EAC3B,uBAAuB,EACvB,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,EACzB,0BAA0B,EAC1B,mBAAmB,EACnB,gCAAgC,EAChC,wBAAwB,EACxB,aAAa,GACd,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,wBAAwB,EACxB,yBAAyB,EACzB,cAAc,EACd,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,cAAc,EACd,2BAA2B,EAC3B,2BAA2B,EAC3B,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
export type ValidationError = 'CHECKSUM_MISMATCH' | 'CHECKSUM_FAILED' | 'MISSING_FILES' | 'INSUFFICIENT_DISK_SPACE';
|
|
2
|
+
export declare class ValidationResult {
|
|
3
|
+
success: boolean;
|
|
4
|
+
error?: ValidationError;
|
|
5
|
+
message?: string;
|
|
6
|
+
constructor(success: boolean, error?: ValidationError, message?: string);
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Parse checksum.txt format into a Map of filename -> hash
|
|
10
|
+
* Expected format:
|
|
11
|
+
* filename\tsha256hash
|
|
12
|
+
* example:
|
|
13
|
+
* vits-vctk.tar.bz2 4f0a02db66914b3760b144cebc004e65dd4d1aeef43379f2b058849e74002490
|
|
14
|
+
*/
|
|
15
|
+
export declare function parseChecksumFile(content: string): Map<string, string>;
|
|
16
|
+
/**
|
|
17
|
+
* Calculate SHA256 hash of a file in chunks to avoid OOM
|
|
18
|
+
* Reads file in 1MB chunks and processes them efficiently
|
|
19
|
+
*/
|
|
20
|
+
export declare function calculateFileChecksum(filePath: string, onProgress?: (bytesProcessed: number, totalBytes: number, percent: number) => void): Promise<string>;
|
|
21
|
+
/**
|
|
22
|
+
* Validate checksum of downloaded file
|
|
23
|
+
*/
|
|
24
|
+
export declare function validateChecksum(filePath: string, expectedChecksum: string, onProgress?: (bytesProcessed: number, totalBytes: number, percent: number) => void): Promise<ValidationResult>;
|
|
25
|
+
/**
|
|
26
|
+
* Validate that extraction was successful by checking:
|
|
27
|
+
* - Directory exists and is not empty
|
|
28
|
+
* - Contains at least some files (not just directories)
|
|
29
|
+
*
|
|
30
|
+
* The actual model validation (correct files for specific model type)
|
|
31
|
+
* is delegated to the native DetectSttModel / DetectTtsModel functions,
|
|
32
|
+
* so we don't need to check for specific filenames here.
|
|
33
|
+
*/
|
|
34
|
+
export declare function validateExtractedFiles(modelDir: string, _category: string): Promise<ValidationResult>;
|
|
35
|
+
/**
|
|
36
|
+
* Get available disk space (in bytes)
|
|
37
|
+
* This is a simplified version. For accurate values on Android/iOS, use native modules.
|
|
38
|
+
*/
|
|
39
|
+
export declare function getAvailableDiskSpace(): Promise<number>;
|
|
40
|
+
/**
|
|
41
|
+
* Check if there's enough disk space for download
|
|
42
|
+
* Adds 20% buffer to the required size
|
|
43
|
+
*/
|
|
44
|
+
export declare function checkDiskSpace(requiredBytes: number): Promise<ValidationResult>;
|
|
45
|
+
/**
|
|
46
|
+
* Update expected files configuration for a category
|
|
47
|
+
* DEPRECATED: The native DetectSttModel/DetectTtsModel functions handle model validation.
|
|
48
|
+
* This function is kept for backward compatibility but does nothing.
|
|
49
|
+
*/
|
|
50
|
+
export declare function setExpectedFilesForCategory(_category: string, _files: string[]): void;
|
|
51
|
+
/**
|
|
52
|
+
* Get expected files for a category
|
|
53
|
+
* DEPRECATED: The native DetectSttModel/DetectTtsModel functions handle model validation.
|
|
54
|
+
* This function is kept for backward compatibility.
|
|
55
|
+
*/
|
|
56
|
+
export declare function getExpectedFilesForCategory(_category: string): string[];
|
|
57
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../src/download/validation.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,eAAe,GACvB,mBAAmB,GACnB,iBAAiB,GACjB,eAAe,GACf,yBAAyB,CAAC;AAE9B,qBAAa,gBAAgB;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;gBAEL,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,MAAM;CAKxE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAYtE;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,CACX,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,KACZ,IAAI,GACR,OAAO,CAAC,MAAM,CAAC,CAYjB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,UAAU,CAAC,EAAE,CACX,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,KACZ,IAAI,GACR,OAAO,CAAC,gBAAgB,CAAC,CAmB3B;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,gBAAgB,CAAC,CAsF3B;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC,CAe7D;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAwB3B;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EAAE,GACf,IAAI,CAEN;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAGvE"}
|