whisper.rn 0.4.0-rc.3 → 0.4.0-rc.5
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 +6 -6
- package/android/build.gradle +4 -0
- package/android/src/main/CMakeLists.txt +7 -0
- package/android/src/main/java/com/rnwhisper/AudioUtils.java +0 -80
- package/android/src/main/java/com/rnwhisper/RNWhisper.java +6 -1
- package/android/src/main/java/com/rnwhisper/WhisperContext.java +53 -135
- package/android/src/main/jni-utils.h +76 -0
- package/android/src/main/jni.cpp +188 -109
- package/cpp/README.md +1 -1
- package/cpp/coreml/whisper-encoder-impl.h +1 -1
- package/cpp/coreml/whisper-encoder.h +4 -0
- package/cpp/coreml/whisper-encoder.mm +4 -2
- package/cpp/ggml-alloc.c +451 -282
- package/cpp/ggml-alloc.h +74 -8
- package/cpp/ggml-backend-impl.h +112 -0
- package/cpp/ggml-backend.c +1357 -0
- package/cpp/ggml-backend.h +181 -0
- package/cpp/ggml-impl.h +243 -0
- package/cpp/{ggml-metal.metal → ggml-metal-whisper.metal} +1556 -329
- package/cpp/ggml-metal.h +28 -1
- package/cpp/ggml-metal.m +1128 -308
- package/cpp/ggml-quants.c +7382 -0
- package/cpp/ggml-quants.h +224 -0
- package/cpp/ggml.c +3848 -5245
- package/cpp/ggml.h +353 -155
- package/cpp/rn-audioutils.cpp +68 -0
- package/cpp/rn-audioutils.h +14 -0
- package/cpp/rn-whisper-log.h +11 -0
- package/cpp/rn-whisper.cpp +141 -59
- package/cpp/rn-whisper.h +47 -15
- package/cpp/whisper.cpp +1750 -964
- package/cpp/whisper.h +97 -15
- package/ios/RNWhisper.mm +15 -9
- package/ios/RNWhisper.xcodeproj/project.xcworkspace/contents.xcworkspacedata +4 -0
- package/ios/RNWhisper.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/ios/RNWhisper.xcodeproj/project.xcworkspace/xcuserdata/jhen.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/ios/RNWhisper.xcodeproj/xcuserdata/jhen.xcuserdatad/xcschemes/xcschememanagement.plist +19 -0
- package/ios/RNWhisperAudioUtils.h +0 -2
- package/ios/RNWhisperAudioUtils.m +0 -56
- package/ios/RNWhisperContext.h +8 -12
- package/ios/RNWhisperContext.mm +132 -138
- package/jest/mock.js +1 -1
- package/lib/commonjs/NativeRNWhisper.js.map +1 -1
- package/lib/commonjs/index.js +28 -9
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/NativeRNWhisper.js.map +1 -1
- package/lib/module/index.js +28 -9
- package/lib/module/index.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/NativeRNWhisper.d.ts +7 -1
- package/lib/typescript/NativeRNWhisper.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +7 -2
- package/lib/typescript/index.d.ts.map +1 -1
- package/package.json +6 -5
- package/src/NativeRNWhisper.ts +8 -1
- package/src/index.ts +29 -17
- package/src/version.json +1 -1
- package/whisper-rn.podspec +1 -2
package/ios/RNWhisperContext.mm
CHANGED
|
@@ -1,30 +1,91 @@
|
|
|
1
1
|
#import "RNWhisperContext.h"
|
|
2
|
-
#import
|
|
2
|
+
#import <Metal/Metal.h>
|
|
3
3
|
#include <vector>
|
|
4
4
|
|
|
5
5
|
#define NUM_BYTES_PER_BUFFER 16 * 1024
|
|
6
6
|
|
|
7
7
|
@implementation RNWhisperContext
|
|
8
8
|
|
|
9
|
-
+ (instancetype)initWithModelPath:(NSString *)modelPath
|
|
9
|
+
+ (instancetype)initWithModelPath:(NSString *)modelPath
|
|
10
|
+
contextId:(int)contextId
|
|
11
|
+
noCoreML:(BOOL)noCoreML
|
|
12
|
+
noMetal:(BOOL)noMetal
|
|
13
|
+
{
|
|
10
14
|
RNWhisperContext *context = [[RNWhisperContext alloc] init];
|
|
11
15
|
context->contextId = contextId;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
struct whisper_context_params cparams;
|
|
17
|
+
NSString *reasonNoMetal = @"";
|
|
18
|
+
cparams.use_gpu = !noMetal;
|
|
19
|
+
|
|
20
|
+
cparams.use_coreml = !noCoreML;
|
|
21
|
+
#ifndef WHISPER_USE_COREML
|
|
22
|
+
if (cparams.use_coreml) {
|
|
23
|
+
NSLog(@"[RNWhisper] CoreML is not enabled in this build, ignoring use_coreml option");
|
|
24
|
+
cparams.use_coreml = false;
|
|
17
25
|
}
|
|
18
|
-
#else
|
|
19
|
-
context->ctx = whisper_init_from_file([modelPath UTF8String]);
|
|
20
26
|
#endif
|
|
27
|
+
|
|
28
|
+
#ifndef WSP_GGML_USE_METAL
|
|
29
|
+
if (cparams.use_gpu) {
|
|
30
|
+
NSLog(@"[RNWhisper] ggml-metal is not enabled in this build, ignoring use_gpu option");
|
|
31
|
+
cparams.use_gpu = false;
|
|
32
|
+
}
|
|
33
|
+
#endif
|
|
34
|
+
|
|
35
|
+
#ifdef WSP_GGML_USE_METAL
|
|
36
|
+
if (cparams.use_gpu) {
|
|
37
|
+
#if TARGET_OS_SIMULATOR
|
|
38
|
+
NSLog(@"[RNWhisper] ggml-metal is not available in simulator, ignoring use_gpu option: %@", reasonNoMetal);
|
|
39
|
+
cparams.use_gpu = false;
|
|
40
|
+
#else // TARGET_OS_SIMULATOR
|
|
41
|
+
// Check ggml-metal availability
|
|
42
|
+
NSError * error = nil;
|
|
43
|
+
id<MTLDevice> device = MTLCreateSystemDefaultDevice();
|
|
44
|
+
id<MTLLibrary> library = [device
|
|
45
|
+
newLibraryWithSource:@"#include <metal_stdlib>\n"
|
|
46
|
+
"using namespace metal;"
|
|
47
|
+
"kernel void test() { simd_sum(0); }"
|
|
48
|
+
options:nil
|
|
49
|
+
error:&error
|
|
50
|
+
];
|
|
51
|
+
if (error) {
|
|
52
|
+
reasonNoMetal = [error localizedDescription];
|
|
53
|
+
} else {
|
|
54
|
+
id<MTLFunction> kernel = [library newFunctionWithName:@"test"];
|
|
55
|
+
id<MTLComputePipelineState> pipeline = [device newComputePipelineStateWithFunction:kernel error:&error];
|
|
56
|
+
if (pipeline == nil) {
|
|
57
|
+
reasonNoMetal = [error localizedDescription];
|
|
58
|
+
NSLog(@"[RNWhisper] ggml-metal is not available, ignoring use_gpu option: %@", reasonNoMetal);
|
|
59
|
+
cparams.use_gpu = false;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
#endif // TARGET_OS_SIMULATOR
|
|
63
|
+
}
|
|
64
|
+
#endif // WSP_GGML_USE_METAL
|
|
65
|
+
|
|
66
|
+
if (cparams.use_gpu && cparams.use_coreml) {
|
|
67
|
+
NSLog(@"[RNWhisper] Both use_gpu and use_coreml are enabled, ignoring use_coreml option");
|
|
68
|
+
cparams.use_coreml = false; // Skip CoreML if Metal is enabled
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
context->ctx = whisper_init_from_file_with_params([modelPath UTF8String], cparams);
|
|
21
72
|
context->dQueue = dispatch_queue_create(
|
|
22
73
|
[[NSString stringWithFormat:@"RNWhisperContext-%d", contextId] UTF8String],
|
|
23
74
|
DISPATCH_QUEUE_SERIAL
|
|
24
75
|
);
|
|
76
|
+
context->isMetalEnabled = cparams.use_gpu;
|
|
77
|
+
context->reasonNoMetal = reasonNoMetal;
|
|
25
78
|
return context;
|
|
26
79
|
}
|
|
27
80
|
|
|
81
|
+
- (bool)isMetalEnabled {
|
|
82
|
+
return isMetalEnabled;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
- (NSString *)reasonNoMetal {
|
|
86
|
+
return reasonNoMetal;
|
|
87
|
+
}
|
|
88
|
+
|
|
28
89
|
- (struct whisper_context *)getContext {
|
|
29
90
|
return self->ctx;
|
|
30
91
|
}
|
|
@@ -33,7 +94,7 @@
|
|
|
33
94
|
return self->dQueue;
|
|
34
95
|
}
|
|
35
96
|
|
|
36
|
-
- (void)prepareRealtime:(NSDictionary *)options {
|
|
97
|
+
- (void)prepareRealtime:(int)jobId options:(NSDictionary *)options {
|
|
37
98
|
self->recordState.options = options;
|
|
38
99
|
|
|
39
100
|
self->recordState.dataFormat.mSampleRate = WHISPER_SAMPLE_RATE; // 16000
|
|
@@ -46,74 +107,38 @@
|
|
|
46
107
|
self->recordState.dataFormat.mReserved = 0;
|
|
47
108
|
self->recordState.dataFormat.mFormatFlags = kLinearPCMFormatFlagIsSignedInteger;
|
|
48
109
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
self->recordState.
|
|
52
|
-
|
|
53
|
-
int realtimeAudioSliceSec = options[@"realtimeAudioSliceSec"] != nil ? [options[@"realtimeAudioSliceSec"] intValue] : 0;
|
|
54
|
-
int audioSliceSec = realtimeAudioSliceSec > 0 && realtimeAudioSliceSec < maxAudioSec ? realtimeAudioSliceSec : maxAudioSec;
|
|
55
|
-
|
|
56
|
-
self->recordState.audioOutputPath = options[@"audioOutputPath"];
|
|
57
|
-
|
|
58
|
-
self->recordState.useVad = options[@"useVad"] != nil ? [options[@"useVad"] boolValue] : false;
|
|
59
|
-
self->recordState.vadMs = options[@"vadMs"] != nil ? [options[@"vadMs"] intValue] : 2000;
|
|
60
|
-
if (self->recordState.vadMs < 2000) self->recordState.vadMs = 2000;
|
|
61
|
-
|
|
62
|
-
self->recordState.vadThold = options[@"vadThold"] != nil ? [options[@"vadThold"] floatValue] : 0.6f;
|
|
63
|
-
self->recordState.vadFreqThold = options[@"vadFreqThold"] != nil ? [options[@"vadFreqThold"] floatValue] : 100.0f;
|
|
64
|
-
|
|
65
|
-
self->recordState.audioSliceSec = audioSliceSec;
|
|
66
|
-
self->recordState.isUseSlices = audioSliceSec < maxAudioSec;
|
|
110
|
+
self->recordState.isRealtime = true;
|
|
111
|
+
self->recordState.isTranscribing = false;
|
|
112
|
+
self->recordState.isCapturing = false;
|
|
113
|
+
self->recordState.isStoppedByAction = false;
|
|
67
114
|
|
|
68
115
|
self->recordState.sliceIndex = 0;
|
|
69
116
|
self->recordState.transcribeSliceIndex = 0;
|
|
70
117
|
self->recordState.nSamplesTranscribing = 0;
|
|
71
118
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
119
|
+
self->recordState.sliceNSamples.push_back(0);
|
|
120
|
+
|
|
121
|
+
self->recordState.job = rnwhisper::job_new(jobId, [self createParams:options jobId:jobId]);
|
|
122
|
+
self->recordState.job->set_realtime_params(
|
|
123
|
+
{
|
|
124
|
+
.use_vad = options[@"useVad"] != nil ? [options[@"useVad"] boolValue] : false,
|
|
125
|
+
.vad_ms = options[@"vadMs"] != nil ? [options[@"vadMs"] intValue] : 2000,
|
|
126
|
+
.vad_thold = options[@"vadThold"] != nil ? [options[@"vadThold"] floatValue] : 0.6f,
|
|
127
|
+
.freq_thold = options[@"vadFreqThold"] != nil ? [options[@"vadFreqThold"] floatValue] : 100.0f
|
|
128
|
+
},
|
|
129
|
+
options[@"realtimeAudioSec"] != nil ? [options[@"realtimeAudioSec"] intValue] : 0,
|
|
130
|
+
options[@"realtimeAudioSliceSec"] != nil ? [options[@"realtimeAudioSliceSec"] intValue] : 0,
|
|
131
|
+
options[@"audioOutputPath"] != nil ? [options[@"audioOutputPath"] UTF8String] : nullptr
|
|
132
|
+
);
|
|
133
|
+
self->recordState.isUseSlices = self->recordState.job->audio_slice_sec < self->recordState.job->audio_sec;
|
|
85
134
|
|
|
86
135
|
self->recordState.mSelf = self;
|
|
87
136
|
}
|
|
88
137
|
|
|
89
|
-
|
|
90
|
-
if (self->recordState.shortBufferSlices != nil) {
|
|
91
|
-
for (int i = 0; i < [self->recordState.shortBufferSlices count]; i++) {
|
|
92
|
-
int16_t *audioBufferI16 = (int16_t *) [self->recordState.shortBufferSlices[i] pointerValue];
|
|
93
|
-
free(audioBufferI16);
|
|
94
|
-
}
|
|
95
|
-
self->recordState.shortBufferSlices = nil;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
bool vad(RNWhisperContextRecordState *state, int16_t* audioBufferI16, int nSamples, int n)
|
|
138
|
+
bool vad(RNWhisperContextRecordState *state, int sliceIndex, int nSamples, int n)
|
|
100
139
|
{
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
int sampleSize = (int) (WHISPER_SAMPLE_RATE * state->vadMs / 1000);
|
|
104
|
-
if (nSamples + n > sampleSize) {
|
|
105
|
-
int start = nSamples + n - sampleSize;
|
|
106
|
-
std::vector<float> audioBufferF32Vec(sampleSize);
|
|
107
|
-
for (int i = 0; i < sampleSize; i++) {
|
|
108
|
-
audioBufferF32Vec[i] = (float)audioBufferI16[i + start] / 32768.0f;
|
|
109
|
-
}
|
|
110
|
-
isSpeech = rn_whisper_vad_simple(audioBufferF32Vec, WHISPER_SAMPLE_RATE, 1000, state->vadThold, state->vadFreqThold, false);
|
|
111
|
-
NSLog(@"[RNWhisper] VAD result: %d", isSpeech);
|
|
112
|
-
} else {
|
|
113
|
-
isSpeech = false;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
return isSpeech;
|
|
140
|
+
if (state->isTranscribing) return true;
|
|
141
|
+
return state->job->vad_simple(sliceIndex, nSamples, n);
|
|
117
142
|
}
|
|
118
143
|
|
|
119
144
|
void AudioInputCallback(void * inUserData,
|
|
@@ -134,15 +159,15 @@ void AudioInputCallback(void * inUserData,
|
|
|
134
159
|
}
|
|
135
160
|
|
|
136
161
|
int totalNSamples = 0;
|
|
137
|
-
for (int i = 0; i <
|
|
138
|
-
totalNSamples +=
|
|
162
|
+
for (int i = 0; i < state->sliceNSamples.size(); i++) {
|
|
163
|
+
totalNSamples += state->sliceNSamples[i];
|
|
139
164
|
}
|
|
140
165
|
|
|
141
166
|
const int n = inBuffer->mAudioDataByteSize / 2;
|
|
142
167
|
|
|
143
|
-
int nSamples =
|
|
168
|
+
int nSamples = state->sliceNSamples[state->sliceIndex];
|
|
144
169
|
|
|
145
|
-
if (totalNSamples + n > state->
|
|
170
|
+
if (totalNSamples + n > state->job->audio_sec * WHISPER_SAMPLE_RATE) {
|
|
146
171
|
NSLog(@"[RNWhisper] Audio buffer is full, stop capturing");
|
|
147
172
|
state->isCapturing = false;
|
|
148
173
|
[state->mSelf stopAudio];
|
|
@@ -156,8 +181,7 @@ void AudioInputCallback(void * inUserData,
|
|
|
156
181
|
!state->isTranscribing &&
|
|
157
182
|
nSamples != state->nSamplesTranscribing
|
|
158
183
|
) {
|
|
159
|
-
|
|
160
|
-
if (!vad(state, audioBufferI16, nSamples, 0)) {
|
|
184
|
+
if (!vad(state, state->sliceIndex, nSamples, 0)) {
|
|
161
185
|
[state->mSelf finishRealtimeTranscribe:state result:@{}];
|
|
162
186
|
return;
|
|
163
187
|
}
|
|
@@ -169,27 +193,20 @@ void AudioInputCallback(void * inUserData,
|
|
|
169
193
|
return;
|
|
170
194
|
}
|
|
171
195
|
|
|
172
|
-
|
|
173
|
-
if (nSamples + n > audioSliceSec * WHISPER_SAMPLE_RATE) {
|
|
196
|
+
if (nSamples + n > state->job->audio_slice_sec * WHISPER_SAMPLE_RATE) {
|
|
174
197
|
// next slice
|
|
175
198
|
state->sliceIndex++;
|
|
176
199
|
nSamples = 0;
|
|
177
|
-
|
|
178
|
-
[state->shortBufferSlices addObject:[NSValue valueWithPointer:audioBufferI16]];
|
|
179
|
-
[state->sliceNSamples addObject:[NSNumber numberWithInt:0]];
|
|
200
|
+
state->sliceNSamples.push_back(0);
|
|
180
201
|
}
|
|
181
202
|
|
|
182
|
-
// Append to buffer
|
|
183
203
|
NSLog(@"[RNWhisper] Slice %d has %d samples", state->sliceIndex, nSamples);
|
|
184
204
|
|
|
185
|
-
|
|
186
|
-
for (int i = 0; i < n; i++) {
|
|
187
|
-
audioBufferI16[nSamples + i] = ((short*)inBuffer->mAudioData)[i];
|
|
188
|
-
}
|
|
205
|
+
state->job->put_pcm_data((short*) inBuffer->mAudioData, state->sliceIndex, nSamples, n);
|
|
189
206
|
|
|
190
|
-
bool isSpeech = vad(state,
|
|
207
|
+
bool isSpeech = vad(state, state->sliceIndex, nSamples, n);
|
|
191
208
|
nSamples += n;
|
|
192
|
-
state->sliceNSamples[state->sliceIndex] =
|
|
209
|
+
state->sliceNSamples[state->sliceIndex] = nSamples;
|
|
193
210
|
|
|
194
211
|
AudioQueueEnqueueBuffer(state->queue, inBuffer, 0, NULL);
|
|
195
212
|
|
|
@@ -205,32 +222,27 @@ void AudioInputCallback(void * inUserData,
|
|
|
205
222
|
|
|
206
223
|
- (void)finishRealtimeTranscribe:(RNWhisperContextRecordState*) state result:(NSDictionary*)result {
|
|
207
224
|
// Save wav if needed
|
|
208
|
-
if (state->
|
|
225
|
+
if (state->job->audio_output_path != nullptr) {
|
|
209
226
|
// TODO: Append in real time so we don't need to keep all slices & also reduce memory usage
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
];
|
|
227
|
+
rnaudioutils::save_wav_file(
|
|
228
|
+
rnaudioutils::concat_short_buffers(state->job->pcm_slices, state->sliceNSamples),
|
|
229
|
+
state->job->audio_output_path
|
|
230
|
+
);
|
|
215
231
|
}
|
|
216
|
-
state->transcribeHandler(state->
|
|
232
|
+
state->transcribeHandler(state->job->job_id, @"end", result);
|
|
233
|
+
rnwhisper::job_remove(state->job->job_id);
|
|
217
234
|
}
|
|
218
235
|
|
|
219
236
|
- (void)fullTranscribeSamples:(RNWhisperContextRecordState*) state {
|
|
220
|
-
int nSamplesOfIndex =
|
|
237
|
+
int nSamplesOfIndex = state->sliceNSamples[state->transcribeSliceIndex];
|
|
221
238
|
state->nSamplesTranscribing = nSamplesOfIndex;
|
|
222
239
|
NSLog(@"[RNWhisper] Transcribing %d samples", state->nSamplesTranscribing);
|
|
223
240
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
// convert I16 to F32
|
|
227
|
-
for (int i = 0; i < state->nSamplesTranscribing; i++) {
|
|
228
|
-
audioBufferF32[i] = (float)audioBufferI16[i] / 32768.0f;
|
|
229
|
-
}
|
|
241
|
+
float* pcmf32 = state->job->pcm_slice_to_f32(state->transcribeSliceIndex, state->nSamplesTranscribing);
|
|
242
|
+
|
|
230
243
|
CFTimeInterval timeStart = CACurrentMediaTime();
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
free(audioBufferF32);
|
|
244
|
+
int code = [state->mSelf fullTranscribe:state->job audioData:pcmf32 audioDataCount:state->nSamplesTranscribing];
|
|
245
|
+
free(pcmf32);
|
|
234
246
|
CFTimeInterval timeEnd = CACurrentMediaTime();
|
|
235
247
|
const float timeRecording = (float) state->nSamplesTranscribing / (float) state->dataFormat.mSampleRate;
|
|
236
248
|
|
|
@@ -250,7 +262,7 @@ void AudioInputCallback(void * inUserData,
|
|
|
250
262
|
result[@"error"] = [NSString stringWithFormat:@"Transcribe failed with code %d", code];
|
|
251
263
|
}
|
|
252
264
|
|
|
253
|
-
nSamplesOfIndex =
|
|
265
|
+
nSamplesOfIndex = state->sliceNSamples[state->transcribeSliceIndex];
|
|
254
266
|
|
|
255
267
|
bool isStopped = state->isStoppedByAction || (
|
|
256
268
|
!state->isCapturing &&
|
|
@@ -278,10 +290,10 @@ void AudioInputCallback(void * inUserData,
|
|
|
278
290
|
[state->mSelf finishRealtimeTranscribe:state result:result];
|
|
279
291
|
} else if (code == 0) {
|
|
280
292
|
result[@"isCapturing"] = @(true);
|
|
281
|
-
state->transcribeHandler(state->
|
|
293
|
+
state->transcribeHandler(state->job->job_id, @"transcribe", result);
|
|
282
294
|
} else {
|
|
283
295
|
result[@"isCapturing"] = @(true);
|
|
284
|
-
state->transcribeHandler(state->
|
|
296
|
+
state->transcribeHandler(state->job->job_id, @"transcribe", result);
|
|
285
297
|
}
|
|
286
298
|
|
|
287
299
|
if (continueNeeded) {
|
|
@@ -309,8 +321,7 @@ void AudioInputCallback(void * inUserData,
|
|
|
309
321
|
onTranscribe:(void (^)(int, NSString *, NSDictionary *))onTranscribe
|
|
310
322
|
{
|
|
311
323
|
self->recordState.transcribeHandler = onTranscribe;
|
|
312
|
-
self
|
|
313
|
-
[self prepareRealtime:options];
|
|
324
|
+
[self prepareRealtime:jobId options:options];
|
|
314
325
|
|
|
315
326
|
OSStatus status = AudioQueueNewInput(
|
|
316
327
|
&self->recordState.dataFormat,
|
|
@@ -351,9 +362,9 @@ struct rnwhisper_segments_callback_data {
|
|
|
351
362
|
dispatch_async(dQueue, ^{
|
|
352
363
|
self->recordState.isStoppedByAction = false;
|
|
353
364
|
self->recordState.isTranscribing = true;
|
|
354
|
-
self->recordState.jobId = jobId;
|
|
355
365
|
|
|
356
|
-
whisper_full_params params = [self
|
|
366
|
+
whisper_full_params params = [self createParams:options jobId:jobId];
|
|
367
|
+
|
|
357
368
|
if (options[@"onProgress"] && [options[@"onProgress"] boolValue]) {
|
|
358
369
|
params.progress_callback = [](struct whisper_context * /*ctx*/, struct whisper_state * /*state*/, int progress, void * user_data) {
|
|
359
370
|
void (^onProgress)(int) = (__bridge void (^)(int))user_data;
|
|
@@ -398,8 +409,10 @@ struct rnwhisper_segments_callback_data {
|
|
|
398
409
|
};
|
|
399
410
|
params.new_segment_callback_user_data = &user_data;
|
|
400
411
|
}
|
|
401
|
-
|
|
402
|
-
|
|
412
|
+
|
|
413
|
+
rnwhisper::job* job = rnwhisper::job_new(jobId, params);;
|
|
414
|
+
int code = [self fullTranscribe:job audioData:audioData audioDataCount:audioDataCount];
|
|
415
|
+
rnwhisper::job_remove(jobId);
|
|
403
416
|
self->recordState.isTranscribing = false;
|
|
404
417
|
onEnd(code);
|
|
405
418
|
});
|
|
@@ -414,7 +427,7 @@ struct rnwhisper_segments_callback_data {
|
|
|
414
427
|
}
|
|
415
428
|
|
|
416
429
|
- (void)stopTranscribe:(int)jobId {
|
|
417
|
-
|
|
430
|
+
if (self->recordState.job) self->recordState.job->abort();
|
|
418
431
|
if (self->recordState.isRealtime && self->recordState.isCapturing) {
|
|
419
432
|
[self stopAudio];
|
|
420
433
|
if (!self->recordState.isTranscribing) {
|
|
@@ -428,13 +441,11 @@ struct rnwhisper_segments_callback_data {
|
|
|
428
441
|
}
|
|
429
442
|
|
|
430
443
|
- (void)stopCurrentTranscribe {
|
|
431
|
-
if (
|
|
432
|
-
|
|
433
|
-
}
|
|
434
|
-
[self stopTranscribe:self->recordState.jobId];
|
|
444
|
+
if (self->recordState.job == nullptr) return;
|
|
445
|
+
[self stopTranscribe:self->recordState.job->job_id];
|
|
435
446
|
}
|
|
436
447
|
|
|
437
|
-
- (struct whisper_full_params)
|
|
448
|
+
- (struct whisper_full_params)createParams:(NSDictionary *)options jobId:(int)jobId {
|
|
438
449
|
struct whisper_full_params params = whisper_full_default_params(WHISPER_SAMPLING_GREEDY);
|
|
439
450
|
|
|
440
451
|
const int n_threads = options[@"maxThreads"] != nil ?
|
|
@@ -472,7 +483,6 @@ struct rnwhisper_segments_callback_data {
|
|
|
472
483
|
if (options[@"maxContext"] != nil) {
|
|
473
484
|
params.n_max_text_ctx = [options[@"maxContext"] intValue];
|
|
474
485
|
}
|
|
475
|
-
|
|
476
486
|
if (options[@"offset"] != nil) {
|
|
477
487
|
params.offset_ms = [options[@"offset"] intValue];
|
|
478
488
|
}
|
|
@@ -488,35 +498,20 @@ struct rnwhisper_segments_callback_data {
|
|
|
488
498
|
if (options[@"temperatureInc"] != nil) {
|
|
489
499
|
params.temperature_inc = [options[@"temperature_inc"] floatValue];
|
|
490
500
|
}
|
|
491
|
-
|
|
492
501
|
if (options[@"prompt"] != nil) {
|
|
493
502
|
params.initial_prompt = [options[@"prompt"] UTF8String];
|
|
494
503
|
}
|
|
495
504
|
|
|
496
|
-
// abort handler
|
|
497
|
-
params.encoder_begin_callback = [](struct whisper_context * /*ctx*/, struct whisper_state * /*state*/, void * user_data) {
|
|
498
|
-
bool is_aborted = *(bool*)user_data;
|
|
499
|
-
return !is_aborted;
|
|
500
|
-
};
|
|
501
|
-
params.encoder_begin_callback_user_data = rn_whisper_assign_abort_map(jobId);
|
|
502
|
-
params.abort_callback = [](void * user_data) {
|
|
503
|
-
bool is_aborted = *(bool*)user_data;
|
|
504
|
-
return is_aborted;
|
|
505
|
-
};
|
|
506
|
-
params.abort_callback_user_data = rn_whisper_assign_abort_map(jobId);
|
|
507
|
-
|
|
508
505
|
return params;
|
|
509
506
|
}
|
|
510
507
|
|
|
511
|
-
- (int)fullTranscribe:(
|
|
512
|
-
params:(struct whisper_full_params)params
|
|
508
|
+
- (int)fullTranscribe:(rnwhisper::job *)job
|
|
513
509
|
audioData:(float *)audioData
|
|
514
510
|
audioDataCount:(int)audioDataCount
|
|
515
511
|
{
|
|
516
512
|
whisper_reset_timings(self->ctx);
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
rn_whisper_remove_abort_map(jobId);
|
|
513
|
+
int code = whisper_full(self->ctx, job->params, audioData, audioDataCount);
|
|
514
|
+
if (job && job->is_aborted()) code = -999;
|
|
520
515
|
// if (code == 0) {
|
|
521
516
|
// whisper_print_timings(self->ctx);
|
|
522
517
|
// }
|
|
@@ -550,7 +545,6 @@ struct rnwhisper_segments_callback_data {
|
|
|
550
545
|
- (void)invalidate {
|
|
551
546
|
[self stopCurrentTranscribe];
|
|
552
547
|
whisper_free(self->ctx);
|
|
553
|
-
[self freeBufferIfNeeded];
|
|
554
548
|
}
|
|
555
549
|
|
|
556
550
|
@end
|
package/jest/mock.js
CHANGED
|
@@ -2,7 +2,7 @@ const { NativeModules, DeviceEventEmitter } = require('react-native')
|
|
|
2
2
|
|
|
3
3
|
if (!NativeModules.RNWhisper) {
|
|
4
4
|
NativeModules.RNWhisper = {
|
|
5
|
-
initContext: jest.fn(() => Promise.resolve(1)),
|
|
5
|
+
initContext: jest.fn(() => Promise.resolve({ contextId: 1 })),
|
|
6
6
|
transcribeFile: jest.fn(() => Promise.resolve({
|
|
7
7
|
result: ' Test',
|
|
8
8
|
segments: [{ text: ' Test', t0: 0, t1: 33 }],
|
|
@@ -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,GAiGnCC,gCAAmB,CAACC,GAAG,CAAO,WAAW,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAJ,QAAA"}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -39,8 +39,17 @@ const updateAudioSession = async setting => {
|
|
|
39
39
|
await _AudioSessionIos.default.setActive(setting.active ?? true);
|
|
40
40
|
};
|
|
41
41
|
class WhisperContext {
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
gpu = false;
|
|
43
|
+
reasonNoGPU = '';
|
|
44
|
+
constructor(_ref) {
|
|
45
|
+
let {
|
|
46
|
+
contextId,
|
|
47
|
+
gpu,
|
|
48
|
+
reasonNoGPU
|
|
49
|
+
} = _ref;
|
|
50
|
+
this.id = contextId;
|
|
51
|
+
this.gpu = gpu;
|
|
52
|
+
this.reasonNoGPU = reasonNoGPU;
|
|
44
53
|
}
|
|
45
54
|
|
|
46
55
|
/** Transcribe audio file */
|
|
@@ -135,7 +144,7 @@ class WhisperContext {
|
|
|
135
144
|
let sliceIndex = 0;
|
|
136
145
|
let tOffset = 0;
|
|
137
146
|
const putSlice = payload => {
|
|
138
|
-
if (!payload.isUseSlices) return;
|
|
147
|
+
if (!payload.isUseSlices || !payload.data) return;
|
|
139
148
|
if (sliceIndex !== payload.sliceIndex) {
|
|
140
149
|
var _slices$sliceIndex, _segments;
|
|
141
150
|
const {
|
|
@@ -149,14 +158,14 @@ class WhisperContext {
|
|
|
149
158
|
} = payload);
|
|
150
159
|
slices[sliceIndex] = {
|
|
151
160
|
...payload,
|
|
152
|
-
data:
|
|
161
|
+
data: {
|
|
153
162
|
...payload.data,
|
|
154
163
|
segments: payload.data.segments.map(segment => ({
|
|
155
164
|
...segment,
|
|
156
165
|
t0: segment.t0 + tOffset,
|
|
157
166
|
t1: segment.t1 + tOffset
|
|
158
167
|
})) || []
|
|
159
|
-
}
|
|
168
|
+
}
|
|
160
169
|
};
|
|
161
170
|
};
|
|
162
171
|
const mergeSlicesIfNeeded = payload => {
|
|
@@ -258,13 +267,14 @@ class WhisperContext {
|
|
|
258
267
|
}
|
|
259
268
|
exports.WhisperContext = WhisperContext;
|
|
260
269
|
const coreMLModelAssetPaths = ['analytics/coremldata.bin', 'weights/weight.bin', 'model.mil', 'coremldata.bin'];
|
|
261
|
-
async function initWhisper(
|
|
270
|
+
async function initWhisper(_ref2) {
|
|
262
271
|
let {
|
|
263
272
|
filePath,
|
|
264
273
|
coreMLModelAsset,
|
|
265
274
|
isBundleAsset,
|
|
275
|
+
useGpu = true,
|
|
266
276
|
useCoreMLIos = true
|
|
267
|
-
} =
|
|
277
|
+
} = _ref2;
|
|
268
278
|
let path = '';
|
|
269
279
|
let coreMLAssets;
|
|
270
280
|
if (coreMLModelAsset) {
|
|
@@ -309,15 +319,24 @@ async function initWhisper(_ref) {
|
|
|
309
319
|
path = filePath;
|
|
310
320
|
}
|
|
311
321
|
if (path.startsWith('file://')) path = path.slice(7);
|
|
312
|
-
const
|
|
322
|
+
const {
|
|
323
|
+
contextId,
|
|
324
|
+
gpu,
|
|
325
|
+
reasonNoGPU
|
|
326
|
+
} = await _NativeRNWhisper.default.initContext({
|
|
313
327
|
filePath: path,
|
|
314
328
|
isBundleAsset: !!isBundleAsset,
|
|
329
|
+
useGpu,
|
|
315
330
|
useCoreMLIos,
|
|
316
331
|
// Only development mode need download Core ML model assets (from packager server)
|
|
317
332
|
downloadCoreMLAssets: __DEV__ && !!coreMLAssets,
|
|
318
333
|
coreMLAssets
|
|
319
334
|
});
|
|
320
|
-
return new WhisperContext(
|
|
335
|
+
return new WhisperContext({
|
|
336
|
+
contextId,
|
|
337
|
+
gpu,
|
|
338
|
+
reasonNoGPU
|
|
339
|
+
});
|
|
321
340
|
}
|
|
322
341
|
async function releaseAllWhisper() {
|
|
323
342
|
return _NativeRNWhisper.default.releaseAllContexts();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_NativeRNWhisper","_interopRequireDefault","_AudioSessionIos","_version","_RNWhisper$getConstan","obj","__esModule","default","EventEmitter","Platform","OS","NativeEventEmitter","RNWhisper","DeviceEventEmitter","EVENT_ON_TRANSCRIBE_PROGRESS","EVENT_ON_TRANSCRIBE_NEW_SEGMENTS","EVENT_ON_REALTIME_TRANSCRIBE","EVENT_ON_REALTIME_TRANSCRIBE_END","updateAudioSession","setting","AudioSessionIos","setCategory","category","options","mode","setMode","setActive","active","WhisperContext","constructor","id","transcribe","filePath","arguments","length","undefined","path","source","Image","resolveAssetSource","uri","e","Error","startsWith","slice","jobId","Math","floor","random","onProgress","onNewSegments","rest","progressListener","lastProgress","addListener","evt","contextId","progress","removeProgressListener","remove","newSegmentsListener","result","removeNewSegmenetsListener","stop","abortTranscribe","promise","transcribeFile","then","isAborted","catch","transcribeRealtime","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","prevAudioSession","audioSessionOnStartIos","audioSessionOnStopIos","categoryResult","getCurrentCategory","getCurrentMode","startRealtimeTranscribe","subscribe","callback","transcribeListener","endListener","lastPayload","isCapturing","release","releaseContext","exports","coreMLModelAssetPaths","initWhisper","_ref","coreMLModelAsset","isBundleAsset","useCoreMLIos","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
|
+
{"version":3,"names":["_reactNative","require","_NativeRNWhisper","_interopRequireDefault","_AudioSessionIos","_version","_RNWhisper$getConstan","obj","__esModule","default","EventEmitter","Platform","OS","NativeEventEmitter","RNWhisper","DeviceEventEmitter","EVENT_ON_TRANSCRIBE_PROGRESS","EVENT_ON_TRANSCRIBE_NEW_SEGMENTS","EVENT_ON_REALTIME_TRANSCRIBE","EVENT_ON_REALTIME_TRANSCRIBE_END","updateAudioSession","setting","AudioSessionIos","setCategory","category","options","mode","setMode","setActive","active","WhisperContext","gpu","reasonNoGPU","constructor","_ref","contextId","id","transcribe","filePath","arguments","length","undefined","path","source","Image","resolveAssetSource","uri","e","Error","startsWith","slice","jobId","Math","floor","random","onProgress","onNewSegments","rest","progressListener","lastProgress","addListener","evt","progress","removeProgressListener","remove","newSegmentsListener","result","removeNewSegmenetsListener","stop","abortTranscribe","promise","transcribeFile","then","isAborted","catch","transcribeRealtime","lastTranscribePayload","slices","sliceIndex","tOffset","putSlice","payload","isUseSlices","data","_slices$sliceIndex","_segments","segments","t1","map","segment","t0","mergeSlicesIfNeeded","mergedPayload","forEach","_mergedPayload$data","_slice$data","_mergedPayload$data2","_slice$data2","processTime","recordingTime","prevAudioSession","audioSessionOnStartIos","audioSessionOnStopIos","categoryResult","getCurrentCategory","getCurrentMode","startRealtimeTranscribe","subscribe","callback","transcribeListener","endListener","lastPayload","isCapturing","release","releaseContext","exports","coreMLModelAssetPaths","initWhisper","_ref2","coreMLModelAsset","isBundleAsset","useGpu","useCoreMLIos","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":"1.
|
|
1
|
+
{"version":"1.5.1"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../src","sources":["NativeRNWhisper.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;;AAElD;;
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../src","sources":["NativeRNWhisper.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;;AAElD;;AA+FA,eAAeA,mBAAmB,CAACC,GAAG,CAAO,WAAW,CAAC"}
|