whisper.rn 0.3.0-rc.7 → 0.3.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/README.md +12 -3
- package/android/src/main/java/com/rnwhisper/WhisperContext.java +26 -2
- package/android/src/main/jni/whisper/jni.cpp +22 -1
- package/cpp/ggml.c +4627 -1594
- package/cpp/ggml.h +427 -25
- package/cpp/rn-whisper.cpp +7 -0
- package/cpp/rn-whisper.h +1 -0
- package/cpp/whisper.cpp +335 -199
- package/cpp/whisper.h +36 -6
- package/ios/RNWhisper.mm +44 -15
- package/ios/RNWhisperContext.h +2 -1
- package/ios/RNWhisperContext.mm +36 -2
- package/lib/commonjs/NativeRNWhisper.js.map +1 -1
- package/lib/commonjs/index.js +33 -2
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/NativeRNWhisper.js.map +1 -1
- package/lib/module/index.js +33 -2
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/NativeRNWhisper.d.ts +2 -0
- package/lib/typescript/NativeRNWhisper.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +12 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/NativeRNWhisper.ts +2 -0
- package/src/index.ts +45 -3
- package/whisper-rn.podspec +10 -6
package/cpp/whisper.h
CHANGED
|
@@ -67,6 +67,7 @@ extern "C" {
|
|
|
67
67
|
|
|
68
68
|
struct whisper_context;
|
|
69
69
|
struct whisper_state;
|
|
70
|
+
struct whisper_full_params;
|
|
70
71
|
|
|
71
72
|
typedef int whisper_token;
|
|
72
73
|
|
|
@@ -110,6 +111,23 @@ extern "C" {
|
|
|
110
111
|
|
|
111
112
|
WHISPER_API struct whisper_state * whisper_init_state(struct whisper_context * ctx);
|
|
112
113
|
|
|
114
|
+
// Given a context, enable use of OpenVINO for encode inference.
|
|
115
|
+
// model_path: Optional path to OpenVINO encoder IR model. If set to nullptr,
|
|
116
|
+
// the path will be generated from the ggml model path that was passed
|
|
117
|
+
// in to whisper_init_from_file. For example, if 'path_model' was
|
|
118
|
+
// "/path/to/ggml-base.en.bin", then OpenVINO IR model path will be
|
|
119
|
+
// assumed to be "/path/to/ggml-base.en-encoder-openvino.xml".
|
|
120
|
+
// device: OpenVINO device to run inference on ("CPU", "GPU", etc.)
|
|
121
|
+
// cache_dir: Optional cache directory that can speed up init time, especially for
|
|
122
|
+
// GPU, by caching compiled 'blobs' there.
|
|
123
|
+
// Set to nullptr if not used.
|
|
124
|
+
// Returns 0 on success. If OpenVINO is not enabled in build, this simply returns 1.
|
|
125
|
+
WHISPER_API int whisper_ctx_init_openvino_encoder(
|
|
126
|
+
struct whisper_context * ctx,
|
|
127
|
+
const char * model_path,
|
|
128
|
+
const char * device,
|
|
129
|
+
const char * cache_dir);
|
|
130
|
+
|
|
113
131
|
// Frees all allocated memory
|
|
114
132
|
WHISPER_API void whisper_free (struct whisper_context * ctx);
|
|
115
133
|
WHISPER_API void whisper_free_state(struct whisper_state * state);
|
|
@@ -277,15 +295,16 @@ extern "C" {
|
|
|
277
295
|
// Special tokens
|
|
278
296
|
WHISPER_API whisper_token whisper_token_eot (struct whisper_context * ctx);
|
|
279
297
|
WHISPER_API whisper_token whisper_token_sot (struct whisper_context * ctx);
|
|
280
|
-
WHISPER_API whisper_token whisper_token_prev(struct whisper_context * ctx);
|
|
281
298
|
WHISPER_API whisper_token whisper_token_solm(struct whisper_context * ctx);
|
|
299
|
+
WHISPER_API whisper_token whisper_token_prev(struct whisper_context * ctx);
|
|
300
|
+
WHISPER_API whisper_token whisper_token_nosp(struct whisper_context * ctx);
|
|
282
301
|
WHISPER_API whisper_token whisper_token_not (struct whisper_context * ctx);
|
|
283
302
|
WHISPER_API whisper_token whisper_token_beg (struct whisper_context * ctx);
|
|
284
303
|
WHISPER_API whisper_token whisper_token_lang(struct whisper_context * ctx, int lang_id);
|
|
285
304
|
|
|
286
305
|
// Task tokens
|
|
287
|
-
WHISPER_API whisper_token whisper_token_translate (
|
|
288
|
-
WHISPER_API whisper_token whisper_token_transcribe(
|
|
306
|
+
WHISPER_API whisper_token whisper_token_translate (struct whisper_context * ctx);
|
|
307
|
+
WHISPER_API whisper_token whisper_token_transcribe(struct whisper_context * ctx);
|
|
289
308
|
|
|
290
309
|
// Performance information from the default state.
|
|
291
310
|
WHISPER_API void whisper_print_timings(struct whisper_context * ctx);
|
|
@@ -358,6 +377,9 @@ extern "C" {
|
|
|
358
377
|
bool speed_up; // speed-up the audio by 2x using Phase Vocoder
|
|
359
378
|
int audio_ctx; // overwrite the audio context size (0 = use default)
|
|
360
379
|
|
|
380
|
+
// [EXPERIMENTAL] [TDRZ] tinydiarize
|
|
381
|
+
bool tdrz_enable; // enable tinydiarize speaker turn detection
|
|
382
|
+
|
|
361
383
|
// tokens to provide to the whisper decoder as initial prompt
|
|
362
384
|
// these are prepended to any existing text context from a previous call
|
|
363
385
|
const char * initial_prompt;
|
|
@@ -460,6 +482,9 @@ extern "C" {
|
|
|
460
482
|
WHISPER_API int64_t whisper_full_get_segment_t1 (struct whisper_context * ctx, int i_segment);
|
|
461
483
|
WHISPER_API int64_t whisper_full_get_segment_t1_from_state(struct whisper_state * state, int i_segment);
|
|
462
484
|
|
|
485
|
+
// Get whether the next segment is predicted as a speaker turn
|
|
486
|
+
WHISPER_API bool whisper_full_get_segment_speaker_turn_next(struct whisper_context * ctx, int i_segment);
|
|
487
|
+
|
|
463
488
|
// Get the text of the specified segment
|
|
464
489
|
WHISPER_API const char * whisper_full_get_segment_text (struct whisper_context * ctx, int i_segment);
|
|
465
490
|
WHISPER_API const char * whisper_full_get_segment_text_from_state(struct whisper_state * state, int i_segment);
|
|
@@ -488,11 +513,16 @@ extern "C" {
|
|
|
488
513
|
|
|
489
514
|
// Temporary helpers needed for exposing ggml interface
|
|
490
515
|
|
|
491
|
-
WHISPER_API int
|
|
492
|
-
WHISPER_API const char * whisper_bench_memcpy_str(int n_threads);
|
|
493
|
-
WHISPER_API int
|
|
516
|
+
WHISPER_API int whisper_bench_memcpy (int n_threads);
|
|
517
|
+
WHISPER_API const char * whisper_bench_memcpy_str (int n_threads);
|
|
518
|
+
WHISPER_API int whisper_bench_ggml_mul_mat (int n_threads);
|
|
494
519
|
WHISPER_API const char * whisper_bench_ggml_mul_mat_str(int n_threads);
|
|
495
520
|
|
|
521
|
+
// Control logging output; default behavior is to print to stderr
|
|
522
|
+
|
|
523
|
+
typedef void (*whisper_log_callback)(const char * line);
|
|
524
|
+
WHISPER_API void whisper_set_log_callback(whisper_log_callback callback);
|
|
525
|
+
|
|
496
526
|
#ifdef __cplusplus
|
|
497
527
|
}
|
|
498
528
|
#endif
|
package/ios/RNWhisper.mm
CHANGED
|
@@ -80,6 +80,14 @@ RCT_REMAP_METHOD(initContext,
|
|
|
80
80
|
resolve([NSNumber numberWithInt:contextId]);
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
+
- (NSArray *)supportedEvents {
|
|
84
|
+
return@[
|
|
85
|
+
@"@RNWhisper_onTranscribeProgress",
|
|
86
|
+
@"@RNWhisper_onRealtimeTranscribe",
|
|
87
|
+
@"@RNWhisper_onRealtimeTranscribeEnd",
|
|
88
|
+
];
|
|
89
|
+
}
|
|
90
|
+
|
|
83
91
|
RCT_REMAP_METHOD(transcribeFile,
|
|
84
92
|
withContextId:(int)contextId
|
|
85
93
|
withJobId:(int)jobId
|
|
@@ -114,21 +122,34 @@ RCT_REMAP_METHOD(transcribeFile,
|
|
|
114
122
|
reject(@"whisper_error", @"Invalid file", nil);
|
|
115
123
|
return;
|
|
116
124
|
}
|
|
117
|
-
|
|
118
|
-
|
|
125
|
+
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
|
126
|
+
int code = [context transcribeFile:jobId
|
|
127
|
+
audioData:waveFile
|
|
128
|
+
audioDataCount:count
|
|
129
|
+
options:options
|
|
130
|
+
onProgress: ^(int progress) {
|
|
131
|
+
if (rn_whisper_transcribe_is_aborted(jobId)) {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
135
|
+
[self sendEventWithName:@"@RNWhisper_onTranscribeProgress"
|
|
136
|
+
body:@{
|
|
137
|
+
@"contextId": [NSNumber numberWithInt:contextId],
|
|
138
|
+
@"jobId": [NSNumber numberWithInt:jobId],
|
|
139
|
+
@"progress": [NSNumber numberWithInt:progress]
|
|
140
|
+
}
|
|
141
|
+
];
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
];
|
|
145
|
+
if (code != 0) {
|
|
146
|
+
free(waveFile);
|
|
147
|
+
reject(@"whisper_cpp_error", [NSString stringWithFormat:@"Failed to transcribe the file. Code: %d", code], nil);
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
119
150
|
free(waveFile);
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
}
|
|
123
|
-
free(waveFile);
|
|
124
|
-
resolve([context getTextSegments]);
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
- (NSArray *)supportedEvents {
|
|
128
|
-
return@[
|
|
129
|
-
@"@RNWhisper_onRealtimeTranscribe",
|
|
130
|
-
@"@RNWhisper_onRealtimeTranscribeEnd",
|
|
131
|
-
];
|
|
151
|
+
resolve([context getTextSegments]);
|
|
152
|
+
});
|
|
132
153
|
}
|
|
133
154
|
|
|
134
155
|
RCT_REMAP_METHOD(startRealtimeTranscribe,
|
|
@@ -176,12 +197,20 @@ RCT_REMAP_METHOD(startRealtimeTranscribe,
|
|
|
176
197
|
}
|
|
177
198
|
reject(@"whisper_error", [NSString stringWithFormat:@"Failed to start realtime transcribe. Status: %d", status], nil);
|
|
178
199
|
}
|
|
200
|
+
|
|
179
201
|
RCT_REMAP_METHOD(abortTranscribe,
|
|
180
202
|
withContextId:(int)contextId
|
|
181
|
-
withJobId:(int)jobId
|
|
203
|
+
withJobId:(int)jobId
|
|
204
|
+
withResolver:(RCTPromiseResolveBlock)resolve
|
|
205
|
+
withRejecter:(RCTPromiseRejectBlock)reject)
|
|
182
206
|
{
|
|
183
207
|
RNWhisperContext *context = contexts[[NSNumber numberWithInt:contextId]];
|
|
208
|
+
if (context == nil) {
|
|
209
|
+
reject(@"whisper_error", @"Context not found", nil);
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
184
212
|
[context stopTranscribe:jobId];
|
|
213
|
+
resolve(nil);
|
|
185
214
|
}
|
|
186
215
|
|
|
187
216
|
RCT_REMAP_METHOD(releaseContext,
|
package/ios/RNWhisperContext.h
CHANGED
|
@@ -48,7 +48,8 @@ typedef struct {
|
|
|
48
48
|
- (int)transcribeFile:(int)jobId
|
|
49
49
|
audioData:(float *)audioData
|
|
50
50
|
audioDataCount:(int)audioDataCount
|
|
51
|
-
options:(NSDictionary *)options
|
|
51
|
+
options:(NSDictionary *)options
|
|
52
|
+
onProgress:(void (^)(int))onProgress;
|
|
52
53
|
- (void)stopTranscribe:(int)jobId;
|
|
53
54
|
- (bool)isCapturing;
|
|
54
55
|
- (bool)isTranscribing;
|
package/ios/RNWhisperContext.mm
CHANGED
|
@@ -263,10 +263,11 @@ void AudioInputCallback(void * inUserData,
|
|
|
263
263
|
audioData:(float *)audioData
|
|
264
264
|
audioDataCount:(int)audioDataCount
|
|
265
265
|
options:(NSDictionary *)options
|
|
266
|
+
onProgress:(void (^)(int))onProgress
|
|
266
267
|
{
|
|
267
268
|
self->recordState.isTranscribing = true;
|
|
268
269
|
self->recordState.jobId = jobId;
|
|
269
|
-
int code = [self
|
|
270
|
+
int code = [self fullTranscribeWithProgress:onProgress jobId:jobId audioData:audioData audioDataCount:audioDataCount options:options];
|
|
270
271
|
self->recordState.jobId = -1;
|
|
271
272
|
self->recordState.isTranscribing = false;
|
|
272
273
|
return code;
|
|
@@ -297,7 +298,7 @@ void AudioInputCallback(void * inUserData,
|
|
|
297
298
|
[self stopTranscribe:self->recordState.jobId];
|
|
298
299
|
}
|
|
299
300
|
|
|
300
|
-
- (
|
|
301
|
+
- (struct whisper_full_params)getParams:(NSDictionary *)options jobId:(int)jobId {
|
|
301
302
|
struct whisper_full_params params = whisper_full_default_params(WHISPER_SAMPLING_GREEDY);
|
|
302
303
|
|
|
303
304
|
const int n_threads = options[@"maxThreads"] != nil ?
|
|
@@ -362,6 +363,39 @@ void AudioInputCallback(void * inUserData,
|
|
|
362
363
|
};
|
|
363
364
|
params.encoder_begin_callback_user_data = rn_whisper_assign_abort_map(jobId);
|
|
364
365
|
|
|
366
|
+
return params;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
- (int)fullTranscribeWithProgress:(void (^)(int))onProgress
|
|
370
|
+
jobId:(int)jobId
|
|
371
|
+
audioData:(float *)audioData
|
|
372
|
+
audioDataCount:(int)audioDataCount
|
|
373
|
+
options:(NSDictionary *)options
|
|
374
|
+
{
|
|
375
|
+
struct whisper_full_params params = [self getParams:options jobId:jobId];
|
|
376
|
+
if (options[@"onProgress"] && [options[@"onProgress"] boolValue]) {
|
|
377
|
+
params.progress_callback = [](struct whisper_context * /*ctx*/, struct whisper_state * /*state*/, int progress, void * user_data) {
|
|
378
|
+
void (^onProgress)(int) = (__bridge void (^)(int))user_data;
|
|
379
|
+
onProgress(progress);
|
|
380
|
+
};
|
|
381
|
+
params.progress_callback_user_data = (__bridge void *)(onProgress);
|
|
382
|
+
}
|
|
383
|
+
whisper_reset_timings(self->ctx);
|
|
384
|
+
|
|
385
|
+
int code = whisper_full(self->ctx, params, audioData, audioDataCount);
|
|
386
|
+
rn_whisper_remove_abort_map(jobId);
|
|
387
|
+
// if (code == 0) {
|
|
388
|
+
// whisper_print_timings(self->ctx);
|
|
389
|
+
// }
|
|
390
|
+
return code;
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
- (int)fullTranscribe:(int)jobId
|
|
394
|
+
audioData:(float *)audioData
|
|
395
|
+
audioDataCount:(int)audioDataCount
|
|
396
|
+
options:(NSDictionary *)options
|
|
397
|
+
{
|
|
398
|
+
struct whisper_full_params params = [self getParams:options jobId:jobId];
|
|
365
399
|
whisper_reset_timings(self->ctx);
|
|
366
400
|
|
|
367
401
|
int code = whisper_full(self->ctx, params, audioData, audioDataCount);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_default","TurboModuleRegistry","get","exports","default"],"sourceRoot":"../../src","sources":["NativeRNWhisper.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAkD,IAAAC,QAAA,
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_default","TurboModuleRegistry","get","exports","default"],"sourceRoot":"../../src","sources":["NativeRNWhisper.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAkD,IAAAC,QAAA,GA+EnCC,gCAAmB,CAACC,GAAG,CAAO,WAAW,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAJ,QAAA"}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -20,6 +20,7 @@ if (_reactNative.Platform.OS === 'ios') {
|
|
|
20
20
|
if (_reactNative.Platform.OS === 'android') {
|
|
21
21
|
EventEmitter = _reactNative.DeviceEventEmitter;
|
|
22
22
|
}
|
|
23
|
+
const EVENT_ON_TRANSCRIBE_PROGRESS = '@RNWhisper_onTranscribeProgress';
|
|
23
24
|
const EVENT_ON_REALTIME_TRANSCRIBE = '@RNWhisper_onRealtimeTranscribe';
|
|
24
25
|
const EVENT_ON_REALTIME_TRANSCRIBE_END = '@RNWhisper_onRealtimeTranscribeEnd';
|
|
25
26
|
class WhisperContext {
|
|
@@ -44,9 +45,39 @@ class WhisperContext {
|
|
|
44
45
|
}
|
|
45
46
|
if (path.startsWith('file://')) path = path.slice(7);
|
|
46
47
|
const jobId = Math.floor(Math.random() * 10000);
|
|
48
|
+
const {
|
|
49
|
+
onProgress,
|
|
50
|
+
...rest
|
|
51
|
+
} = options;
|
|
52
|
+
let progressListener;
|
|
53
|
+
if (onProgress) {
|
|
54
|
+
progressListener = EventEmitter.addListener(EVENT_ON_TRANSCRIBE_PROGRESS, evt => {
|
|
55
|
+
const {
|
|
56
|
+
contextId,
|
|
57
|
+
progress
|
|
58
|
+
} = evt;
|
|
59
|
+
if (contextId !== this.id || evt.jobId !== jobId) return;
|
|
60
|
+
onProgress(progress);
|
|
61
|
+
});
|
|
62
|
+
}
|
|
47
63
|
return {
|
|
48
|
-
stop: () =>
|
|
49
|
-
|
|
64
|
+
stop: async () => {
|
|
65
|
+
var _progressListener;
|
|
66
|
+
await _NativeRNWhisper.default.abortTranscribe(this.id, jobId);
|
|
67
|
+
(_progressListener = progressListener) === null || _progressListener === void 0 ? void 0 : _progressListener.remove();
|
|
68
|
+
},
|
|
69
|
+
promise: _NativeRNWhisper.default.transcribeFile(this.id, jobId, path, {
|
|
70
|
+
...rest,
|
|
71
|
+
onProgress: !!onProgress
|
|
72
|
+
}).then(result => {
|
|
73
|
+
var _progressListener2;
|
|
74
|
+
(_progressListener2 = progressListener) === null || _progressListener2 === void 0 ? void 0 : _progressListener2.remove();
|
|
75
|
+
return result;
|
|
76
|
+
}).catch(e => {
|
|
77
|
+
var _progressListener3;
|
|
78
|
+
(_progressListener3 = progressListener) === null || _progressListener3 === void 0 ? void 0 : _progressListener3.remove();
|
|
79
|
+
throw e;
|
|
80
|
+
})
|
|
50
81
|
};
|
|
51
82
|
}
|
|
52
83
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_NativeRNWhisper","_interopRequireDefault","_version","_RNWhisper$getConstan","obj","__esModule","default","EventEmitter","Platform","OS","NativeEventEmitter","RNWhisper","DeviceEventEmitter","EVENT_ON_REALTIME_TRANSCRIBE","EVENT_ON_REALTIME_TRANSCRIBE_END","WhisperContext","constructor","id","transcribe","filePath","options","arguments","length","undefined","path","source","Image","resolveAssetSource","uri","e","Error","startsWith","slice","jobId","Math","floor","random","stop","abortTranscribe","promise","transcribeFile","transcribeRealtime","startRealtimeTranscribe","lastTranscribePayload","slices","sliceIndex","tOffset","putSlice","payload","isUseSlices","_slices$sliceIndex","_segments","segments","data","t1","map","segment","t0","mergeSlicesIfNeeded","mergedPayload","forEach","_mergedPayload$data","_slice$data","_mergedPayload$data2","_slice$data2","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_NativeRNWhisper","_interopRequireDefault","_version","_RNWhisper$getConstan","obj","__esModule","default","EventEmitter","Platform","OS","NativeEventEmitter","RNWhisper","DeviceEventEmitter","EVENT_ON_TRANSCRIBE_PROGRESS","EVENT_ON_REALTIME_TRANSCRIBE","EVENT_ON_REALTIME_TRANSCRIBE_END","WhisperContext","constructor","id","transcribe","filePath","options","arguments","length","undefined","path","source","Image","resolveAssetSource","uri","e","Error","startsWith","slice","jobId","Math","floor","random","onProgress","rest","progressListener","addListener","evt","contextId","progress","stop","_progressListener","abortTranscribe","remove","promise","transcribeFile","then","result","_progressListener2","catch","_progressListener3","transcribeRealtime","startRealtimeTranscribe","lastTranscribePayload","slices","sliceIndex","tOffset","putSlice","payload","isUseSlices","_slices$sliceIndex","_segments","segments","data","t1","map","segment","t0","mergeSlicesIfNeeded","mergedPayload","forEach","_mergedPayload$data","_slice$data","_mergedPayload$data2","_slice$data2","processTime","recordingTime","subscribe","callback","transcribeListener","endListener","lastPayload","isCapturing","release","releaseContext","exports","coreMLModelAssetPaths","initWhisper","_ref","coreMLModelAsset","isBundleAsset","coreMLAssets","filename","assets","asset","filepath","find","p","includes","filter","initContext","downloadCoreMLAssets","__DEV__","releaseAllWhisper","releaseAllContexts","libVersion","version","useCoreML","coreMLAllowFallback","getConstants","call","isUseCoreML","isCoreMLAllowFallback"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../src","sources":["NativeRNWhisper.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../src","sources":["NativeRNWhisper.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;AA+ElD,eAAeA,mBAAmB,CAACC,GAAG,CAAO,WAAW,CAAC"}
|
package/lib/module/index.js
CHANGED
|
@@ -10,6 +10,7 @@ if (Platform.OS === 'ios') {
|
|
|
10
10
|
if (Platform.OS === 'android') {
|
|
11
11
|
EventEmitter = DeviceEventEmitter;
|
|
12
12
|
}
|
|
13
|
+
const EVENT_ON_TRANSCRIBE_PROGRESS = '@RNWhisper_onTranscribeProgress';
|
|
13
14
|
const EVENT_ON_REALTIME_TRANSCRIBE = '@RNWhisper_onRealtimeTranscribe';
|
|
14
15
|
const EVENT_ON_REALTIME_TRANSCRIBE_END = '@RNWhisper_onRealtimeTranscribeEnd';
|
|
15
16
|
export class WhisperContext {
|
|
@@ -34,9 +35,39 @@ export class WhisperContext {
|
|
|
34
35
|
}
|
|
35
36
|
if (path.startsWith('file://')) path = path.slice(7);
|
|
36
37
|
const jobId = Math.floor(Math.random() * 10000);
|
|
38
|
+
const {
|
|
39
|
+
onProgress,
|
|
40
|
+
...rest
|
|
41
|
+
} = options;
|
|
42
|
+
let progressListener;
|
|
43
|
+
if (onProgress) {
|
|
44
|
+
progressListener = EventEmitter.addListener(EVENT_ON_TRANSCRIBE_PROGRESS, evt => {
|
|
45
|
+
const {
|
|
46
|
+
contextId,
|
|
47
|
+
progress
|
|
48
|
+
} = evt;
|
|
49
|
+
if (contextId !== this.id || evt.jobId !== jobId) return;
|
|
50
|
+
onProgress(progress);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
37
53
|
return {
|
|
38
|
-
stop: () =>
|
|
39
|
-
|
|
54
|
+
stop: async () => {
|
|
55
|
+
var _progressListener;
|
|
56
|
+
await RNWhisper.abortTranscribe(this.id, jobId);
|
|
57
|
+
(_progressListener = progressListener) === null || _progressListener === void 0 ? void 0 : _progressListener.remove();
|
|
58
|
+
},
|
|
59
|
+
promise: RNWhisper.transcribeFile(this.id, jobId, path, {
|
|
60
|
+
...rest,
|
|
61
|
+
onProgress: !!onProgress
|
|
62
|
+
}).then(result => {
|
|
63
|
+
var _progressListener2;
|
|
64
|
+
(_progressListener2 = progressListener) === null || _progressListener2 === void 0 ? void 0 : _progressListener2.remove();
|
|
65
|
+
return result;
|
|
66
|
+
}).catch(e => {
|
|
67
|
+
var _progressListener3;
|
|
68
|
+
(_progressListener3 = progressListener) === null || _progressListener3 === void 0 ? void 0 : _progressListener3.remove();
|
|
69
|
+
throw e;
|
|
70
|
+
})
|
|
40
71
|
};
|
|
41
72
|
}
|
|
42
73
|
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeEventEmitter","DeviceEventEmitter","Platform","Image","RNWhisper","version","EventEmitter","OS","EVENT_ON_REALTIME_TRANSCRIBE","EVENT_ON_REALTIME_TRANSCRIBE_END","WhisperContext","constructor","id","transcribe","filePath","options","arguments","length","undefined","path","source","resolveAssetSource","uri","e","Error","startsWith","slice","jobId","Math","floor","random","stop","abortTranscribe","promise","transcribeFile","transcribeRealtime","startRealtimeTranscribe","lastTranscribePayload","slices","sliceIndex","tOffset","putSlice","payload","isUseSlices","_slices$sliceIndex","_segments","segments","data","t1","map","segment","t0","mergeSlicesIfNeeded","mergedPayload","forEach","_mergedPayload$data","_slice$data","_mergedPayload$data2","_slice$data2","
|
|
1
|
+
{"version":3,"names":["NativeEventEmitter","DeviceEventEmitter","Platform","Image","RNWhisper","version","EventEmitter","OS","EVENT_ON_TRANSCRIBE_PROGRESS","EVENT_ON_REALTIME_TRANSCRIBE","EVENT_ON_REALTIME_TRANSCRIBE_END","WhisperContext","constructor","id","transcribe","filePath","options","arguments","length","undefined","path","source","resolveAssetSource","uri","e","Error","startsWith","slice","jobId","Math","floor","random","onProgress","rest","progressListener","addListener","evt","contextId","progress","stop","_progressListener","abortTranscribe","remove","promise","transcribeFile","then","result","_progressListener2","catch","_progressListener3","transcribeRealtime","startRealtimeTranscribe","lastTranscribePayload","slices","sliceIndex","tOffset","putSlice","payload","isUseSlices","_slices$sliceIndex","_segments","segments","data","t1","map","segment","t0","mergeSlicesIfNeeded","mergedPayload","forEach","_mergedPayload$data","_slice$data","_mergedPayload$data2","_slice$data2","processTime","recordingTime","subscribe","callback","transcribeListener","endListener","lastPayload","isCapturing","release","releaseContext","coreMLModelAssetPaths","initWhisper","_ref","coreMLModelAsset","isBundleAsset","coreMLAssets","filename","assets","asset","filepath","find","p","includes","filter","initContext","downloadCoreMLAssets","__DEV__","releaseAllWhisper","releaseAllContexts","libVersion","useCoreML","coreMLAllowFallback","_RNWhisper$getConstan","getConstants","call","isUseCoreML","isCoreMLAllowFallback"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeRNWhisper.d.ts","sourceRoot":"","sources":["../../src/NativeRNWhisper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAA;AAG/E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oGAAoG;IACpG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qBAAqB;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"NativeRNWhisper.d.ts","sourceRoot":"","sources":["../../src/NativeRNWhisper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAA;AAG/E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oGAAoG;IACpG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qBAAqB;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;KACZ,CAAC,CAAC;CACJ,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;CAC9B,CAAA;AAED,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,YAAY,IAAI;QACd,SAAS,EAAE,OAAO,CAAA;QAClB,mBAAmB,EAAE,OAAO,CAAA;KAC7B,CAAC;IACF,WAAW,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5D,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,cAAc,CACZ,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7B,uBAAuB,CACrB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClE;;AAED,wBAAiE"}
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
import type { TranscribeOptions, TranscribeResult } from './NativeRNWhisper';
|
|
2
2
|
export type { TranscribeOptions, TranscribeResult };
|
|
3
|
+
export type TranscribeFileOptions = TranscribeOptions & {
|
|
4
|
+
/**
|
|
5
|
+
* Progress callback, the progress is between 0 and 100
|
|
6
|
+
*/
|
|
7
|
+
onProgress?: (progress: number) => void;
|
|
8
|
+
};
|
|
9
|
+
export type TranscribeProgressNativeEvent = {
|
|
10
|
+
contextId: number;
|
|
11
|
+
jobId: number;
|
|
12
|
+
progress: number;
|
|
13
|
+
};
|
|
3
14
|
export type TranscribeRealtimeOptions = TranscribeOptions & {
|
|
4
15
|
/**
|
|
5
16
|
* Realtime record max duration in seconds.
|
|
@@ -54,7 +65,7 @@ export declare class WhisperContext {
|
|
|
54
65
|
id: number;
|
|
55
66
|
constructor(id: number);
|
|
56
67
|
/** Transcribe audio file */
|
|
57
|
-
transcribe(filePath: string | number, options?:
|
|
68
|
+
transcribe(filePath: string | number, options?: TranscribeFileOptions): {
|
|
58
69
|
/** Stop the transcribe */
|
|
59
70
|
stop: () => void;
|
|
60
71
|
/** Transcribe result promise */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAEjB,MAAM,mBAAmB,CAAA;AAY1B,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "whisper.rn",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "React Native binding of whisper.cpp",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
],
|
|
31
31
|
"scripts": {
|
|
32
32
|
"bootstrap": "./scripts/bootstrap.sh",
|
|
33
|
-
"docgen": "typedoc src/index.ts --plugin typedoc-plugin-markdown --readme none",
|
|
33
|
+
"docgen": "typedoc src/index.ts --plugin typedoc-plugin-markdown --readme none --out docs/API",
|
|
34
34
|
"lint": "eslint \"**/*.{js,ts,tsx}\"",
|
|
35
35
|
"typecheck": "tsc --noEmit",
|
|
36
36
|
"prepack": "yarn docgen && bob build",
|
package/src/NativeRNWhisper.ts
CHANGED
package/src/index.ts
CHANGED
|
@@ -24,9 +24,26 @@ if (Platform.OS === 'android') {
|
|
|
24
24
|
|
|
25
25
|
export type { TranscribeOptions, TranscribeResult }
|
|
26
26
|
|
|
27
|
+
|
|
28
|
+
const EVENT_ON_TRANSCRIBE_PROGRESS = '@RNWhisper_onTranscribeProgress'
|
|
29
|
+
|
|
27
30
|
const EVENT_ON_REALTIME_TRANSCRIBE = '@RNWhisper_onRealtimeTranscribe'
|
|
28
31
|
const EVENT_ON_REALTIME_TRANSCRIBE_END = '@RNWhisper_onRealtimeTranscribeEnd'
|
|
29
32
|
|
|
33
|
+
export type TranscribeFileOptions = TranscribeOptions & {
|
|
34
|
+
/**
|
|
35
|
+
* Progress callback, the progress is between 0 and 100
|
|
36
|
+
*/
|
|
37
|
+
onProgress?: (progress: number) => void
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export type TranscribeProgressNativeEvent = {
|
|
41
|
+
contextId: number
|
|
42
|
+
jobId: number
|
|
43
|
+
progress: number
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// NOTE: codegen missing TSIntersectionType support so we dont put it into the native spec
|
|
30
47
|
export type TranscribeRealtimeOptions = TranscribeOptions & {
|
|
31
48
|
/**
|
|
32
49
|
* Realtime record max duration in seconds.
|
|
@@ -91,7 +108,7 @@ export class WhisperContext {
|
|
|
91
108
|
/** Transcribe audio file */
|
|
92
109
|
transcribe(
|
|
93
110
|
filePath: string | number,
|
|
94
|
-
options:
|
|
111
|
+
options: TranscribeFileOptions = {},
|
|
95
112
|
): {
|
|
96
113
|
/** Stop the transcribe */
|
|
97
114
|
stop: () => void
|
|
@@ -113,9 +130,34 @@ export class WhisperContext {
|
|
|
113
130
|
}
|
|
114
131
|
if (path.startsWith('file://')) path = path.slice(7)
|
|
115
132
|
const jobId: number = Math.floor(Math.random() * 10000)
|
|
133
|
+
|
|
134
|
+
const { onProgress, ...rest } = options
|
|
135
|
+
let progressListener: any
|
|
136
|
+
if (onProgress) {
|
|
137
|
+
progressListener = EventEmitter.addListener(
|
|
138
|
+
EVENT_ON_TRANSCRIBE_PROGRESS,
|
|
139
|
+
(evt: TranscribeProgressNativeEvent) => {
|
|
140
|
+
const { contextId, progress } = evt
|
|
141
|
+
if (contextId !== this.id || evt.jobId !== jobId) return
|
|
142
|
+
onProgress(progress)
|
|
143
|
+
},
|
|
144
|
+
)
|
|
145
|
+
}
|
|
116
146
|
return {
|
|
117
|
-
stop: () =>
|
|
118
|
-
|
|
147
|
+
stop: async () => {
|
|
148
|
+
await RNWhisper.abortTranscribe(this.id, jobId)
|
|
149
|
+
progressListener?.remove()
|
|
150
|
+
},
|
|
151
|
+
promise: RNWhisper.transcribeFile(this.id, jobId, path, {
|
|
152
|
+
...rest,
|
|
153
|
+
onProgress: !!onProgress
|
|
154
|
+
}).then((result) => {
|
|
155
|
+
progressListener?.remove()
|
|
156
|
+
return result
|
|
157
|
+
}).catch((e) => {
|
|
158
|
+
progressListener?.remove()
|
|
159
|
+
throw e
|
|
160
|
+
}),
|
|
119
161
|
}
|
|
120
162
|
}
|
|
121
163
|
|