@xrkseek/harness 0.7.7 → 0.7.8
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/node_modules/@xrkseek/exec-voice/dist/download-http.d.ts +25 -6
- package/node_modules/@xrkseek/exec-voice/dist/download-http.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/download-http.js +55 -11
- package/node_modules/@xrkseek/exec-voice/dist/download-http.js.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/index.d.ts +1 -0
- package/node_modules/@xrkseek/exec-voice/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/index.js +1 -0
- package/node_modules/@xrkseek/exec-voice/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/sensevoice-runtime.d.ts +3 -1
- package/node_modules/@xrkseek/exec-voice/dist/sensevoice-runtime.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-voice/dist/sensevoice-runtime.js +18 -1
- package/node_modules/@xrkseek/exec-voice/dist/sensevoice-runtime.js.map +1 -1
- package/node_modules/@xrkseek/exec-voice/package.json +3 -0
- package/node_modules/@xrkseek/preset-harness/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/voice.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/voice.js +16 -2
- package/node_modules/@xrkseek/server-face/dist/handlers/voice.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-posture.js +1 -1
- package/node_modules/@xrkseek/server-face/dist/session-posture.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/settings-schemas.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/settings-schemas.js +8 -0
- package/node_modules/@xrkseek/server-face/dist/settings-schemas.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/workspace-orchestrate-tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/workspace-orchestrate-tools.js +4 -1
- package/node_modules/@xrkseek/server-face/dist/workspace-orchestrate-tools.js.map +1 -1
- package/node_modules/sherpa-onnx-node/README.md +11 -0
- package/node_modules/sherpa-onnx-node/addon-static-import.js +76 -0
- package/node_modules/sherpa-onnx-node/addon.js +98 -0
- package/node_modules/sherpa-onnx-node/audio-tagg.js +45 -0
- package/node_modules/sherpa-onnx-node/keyword-spotter.js +68 -0
- package/node_modules/sherpa-onnx-node/non-streaming-asr.js +158 -0
- package/node_modules/sherpa-onnx-node/non-streaming-speaker-diarization.js +38 -0
- package/node_modules/sherpa-onnx-node/non-streaming-speech-denoiser.js +32 -0
- package/node_modules/sherpa-onnx-node/non-streaming-tts.js +117 -0
- package/node_modules/sherpa-onnx-node/online-speech-denoiser.js +46 -0
- package/node_modules/sherpa-onnx-node/package.json +68 -0
- package/node_modules/sherpa-onnx-node/punctuation.js +43 -0
- package/node_modules/sherpa-onnx-node/resampler.js +80 -0
- package/node_modules/sherpa-onnx-node/sherpa-onnx.js +49 -0
- package/node_modules/sherpa-onnx-node/speaker-identification.js +152 -0
- package/node_modules/sherpa-onnx-node/spoken-language-identification.js +38 -0
- package/node_modules/sherpa-onnx-node/streaming-asr.js +181 -0
- package/node_modules/sherpa-onnx-node/types.js +833 -0
- package/node_modules/sherpa-onnx-node/vad.js +134 -0
- package/node_modules/sherpa-onnx-win-x64/README.md +3 -0
- package/node_modules/sherpa-onnx-win-x64/index.js +1 -0
- package/node_modules/sherpa-onnx-win-x64/onnxruntime.dll +0 -0
- package/node_modules/sherpa-onnx-win-x64/onnxruntime_providers_shared.dll +0 -0
- package/node_modules/sherpa-onnx-win-x64/package.json +65 -0
- package/node_modules/sherpa-onnx-win-x64/sherpa-onnx-c-api.dll +0 -0
- package/node_modules/sherpa-onnx-win-x64/sherpa-onnx-cxx-api.dll +0 -0
- package/node_modules/sherpa-onnx-win-x64/sherpa-onnx.node +0 -0
- package/package.json +5 -1
|
@@ -0,0 +1,833 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized JSDoc typedefs for the Node addon API.
|
|
3
|
+
* These typedefs mirror the shapes produced/consumed by the C++ bindings
|
|
4
|
+
* in `scripts/node-addon-api/src/*` and by the underlying SherpaOnnx C API.
|
|
5
|
+
*
|
|
6
|
+
* Keep these typedefs specialized (no `any`/`unknown`) and concise.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Opaque handle types returned by native constructors. These are opaque
|
|
11
|
+
* JavaScript objects backed by native pointers. Do not introspect or
|
|
12
|
+
* mutate their internals; pass them to the API functions as-is.
|
|
13
|
+
*
|
|
14
|
+
* @typedef {Object} OfflineStreamHandle
|
|
15
|
+
* @see src/non-streaming-asr.cc
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* @typedef {Object} OnlineStreamHandle
|
|
20
|
+
* @see src/streaming-asr.cc
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @typedef {Object} OfflineRecognizerHandle
|
|
25
|
+
* @see src/non-streaming-asr.cc
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* @typedef {Object} OnlineRecognizerHandle
|
|
30
|
+
* @see src/streaming-asr.cc
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* @typedef {Object} DisplayHandle
|
|
35
|
+
* @see src/streaming-asr.cc
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* @typedef {Object} CircularBufferHandle
|
|
40
|
+
* @see src/vad.cc
|
|
41
|
+
*/
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* @typedef {Object} VoiceActivityDetectorHandle
|
|
45
|
+
* @see src/vad.cc
|
|
46
|
+
*/
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* @typedef {Object} AudioTaggingHandle
|
|
50
|
+
* @see src/audio-tagging.cc
|
|
51
|
+
*/
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* @typedef {Object} OfflinePunctuationHandle
|
|
55
|
+
* @see src/offline-punctuation.cc
|
|
56
|
+
*/
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* @typedef {Object} LinearResamplerHandle
|
|
60
|
+
* @see src/resampler.cc
|
|
61
|
+
*/
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* @typedef {Object} OfflineTtsHandle
|
|
65
|
+
* @see src/non-streaming-tts.cc
|
|
66
|
+
*/
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* @typedef {Object} OnlinePunctuationHandle
|
|
70
|
+
* @see src/punctuation.cc
|
|
71
|
+
*/
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* @typedef {Object} KeywordSpotterHandle
|
|
75
|
+
* @see src/keyword-spotter.cc
|
|
76
|
+
*/
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* @typedef {Object} SpeakerEmbeddingExtractorHandle
|
|
80
|
+
* @see src/speaker-identification.cc
|
|
81
|
+
*/
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* @typedef {Object} SpeakerEmbeddingManagerHandle
|
|
85
|
+
* @see src/speaker-identification.cc
|
|
86
|
+
*/
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* @typedef {Object} SpokenLanguageIdentificationHandle
|
|
90
|
+
* @see src/spoken-language-identification.cc
|
|
91
|
+
*/
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* @typedef {Object} OfflineSpeakerDiarizationHandle
|
|
95
|
+
* @see src/non-streaming-speaker-diarization.cc
|
|
96
|
+
*/
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* @typedef {Object} OfflineSpeechDenoiserHandle
|
|
100
|
+
* @see src/non-streaming-speech-denoiser.cc
|
|
101
|
+
*/
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* @typedef {Object} OnlineSpeechDenoiserHandle
|
|
105
|
+
* @see src/online-speech-denoiser.cc
|
|
106
|
+
*/
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* A single audio event returned by AudioTagging.compute().
|
|
110
|
+
* @typedef {Object} AudioEvent
|
|
111
|
+
* @property {string} name - The event name.
|
|
112
|
+
* @property {number} prob - Probability in [0,1].
|
|
113
|
+
* @property {number} index - Index (integer) of the event.
|
|
114
|
+
*/
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* AudioTagging specific model config for Zipformer variant
|
|
118
|
+
* @typedef {Object} AudioTaggingZipformerModelConfig
|
|
119
|
+
* @property {string} [model]
|
|
120
|
+
*/
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* AudioTagging model config.
|
|
124
|
+
* @typedef {Object} AudioTaggingModelConfig
|
|
125
|
+
* @property {AudioTaggingZipformerModelConfig} [zipformer]
|
|
126
|
+
* @property {string} [ced]
|
|
127
|
+
* @property {number} [numThreads]
|
|
128
|
+
* @property {boolean|number} [debug]
|
|
129
|
+
* @property {string} [provider]
|
|
130
|
+
*/
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* AudioTagging configuration passed to constructor.
|
|
134
|
+
* @typedef {Object} AudioTaggingConfig
|
|
135
|
+
* @property {AudioTaggingModelConfig} [model]
|
|
136
|
+
* @property {string} [labels]
|
|
137
|
+
* @property {number} [topK]
|
|
138
|
+
*/
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Waveform input object used by acceptWaveform methods.
|
|
142
|
+
* @typedef {Object} Waveform
|
|
143
|
+
* @property {Float32Array} samples - Float32Array of samples in [-1, 1].
|
|
144
|
+
* @property {number} sampleRate - Sample rate as an integer (e.g., 16000).
|
|
145
|
+
*/
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Feature config used by recognizers and models.
|
|
149
|
+
* @typedef {Object} FeatureConfig
|
|
150
|
+
* @property {number} [sampleRate]
|
|
151
|
+
* @property {number} [featureDim]
|
|
152
|
+
*/
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Silero VAD model config
|
|
156
|
+
* @typedef {Object} SileroVadModelConfig
|
|
157
|
+
* @property {string} [model]
|
|
158
|
+
* @property {number} [threshold]
|
|
159
|
+
* @property {number} [minSilenceDuration]
|
|
160
|
+
* @property {number} [minSpeechDuration]
|
|
161
|
+
* @property {number} [windowSize]
|
|
162
|
+
* @property {number} [maxSpeechDuration]
|
|
163
|
+
*/
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* Ten-VAD model config
|
|
167
|
+
* @typedef {Object} TenVadModelConfig
|
|
168
|
+
* @property {string} [model]
|
|
169
|
+
* @property {number} [threshold]
|
|
170
|
+
* @property {number} [minSilenceDuration]
|
|
171
|
+
* @property {number} [minSpeechDuration]
|
|
172
|
+
* @property {number} [windowSize]
|
|
173
|
+
* @property {number} [maxSpeechDuration]
|
|
174
|
+
*/
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* Voice activity detector configuration.
|
|
178
|
+
* @typedef {Object} VadConfig
|
|
179
|
+
* @property {SileroVadModelConfig} [sileroVad]
|
|
180
|
+
* @property {TenVadModelConfig} [tenVad]
|
|
181
|
+
* @property {number} [sampleRate]
|
|
182
|
+
* @property {number} [numThreads]
|
|
183
|
+
* @property {string} [provider]
|
|
184
|
+
* @property {boolean|number} [debug]
|
|
185
|
+
*/
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Offline Transducer model config
|
|
189
|
+
* @typedef {Object} OfflineTransducerModelConfig
|
|
190
|
+
* @property {string} [encoder]
|
|
191
|
+
* @property {string} [decoder]
|
|
192
|
+
* @property {string} [joiner]
|
|
193
|
+
*/
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Offline Paraformer model config
|
|
197
|
+
* @typedef {Object} OfflineParaformerModelConfig
|
|
198
|
+
* @property {string} [model]
|
|
199
|
+
*/
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Offline Zipformer CTC model config
|
|
203
|
+
* @typedef {Object} OfflineZipformerCtcModelConfig
|
|
204
|
+
* @property {string} [model]
|
|
205
|
+
*/
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Offline Wenet CTC model config
|
|
209
|
+
* @typedef {Object} OfflineWenetCtcModelConfig
|
|
210
|
+
* @property {string} [model]
|
|
211
|
+
*/
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* Offline Omnilingual ASR CTC model config
|
|
215
|
+
* @typedef {Object} OfflineOmnilingualAsrCtcModelConfig
|
|
216
|
+
* @property {string} [model]
|
|
217
|
+
*/
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Offline Med ASR CTC model config
|
|
221
|
+
* @typedef {Object} OfflineMedAsrCtcModelConfig
|
|
222
|
+
* @property {string} [model]
|
|
223
|
+
*/
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Offline Dolphin model config
|
|
227
|
+
* @typedef {Object} OfflineDolphinModelConfig
|
|
228
|
+
* @property {string} [model]
|
|
229
|
+
*/
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* Offline NeMo CTC model config
|
|
233
|
+
* @typedef {Object} OfflineNeMoCtcModelConfig
|
|
234
|
+
* @property {string} [model]
|
|
235
|
+
*/
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* Offline Canary model config
|
|
239
|
+
* @typedef {Object} OfflineCanaryModelConfig
|
|
240
|
+
* @property {string} [encoder]
|
|
241
|
+
* @property {string} [decoder]
|
|
242
|
+
* @property {string} [srcLang]
|
|
243
|
+
* @property {string} [tgtLang]
|
|
244
|
+
* @property {number} [usePnc]
|
|
245
|
+
*/
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* Offline Whisper model config
|
|
249
|
+
* @typedef {Object} OfflineWhisperModelConfig
|
|
250
|
+
* @property {string} [encoder]
|
|
251
|
+
* @property {string} [decoder]
|
|
252
|
+
* @property {string} [language]
|
|
253
|
+
* @property {string} [task]
|
|
254
|
+
* @property {number} [tailPaddings]
|
|
255
|
+
*/
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* Offline FireRed ASR model config
|
|
259
|
+
* @typedef {Object} OfflineFireRedAsrModelConfig
|
|
260
|
+
* @property {string} [encoder]
|
|
261
|
+
* @property {string} [decoder]
|
|
262
|
+
*/
|
|
263
|
+
|
|
264
|
+
/**
|
|
265
|
+
* Offline Moonshine model config
|
|
266
|
+
* @typedef {Object} OfflineMoonshineModelConfig
|
|
267
|
+
* @property {string} [preprocessor]
|
|
268
|
+
* @property {string} [encoder]
|
|
269
|
+
* @property {string} [uncachedDecoder]
|
|
270
|
+
* @property {string} [cachedDecoder]
|
|
271
|
+
*/
|
|
272
|
+
|
|
273
|
+
/**
|
|
274
|
+
* Offline TDNN model config
|
|
275
|
+
* @typedef {Object} OfflineTdnnModelConfig
|
|
276
|
+
* @property {string} [model]
|
|
277
|
+
*/
|
|
278
|
+
|
|
279
|
+
/**
|
|
280
|
+
* Offline SenseVoice model config
|
|
281
|
+
* @typedef {Object} OfflineSenseVoiceModelConfig
|
|
282
|
+
* @property {string} [model]
|
|
283
|
+
* @property {string} [language]
|
|
284
|
+
* @property {number} [useInverseTextNormalization]
|
|
285
|
+
*/
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* Offline Cohere Transcribe model config
|
|
289
|
+
* @typedef {Object} OfflineCohereTranscribeModelConfig
|
|
290
|
+
* @property {string} [encoder]
|
|
291
|
+
* @property {string} [decoder]
|
|
292
|
+
* @property {string} [language]
|
|
293
|
+
* @property {number} [usePunct]
|
|
294
|
+
* @property {number} [useItn]
|
|
295
|
+
*/
|
|
296
|
+
|
|
297
|
+
/**
|
|
298
|
+
* Offline model config.
|
|
299
|
+
* @typedef {Object} OfflineModelConfig
|
|
300
|
+
* @property {OfflineTransducerModelConfig} [transducer]
|
|
301
|
+
* @property {OfflineParaformerModelConfig} [paraformer]
|
|
302
|
+
* @property {OfflineZipformerCtcModelConfig} [zipformerCtc]
|
|
303
|
+
* @property {OfflineWenetCtcModelConfig} [wenetCtc]
|
|
304
|
+
* @property {OfflineOmnilingualAsrCtcModelConfig} [omnilingual]
|
|
305
|
+
* @property {OfflineMedAsrCtcModelConfig} [medasr]
|
|
306
|
+
* @property {OfflineDolphinModelConfig} [dolphin]
|
|
307
|
+
* @property {OfflineNeMoCtcModelConfig} [nemoCtc]
|
|
308
|
+
* @property {OfflineCanaryModelConfig} [canary]
|
|
309
|
+
* @property {OfflineWhisperModelConfig} [whisper]
|
|
310
|
+
* @property {OfflineFireRedAsrModelConfig} [fireRedAsr]
|
|
311
|
+
* @property {OfflineMoonshineModelConfig} [moonshine]
|
|
312
|
+
* @property {OfflineTdnnModelConfig} [tdnn]
|
|
313
|
+
* @property {OfflineSenseVoiceModelConfig} [senseVoice]
|
|
314
|
+
* @property {OfflineCohereTranscribeModelConfig} [cohereTranscribe]
|
|
315
|
+
* @property {string} [tokens]
|
|
316
|
+
* @property {number} [numThreads]
|
|
317
|
+
* @property {boolean|number} [debug]
|
|
318
|
+
* @property {string} [provider]
|
|
319
|
+
*/
|
|
320
|
+
|
|
321
|
+
/**
|
|
322
|
+
* Transducer model config
|
|
323
|
+
* @typedef {Object} TransducerModelConfig
|
|
324
|
+
* @property {string} [encoder]
|
|
325
|
+
* @property {string} [decoder]
|
|
326
|
+
* @property {string} [joiner]
|
|
327
|
+
*/
|
|
328
|
+
|
|
329
|
+
/**
|
|
330
|
+
* Paraformer model config
|
|
331
|
+
* @typedef {Object} ParaformerModelConfig
|
|
332
|
+
* @property {string} [encoder]
|
|
333
|
+
* @property {string} [decoder]
|
|
334
|
+
*/
|
|
335
|
+
|
|
336
|
+
/**
|
|
337
|
+
* Zipformer2 CTC model config
|
|
338
|
+
* @typedef {Object} Zipformer2CtcModelConfig
|
|
339
|
+
* @property {string} [model]
|
|
340
|
+
*/
|
|
341
|
+
|
|
342
|
+
/**
|
|
343
|
+
* NeMo CTC model config
|
|
344
|
+
* @typedef {Object} NemoCtcModelConfig
|
|
345
|
+
* @property {string} [model]
|
|
346
|
+
*/
|
|
347
|
+
|
|
348
|
+
/**
|
|
349
|
+
* Tone CTC model config
|
|
350
|
+
* @typedef {Object} ToneCtcModelConfig
|
|
351
|
+
* @property {string} [model]
|
|
352
|
+
*/
|
|
353
|
+
|
|
354
|
+
/**
|
|
355
|
+
* Online model config (subset of C++ `OnlineModelConfig`).
|
|
356
|
+
* @typedef {Object} OnlineModelConfig
|
|
357
|
+
* @property {TransducerModelConfig} [transducer]
|
|
358
|
+
* @property {ParaformerModelConfig} [paraformer]
|
|
359
|
+
* @property {Zipformer2CtcModelConfig} [zipformer2Ctc]
|
|
360
|
+
* @property {NemoCtcModelConfig} [nemoCtc]
|
|
361
|
+
* @property {ToneCtcModelConfig} [toneCtc]
|
|
362
|
+
* @property {string} [tokens]
|
|
363
|
+
* @property {number} [numThreads]
|
|
364
|
+
* @property {boolean|number} [debug]
|
|
365
|
+
* @property {string} [provider]
|
|
366
|
+
* @property {string} [modelType]
|
|
367
|
+
* @property {string} [modelingUnit]
|
|
368
|
+
* @property {string} [bpeVocab]
|
|
369
|
+
* @property {string} [tokensBuf]
|
|
370
|
+
* @property {number} [tokensBufSize]
|
|
371
|
+
*/
|
|
372
|
+
|
|
373
|
+
/**
|
|
374
|
+
* Homophone replacer configuration used both in online and offline recognizers.
|
|
375
|
+
* @typedef {Object} HomophoneReplacerConfig
|
|
376
|
+
* @property {string} [lexicon]
|
|
377
|
+
* @property {string} [ruleFsts]
|
|
378
|
+
*/
|
|
379
|
+
|
|
380
|
+
/**
|
|
381
|
+
* Online recognizer configuration passed to createOnlineRecognizer.
|
|
382
|
+
* @typedef {Object} OnlineRecognizerConfig
|
|
383
|
+
* @property {FeatureConfig} [featConfig]
|
|
384
|
+
* @property {OnlineModelConfig} [modelConfig]
|
|
385
|
+
* @property {HomophoneReplacerConfig} [hr]
|
|
386
|
+
* @property {string} [decodingMethod]
|
|
387
|
+
* @property {number} [maxActivePaths]
|
|
388
|
+
* @property {boolean|number} [enableEndpoint]
|
|
389
|
+
* @property {number} [rule1MinTrailingSilence]
|
|
390
|
+
* @property {number} [rule2MinTrailingSilence]
|
|
391
|
+
* @property {number} [rule3MinUtteranceLength]
|
|
392
|
+
* @property {string} [hotwordsFile]
|
|
393
|
+
* @property {number} [hotwordsScore]
|
|
394
|
+
* @property {string} [ruleFsts]
|
|
395
|
+
* @property {string} [ruleFars]
|
|
396
|
+
* @property {number} [blankPenalty]
|
|
397
|
+
*/
|
|
398
|
+
|
|
399
|
+
/**
|
|
400
|
+
* CTC FST decoder options for offline CTC models.
|
|
401
|
+
* @typedef {Object} OfflineCtcFstDecoderConfig
|
|
402
|
+
* @property {string} [graph] - Path to the decoding graph.
|
|
403
|
+
* @property {number} [maxActive] - Decoder max-active setting. 0 means 3000.
|
|
404
|
+
*/
|
|
405
|
+
|
|
406
|
+
/**
|
|
407
|
+
* Offline recognizer config passed to createOfflineRecognizer.
|
|
408
|
+
* @typedef {Object} OfflineRecognizerConfig
|
|
409
|
+
* @property {FeatureConfig} [featConfig]
|
|
410
|
+
* @property {OfflineModelConfig} [modelConfig]
|
|
411
|
+
* @property {OfflineCtcFstDecoderConfig} [ctcFstDecoderConfig]
|
|
412
|
+
*/
|
|
413
|
+
|
|
414
|
+
/**
|
|
415
|
+
* Wave object returned by readWave and used by writeWave.
|
|
416
|
+
* @typedef {Object} WaveObject
|
|
417
|
+
* @property {Float32Array} samples - 1-D float32 samples in [-1, 1].
|
|
418
|
+
* @property {number} sampleRate - Sample rate as an integer (e.g., 16000).
|
|
419
|
+
* @see src/wave-reader.cc
|
|
420
|
+
*/
|
|
421
|
+
|
|
422
|
+
/**
|
|
423
|
+
* Speech segment returned by Vad.front().
|
|
424
|
+
* @typedef {Object} SpeechSegment
|
|
425
|
+
* @property {number} start - Start index (int64 sample position) of this segment.
|
|
426
|
+
* @property {Float32Array} samples - Float32Array of samples.
|
|
427
|
+
* @see src/vad.cc
|
|
428
|
+
*/
|
|
429
|
+
|
|
430
|
+
/**
|
|
431
|
+
* Audio returned by TTS and speech denoiser.
|
|
432
|
+
* @typedef {Object} GeneratedAudio
|
|
433
|
+
* @property {Float32Array} samples - The generated/denoised audio samples.
|
|
434
|
+
* @property {number} sampleRate - Sample rate in Hz.
|
|
435
|
+
* @see src/non-streaming-tts.cc
|
|
436
|
+
* @see src/non-streaming-speech-denoiser.cc
|
|
437
|
+
*/
|
|
438
|
+
|
|
439
|
+
/**
|
|
440
|
+
* @typedef {Object} GenerationConfig
|
|
441
|
+
* @property {number=} silenceScale
|
|
442
|
+
* @property {number=} speed
|
|
443
|
+
* @property {number=} sid
|
|
444
|
+
* @property {number=} numSteps
|
|
445
|
+
*
|
|
446
|
+
* @property {Float32Array=} referenceAudio
|
|
447
|
+
* @property {number=} referenceSampleRate
|
|
448
|
+
* @property {string=} referenceText
|
|
449
|
+
*
|
|
450
|
+
* @property {{[key: string]: number | string}} [extra]
|
|
451
|
+
*
|
|
452
|
+
* @property {number[][]} [phonemeCodepoints] - Pre-phonemized input as
|
|
453
|
+
* Unicode codepoints, one inner array per sentence. When set, it is
|
|
454
|
+
* used in place of the text argument. Mutually exclusive with
|
|
455
|
+
* `tokens`.
|
|
456
|
+
* @property {string[][]} [tokens] - Pre-tokenized input, e.g. Chinese pinyin
|
|
457
|
+
* like "zhong1", one inner array per sentence. Mutually exclusive
|
|
458
|
+
* with `phonemeCodepoints`.
|
|
459
|
+
*/
|
|
460
|
+
|
|
461
|
+
|
|
462
|
+
/**
|
|
463
|
+
* TTS request object passed to generate/generateAsync.
|
|
464
|
+
* @typedef {Object} TtsRequest
|
|
465
|
+
* @property {string} text - Input text to synthesize.
|
|
466
|
+
* @property {number} sid - Speaker id (integer).
|
|
467
|
+
* @property {number} speed - Playback speed (float).
|
|
468
|
+
* @property {boolean} [enableExternalBuffer=true] - Whether to use an external
|
|
469
|
+
* buffer.
|
|
470
|
+
* @property {GenerationConfig=} generationConfig - Optional
|
|
471
|
+
*/
|
|
472
|
+
|
|
473
|
+
/**
|
|
474
|
+
* Spoken Language ID whisper config
|
|
475
|
+
* @typedef {Object} SpokenLanguageIdentificationWhisperConfig
|
|
476
|
+
* @property {string} [encoder]
|
|
477
|
+
* @property {string} [decoder]
|
|
478
|
+
* @property {number} [tailPaddings]
|
|
479
|
+
*/
|
|
480
|
+
|
|
481
|
+
/**
|
|
482
|
+
* SpokenLanguageIdentification config
|
|
483
|
+
* @typedef {Object} SpokenLanguageIdentificationConfig
|
|
484
|
+
* @property {SpokenLanguageIdentificationWhisperConfig} [whisper]
|
|
485
|
+
* @property {number} [numThreads]
|
|
486
|
+
* @property {boolean|number} [debug]
|
|
487
|
+
* @property {string} [provider]
|
|
488
|
+
*/
|
|
489
|
+
|
|
490
|
+
/**
|
|
491
|
+
* Speaker embedding extractor config
|
|
492
|
+
* @typedef {Object} SpeakerEmbeddingExtractorConfig
|
|
493
|
+
* @property {string} [model]
|
|
494
|
+
* @property {number} [numThreads]
|
|
495
|
+
* @property {boolean|number} [debug]
|
|
496
|
+
* @property {string} [provider]
|
|
497
|
+
*/
|
|
498
|
+
|
|
499
|
+
/**
|
|
500
|
+
* Offline punctuation model config
|
|
501
|
+
* @typedef {Object} OfflinePunctuationModelConfig
|
|
502
|
+
* @property {string} [ctTransformer]
|
|
503
|
+
* @property {number} [numThreads]
|
|
504
|
+
* @property {boolean|number} [debug]
|
|
505
|
+
* @property {string} [provider]
|
|
506
|
+
*/
|
|
507
|
+
|
|
508
|
+
/**
|
|
509
|
+
* Offline punctuation config
|
|
510
|
+
* @typedef {Object} OfflinePunctuationConfig
|
|
511
|
+
* @property {OfflinePunctuationModelConfig} [model]
|
|
512
|
+
*/
|
|
513
|
+
|
|
514
|
+
/**
|
|
515
|
+
* Online punctuation model config
|
|
516
|
+
* @typedef {Object} OnlinePunctuationModelConfig
|
|
517
|
+
* @property {string} [cnnBilstm]
|
|
518
|
+
* @property {string} [bpeVocab]
|
|
519
|
+
* @property {number} [numThreads]
|
|
520
|
+
* @property {boolean|number} [debug]
|
|
521
|
+
* @property {string} [provider]
|
|
522
|
+
*/
|
|
523
|
+
|
|
524
|
+
/**
|
|
525
|
+
* Online punctuation config
|
|
526
|
+
* @typedef {Object} OnlinePunctuationConfig
|
|
527
|
+
* @property {OnlinePunctuationModelConfig} [model]
|
|
528
|
+
*/
|
|
529
|
+
|
|
530
|
+
/**
|
|
531
|
+
* Generic audio processing request used by denoisers/tts generators.
|
|
532
|
+
* @typedef {Object} AudioProcessRequest
|
|
533
|
+
* @property {Float32Array} samples
|
|
534
|
+
* @property {number} sampleRate
|
|
535
|
+
* @property {boolean} [enableExternalBuffer]
|
|
536
|
+
*/
|
|
537
|
+
|
|
538
|
+
/**
|
|
539
|
+
* Offline TTS model configs
|
|
540
|
+
* @typedef {Object} OfflineTtsVitsModelConfig
|
|
541
|
+
* @property {string} [model]
|
|
542
|
+
* @property {string} [lexicon]
|
|
543
|
+
* @property {string} [tokens]
|
|
544
|
+
* @property {string} [dataDir] - Deprecated. Ignored. Use lexicon, or
|
|
545
|
+
* phonemeCodepoints or tokens instead.
|
|
546
|
+
* @property {number} [noiseScale]
|
|
547
|
+
* @property {number} [noiseScaleW]
|
|
548
|
+
* @property {number} [lengthScale]
|
|
549
|
+
*/
|
|
550
|
+
|
|
551
|
+
/**
|
|
552
|
+
* @typedef {Object} OfflineTtsMatchaModelConfig
|
|
553
|
+
* @property {string} [acousticModel]
|
|
554
|
+
* @property {string} [vocoder]
|
|
555
|
+
* @property {string} [lexicon]
|
|
556
|
+
* @property {string} [tokens]
|
|
557
|
+
* @property {string} [dataDir] - Deprecated. Ignored. Use lexicon, or
|
|
558
|
+
* phonemeCodepoints or tokens instead.
|
|
559
|
+
* @property {number} [noiseScale]
|
|
560
|
+
* @property {number} [lengthScale]
|
|
561
|
+
*/
|
|
562
|
+
|
|
563
|
+
/**
|
|
564
|
+
* @typedef {Object} OfflineTtsKokoroModelConfig
|
|
565
|
+
* @property {string} [model]
|
|
566
|
+
* @property {string} [voices]
|
|
567
|
+
* @property {string} [tokens]
|
|
568
|
+
* @property {string} [dataDir] - Deprecated. Ignored. Use lexicon, or
|
|
569
|
+
* phonemeCodepoints or tokens instead.
|
|
570
|
+
* @property {number} [lengthScale]
|
|
571
|
+
* @property {string} [lexicon]
|
|
572
|
+
* @property {string} [lang]
|
|
573
|
+
*/
|
|
574
|
+
|
|
575
|
+
/**
|
|
576
|
+
* @typedef {Object} OfflineTtsKittenModelConfig
|
|
577
|
+
* @property {string} [model]
|
|
578
|
+
* @property {string} [voices]
|
|
579
|
+
* @property {string} [tokens]
|
|
580
|
+
* @property {string} [lexicon]
|
|
581
|
+
* @property {string} [dataDir] - Deprecated. Ignored. Use lexicon, or
|
|
582
|
+
* phonemeCodepoints or tokens instead.
|
|
583
|
+
* @property {number} [lengthScale]
|
|
584
|
+
*/
|
|
585
|
+
|
|
586
|
+
/**
|
|
587
|
+
* @typedef {Object} OfflineTtsZipvoiceModelConfig
|
|
588
|
+
* @property {string} [tokens]
|
|
589
|
+
* @property {string} [encoder]
|
|
590
|
+
* @property {string} [decoder]
|
|
591
|
+
* @property {string} [vocoder]
|
|
592
|
+
* @property {string} [dataDir] - Deprecated. Ignored. Use lexicon, or
|
|
593
|
+
* phonemeCodepoints or tokens instead.
|
|
594
|
+
* @property {string} [lexicon]
|
|
595
|
+
* @property {number} [featScale]
|
|
596
|
+
* @property {number} [tShift]
|
|
597
|
+
* @property {number} [targetRms]
|
|
598
|
+
* @property {number} [guidanceScale]
|
|
599
|
+
*/
|
|
600
|
+
|
|
601
|
+
/**
|
|
602
|
+
* @typedef {Object} OfflineTtsPocketModelConfig
|
|
603
|
+
* @property {string} [lmFlow]
|
|
604
|
+
* @property {string} [lmMain]
|
|
605
|
+
* @property {string} [encoder]
|
|
606
|
+
* @property {string} [decoder]
|
|
607
|
+
* @property {string} [textConditioner]
|
|
608
|
+
* @property {string} [vocabJson]
|
|
609
|
+
* @property {string} [tokenScoresJson]
|
|
610
|
+
* @property {number} [voiceEmbeddingCacheCapacity]
|
|
611
|
+
*/
|
|
612
|
+
|
|
613
|
+
/**
|
|
614
|
+
* Offline TTS model config
|
|
615
|
+
* @typedef {Object} OfflineTtsModelConfig
|
|
616
|
+
* @property {OfflineTtsVitsModelConfig} [vits]
|
|
617
|
+
* @property {OfflineTtsMatchaModelConfig} [matcha]
|
|
618
|
+
* @property {OfflineTtsKokoroModelConfig} [kokoro]
|
|
619
|
+
* @property {OfflineTtsKittenModelConfig} [kitten]
|
|
620
|
+
* @property {OfflineTtsZipvoiceModelConfig} [zipvoice]
|
|
621
|
+
* @property {OfflineTtsPocketModelConfig} [pocket]
|
|
622
|
+
*/
|
|
623
|
+
|
|
624
|
+
/**
|
|
625
|
+
* Offline TTS configuration (partial, commonly used props).
|
|
626
|
+
* @typedef {Object} OfflineTtsConfig
|
|
627
|
+
* @property {OfflineTtsModelConfig} [model]
|
|
628
|
+
* @property {number} [maxNumSentences]
|
|
629
|
+
* @property {number} [silenceScale]
|
|
630
|
+
* @property {number} [numThreads]
|
|
631
|
+
* @property {string} [provider]
|
|
632
|
+
*/
|
|
633
|
+
|
|
634
|
+
/**
|
|
635
|
+
* Offline Speech Denoiser model config
|
|
636
|
+
* @typedef {Object} OfflineSpeechDenoiserGtcrnModelConfig
|
|
637
|
+
* @property {string} [model]
|
|
638
|
+
*/
|
|
639
|
+
|
|
640
|
+
/**
|
|
641
|
+
* Offline Speech Denoiser model config
|
|
642
|
+
* @typedef {Object} OfflineSpeechDenoiserDpdfNetModelConfig
|
|
643
|
+
* @property {string} [model]
|
|
644
|
+
* @property {number} [attenuationLimitDb] Offline attenuation limit in dB.
|
|
645
|
+
*/
|
|
646
|
+
|
|
647
|
+
/**
|
|
648
|
+
* VoxLock target-speaker voice isolation model config.
|
|
649
|
+
*
|
|
650
|
+
* VoxLock keeps the voice of one speaker (the caller) and removes the other
|
|
651
|
+
* voices. The model is from https://github.com/arbazsiddiqui/voxlock
|
|
652
|
+
*
|
|
653
|
+
* @typedef {Object} OfflineSpeechDenoiserVoxLockModelConfig
|
|
654
|
+
* @property {string} [enrollModel] Path to the enroll model, e.g.,
|
|
655
|
+
* `enroll.onnx`. It runs once on a voice sample of the speaker to keep.
|
|
656
|
+
* @property {string} [chunkModel] Path to the chunk model, e.g., `chunk.onnx`
|
|
657
|
+
* or `chunk_int8.onnx`. It runs on each chunk of the audio.
|
|
658
|
+
* @property {string} [voiceSample] Optional. Path to a wave file with at least
|
|
659
|
+
* 3 seconds of the caller's voice. VoxLock keeps this voice and removes the
|
|
660
|
+
* others. From a longer file, it uses the loudest 3 seconds within the first
|
|
661
|
+
* 30 seconds. A file that is shorter or cannot be read is ignored, as if it
|
|
662
|
+
* were empty. If empty or ignored, the voice sample is taken from the input
|
|
663
|
+
* audio: the offline denoiser uses the loudest 3 seconds in the first 15
|
|
664
|
+
* seconds of the input, and the online denoiser passes the audio through
|
|
665
|
+
* unchanged until 3 seconds of speech have been heard, then uses that
|
|
666
|
+
* speech.
|
|
667
|
+
*/
|
|
668
|
+
|
|
669
|
+
/**
|
|
670
|
+
* Offline Speech Denoiser model config
|
|
671
|
+
* @typedef {Object} OfflineSpeechDenoiserModelConfig
|
|
672
|
+
* @property {OfflineSpeechDenoiserGtcrnModelConfig} [gtcrn]
|
|
673
|
+
* @property {OfflineSpeechDenoiserDpdfNetModelConfig} [dpdfnet]
|
|
674
|
+
* @property {OfflineSpeechDenoiserVoxLockModelConfig} [voxlock]
|
|
675
|
+
* @property {number} [numThreads]
|
|
676
|
+
* @property {boolean|number} [debug]
|
|
677
|
+
* @property {string} [provider]
|
|
678
|
+
*/
|
|
679
|
+
|
|
680
|
+
/**
|
|
681
|
+
* Offline Speech Denoiser configuration (partial).
|
|
682
|
+
* @typedef {Object} OfflineSpeechDenoiserConfig
|
|
683
|
+
* @property {OfflineSpeechDenoiserModelConfig} [model]
|
|
684
|
+
*/
|
|
685
|
+
|
|
686
|
+
/**
|
|
687
|
+
* Online Speech Denoiser configuration (partial).
|
|
688
|
+
* @typedef {Object} OnlineSpeechDenoiserConfig
|
|
689
|
+
* @property {OfflineSpeechDenoiserModelConfig} [model]
|
|
690
|
+
*/
|
|
691
|
+
|
|
692
|
+
/**
|
|
693
|
+
* Offline speaker segmentation (pyannote) model config
|
|
694
|
+
* @typedef {Object} OfflineSpeakerSegmentationPyannoteModelConfig
|
|
695
|
+
* @property {string} [model]
|
|
696
|
+
* @property {number} [windowShiftRatio=0.1]
|
|
697
|
+
*/
|
|
698
|
+
|
|
699
|
+
/**
|
|
700
|
+
* Offline speaker segmentation model config
|
|
701
|
+
* @typedef {Object} OfflineSpeakerSegmentationModelConfig
|
|
702
|
+
* @property {OfflineSpeakerSegmentationPyannoteModelConfig} [pyannote]
|
|
703
|
+
* @property {number} [numThreads]
|
|
704
|
+
* @property {boolean|number} [debug]
|
|
705
|
+
* @property {string} [provider]
|
|
706
|
+
*/
|
|
707
|
+
|
|
708
|
+
/**
|
|
709
|
+
* Offline Speaker Diarization configuration (partial).
|
|
710
|
+
* @typedef {Object} OfflineSpeakerDiarizationConfig
|
|
711
|
+
* @property {OfflineSpeakerSegmentationModelConfig} [segmentation]
|
|
712
|
+
* @property {SpeakerEmbeddingExtractorConfig} [embedding]
|
|
713
|
+
* @property {FastClusteringConfig} [clustering]
|
|
714
|
+
* @property {number} [minDurationOn]
|
|
715
|
+
* @property {number} [minDurationOff]
|
|
716
|
+
*/
|
|
717
|
+
|
|
718
|
+
/**
|
|
719
|
+
* Fast clustering configuration used by diarization.
|
|
720
|
+
* @typedef {Object} FastClusteringConfig
|
|
721
|
+
* @property {number} [numClusters]
|
|
722
|
+
* @property {number} [threshold]
|
|
723
|
+
*/
|
|
724
|
+
|
|
725
|
+
/**
|
|
726
|
+
* SpeakerEmbeddingManager add-multi flattened object
|
|
727
|
+
* @typedef {Object} SpeakerEmbeddingManagerAddListFlattenedObj
|
|
728
|
+
* @property {string} name
|
|
729
|
+
* @property {Float32Array} vv
|
|
730
|
+
* @property {number} n
|
|
731
|
+
*/
|
|
732
|
+
|
|
733
|
+
/**
|
|
734
|
+
* SpeakerEmbeddingManager search object
|
|
735
|
+
* @typedef {Object} SpeakerEmbeddingManagerSearchObj
|
|
736
|
+
* @property {Float32Array} v
|
|
737
|
+
* @property {number} threshold
|
|
738
|
+
*/
|
|
739
|
+
|
|
740
|
+
/**
|
|
741
|
+
* SpeakerEmbeddingManager verify object
|
|
742
|
+
* @typedef {Object} SpeakerEmbeddingManagerVerifyObj
|
|
743
|
+
* @property {string} name
|
|
744
|
+
* @property {Float32Array} v
|
|
745
|
+
* @property {number} threshold
|
|
746
|
+
*/
|
|
747
|
+
|
|
748
|
+
/**
|
|
749
|
+
* KeywordSpotter config (partial)
|
|
750
|
+
* @typedef {Object} KeywordSpotterConfig
|
|
751
|
+
* @property {FeatureConfig} [featConfig]
|
|
752
|
+
* @property {OfflineModelConfig} [modelConfig]
|
|
753
|
+
* @property {number} [maxActivePaths]
|
|
754
|
+
* @property {number} [numTrailingBlanks]
|
|
755
|
+
* @property {number} [keywordsScore]
|
|
756
|
+
* @property {number} [keywordsThreshold]
|
|
757
|
+
* @property {string} [keywordsFile]
|
|
758
|
+
*/
|
|
759
|
+
|
|
760
|
+
/**
|
|
761
|
+
* Offline recognition result returned by `getOfflineStreamResultAsJson`.
|
|
762
|
+
* See `OfflineRecognitionResult::AsJsonString()` in C++ for precise fields.
|
|
763
|
+
* @typedef {Object} OfflineRecognizerResult
|
|
764
|
+
* @property {string} lang
|
|
765
|
+
* @property {string} emotion
|
|
766
|
+
* @property {string} event
|
|
767
|
+
* @property {string} text
|
|
768
|
+
* @property {number[]} timestamps
|
|
769
|
+
* @property {number[]} durations
|
|
770
|
+
* @property {string[]} tokens
|
|
771
|
+
* @property {number[]} ys_log_probs
|
|
772
|
+
* @property {number[]} words
|
|
773
|
+
*/
|
|
774
|
+
|
|
775
|
+
/**
|
|
776
|
+
* Online recognition result returned by `getOnlineStreamResultAsJson`.
|
|
777
|
+
* See `OnlineRecognizerResult::AsJsonString()` in C++.
|
|
778
|
+
* @typedef {Object} OnlineRecognizerResult
|
|
779
|
+
* @property {string} text
|
|
780
|
+
* @property {string[]} tokens
|
|
781
|
+
* @property {number[]} timestamps
|
|
782
|
+
* @property {number[]} ys_probs
|
|
783
|
+
* @property {number[]} lm_probs
|
|
784
|
+
* @property {number[]} context_scores
|
|
785
|
+
* @property {number} segment
|
|
786
|
+
* @property {number[]} words
|
|
787
|
+
* @property {number} num_trailing_blanks
|
|
788
|
+
* @property {number} start_time
|
|
789
|
+
* @property {boolean} is_final
|
|
790
|
+
* @property {boolean} is_eof
|
|
791
|
+
*/
|
|
792
|
+
|
|
793
|
+
/**
|
|
794
|
+
* Keyword spotter result returned by `getKeywordResultAsJson`.
|
|
795
|
+
* @typedef {Object} KeywordResult
|
|
796
|
+
* @property {number} start_time
|
|
797
|
+
* @property {string} keyword
|
|
798
|
+
* @property {number[]} timestamps
|
|
799
|
+
* @property {string[]} tokens
|
|
800
|
+
*/
|
|
801
|
+
|
|
802
|
+
/**
|
|
803
|
+
* Speaker diarization segment returned by `offlineSpeakerDiarizationProcess`.
|
|
804
|
+
* @typedef {Object} SpeakerDiarizationSegment
|
|
805
|
+
* @property {number} start - start time in seconds
|
|
806
|
+
* @property {number} end - end time in seconds
|
|
807
|
+
* @property {number} speaker - speaker id (integer)
|
|
808
|
+
*/
|
|
809
|
+
|
|
810
|
+
/**
|
|
811
|
+
* Speaker embedding entry used by SpeakerEmbeddingManager.add
|
|
812
|
+
* @typedef {Object} SpeakerEmbeddingEntry
|
|
813
|
+
* @property {string} name - speaker name
|
|
814
|
+
* @property {Float32Array} v - embedding vector
|
|
815
|
+
*/
|
|
816
|
+
|
|
817
|
+
/**
|
|
818
|
+
* @typedef {Object} OfflineStreamObject
|
|
819
|
+
* @property {OfflineStreamHandle} handle
|
|
820
|
+
*/
|
|
821
|
+
|
|
822
|
+
/**
|
|
823
|
+
* @typedef {Object} OnlineStreamObject
|
|
824
|
+
* @property {OnlineStreamHandle} handle
|
|
825
|
+
*/
|
|
826
|
+
|
|
827
|
+
/**
|
|
828
|
+
* @typedef {Object} DisplayObject
|
|
829
|
+
* @property {DisplayHandle} handle
|
|
830
|
+
*/
|
|
831
|
+
|
|
832
|
+
// Export typedefs so they can be referenced by require('./types.js')
|
|
833
|
+
module.exports = {};
|