lookatstudy-termux-voice 0.12.1

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/types.js ADDED
@@ -0,0 +1,787 @@
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
+ * Offline recognizer config passed to createOfflineRecognizer.
401
+ * @typedef {Object} OfflineRecognizerConfig
402
+ * @property {FeatureConfig} [featConfig]
403
+ * @property {OfflineModelConfig} [modelConfig]
404
+ */
405
+
406
+ /**
407
+ * Wave object returned by readWave and used by writeWave.
408
+ * @typedef {Object} WaveObject
409
+ * @property {Float32Array} samples - 1-D float32 samples in [-1, 1].
410
+ * @property {number} sampleRate - Sample rate as an integer (e.g., 16000).
411
+ * @see src/wave-reader.cc
412
+ */
413
+
414
+ /**
415
+ * Speech segment returned by Vad.front().
416
+ * @typedef {Object} SpeechSegment
417
+ * @property {number} start - Start index (int32) of this segment.
418
+ * @property {Float32Array} samples - Float32Array of samples.
419
+ * @see src/vad.cc
420
+ */
421
+
422
+ /**
423
+ * Audio returned by TTS and speech denoiser.
424
+ * @typedef {Object} GeneratedAudio
425
+ * @property {Float32Array} samples - The generated/denoised audio samples.
426
+ * @property {number} sampleRate - Sample rate in Hz.
427
+ * @see src/non-streaming-tts.cc
428
+ * @see src/non-streaming-speech-denoiser.cc
429
+ */
430
+
431
+ /**
432
+ * @typedef {Object} GenerationConfig
433
+ * @property {number=} silenceScale
434
+ * @property {number=} speed
435
+ * @property {number=} sid
436
+ * @property {number=} numSteps
437
+ *
438
+ * @property {Float32Array=} referenceAudio
439
+ * @property {number=} referenceSampleRate
440
+ * @property {string=} referenceText
441
+ *
442
+ * @property {{[key: string]: number | string}} [extra]
443
+ */
444
+
445
+
446
+ /**
447
+ * TTS request object passed to generate/generateAsync.
448
+ * @typedef {Object} TtsRequest
449
+ * @property {string} text - Input text to synthesize.
450
+ * @property {number} sid - Speaker id (integer).
451
+ * @property {number} speed - Playback speed (float).
452
+ * @property {boolean} [enableExternalBuffer=true] - Whether to use an external
453
+ * buffer.
454
+ * @property {GenerationConfig=} generationConfig - Optional
455
+ */
456
+
457
+ /**
458
+ * Spoken Language ID whisper config
459
+ * @typedef {Object} SpokenLanguageIdentificationWhisperConfig
460
+ * @property {string} [encoder]
461
+ * @property {string} [decoder]
462
+ * @property {number} [tailPaddings]
463
+ */
464
+
465
+ /**
466
+ * SpokenLanguageIdentification config
467
+ * @typedef {Object} SpokenLanguageIdentificationConfig
468
+ * @property {SpokenLanguageIdentificationWhisperConfig} [whisper]
469
+ * @property {number} [numThreads]
470
+ * @property {boolean|number} [debug]
471
+ * @property {string} [provider]
472
+ */
473
+
474
+ /**
475
+ * Speaker embedding extractor config
476
+ * @typedef {Object} SpeakerEmbeddingExtractorConfig
477
+ * @property {string} [model]
478
+ * @property {number} [numThreads]
479
+ * @property {boolean|number} [debug]
480
+ * @property {string} [provider]
481
+ */
482
+
483
+ /**
484
+ * Offline punctuation model config
485
+ * @typedef {Object} OfflinePunctuationModelConfig
486
+ * @property {string} [ctTransformer]
487
+ * @property {number} [numThreads]
488
+ * @property {boolean|number} [debug]
489
+ * @property {string} [provider]
490
+ */
491
+
492
+ /**
493
+ * Offline punctuation config
494
+ * @typedef {Object} OfflinePunctuationConfig
495
+ * @property {OfflinePunctuationModelConfig} [model]
496
+ */
497
+
498
+ /**
499
+ * Online punctuation model config
500
+ * @typedef {Object} OnlinePunctuationModelConfig
501
+ * @property {string} [cnnBilstm]
502
+ * @property {string} [bpeVocab]
503
+ * @property {number} [numThreads]
504
+ * @property {boolean|number} [debug]
505
+ * @property {string} [provider]
506
+ */
507
+
508
+ /**
509
+ * Online punctuation config
510
+ * @typedef {Object} OnlinePunctuationConfig
511
+ * @property {OnlinePunctuationModelConfig} [model]
512
+ */
513
+
514
+ /**
515
+ * Generic audio processing request used by denoisers/tts generators.
516
+ * @typedef {Object} AudioProcessRequest
517
+ * @property {Float32Array} samples
518
+ * @property {number} sampleRate
519
+ * @property {boolean} [enableExternalBuffer]
520
+ */
521
+
522
+ /**
523
+ * Offline TTS model configs
524
+ * @typedef {Object} OfflineTtsVitsModelConfig
525
+ * @property {string} [model]
526
+ * @property {string} [lexicon]
527
+ * @property {string} [tokens]
528
+ * @property {string} [dataDir]
529
+ * @property {number} [noiseScale]
530
+ * @property {number} [noiseScaleW]
531
+ * @property {number} [lengthScale]
532
+ */
533
+
534
+ /**
535
+ * @typedef {Object} OfflineTtsMatchaModelConfig
536
+ * @property {string} [acousticModel]
537
+ * @property {string} [vocoder]
538
+ * @property {string} [lexicon]
539
+ * @property {string} [tokens]
540
+ * @property {string} [dataDir]
541
+ * @property {number} [noiseScale]
542
+ * @property {number} [lengthScale]
543
+ */
544
+
545
+ /**
546
+ * @typedef {Object} OfflineTtsKokoroModelConfig
547
+ * @property {string} [model]
548
+ * @property {string} [voices]
549
+ * @property {string} [tokens]
550
+ * @property {string} [dataDir]
551
+ * @property {number} [lengthScale]
552
+ * @property {string} [lexicon]
553
+ * @property {string} [lang]
554
+ */
555
+
556
+ /**
557
+ * @typedef {Object} OfflineTtsKittenModelConfig
558
+ * @property {string} [model]
559
+ * @property {string} [voices]
560
+ * @property {string} [tokens]
561
+ * @property {string} [dataDir]
562
+ * @property {number} [lengthScale]
563
+ */
564
+
565
+ /**
566
+ * @typedef {Object} OfflineTtsZipvoiceModelConfig
567
+ * @property {string} [tokens]
568
+ * @property {string} [encoder]
569
+ * @property {string} [decoder]
570
+ * @property {string} [vocoder]
571
+ * @property {string} [dataDir]
572
+ * @property {string} [lexicon]
573
+ * @property {number} [featScale]
574
+ * @property {number} [tShift]
575
+ * @property {number} [targetRms]
576
+ * @property {number} [guidanceScale]
577
+ */
578
+
579
+ /**
580
+ * @typedef {Object} OfflineTtsPocketModelConfig
581
+ * @property {string} [lmFlow]
582
+ * @property {string} [lmMain]
583
+ * @property {string} [encoder]
584
+ * @property {string} [decoder]
585
+ * @property {string} [textConditioner]
586
+ * @property {string} [vocabJson]
587
+ * @property {string} [tokenScoresJson]
588
+ * @property {number} [voiceEmbeddingCacheCapacity]
589
+ */
590
+
591
+ /**
592
+ * Offline TTS model config
593
+ * @typedef {Object} OfflineTtsModelConfig
594
+ * @property {OfflineTtsVitsModelConfig} [vits]
595
+ * @property {OfflineTtsMatchaModelConfig} [matcha]
596
+ * @property {OfflineTtsKokoroModelConfig} [kokoro]
597
+ * @property {OfflineTtsKittenModelConfig} [kitten]
598
+ * @property {OfflineTtsZipvoiceModelConfig} [zipvoice]
599
+ * @property {OfflineTtsPocketModelConfig} [pocket]
600
+ */
601
+
602
+ /**
603
+ * Offline TTS configuration (partial, commonly used props).
604
+ * @typedef {Object} OfflineTtsConfig
605
+ * @property {OfflineTtsModelConfig} [model]
606
+ * @property {number} [maxNumSentences]
607
+ * @property {number} [silenceScale]
608
+ * @property {number} [numThreads]
609
+ * @property {string} [provider]
610
+ */
611
+
612
+ /**
613
+ * Offline Speech Denoiser model config
614
+ * @typedef {Object} OfflineSpeechDenoiserGtcrnModelConfig
615
+ * @property {string} [model]
616
+ */
617
+
618
+ /**
619
+ * Offline Speech Denoiser model config
620
+ * @typedef {Object} OfflineSpeechDenoiserDpdfNetModelConfig
621
+ * @property {string} [model]
622
+ * @property {number} [attenuationLimitDb] Offline attenuation limit in dB.
623
+ */
624
+
625
+ /**
626
+ * Offline Speech Denoiser model config
627
+ * @typedef {Object} OfflineSpeechDenoiserModelConfig
628
+ * @property {OfflineSpeechDenoiserGtcrnModelConfig} [gtcrn]
629
+ * @property {OfflineSpeechDenoiserDpdfNetModelConfig} [dpdfnet]
630
+ * @property {number} [numThreads]
631
+ * @property {boolean|number} [debug]
632
+ * @property {string} [provider]
633
+ */
634
+
635
+ /**
636
+ * Offline Speech Denoiser configuration (partial).
637
+ * @typedef {Object} OfflineSpeechDenoiserConfig
638
+ * @property {OfflineSpeechDenoiserModelConfig} [model]
639
+ */
640
+
641
+ /**
642
+ * Online Speech Denoiser configuration (partial).
643
+ * @typedef {Object} OnlineSpeechDenoiserConfig
644
+ * @property {OfflineSpeechDenoiserModelConfig} [model]
645
+ */
646
+
647
+ /**
648
+ * Offline speaker segmentation (pyannote) model config
649
+ * @typedef {Object} OfflineSpeakerSegmentationPyannoteModelConfig
650
+ * @property {string} [model]
651
+ * @property {number} [windowShiftRatio=0.1]
652
+ */
653
+
654
+ /**
655
+ * Offline speaker segmentation model config
656
+ * @typedef {Object} OfflineSpeakerSegmentationModelConfig
657
+ * @property {OfflineSpeakerSegmentationPyannoteModelConfig} [pyannote]
658
+ * @property {number} [numThreads]
659
+ * @property {boolean|number} [debug]
660
+ * @property {string} [provider]
661
+ */
662
+
663
+ /**
664
+ * Offline Speaker Diarization configuration (partial).
665
+ * @typedef {Object} OfflineSpeakerDiarizationConfig
666
+ * @property {OfflineSpeakerSegmentationModelConfig} [segmentation]
667
+ * @property {SpeakerEmbeddingExtractorConfig} [embedding]
668
+ * @property {FastClusteringConfig} [clustering]
669
+ * @property {number} [minDurationOn]
670
+ * @property {number} [minDurationOff]
671
+ */
672
+
673
+ /**
674
+ * Fast clustering configuration used by diarization.
675
+ * @typedef {Object} FastClusteringConfig
676
+ * @property {number} [numClusters]
677
+ * @property {number} [threshold]
678
+ */
679
+
680
+ /**
681
+ * SpeakerEmbeddingManager add-multi flattened object
682
+ * @typedef {Object} SpeakerEmbeddingManagerAddListFlattenedObj
683
+ * @property {string} name
684
+ * @property {Float32Array} vv
685
+ * @property {number} n
686
+ */
687
+
688
+ /**
689
+ * SpeakerEmbeddingManager search object
690
+ * @typedef {Object} SpeakerEmbeddingManagerSearchObj
691
+ * @property {Float32Array} v
692
+ * @property {number} threshold
693
+ */
694
+
695
+ /**
696
+ * SpeakerEmbeddingManager verify object
697
+ * @typedef {Object} SpeakerEmbeddingManagerVerifyObj
698
+ * @property {string} name
699
+ * @property {Float32Array} v
700
+ * @property {number} threshold
701
+ */
702
+
703
+ /**
704
+ * KeywordSpotter config (partial)
705
+ * @typedef {Object} KeywordSpotterConfig
706
+ * @property {FeatureConfig} [featConfig]
707
+ * @property {OfflineModelConfig} [modelConfig]
708
+ * @property {number} [maxActivePaths]
709
+ * @property {number} [numTrailingBlanks]
710
+ * @property {number} [keywordsScore]
711
+ * @property {number} [keywordsThreshold]
712
+ * @property {string} [keywordsFile]
713
+ */
714
+
715
+ /**
716
+ * Offline recognition result returned by `getOfflineStreamResultAsJson`.
717
+ * See `OfflineRecognitionResult::AsJsonString()` in C++ for precise fields.
718
+ * @typedef {Object} OfflineRecognizerResult
719
+ * @property {string} lang
720
+ * @property {string} emotion
721
+ * @property {string} event
722
+ * @property {string} text
723
+ * @property {number[]} timestamps
724
+ * @property {number[]} durations
725
+ * @property {string[]} tokens
726
+ * @property {number[]} ys_log_probs
727
+ * @property {number[]} words
728
+ */
729
+
730
+ /**
731
+ * Online recognition result returned by `getOnlineStreamResultAsJson`.
732
+ * See `OnlineRecognizerResult::AsJsonString()` in C++.
733
+ * @typedef {Object} OnlineRecognizerResult
734
+ * @property {string} text
735
+ * @property {string[]} tokens
736
+ * @property {number[]} timestamps
737
+ * @property {number[]} ys_probs
738
+ * @property {number[]} lm_probs
739
+ * @property {number[]} context_scores
740
+ * @property {number} segment
741
+ * @property {number[]} words
742
+ * @property {number} start_time
743
+ * @property {boolean} is_final
744
+ * @property {boolean} is_eof
745
+ */
746
+
747
+ /**
748
+ * Keyword spotter result returned by `getKeywordResultAsJson`.
749
+ * @typedef {Object} KeywordResult
750
+ * @property {number} start_time
751
+ * @property {string} keyword
752
+ * @property {number[]} timestamps
753
+ * @property {string[]} tokens
754
+ */
755
+
756
+ /**
757
+ * Speaker diarization segment returned by `offlineSpeakerDiarizationProcess`.
758
+ * @typedef {Object} SpeakerDiarizationSegment
759
+ * @property {number} start - start time in seconds
760
+ * @property {number} end - end time in seconds
761
+ * @property {number} speaker - speaker id (integer)
762
+ */
763
+
764
+ /**
765
+ * Speaker embedding entry used by SpeakerEmbeddingManager.add
766
+ * @typedef {Object} SpeakerEmbeddingEntry
767
+ * @property {string} name - speaker name
768
+ * @property {Float32Array} v - embedding vector
769
+ */
770
+
771
+ /**
772
+ * @typedef {Object} OfflineStreamObject
773
+ * @property {OfflineStreamHandle} handle
774
+ */
775
+
776
+ /**
777
+ * @typedef {Object} OnlineStreamObject
778
+ * @property {OnlineStreamHandle} handle
779
+ */
780
+
781
+ /**
782
+ * @typedef {Object} DisplayObject
783
+ * @property {DisplayHandle} handle
784
+ */
785
+
786
+ // Export typedefs so they can be referenced by require('./types.js')
787
+ module.exports = {};