react-native-nitro-onnx 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE +241 -0
- package/NitroOnnxSpeech.podspec +51 -0
- package/Package.swift +52 -0
- package/README.md +398 -0
- package/android/CMakeLists.txt +117 -0
- package/android/build.gradle +65 -0
- package/android/src/main/AndroidManifest.xml +6 -0
- package/android/src/main/assets/silero_vad.onnx +0 -0
- package/android/src/main/cpp/cpp-adapter.cpp +24 -0
- package/android/src/main/java/com/margelo/nitro/onnx/speech/OnnxSpeechPackage.kt +67 -0
- package/assets/silero_vad.onnx +0 -0
- package/cpp/AndroidPthreadCompat.cpp +16 -0
- package/cpp/AsrEngine.cpp +277 -0
- package/cpp/AsrEngine.hpp +110 -0
- package/cpp/AudioFileReader.cpp +177 -0
- package/cpp/AudioFileReader.hpp +26 -0
- package/cpp/AudioUtils.cpp +28 -0
- package/cpp/AudioUtils.hpp +38 -0
- package/cpp/ModelSingleton.hpp +51 -0
- package/cpp/NitroOnnxSpeech.cpp +68 -0
- package/cpp/NitroOnnxSpeech.hpp +42 -0
- package/cpp/OfflineAsr.cpp +81 -0
- package/cpp/OfflineAsr.hpp +33 -0
- package/cpp/ResourceDir.cpp +29 -0
- package/cpp/ResourceDir.hpp +18 -0
- package/cpp/SpeakerEngine.cpp +170 -0
- package/cpp/SpeakerEngine.hpp +70 -0
- package/cpp/SpeakerManager.cpp +93 -0
- package/cpp/SpeakerManager.hpp +43 -0
- package/cpp/StreamingAsr.cpp +123 -0
- package/cpp/StreamingAsr.hpp +55 -0
- package/cpp/ThreadPool.cpp +41 -0
- package/cpp/ThreadPool.hpp +62 -0
- package/cpp/Tts.cpp +132 -0
- package/cpp/Tts.hpp +38 -0
- package/cpp/TtsEngine.cpp +222 -0
- package/cpp/TtsEngine.hpp +77 -0
- package/cpp/Vad.cpp +126 -0
- package/cpp/Vad.hpp +62 -0
- package/cpp/VadEngine.cpp +217 -0
- package/cpp/VadEngine.hpp +126 -0
- package/ios/OnnxSpeechInitializer.mm +37 -0
- package/ios/PrivacyInfo.xcprivacy +14 -0
- package/lib/index.d.ts +11 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +19 -0
- package/lib/index.js.map +1 -0
- package/lib/specs/OnnxSpeech.nitro.d.ts +264 -0
- package/lib/specs/OnnxSpeech.nitro.d.ts.map +1 -0
- package/lib/specs/OnnxSpeech.nitro.js +6 -0
- package/lib/specs/OnnxSpeech.nitro.js.map +1 -0
- package/nitro.json +19 -0
- package/nitrogen/generated/.gitattributes +1 -0
- package/nitrogen/generated/android/NitroOnnxSpeech+autolinking.cmake +86 -0
- package/nitrogen/generated/android/NitroOnnxSpeech+autolinking.gradle +27 -0
- package/nitrogen/generated/android/NitroOnnxSpeechOnLoad.cpp +49 -0
- package/nitrogen/generated/android/NitroOnnxSpeechOnLoad.hpp +34 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/onnx/speech/NitroOnnxSpeechOnLoad.kt +35 -0
- package/nitrogen/generated/ios/NitroOnnxSpeech+autolinking.rb +62 -0
- package/nitrogen/generated/ios/NitroOnnxSpeech-Swift-Cxx-Bridge.cpp +17 -0
- package/nitrogen/generated/ios/NitroOnnxSpeech-Swift-Cxx-Bridge.hpp +27 -0
- package/nitrogen/generated/ios/NitroOnnxSpeech-Swift-Cxx-Umbrella.hpp +38 -0
- package/nitrogen/generated/ios/NitroOnnxSpeechAutolinking.mm +35 -0
- package/nitrogen/generated/ios/NitroOnnxSpeechAutolinking.swift +16 -0
- package/nitrogen/generated/shared/c++/AsrModelConfig.hpp +142 -0
- package/nitrogen/generated/shared/c++/AsrModelType.hpp +112 -0
- package/nitrogen/generated/shared/c++/AsrResult.hpp +105 -0
- package/nitrogen/generated/shared/c++/HybridOfflineAsrSpec.cpp +25 -0
- package/nitrogen/generated/shared/c++/HybridOfflineAsrSpec.hpp +73 -0
- package/nitrogen/generated/shared/c++/HybridOnnxSpeechSpec.cpp +27 -0
- package/nitrogen/generated/shared/c++/HybridOnnxSpeechSpec.hpp +82 -0
- package/nitrogen/generated/shared/c++/HybridSpeakerManagerSpec.cpp +28 -0
- package/nitrogen/generated/shared/c++/HybridSpeakerManagerSpec.hpp +77 -0
- package/nitrogen/generated/shared/c++/HybridStreamingAsrSpec.cpp +32 -0
- package/nitrogen/generated/shared/c++/HybridStreamingAsrSpec.hpp +81 -0
- package/nitrogen/generated/shared/c++/HybridTtsSpec.cpp +26 -0
- package/nitrogen/generated/shared/c++/HybridTtsSpec.hpp +74 -0
- package/nitrogen/generated/shared/c++/HybridVadSpec.cpp +31 -0
- package/nitrogen/generated/shared/c++/HybridVadSpec.hpp +81 -0
- package/nitrogen/generated/shared/c++/RegisteredSpeaker.hpp +91 -0
- package/nitrogen/generated/shared/c++/SpeakerEmbeddingConfig.hpp +91 -0
- package/nitrogen/generated/shared/c++/TtsModelConfig.hpp +178 -0
- package/nitrogen/generated/shared/c++/TtsModelType.hpp +88 -0
- package/nitrogen/generated/shared/c++/TtsResult.hpp +91 -0
- package/nitrogen/generated/shared/c++/VadConfig.hpp +100 -0
- package/nitrogen/generated/shared/c++/VadSegment.hpp +91 -0
- package/package.json +62 -0
- package/scripts/prepare-sherpa-onnx.js +236 -0
- package/scripts/test-cpp.js +24 -0
- package/src/index.ts +45 -0
- package/src/specs/OnnxSpeech.nitro.ts +326 -0
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
// ------------------------------------------------------------------------------
|
|
2
|
+
// Nitro TypeScript specifications for react-native-nitro-onnx.
|
|
3
|
+
// All numeric audio data is 16 kHz mono PCM f32 unless otherwise noted.
|
|
4
|
+
// ------------------------------------------------------------------------------
|
|
5
|
+
|
|
6
|
+
import type { HybridObject } from "react-native-nitro-modules";
|
|
7
|
+
|
|
8
|
+
/** All speech hybrid objects are implemented in C++ on both platforms. */
|
|
9
|
+
export type SpeechPlatforms = { ios: "c++"; android: "c++" };
|
|
10
|
+
|
|
11
|
+
// ------------------------------------------------------------------------------
|
|
12
|
+
// Common types
|
|
13
|
+
// ------------------------------------------------------------------------------
|
|
14
|
+
|
|
15
|
+
/** Audio format constants used across the module. */
|
|
16
|
+
export interface AudioFormat {
|
|
17
|
+
/** Sample rate in Hz. Always 16000 for this module. */
|
|
18
|
+
sampleRate: number;
|
|
19
|
+
/** Number of channels. Always 1 (mono). */
|
|
20
|
+
channels: number;
|
|
21
|
+
/** PCM sample format. */
|
|
22
|
+
sampleFormat: "f32le" | "s16le";
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/** Generic result wrapper for operations that may fail on the native side. */
|
|
26
|
+
export interface Result<T> {
|
|
27
|
+
success: boolean;
|
|
28
|
+
data?: T;
|
|
29
|
+
error?: string;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// ------------------------------------------------------------------------------
|
|
33
|
+
// VAD
|
|
34
|
+
// ------------------------------------------------------------------------------
|
|
35
|
+
|
|
36
|
+
export interface VadConfig {
|
|
37
|
+
/**
|
|
38
|
+
* Optional path to a custom Silero VAD onnx model.
|
|
39
|
+
* If omitted, the bundled silero_vad.onnx resource is used.
|
|
40
|
+
*/
|
|
41
|
+
modelPath?: string;
|
|
42
|
+
/** Threshold for speech start detection, range 0..1. Default: 0.5. */
|
|
43
|
+
threshold?: number;
|
|
44
|
+
/** Minimum silence duration in milliseconds before speech ends. Default: 500. */
|
|
45
|
+
minSilenceDurationMs?: number;
|
|
46
|
+
/** Minimum speech duration in milliseconds. Default: 250. */
|
|
47
|
+
minSpeechDurationMs?: number;
|
|
48
|
+
/** How many milliseconds of audio to keep before onSpeechStart. Default: 300. */
|
|
49
|
+
preBufferMs?: number;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/** VAD segment delivered after speech ends or on explicit pull. */
|
|
53
|
+
export interface VadSegment {
|
|
54
|
+
/** Start offset in milliseconds relative to stream start. */
|
|
55
|
+
startMs: number;
|
|
56
|
+
/** End offset in milliseconds. */
|
|
57
|
+
endMs: number;
|
|
58
|
+
/** Audio samples as 16 kHz mono f32 PCM. */
|
|
59
|
+
samples: ArrayBuffer;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/** VAD events delivered asynchronously to JS. */
|
|
63
|
+
export interface VadEvents {
|
|
64
|
+
onSpeechStart?: (segment: VadSegment) => void;
|
|
65
|
+
onSpeechEnd?: (segment: VadSegment) => void;
|
|
66
|
+
onError?: (error: string) => void;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/** Voice Activity Detection hybrid object. */
|
|
70
|
+
export interface Vad extends HybridObject<SpeechPlatforms> {
|
|
71
|
+
/** Optional callback invoked when speech starts. */
|
|
72
|
+
onSpeechStart?: (segment: VadSegment) => void;
|
|
73
|
+
/** Optional callback invoked when speech ends. */
|
|
74
|
+
onSpeechEnd?: (segment: VadSegment) => void;
|
|
75
|
+
/** Optional callback invoked on VAD errors. */
|
|
76
|
+
onError?: (error: string) => void;
|
|
77
|
+
/** Initialize the VAD engine. Must be called before process. */
|
|
78
|
+
initialize(config: VadConfig): Promise<void>;
|
|
79
|
+
/** Returns true if the engine is ready to process audio. */
|
|
80
|
+
isInitialized(): boolean;
|
|
81
|
+
/** Feed a chunk of 16 kHz mono f32 PCM audio. Runs on a background thread. */
|
|
82
|
+
process(samples: ArrayBuffer): Promise<void>;
|
|
83
|
+
/** Pull any buffered speech segment(s) without waiting for speech end. */
|
|
84
|
+
pullSegments(): Promise<VadSegment[]>;
|
|
85
|
+
/** Reset internal state and buffers. */
|
|
86
|
+
reset(): Promise<void>;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// ------------------------------------------------------------------------------
|
|
90
|
+
// ASR
|
|
91
|
+
// ------------------------------------------------------------------------------
|
|
92
|
+
|
|
93
|
+
export type AsrModelType =
|
|
94
|
+
| "whisper"
|
|
95
|
+
| "transducer"
|
|
96
|
+
| "paraformer"
|
|
97
|
+
| "zipformer"
|
|
98
|
+
| "conformer"
|
|
99
|
+
| "wenet"
|
|
100
|
+
| "telespeech"
|
|
101
|
+
| "moonshine"
|
|
102
|
+
| "dolphin"
|
|
103
|
+
| "nemo"
|
|
104
|
+
| "sense_voice";
|
|
105
|
+
|
|
106
|
+
export interface AsrModelConfig {
|
|
107
|
+
type: AsrModelType;
|
|
108
|
+
/** Directory containing all model files. */
|
|
109
|
+
modelDir: string;
|
|
110
|
+
/** Path to tokens.txt or equivalent vocabulary file. */
|
|
111
|
+
tokensPath: string;
|
|
112
|
+
/** Whisper: encoder + decoder ONNX files. */
|
|
113
|
+
whisperEncoder?: string;
|
|
114
|
+
whisperDecoder?: string;
|
|
115
|
+
/** Transducer / Zipformer / Conformer: encoder/decoder/joiner. */
|
|
116
|
+
encoder?: string;
|
|
117
|
+
decoder?: string;
|
|
118
|
+
joiner?: string;
|
|
119
|
+
/** Paraformer / Wenet / Telespeech / SenseVoice: single model file. */
|
|
120
|
+
model?: string;
|
|
121
|
+
/** NeMo config file (.yaml). */
|
|
122
|
+
config?: string;
|
|
123
|
+
/** Number of threads for ONNX Runtime. Default: 2. */
|
|
124
|
+
numThreads?: number;
|
|
125
|
+
/** Decode method, e.g. "greedy_search" or "modified_beam_search". */
|
|
126
|
+
decodingMethod?: string;
|
|
127
|
+
/** Max active paths for beam search. */
|
|
128
|
+
maxActivePaths?: number;
|
|
129
|
+
/** Whisper language hint, e.g. "en", "zh". */
|
|
130
|
+
language?: string;
|
|
131
|
+
/** SenseVoice: whether to use itn. */
|
|
132
|
+
useItn?: boolean;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
export interface AsrResult {
|
|
136
|
+
text: string;
|
|
137
|
+
/** Confidence score when available. */
|
|
138
|
+
score?: number;
|
|
139
|
+
/** Start offset in milliseconds. */
|
|
140
|
+
startMs?: number;
|
|
141
|
+
/** End offset in milliseconds. */
|
|
142
|
+
endMs?: number;
|
|
143
|
+
/** Word / token timestamps when supported by the model. */
|
|
144
|
+
timestamps?: number[];
|
|
145
|
+
/** Raw JSON metadata from the recognizer. */
|
|
146
|
+
json?: string;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
export interface StreamingAsrEvents {
|
|
150
|
+
onPartialResult?: (result: AsrResult) => void;
|
|
151
|
+
onFinalResult?: (result: AsrResult) => void;
|
|
152
|
+
onError?: (error: string) => void;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/** Offline (file/chunk) ASR hybrid object. */
|
|
156
|
+
export interface OfflineAsr extends HybridObject<SpeechPlatforms> {
|
|
157
|
+
/** Preload the model singleton. */
|
|
158
|
+
load(config: AsrModelConfig): Promise<void>;
|
|
159
|
+
isLoaded(): boolean;
|
|
160
|
+
/** Recognize a full buffer of 16 kHz mono f32 PCM. */
|
|
161
|
+
recognize(samples: ArrayBuffer): Promise<AsrResult>;
|
|
162
|
+
/** Recognize from a file path (native side reads the audio). */
|
|
163
|
+
recognizeFile(path: string): Promise<AsrResult>;
|
|
164
|
+
unload(): Promise<void>;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/** Streaming ASR hybrid object. */
|
|
168
|
+
export interface StreamingAsr extends HybridObject<SpeechPlatforms> {
|
|
169
|
+
/** Optional callback invoked when a partial recognition result is available. */
|
|
170
|
+
onPartialResult?: (result: AsrResult) => void;
|
|
171
|
+
/** Optional callback invoked when a final recognition result is available. */
|
|
172
|
+
onFinalResult?: (result: AsrResult) => void;
|
|
173
|
+
/** Optional callback invoked on ASR errors. */
|
|
174
|
+
onError?: (error: string) => void;
|
|
175
|
+
load(config: AsrModelConfig): Promise<void>;
|
|
176
|
+
isLoaded(): boolean;
|
|
177
|
+
/** Feed streaming audio. */
|
|
178
|
+
acceptWaveform(samples: ArrayBuffer): Promise<void>;
|
|
179
|
+
/** Signal end of stream and return final result. */
|
|
180
|
+
finalize(): Promise<AsrResult>;
|
|
181
|
+
reset(): Promise<void>;
|
|
182
|
+
unload(): Promise<void>;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
// ------------------------------------------------------------------------------
|
|
186
|
+
// TTS
|
|
187
|
+
// ------------------------------------------------------------------------------
|
|
188
|
+
|
|
189
|
+
export type TtsModelType =
|
|
190
|
+
| "kokoro"
|
|
191
|
+
| "vits"
|
|
192
|
+
| "matcha"
|
|
193
|
+
| "pocket"
|
|
194
|
+
| "zipvoice";
|
|
195
|
+
|
|
196
|
+
export interface TtsModelConfig {
|
|
197
|
+
type: TtsModelType;
|
|
198
|
+
/** Directory containing all model files. */
|
|
199
|
+
modelDir: string;
|
|
200
|
+
/**
|
|
201
|
+
* Single ONNX model file for Kokoro / VITS / ZipVoice.
|
|
202
|
+
* For Matcha, use acousticModel + vocoder instead.
|
|
203
|
+
*/
|
|
204
|
+
model?: string;
|
|
205
|
+
/** Acoustic model ONNX file (Matcha only). */
|
|
206
|
+
acousticModel?: string;
|
|
207
|
+
/** Vocoder ONNX file (Matcha only). */
|
|
208
|
+
vocoder?: string;
|
|
209
|
+
/** Tokens / lexicon files. */
|
|
210
|
+
tokens?: string;
|
|
211
|
+
lexicon?: string;
|
|
212
|
+
/** Kokoro / Matcha voice data (e.g. voices.bin). */
|
|
213
|
+
voices?: string;
|
|
214
|
+
/** Optional espeak-ng-data directory (Kokoro / VITS / Matcha / ZipVoice). */
|
|
215
|
+
espeakNgData?: string;
|
|
216
|
+
/** Optional dict directory (Kokoro / VITS / Matcha legacy field). */
|
|
217
|
+
dictDir?: string;
|
|
218
|
+
/** Pocket: lm_main ONNX file. */
|
|
219
|
+
lmMain?: string;
|
|
220
|
+
/** Pocket: lm_flow ONNX file. */
|
|
221
|
+
lmFlow?: string;
|
|
222
|
+
/** Pocket: text conditioner ONNX file. */
|
|
223
|
+
textConditioner?: string;
|
|
224
|
+
/** Pocket: encoder ONNX file. */
|
|
225
|
+
pocketEncoder?: string;
|
|
226
|
+
/** Pocket: decoder ONNX file. */
|
|
227
|
+
pocketDecoder?: string;
|
|
228
|
+
/** Pocket: vocab.json file. */
|
|
229
|
+
vocabJson?: string;
|
|
230
|
+
/** Pocket: token_scores.json file. */
|
|
231
|
+
tokenScoresJson?: string;
|
|
232
|
+
/** ZipVoice: encoder ONNX file. */
|
|
233
|
+
zipvoiceEncoder?: string;
|
|
234
|
+
/** ZipVoice: decoder ONNX file. */
|
|
235
|
+
zipvoiceDecoder?: string;
|
|
236
|
+
/** Pocket: config JSON. */
|
|
237
|
+
config?: string;
|
|
238
|
+
/** Number of ONNX Runtime threads. Default: 2. */
|
|
239
|
+
numThreads?: number;
|
|
240
|
+
/** Output sample rate (some models produce 24 kHz). Default: 16000. */
|
|
241
|
+
outputSampleRate?: number;
|
|
242
|
+
/** Speaker ID for multi-speaker models. */
|
|
243
|
+
speakerId?: number;
|
|
244
|
+
/** Speed factor, e.g. 1.0. */
|
|
245
|
+
speed?: number;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
export interface TtsResult {
|
|
249
|
+
/** Synthesized audio as 16 kHz mono f32 PCM (or configured output sample rate). */
|
|
250
|
+
samples: ArrayBuffer;
|
|
251
|
+
sampleRate: number;
|
|
252
|
+
/** Duration in milliseconds. */
|
|
253
|
+
durationMs: number;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
/** Text-to-speech hybrid object. */
|
|
257
|
+
export interface Tts extends HybridObject<SpeechPlatforms> {
|
|
258
|
+
load(config: TtsModelConfig): Promise<void>;
|
|
259
|
+
isLoaded(): boolean;
|
|
260
|
+
/** Synthesize text into audio on a background thread. Optional speed override. */
|
|
261
|
+
synthesize(text: string, speed?: number): Promise<TtsResult>;
|
|
262
|
+
/** Synthesize with a cloned speaker embedding (reference-audio cloning). */
|
|
263
|
+
synthesizeWithSpeaker(text: string, speakerId: string, speed?: number): Promise<TtsResult>;
|
|
264
|
+
/** Save TTS result as a WAV file at the given path. */
|
|
265
|
+
saveWav(result: TtsResult, path: string): Promise<void>;
|
|
266
|
+
unload(): Promise<void>;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
// ------------------------------------------------------------------------------
|
|
270
|
+
// Voice cloning / speaker management
|
|
271
|
+
// ------------------------------------------------------------------------------
|
|
272
|
+
|
|
273
|
+
export interface SpeakerEmbeddingConfig {
|
|
274
|
+
/** Directory containing the speaker embedding model. */
|
|
275
|
+
modelDir: string;
|
|
276
|
+
/** Model ONNX file. */
|
|
277
|
+
model: string;
|
|
278
|
+
numThreads: number;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
export interface RegisteredSpeaker {
|
|
282
|
+
/** Stable speaker ID. */
|
|
283
|
+
id: string;
|
|
284
|
+
/** Optional display name. */
|
|
285
|
+
name: string;
|
|
286
|
+
/** Stored embedding file path on native side. */
|
|
287
|
+
embeddingPath: string;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
/** Speaker embedding and voice cloning hybrid object. */
|
|
291
|
+
export interface SpeakerManager extends HybridObject<SpeechPlatforms> {
|
|
292
|
+
load(config: SpeakerEmbeddingConfig): Promise<void>;
|
|
293
|
+
isLoaded(): boolean;
|
|
294
|
+
/** Compute an embedding from reference 16 kHz mono f32 PCM audio. */
|
|
295
|
+
computeEmbedding(samples: ArrayBuffer): Promise<ArrayBuffer>;
|
|
296
|
+
/** Register a speaker embedding for later TTS use. */
|
|
297
|
+
registerSpeaker(id: string, name: string, embedding: ArrayBuffer): Promise<RegisteredSpeaker>;
|
|
298
|
+
/** Register from a reference audio file. */
|
|
299
|
+
registerSpeakerFromFile(id: string, name: string, path: string): Promise<RegisteredSpeaker>;
|
|
300
|
+
/** List registered speakers. */
|
|
301
|
+
listSpeakers(): Promise<RegisteredSpeaker[]>;
|
|
302
|
+
/** Remove a registered speaker. */
|
|
303
|
+
removeSpeaker(id: string): Promise<void>;
|
|
304
|
+
unload(): Promise<void>;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
// ------------------------------------------------------------------------------
|
|
308
|
+
// Module entry point
|
|
309
|
+
// ------------------------------------------------------------------------------
|
|
310
|
+
|
|
311
|
+
export interface OnnxSpeech extends HybridObject<SpeechPlatforms> {
|
|
312
|
+
/** Create a VAD instance. */
|
|
313
|
+
createVad(): Vad;
|
|
314
|
+
/** Create an offline ASR instance. */
|
|
315
|
+
createOfflineAsr(): OfflineAsr;
|
|
316
|
+
/** Create a streaming ASR instance. */
|
|
317
|
+
createStreamingAsr(): StreamingAsr;
|
|
318
|
+
/** Create a TTS instance. */
|
|
319
|
+
createTts(): Tts;
|
|
320
|
+
/** Create a speaker manager for voice cloning. */
|
|
321
|
+
createSpeakerManager(): SpeakerManager;
|
|
322
|
+
/** Get the module version. */
|
|
323
|
+
readonly version: string;
|
|
324
|
+
/** Check if the CPU is a Qualcomm chip. Always returns false on iOS. */
|
|
325
|
+
isQualcommCpu(): boolean;
|
|
326
|
+
}
|